Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
operations_research::sat::ModelRandomGenerator Class Reference

#include <util.h>

Inheritance diagram for operations_research::sat::ModelRandomGenerator:

Public Member Functions

 ModelRandomGenerator (const SatParameters &params)
 
 ModelRandomGenerator (Model *model)
 
void LogSalt () const
 

Detailed Description

The model "singleton" random engine used in the solver.

In test, we usually set use_absl_random() so that the sequence is changed at each invocation. This way, clients do not relly on the wrong assumption that a particular optimal solution will be returned if they are many equivalent ones.

Definition at line 301 of file util.h.

Constructor & Destructor Documentation

◆ ModelRandomGenerator() [1/2]

operations_research::sat::ModelRandomGenerator::ModelRandomGenerator ( const SatParameters & params)
inlineexplicit

We seed the strategy at creation only. This should be enough for our use case since the SatParameters is set first before the solver is created. We also never really need to change the seed afterwards, it is just used to diversify solves with identical parameters on different Model objects.

Definition at line 307 of file util.h.

◆ ModelRandomGenerator() [2/2]

operations_research::sat::ModelRandomGenerator::ModelRandomGenerator ( Model * model)
inlineexplicit

Definition at line 315 of file util.h.

Member Function Documentation

◆ LogSalt()

void operations_research::sat::ModelRandomGenerator::LogSalt ( ) const
inline

This is just used to display ABSL_RANDOM_SALT_OVERRIDE in the log so that it is possible to reproduce a failure more easily while looking at a solver log.

Todo
(user): I didn't find a cleaner way to log this.

Definition at line 323 of file util.h.


The documentation for this class was generated from the following file: