![]() |
Google OR-Tools v9.14
a fast and portable software suite for combinatorial optimization
|
#include <stdint.h>#include <string.h>#include <algorithm>#include <functional>#include <memory>#include <string>#include <tuple>#include <utility>#include <vector>#include "absl/algorithm/container.h"#include "absl/container/flat_hash_map.h"#include "absl/container/flat_hash_set.h"#include "absl/log/check.h"#include "absl/strings/str_cat.h"#include "absl/strings/str_format.h"#include "absl/time/time.h"#include "absl/types/span.h"#include "ortools/base/base_export.h"#include "ortools/base/logging.h"#include "ortools/base/strong_int.h"#include "ortools/base/strong_vector.h"#include "ortools/base/timer.h"#include "ortools/base/types.h"#include "ortools/constraint_solver/constraint_solver.h"#include "ortools/util/bitset.h"#include "ortools/util/tuple_set.h"Go to the source code of this file.
Namespaces | |
| namespace | operations_research |
| In SWIG mode, we don't want anything besides these top-level includes. | |
Functions | |
| uint64_t | operations_research::Hash1 (uint64_t value) |
| uint64_t | operations_research::Hash1 (uint32_t value) |
| uint64_t | operations_research::Hash1 (int64_t value) |
| uint64_t | operations_research::Hash1 (int value) |
| uint64_t | operations_research::Hash1 (void *const ptr) |
| template<class T> | |
| uint64_t | operations_research::Hash1 (const std::vector< T * > &ptrs) |
| uint64_t | operations_research::Hash1 (const std::vector< int64_t > &ptrs) |
| LocalSearchOperator * | operations_research::MakeTwoOpt (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, std::function< int(int64_t)> start_empty_path_class, std::function< const std::vector< int > &(int, int)> get_incoming_neighbors=nullptr, std::function< const std::vector< int > &(int, int)> get_outgoing_neighbors=nullptr) |
| --— 2Opt --— | |
| LocalSearchOperator * | operations_research::MakeRelocate (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, std::function< int(int64_t)> start_empty_path_class, std::function< const std::vector< int > &(int, int)> get_incoming_neighbors=nullptr, std::function< const std::vector< int > &(int, int)> get_outgoing_neighbors=nullptr, int64_t chain_length=1LL, bool single_path=false, const std::string &name="Relocate") |
| --— Relocate --— | |
| LocalSearchOperator * | operations_research::MakeExchange (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, std::function< int(int64_t)> start_empty_path_class, std::function< const std::vector< int > &(int, int)> get_incoming_neighbors=nullptr, std::function< const std::vector< int > &(int, int)> get_outgoing_neighbors=nullptr) |
| --— Exchange --— | |
| LocalSearchOperator * | operations_research::MakeCross (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, std::function< int(int64_t)> start_empty_path_class, std::function< const std::vector< int > &(int, int)> get_incoming_neighbors=nullptr, std::function< const std::vector< int > &(int, int)> get_outgoing_neighbors=nullptr) |
| --— Cross --— | |
| LocalSearchOperator * | operations_research::MakeActive (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, std::function< int(int64_t)> start_empty_path_class, std::function< const std::vector< int > &(int, int)> get_incoming_neighbors=nullptr, std::function< const std::vector< int > &(int, int)> get_outgoing_neighbors=nullptr) |
| --— MakeActive --— | |
| LocalSearchOperator * | operations_research::RelocateAndMakeActive (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, std::function< int(int64_t)> start_empty_path_class) |
| -— RelocateAndMakeActive --— | |
| LocalSearchOperator * | operations_research::ExchangeAndMakeActive (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, std::function< int(int64_t)> start_empty_path_class) |
| --— ExchangeAndMakeActive --— | |
| LocalSearchOperator * | operations_research::ExchangePathStartEndsAndMakeActive (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, std::function< int(int64_t)> start_empty_path_class) |
| --— ExchangePathEndsAndMakeActive --— | |
| LocalSearchOperator * | operations_research::MakeActiveAndRelocate (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, std::function< int(int64_t)> start_empty_path_class) |
| --— MakeActiveAndRelocate --— | |
| LocalSearchOperator * | operations_research::MakeInactive (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, std::function< int(int64_t)> start_empty_path_class) |
| --— MakeInactive --— | |
| LocalSearchOperator * | operations_research::RelocateAndMakeInactive (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, std::function< int(int64_t)> start_empty_path_class) |
| --— RelocateAndMakeInactive --— | |
| LocalSearchOperator * | operations_research::MakeChainInactive (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, std::function< int(int64_t)> start_empty_path_class) |
| --— MakeChainInactive --— | |
| LocalSearchOperator * | operations_research::MakeSwapActive (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, std::function< int(int64_t)> start_empty_path_class) |
| --— SwapActive --— | |
| LocalSearchOperator * | operations_research::MakeSwapActiveChain (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, std::function< int(int64_t)> start_empty_path_class, int max_chain_size) |
| --— SwapActiveChain --— | |
| LocalSearchOperator * | operations_research::MakeExtendedSwapActive (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, std::function< int(int64_t)> start_empty_path_class) |
| --— ExtendedSwapActive --— | |
| LocalSearchOperator * | operations_research::MakeTSPOpt (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, Solver::IndexEvaluator3 evaluator, int chain_length) |
| --— TSP-based operators --— | |
| LocalSearchOperator * | operations_research::MakeTSPLns (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, Solver::IndexEvaluator3 evaluator, int tsp_size) |
| LocalSearchOperator * | operations_research::MakeLinKernighan (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, const Solver::IndexEvaluator3 &evaluator, bool topt) |
| --— Lin-Kernighan --— | |
| LocalSearchOperator * | operations_research::MakePathLns (Solver *solver, const std::vector< IntVar * > &vars, const std::vector< IntVar * > &secondary_vars, int number_of_chunks, int chunk_size, bool unactive_fragments) |
| --— Path-based Large Neighborhood Search --— | |
| template<class T> | |
| bool | operations_research::IsArrayConstant (const std::vector< T > &values, const T &value) |
| template<class T> | |
| bool | operations_research::IsArrayBoolean (const std::vector< T > &values) |
| template<class T> | |
| bool | operations_research::AreAllOnes (const std::vector< T > &values) |
| template<class T> | |
| bool | operations_research::AreAllNull (const std::vector< T > &values) |
| template<class T> | |
| bool | operations_research::AreAllGreaterOrEqual (const std::vector< T > &values, const T &value) |
| template<class T> | |
| bool | operations_research::AreAllLessOrEqual (const std::vector< T > &values, const T &value) |
| template<class T> | |
| bool | operations_research::AreAllPositive (const std::vector< T > &values) |
| template<class T> | |
| bool | operations_research::AreAllNegative (const std::vector< T > &values) |
| template<class T> | |
| bool | operations_research::AreAllStrictlyPositive (const std::vector< T > &values) |
| template<class T> | |
| bool | operations_research::AreAllStrictlyNegative (const std::vector< T > &values) |
| template<class T> | |
| bool | operations_research::IsIncreasingContiguous (const std::vector< T > &values) |
| template<class T> | |
| bool | operations_research::IsIncreasing (const std::vector< T > &values) |
| template<class T> | |
| bool | operations_research::IsArrayInRange (const std::vector< IntVar * > &vars, T range_min, T range_max) |
| bool | operations_research::AreAllBound (const std::vector< IntVar * > &vars) |
| bool | operations_research::AreAllBooleans (const std::vector< IntVar * > &vars) |
| template<class T> | |
| bool | operations_research::AreAllBoundOrNull (const std::vector< IntVar * > &vars, const std::vector< T > &values) |
| bool | operations_research::AreAllBoundTo (const std::vector< IntVar * > &vars, int64_t value) |
| Returns true if all variables are assigned to 'value'. | |
| int64_t | operations_research::MaxVarArray (const std::vector< IntVar * > &vars) |
| int64_t | operations_research::MinVarArray (const std::vector< IntVar * > &vars) |
| void | operations_research::FillValues (const std::vector< IntVar * > &vars, std::vector< int64_t > *const values) |
| int64_t | operations_research::PosIntDivUp (int64_t e, int64_t v) |
| int64_t | operations_research::PosIntDivDown (int64_t e, int64_t v) |
| std::vector< int64_t > | operations_research::ToInt64Vector (const std::vector< int > &input) |
| --— Vector manipulations --— | |
| template<class T> | |
| Demon * | operations_research::MakeConstraintDemon0 (Solver *const s, T *const ct, void(T::*method)(), const std::string &name) |
| template<class P> | |
| std::string | operations_research::ParameterDebugString (P param) |
| template<class P> | |
| std::string | operations_research::ParameterDebugString (P *param) |
| Support limited to pointers to classes which define DebugString(). | |
| template<class T, class P> | |
| Demon * | operations_research::MakeConstraintDemon1 (Solver *const s, T *const ct, void(T::*method)(P), const std::string &name, P param1) |
| template<class T, class P, class Q> | |
| Demon * | operations_research::MakeConstraintDemon2 (Solver *const s, T *const ct, void(T::*method)(P, Q), const std::string &name, P param1, Q param2) |
| template<class T, class P, class Q, class R> | |
| Demon * | operations_research::MakeConstraintDemon3 (Solver *const s, T *const ct, void(T::*method)(P, Q, R), const std::string &name, P param1, Q param2, R param3) |
| template<class T> | |
| Demon * | operations_research::MakeDelayedConstraintDemon0 (Solver *const s, T *const ct, void(T::*method)(), const std::string &name) |
| template<class T, class P> | |
| Demon * | operations_research::MakeDelayedConstraintDemon1 (Solver *const s, T *const ct, void(T::*method)(P), const std::string &name, P param1) |
| template<class T, class P, class Q> | |
| Demon * | operations_research::MakeDelayedConstraintDemon2 (Solver *const s, T *const ct, void(T::*method)(P, Q), const std::string &name, P param1, Q param2) |