C++ Reference: class ModelRandomGenerator
This documentation is automatically generated.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.
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.
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.