This class encapsulates an objective.
It requires the direction (minimize or maximize), the variable to optimize, and the improvement step.
Definition at line 4141 of file constraint_solver.h.
Public Member Functions | |
| OptimizeVar (Solver *const s, bool maximize, IntVar *const a, int64 step) | |
| ~OptimizeVar () override | |
| int64 | best () const |
| Returns the best value found during search. More... | |
| IntVar * | Var () const |
| Returns the variable that is optimized. More... | |
| bool | AcceptDelta (Assignment *delta, Assignment *deltadelta) override |
| Internal methods. More... | |
| void | EnterSearch () override |
| Beginning of the search. More... | |
| void | BeginNextDecision (DecisionBuilder *const db) override |
| Before calling DecisionBuilder::Next. More... | |
| void | RefuteDecision (Decision *const d) override |
| Before refuting the decision. More... | |
| bool | AtSolution () override |
| This method is called when a valid solution is found. More... | |
| bool | AcceptSolution () override |
| This method is called when a solution is found. More... | |
| virtual std::string | Print () const |
| std::string | DebugString () const override |
| void | Accept (ModelVisitor *const visitor) const override |
| Accepts the given model visitor. More... | |
| void | ApplyBound () |
| virtual void | RestartSearch () |
| Restart the search. More... | |
| virtual void | ExitSearch () |
| End of the search. More... | |
| virtual void | EndNextDecision (DecisionBuilder *const b, Decision *const d) |
| After calling DecisionBuilder::Next, along with the returned decision. More... | |
| virtual void | ApplyDecision (Decision *const d) |
| Before applying the decision. More... | |
| virtual void | AfterDecision (Decision *const d, bool apply) |
| Just after refuting or applying the decision, apply is true after Apply. More... | |
| virtual void | BeginFail () |
| Just when the failure occurs. More... | |
| virtual void | EndFail () |
| After completing the backtrack. More... | |
| virtual void | BeginInitialPropagation () |
| Before the initial propagation. More... | |
| virtual void | EndInitialPropagation () |
| After the initial propagation. More... | |
| virtual void | NoMoreSolutions () |
| When the search tree is finished. More... | |
| virtual bool | LocalOptimum () |
| When a local optimum is reached. More... | |
| virtual void | AcceptNeighbor () |
| After accepting a neighbor during local search. More... | |
| virtual void | AcceptUncheckedNeighbor () |
| After accepting an unchecked neighbor during local search. More... | |
| virtual bool | IsUncheckedSolutionLimitReached () |
| Returns true if the limit of solutions has been reached including unchecked solutions. More... | |
| Solver * | solver () const |
| virtual void | PeriodicCheck () |
| Periodic call to check limits in long running methods. More... | |
| virtual int | ProgressPercent () |
| Returns a percentage representing the propress of the search before reaching limits. More... | |
| virtual void | Install () |
| Registers itself on the solver such that it gets notified of the search and propagation events. More... | |
Static Public Attributes | |
| static const int | kNoProgress = -1 |
Protected Attributes | |
| IntVar *const | var_ |
| int64 | step_ |
| int64 | best_ |
| bool | maximize_ |
| bool | found_initial_solution_ |
| operations_research::OptimizeVar::OptimizeVar | ( | Solver *const | s, |
| bool | maximize, | ||
| IntVar *const | a, | ||
| int64 | step | ||
| ) |
|
override |
|
overridevirtual |
Accepts the given model visitor.
Reimplemented from operations_research::SearchMonitor.
|
overridevirtual |
Internal methods.
Reimplemented from operations_research::SearchMonitor.
|
virtualinherited |
After accepting a neighbor during local search.
|
overridevirtual |
This method is called when a solution is found.
It asserts whether the solution is valid. A value of false indicates that the solution should be discarded.
Reimplemented from operations_research::SearchMonitor.
|
virtualinherited |
After accepting an unchecked neighbor during local search.
Reimplemented in operations_research::SearchLog.
|
virtualinherited |
Just after refuting or applying the decision, apply is true after Apply.
This is called only if the Apply() or Refute() methods have not failed.
| void operations_research::OptimizeVar::ApplyBound | ( | ) |
|
virtualinherited |
Before applying the decision.
Reimplemented in operations_research::SearchLog.
|
overridevirtual |
This method is called when a valid solution is found.
If the return value is true, then search will resume after. If the result is false, then search will stop there.
Reimplemented from operations_research::SearchMonitor.
|
virtualinherited |
Just when the failure occurs.
Reimplemented in operations_research::SearchLog.
|
virtualinherited |
Before the initial propagation.
Reimplemented in operations_research::SearchLog.
|
overridevirtual |
Before calling DecisionBuilder::Next.
Reimplemented from operations_research::SearchMonitor.
|
inline |
Returns the best value found during search.
Definition at line 4147 of file constraint_solver.h.
|
overridevirtual |
Reimplemented from operations_research::BaseObject.
|
virtualinherited |
After completing the backtrack.
|
virtualinherited |
After the initial propagation.
Reimplemented in operations_research::SearchLog.
|
virtualinherited |
After calling DecisionBuilder::Next, along with the returned decision.
|
overridevirtual |
Beginning of the search.
Reimplemented from operations_research::SearchMonitor.
|
virtualinherited |
End of the search.
Reimplemented in operations_research::RegularLimit, and operations_research::SearchLog.
|
virtualinherited |
Registers itself on the solver such that it gets notified of the search and propagation events.
Reimplemented in operations_research::LocalSearchMonitor, and operations_research::PropagationMonitor.
|
inlinevirtualinherited |
Returns true if the limit of solutions has been reached including unchecked solutions.
Reimplemented in operations_research::RegularLimit.
Definition at line 3643 of file constraint_solver.h.
|
virtualinherited |
When a local optimum is reached.
If 'true' is returned, the last solution is discarded and the search proceeds with the next one.
|
virtualinherited |
When the search tree is finished.
Reimplemented in operations_research::SearchLog.
|
virtualinherited |
Periodic call to check limits in long running methods.
Reimplemented in operations_research::SearchLimit.
|
virtual |
|
inlinevirtualinherited |
Returns a percentage representing the propress of the search before reaching limits.
Reimplemented in operations_research::RegularLimit.
Definition at line 3652 of file constraint_solver.h.
|
overridevirtual |
Before refuting the decision.
Reimplemented from operations_research::SearchMonitor.
|
virtualinherited |
Restart the search.
|
inlineinherited |
Definition at line 3645 of file constraint_solver.h.
|
inline |
Returns the variable that is optimized.
Definition at line 4150 of file constraint_solver.h.
|
protected |
Definition at line 4167 of file constraint_solver.h.
|
protected |
Definition at line 4169 of file constraint_solver.h.
|
staticinherited |
Definition at line 3574 of file constraint_solver.h.
|
protected |
Definition at line 4168 of file constraint_solver.h.
|
protected |
Definition at line 4166 of file constraint_solver.h.
|
protected |
Definition at line 4165 of file constraint_solver.h.