LSParam Class

class localsolver.LSParam

Solving parameters. This class contains some methods allowing you to parameterize the resolution of the model. For the sake of simplicity, only a few parameters are actually offered to tune the search.

Summary

Methods

GetLocalSolver

Returns the LocalSolver object associated to these parameters.

SetSeed

Sets the seed of the pseudo-random number generator used by the solver.

GetSeed

Gets the seed of the pseudo-random number generator used by the solver.

SetNbThreads

Sets the number of threads used to parallelize the search.

GetNbThreads

Gets the number of threads.

SetTimeLimit

Sets the time limit in seconds.

GetTimeLimit

Gets the time limit in seconds.

SetIterationLimit

Sets the maximum number of iterations.

GetIterationLimit

Gets the maximum number of iterations.

SetAnnealingLevel

Sets the simulated annealing levelDeprecated since version 8.5: The annealing level doesn’t have a significant influence on the search anymore.

GetAnnealingLevel

Gets the simulated annealing levelDeprecated since version 8.5: The annealing level doesn’t have a significant influence on the search anymore.

SetVerbosity

Sets the verbosity level of the solver.

GetVerbosity

Gets the verbosity level of the solver.

SetTimeBetweenDisplays

Sets the time in seconds between two consecutive displays in console while the solver is running.

GetTimeBetweenDisplays

Gets the time in seconds between two consecutive displays in console while the solver is running.

SetTimeBetweenTicks

Sets the time in seconds between two events of type LSCallbackType.TimeTicked.

GetTimeBetweenTicks

Gets the time in seconds between two events of type LSCallbackType.TimeTicked.

SetIterationBetweenTicks

Sets the number of iterations between two events of type LSCallbackType.IterationTicked.

GetIterationBetweenTicks

Gets the number of iterations between two events of type LSCallbackType.IterationTicked.

SetLogWriter

Sets the writer used by LocalSolver for its logging.

GetLogWriter

Returns the writer used by LocalSolver for its logging.

SetLogFile

Sets the path of the LocalSolver log file.

GetLogFile

Returns the path of the LocalSolver log file.

SetObjectiveThreshold

Sets the threshold of the objective with the given index.

SetIntObjectiveThreshold

Sets the threshold of the objective with the given index.

SetDoubleObjectiveThreshold

Sets the threshold of the objective with the given index.

GetObjectiveThreshold

Gets the threshold of the objective with the given index.

GetIntObjectiveThreshold

Gets the threshold of the objective with the given index.

GetDoubleObjectiveThreshold

Gets the threshold of the objective with the given index.

SetAdvancedParam

Reserved for maintenance purpose.

GetAdvancedParam

Reserved for maintenance purpose.

ToString

Returns a string representation of these parameters.

Instance methods

LocalSolver GetLocalSolver()

Returns the LocalSolver object associated to these parameters.

Returns

LocalSolver object

Return type

LocalSolver

void SetSeed(int seed)

Sets the seed of the pseudo-random number generator used by the solver. The seed must be a positive integer. The default seed is set to 0. Only allowed in states Modeling or Stopped.

The search for solutions is highly randomized. Fixing the seed and the number of iterations of the solver allows you to reproduce exactly its results over several runs.

Arguments

seed (int) – Seed of the pseudo-random number generator.

int GetSeed()

Gets the seed of the pseudo-random number generator used by the solver.

Returns

Seed of the pseudo-random number generator.

See

LSParam.SetSeed

void SetNbThreads(int nbThreads)

Sets the number of threads used to parallelize the search. The number of threads must be a positive integer. The default number of threads is set to 0 which means that the number of threads is automatically adapted to your computer and to your optimization model. Only allowed in states Modeling or Stopped.

This parameter is indicative, if needed LocalSolver may use more threads. The actual number of threads can also vary during the search.

Arguments

nbThreads (int) – Number of threads.

int GetNbThreads()

Gets the number of threads. By convention, value 0 means that the number of threads is automatically adapted to your computer and to your optimization model.

Returns

Number of threads.

See

LSParam.SetNbThreads

void SetTimeLimit(int timeLimit)

Sets the time limit in seconds. Only allowed in states Modeling or Stopped.

This is not allowed if you have defined multiple phases. Use LSPhase.SetTimeLimit to set the limit for each phase instead.

Arguments

timeLimit (int) – Time limit in seconds.

See

LSPhase

int GetTimeLimit()

Gets the time limit in seconds.

This is not allowed if you have defined multiple phases. Use LSPhase.GetTimeLimit instead.

Returns

Time limit in seconds.

See

LSParam.SetTimeLimit

See

LSPhase

void SetIterationLimit(long iterationLimit)

Sets the maximum number of iterations. Fixing the seed and the number of iterations ensures the reproducibility of results over several runs. Only allowed in states Modeling or Stopped.

This is not allowed if you have defined multiple phases. Use LSPhase.SetIterationLimit to set the limit for each phase instead.

Arguments

iterationLimit (long) – Iteration limit.

See

LSPhase

long GetIterationLimit()

Gets the maximum number of iterations.

This is not allowed if you have defined multiple phases. Use LSPhase.GetIterationLimit instead.

Returns

Iteration limit.

See

LSParam.SetIterationLimit

See

LSPhase

void SetAnnealingLevel(int annealingLevel)

Sets the simulated annealing level

Deprecated since version 8.5: The annealing level doesn’t have a significant influence on the search anymore. The tuning of this parameter won’t be allowed in a future version.

The level must be an integer between 0 and 9. The default simulated annealing level is set to 1. Only allowed in states Modeling or Stopped.

Arguments

annealingLevel (int) – Simulated annealing level.

int GetAnnealingLevel()

Gets the simulated annealing level

Deprecated since version 8.5: The annealing level doesn’t have a significant influence on the search anymore. The tuning of this parameter won’t be allowed in a future version.

Returns

Simulated annealing level.

See

LSParam.SetAnnealingLevel

void SetVerbosity(int verbosity)

Sets the verbosity level of the solver. The default verbosity is set to 1. Only allowed in states Modeling or Stopped. There are 3 defined verbosity levels :

  • 0: All the traces are disabled.

  • 1: Normal verbosity. This is the default level.

  • 2: Detailed verbosity. Displays statistics during the search.

Arguments

verbosity (int) – Verbosity level: 0, 1, 2.

int GetVerbosity()

Gets the verbosity level of the solver.

Returns

verbosity Verbosity level: 0, 1 or 2.

See

LSParam.SetVerbosity

void SetTimeBetweenDisplays(int timeBetweenDisplays)

Sets the time in seconds between two consecutive displays in console while the solver is running. The default time between displays is set to 1 second. Only allowed in states Modeling or Stopped.

Arguments

timeBetweenDisplays (int) – Time in seconds between displays.

int GetTimeBetweenDisplays()

Gets the time in seconds between two consecutive displays in console while the solver is running.

Returns

Time in seconds between displays.

Return type

int

See

LSParam.SetTimeBetweenDisplays

void SetTimeBetweenTicks(int timeBetweenTicks)

Sets the time in seconds between two events of type LSCallbackType.TimeTicked. The default time between ticks is set to 1 second. Only allowed in states Modeling or Stopped.

Since

6.0

Arguments

timeBetweenTicks (int) – Time in seconds between ticks.

int GetTimeBetweenTicks()

Gets the time in seconds between two events of type LSCallbackType.TimeTicked.

Since

6.0

Returns

Time in seconds between ticks.

See

LSParam.SetTimeBetweenTicks

void SetIterationBetweenTicks(long iterationBetweenTicks)

Sets the number of iterations between two events of type LSCallbackType.IterationTicked. The default number of iterations between ticks is set to 10,000. Only allowed in states Modeling or Stopped.

Since

6.0

Arguments

iterationBetweenTicks (long) – Number of iterations between ticks.

long GetIterationBetweenTicks()

Gets the number of iterations between two events of type LSCallbackType.IterationTicked.

Since

6.0

Returns

Number of iterations between ticks.

See

LSParam.SetIterationBetweenTicks

void SetLogWriter(System.IO.TextWriter writer)

Sets the writer used by LocalSolver for its logging. The default is to log to the standard output. To tune the logging verbosity of the output, see SetVerbosity. Note that you can specify both the log writer and the log file by using the method SetLogFile.

Arguments

writer – Writer for the logging or null to disable logging.

Since

9.5

System.IO.TextWriter GetLogWriter()

Returns the writer used by LocalSolver for its logging. The default value is initialized to the standard output, retrieved with Console.Out. If no console is available, logging is disabled.

To tune the logging verbosity of the output, see SetVerbosity.

Returns

The writer used by LocalSolver for its logging or null if logging is disabled.

Since

9.5

void SetLogFile(string path)

Sets the path of the LocalSolver log file. If the path is empty, no log will be saved. To tune the logging verbosity, see LSParam.SetVerbosity. Only allowed in states Modeling or Stopped.

Arguments

path (string) – Path of the log file. Leave empty to disable the logging mechanism.

See

LSParam.SetVerbosity

See

LSParam.GetLogFile

string GetLogFile()

Returns the path of the LocalSolver log file. If no log file was specified, an empty string is returned.

Returns

The path of the log file or an empty string.

See

LSParam.SetLogFile

void SetObjectiveThreshold(int objectiveIndex, long threshold)

Sets the threshold of the objective with the given index. If the objective is minimized (resp. maximized), then the optimization of this objective is stopped as soon as this lower (resp. upper) threshold is reached. It can be useful for goal programming. Only allowed in states Stopped.

This method has the same behavior as LSParam.SetIntObjectiveThreshold.

Since

8.5

Arguments
  • objectiveIndex (int) – Index of the objective.

  • threshold (long) – Objective threshold.

See

LSExpression.IsObjective

See

LSExpression.IsInt

void SetObjectiveThreshold(int objectiveIndex, double threshold)

Sets the threshold of the objective with the given index. If the objective is minimized (resp. maximized), then the optimization of this objective is stopped as soon as this lower (resp. upper) threshold is reached. It can be useful for goal programming. Only allowed in states Stopped.

This method has the same behavior as LSParam.SetDoubleObjectiveThreshold.

Since

8.5

Arguments
  • objectiveIndex (int) – Index of the objective.

  • threshold (double) – Objective threshold.

See

LSExpression.IsObjective

See

LSExpression.IsDouble

void SetIntObjectiveThreshold(int objectiveIndex, long threshold)

Sets the threshold of the objective with the given index. If the objective is minimized (resp. maximized), then the optimization of this objective is stopped as soon as this lower (resp. upper) threshold is reached. It can be useful for goal programming. Only allowed in states Stopped.

Since

8.5

Arguments
  • objectiveIndex (int) – Index of the objective.

  • threshold (long) – Objective threshold.

See

LSExpression.IsObjective

See

LSExpression.IsInt

void SetDoubleObjectiveThreshold(int objectiveIndex, double threshold)

Sets the threshold of the objective with the given index. If the objective is minimized (resp. maximized), then the optimization of this objective is stopped as soon as this lower (resp. upper) threshold is reached. It can be useful for goal programming. Only allowed in states Stopped.

Since

8.5

Arguments
  • objectiveIndex (int) – Index of the objective.

  • threshold (double) – Objective threshold.

See

LSExpression.IsObjective

See

LSExpression.IsDouble

long GetObjectiveThreshold(int objectiveIndex)

Gets the threshold of the objective with the given index. Only allowed in states Paused or Stopped.

Since

8.5

Arguments

objectiveIndex (int) – Index of the objective.

Returns

Objective threshold.

Return type

long

See

LSParam.SetObjectiveThreshold(int, long)

long GetIntObjectiveThreshold(int objectiveIndex)

Gets the threshold of the objective with the given index. Only allowed in states Paused or Stopped.

Since

8.5

Arguments

objectiveIndex (int) – Index of the objective.

Returns

Objective threshold.

Return type

long

See

LSParam.SetIntObjectiveThreshold

double GetDoubleObjectiveThreshold(int objectiveIndex)

Gets the threshold of the objective with the given index. Only allowed in states Paused or Stopped.

Since

8.5

Arguments

objectiveIndex (int) – Index of the objective.

Returns

Objective threshold.

Return type

double

See

LSParam.SetDoubleObjectiveThreshold

void SetAdvancedParam(string key, int value)

Reserved for maintenance purpose.

Sets the value of an advanced parameter. Advanced parameters are reserved for fine tuning or debugging and should not be used by end-users. Only allowed in states Modeling or Stopped.

Arguments
  • key – Name of the parameter.

  • value – Value of the parameter.

int GetAdvancedParam(string key)

Reserved for maintenance purpose.

Returns the value of an advanced parameter. Advanced parameters are reserved for fine tuning or debugging and should not be used by end-users. Throws an exception if the parameter does not exist.

Arguments

key – Name of the parameter.

Returns

Value of the parameter.

See

LSParam.SetAdvancedParam(string, int)

int GetAdvancedParam(string key, int defaultValue)

Reserved for maintenance purpose.

Returns the value of an advanced parameter. Advanced parameters are reserved for fine tuning or debugging and should not be used by end-users. The default value is returned if the parameter does not exist or if no value was set for this one.

Arguments
  • key (string) – Name of the parameter.

  • defaultValue (int) – Default value of the parameter.

See

LSParam.SetAdvancedParam(string, int)

void SetAdvancedParam(string key, double value)

Reserved for maintenance purpose.

Sets the value of an advanced parameter. Advanced parameters are reserved for fine tuning or debugging and should not be used by end-users. Only allowed in states Modeling or Stopped.

Arguments
  • key – Name of the parameter.

  • value – Value of the parameter.

double GetAdvancedParam(string key, double defaultValue)

Reserved for maintenance purpose.

Returns the value of an advanced parameter. Advanced parameters are reserved for fine tuning or debugging and should not be used by end-users. The default value is returned if the parameter does not exist or if no value was set for this one.

Arguments
  • key (string) – Name of the parameter.

  • defaultValue (double) – Default value of the parameter.

See

LSParam.SetAdvancedParam(string, double)

void SetAdvancedParam(string key, string value)

Reserved for maintenance purpose.

Sets the value of an advanced parameter. Advanced parameters are reserved for fine tuning or debugging and should not be used by end-users. Only allowed in states Modeling or Stopped.

Arguments
  • key (string) – Name of the parameter.

  • value (string) – Value of the parameter.

string GetAdvancedParam(string key, string defaultValue)

Reserved for maintenance purpose.

Returns the value of an advanced parameter. Advanced parameters are reserved for fine tuning or debugging and should not be used by end-users. The default value is returned if the parameter does not exist or if no value was set for this one.

Arguments
  • key (string) – Name of the parameter.

  • defaultValue (string) – Default value of the parameter.

See

LSParam.SetAdvancedParam(string, string)

string ToString()

Returns a string representation of these parameters. Useful for debugging or logging purposes.

Returns

String representation.