Generated on: Thu Mar 29 07:46:58 PDT 2012 for custom file set
// doxy/ or-tools/ src/ constraint_solver/

Todo List

Member operations_research::Assignment::IntVarContainer () const
TODO(user): Add iterators on elements to avoid exposing container class.

Member operations_research::IntVarLocalSearchOperator::MakeOneNeighbor ()
TODO(user): make it pure virtual, implies porting all apps overriding MakeNextNeighbor() in a subclass of IntVarLocalSearchOperator.

Member operations_research::IntVarLocalSearchOperator::MakeOneNeighbor ()
TODO(user): Make this a pure virtual.

Class operations_research::LocalSearchOperator
TODO(user): rename Start to Synchronize ?

Class operations_research::LocalSearchOperator
TODO(user): decouple the iterating from the defining of a neighbor.

Class operations_research::MakePairActiveOperator
TODO(user): Add option to prune neighbords where the order of node pairs is violated (ie precedence between pickup and delivery nodes).

Class operations_research::MakePairActiveOperator
TODO(user): Move this to local_search.cc if it's generic enough.

Class operations_research::MakePairActiveOperator
TODO(user): Detect pairs automatically by parsing the constraint model; we could then get rid of the pair API in the RoutingModel class.

Class operations_research::OptimizeVar
TODO(user): Refactor this into an Objective class:
  • print methods for AtNode and AtSolution.
  • support for weighted objective and lexicographical objective.

Member operations_research::PathOperator::SkipUnchanged (int index) const
TODO(user): Make the following methods protected.

Member operations_research::PathOperator::RestartAtPathStartOnSynchronize ()
TODO(user): remove this when automatic detection of such cases in done.

Member operations_research::PathOperator::OnSamePathAsPreviousBase (int64 base_index)
TODO(user): ideally this should be OnSamePath(int64 node1, int64 node2); it's currently way more complicated to implement.

Member operations_research::RoutingModel::RoutingModel (int nodes, int vehicles, const std::vector< NodeIndex > &starts, const std::vector< NodeIndex > &ends)
TODO(user): added to simplify SWIG wrapping. Remove when swigging std::vector<std::pair<int, int> > is ok.

Member operations_research::RoutingModel::AddDisjunction (const std::vector< NodeIndex > &nodes, int64 penalty)
TODO(user): Remove this when model introspection detects linked nodes.

Member operations_research::RoutingModel::ComputeLowerBound ()
TODO(user): Add support for non-homogeneous costs and disjunctions.

Member operations_research::SequenceVar::SequenceVar (Solver *const s, const IntervalVar *const *intervals, int size, const string &name)
TODO(user): Add better class invariants, in particular checks that ranked_first, ranked_last, and unperformed are truly disjoint.

Member operations_research::SequenceVar::SequenceVar (Solver *const s, const IntervalVar *const *intervals, int size, const string &name)
TODO(user): The current representation has many flaws and is dense by nature. This is visible in the RankSequence and ComputePossibleFirstsAndLasts().

Class operations_research::SequenceVarLocalSearchOperator
TODO(user): Merge with IntVarLocalSearchOperator.

Member operations_research::Solver::MakeSimulatedAnnealing (bool maximize, IntVar *const v, int64 step, int64 initial_temperature)
TODO(user): document behavior

Member operations_research::Solver::MakeSearchLog (int branch_count)
TODO(user): DEPRECATE API of MakeSearchLog(.., IntVar* var,..).

Member operations_research::Solver::Try (DecisionBuilder *const db1, DecisionBuilder *const db2)
TODO(user): The search tree can be balanced by using binary "Try"-builders "recursively". For instance, Try(a,b,c,d) will give a tree unbalanced to the right, whereas Try(Try(a,b), Try(b,c)) will give a balanced tree. Investigate if we should only provide the binary version and/or if we should balance automatically.

Member operations_research::Solver::MakeOperator (const std::vector< IntVar * > &vars, IndexEvaluator3 *const evaluator, EvaluatorLocalSearchOperators op)
TODO(user): Make the callback an IndexEvaluator2 when there are no secondary variables.

Member operations_research::Solver::MakeLocalSearchPhase (Assignment *const assignment, LocalSearchPhaseParameters *const parameters)
TODO(user): Make a variant which runs a local search after each solution found in a dfs

Member operations_research::Solver::InstrumentsDemons () const
TODO(user): remove this complex logic. We need the double test because parameters are set too late when using python in the open source. This is the cheapest work-around.

Member operations_research::SymmetryManager::CheckSymmetries (int index)
TODO(user) : Improve speed, cache previous min and build them incrementally.

Member operations_research::Hash1 (uint64 value)
TODO(user): use murmurhash.

Member operations_research::BuildEndExpr (CPModelLoader *const builder, const CPIntegerExpressionProto &proto)
TODO(user): Add API on solver and uncomment this method.

Member operations_research::BuildMember (CPModelLoader *const builder, const CPConstraintProto &proto)
TODO(user): Add API on solver and uncomment this method.

Member operations_research::BuildNoCycle (CPModelLoader *const builder, const CPConstraintProto &proto)
TODO(user): Add API on solver and implement this method.

Member DEFINE_bool
TODO(user) Should these remains flags, or should they move to SolverParameters?

Member active_tuples_
TODO(user): create bitset64 class and use it.

Member operations_research::kBitsInUint64
TODO(user): Implement ConstIntMatrix to share/manage tuple sets.

Namespace operations_research
TODO(user) : optimize constraint to avoid ping pong. After a boolvar is set to 0, we remove the value from the var. There is no need to rescan the var to find the hole if the size at the end of UpdateActive() is the same as the size at the beginning of VarDomain().

Namespace operations_research
TODO(user): improve code when assume_paths is false (currently does an expensive n^2 loop).

Namespace @27operations_research::
TODO(user) : treat optional intervals

Namespace @27operations_research::
TODO(user) : Call DecisionVisitor and pass name of variable