<ahref="linear__solver_8h.html">Go to the documentation of this file.</a><divclass="fragment"><divclass="line"><aname="l00001"></a><spanclass="lineno"> 1</span> <spanclass="comment">// Copyright 2010-2018 Google LLC</span></div>
<divclass="line"><aname="l00002"></a><spanclass="lineno"> 2</span> <spanclass="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div>
<divclass="line"><aname="l00003"></a><spanclass="lineno"> 3</span> <spanclass="comment">// you may not use this file except in compliance with the License.</span></div>
<divclass="line"><aname="l00004"></a><spanclass="lineno"> 4</span> <spanclass="comment">// You may obtain a copy of the License at</span></div>
<divclass="line"><aname="l00008"></a><spanclass="lineno"> 8</span> <spanclass="comment">// Unless required by applicable law or agreed to in writing, software</span></div>
<divclass="line"><aname="l00009"></a><spanclass="lineno"> 9</span> <spanclass="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div>
<divclass="line"><aname="l00010"></a><spanclass="lineno"> 10</span> <spanclass="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div>
<divclass="line"><aname="l00011"></a><spanclass="lineno"> 11</span> <spanclass="comment">// See the License for the specific language governing permissions and</span></div>
<divclass="line"><aname="l00012"></a><spanclass="lineno"> 12</span> <spanclass="comment">// limitations under the License.</span></div>
<divclass="line"><aname="l00256"></a><spanclass="lineno"> 256</span> <spanclass="keywordflow">return</span> name_; <spanclass="comment">// Set at construction.</span></div>
<divclass="line"><aname="l00261"></a><spanclass="lineno"> 261</span> <spanclass="keywordflow">return</span> problem_type_; <spanclass="comment">// Set at construction.</span></div>
<divclass="line"><aname="l00737"></a><spanclass="lineno"> 737</span> <spanclass="comment">// Does not take ownership of "mp_callback".</span></div>
<divclass="line"><aname="l00739"></a><spanclass="lineno"> 739</span> <spanclass="comment">// As of 2019-10-22, only SCIP and Gurobi support Callbacks.</span></div>
<divclass="line"><aname="l00740"></a><spanclass="lineno"> 740</span> <spanclass="comment">// SCIP does not support suggesting a heuristic solution in the callback.</span></div>
<divclass="line"><aname="l00742"></a><spanclass="lineno"> 742</span> <spanclass="comment">// See go/mpsolver-callbacks for additional documentation.</span></div>
<divclass="line"><aname="l00746"></a><spanclass="lineno"> 746</span> <spanclass="comment">// DEPRECATED: Use TimeLimit() and SetTimeLimit(absl::Duration) instead.</span></div>
<divclass="line"><aname="l00747"></a><spanclass="lineno"> 747</span> <spanclass="comment">// NOTE: These deprecated functions used the convention time_limit = 0 to mean</span></div>
<divclass="line"><aname="l00748"></a><spanclass="lineno"> 748</span> <spanclass="comment">// "no limit", which now corresponds to time_limit_ = InfiniteDuration().</span></div>
<divclass="line"><aname="l00782"></a><spanclass="lineno"> 782</span> <spanclass="comment">// Debugging: verify that the given MPVariable* belongs to this solver.</span></div>
<divclass="line"><aname="l00786"></a><spanclass="lineno"> 786</span> <spanclass="comment">// Computes the size of the constraint with the largest number of</span></div>
<divclass="line"><aname="l00787"></a><spanclass="lineno"> 787</span> <spanclass="comment">// coefficients with index in [min_constraint_index,</span></div>
<divclass="line"><aname="l00792"></a><spanclass="lineno"> 792</span> <spanclass="comment">// Returns true if the model has constraints with lower bound > upper bound.</span></div>
<divclass="line"><aname="l00795"></a><spanclass="lineno"> 795</span> <spanclass="comment">// Returns true if the model has at least 1 integer variable.</span></div>
<divclass="line"><aname="l00798"></a><spanclass="lineno"> 798</span> <spanclass="comment">// Generates the map from variable names to their indices.</span></div>
<divclass="line"><aname="l00801"></a><spanclass="lineno"> 801</span> <spanclass="comment">// Generates the map from constraint names to their indices.</span></div>
<divclass="line"><aname="l00804"></a><spanclass="lineno"> 804</span> <spanclass="comment">// The name of the linear programming problem.</span></div>
<divclass="line"><aname="l00807"></a><spanclass="lineno"> 807</span> <spanclass="comment">// The type of the linear programming problem.</span></div>
<divclass="line"><aname="l00815"></a><spanclass="lineno"> 815</span> <spanclass="comment">// A map from a variable's name to its index in variables_.</span></div>
<divclass="line"><aname="l00818"></a><spanclass="lineno"> 818</span> <spanclass="comment">// Whether variables have been extracted to the underlying interface.</span></div>
<divclass="line"><aname="l00821"></a><spanclass="lineno"> 821</span> <spanclass="comment">// The vector of constraints in the problem.</span></div>
<divclass="line"><aname="l00823"></a><spanclass="lineno"> 823</span> <spanclass="comment">// A map from a constraint's name to its index in constraints_.</span></div>
<divclass="line"><aname="l00826"></a><spanclass="lineno"> 826</span> <spanclass="comment">// Whether constraints have been extracted to the underlying interface.</span></div>
<divclass="line"><aname="l00832"></a><spanclass="lineno"> 832</span> <spanclass="comment">// Initial values for all or some of the problem variables that can be</span></div>
<divclass="line"><aname="l00833"></a><spanclass="lineno"> 833</span> <spanclass="comment">// exploited as a starting hint by a solver.</span></div>
<divclass="line"><aname="l00835"></a><spanclass="lineno"> 835</span> <spanclass="comment">// Note(user): as of 05/05/2015, we can't use >> because of some SWIG errors.</span></div>
<divclass="line"><aname="l00837"></a><spanclass="lineno"> 837</span> <spanclass="comment">// TODO(user): replace by two vectors, a std::vector<bool> to indicate if a</span></div>
<divclass="line"><aname="l00838"></a><spanclass="lineno"> 838</span> <spanclass="comment">// hint is provided and a std::vector<double> for the hint value.</span></div>
<divclass="line"><aname="l00845"></a><spanclass="lineno"> 845</span> <spanclass="comment">// Permanent storage for the number of threads.</span></div>
<divclass="line"><aname="l00864"></a><spanclass="lineno"> 864</span> <spanclass="keywordflow">return</span> os <<<aclass="code"href="namespaceoperations__research.html#afc3e3b80841b587c6fbfd9e9f3ec9c59">ToString</a>(optimization_problem_type);</div>
<divclass="line"><aname="l00869"></a><spanclass="lineno"> 869</span> <spanclass="keywordflow">return</span> os << ProtoEnumToString<MPSolverResponseStatus>(</div>
<divclass="line"><aname="l00991"></a><spanclass="lineno"> 991</span> <spanclass="comment">// Constructor. An objective points to a single MPSolverInterface</span></div>
<divclass="line"><aname="l00992"></a><spanclass="lineno"> 992</span> <spanclass="comment">// that is specified in the constructor. An objective cannot belong</span></div>
<divclass="line"><aname="l00993"></a><spanclass="lineno"> 993</span> <spanclass="comment">// to several models.</span></div>
<divclass="line"><aname="l00994"></a><spanclass="lineno"> 994</span> <spanclass="comment">// At construction, an MPObjective has no terms (which is equivalent</span></div>
<divclass="line"><aname="l00995"></a><spanclass="lineno"> 995</span> <spanclass="comment">// on having a coefficient of 0 for all variables), and an offset of 0.</span></div>
<divclass="line"><aname="l01100"></a><spanclass="lineno"> 1100</span> <spanclass="comment">// Constructor. A variable points to a single MPSolverInterface that</span></div>
<divclass="line"><aname="l01101"></a><spanclass="lineno"> 1101</span> <spanclass="comment">// is specified in the constructor. A variable cannot belong to</span></div>
<divclass="line"><aname="l01102"></a><spanclass="lineno"> 1102</span> <spanclass="comment">// several models.</span></div>
<divclass="line"><aname="l01241"></a><spanclass="lineno"> 1241</span> <spanclass="comment">// Constructor. A constraint points to a single MPSolverInterface</span></div>
<divclass="line"><aname="l01242"></a><spanclass="lineno"> 1242</span> <spanclass="comment">// that is specified in the constructor. A constraint cannot belong</span></div>
<divclass="line"><aname="l01243"></a><spanclass="lineno"> 1243</span> <spanclass="comment">// to several models.</span></div>
<divclass="line"><aname="l01259"></a><spanclass="lineno"> 1259</span> <spanclass="comment">// Returns true if the constraint contains variables that have not</span></div>
<divclass="line"><aname="l01260"></a><spanclass="lineno"> 1260</span> <spanclass="comment">// been extracted yet.</span></div>
<divclass="line"><aname="l01268"></a><spanclass="lineno"> 1268</span> <spanclass="comment">// The lower bound for the linear constraint.</span></div>
<divclass="line"><aname="l01271"></a><spanclass="lineno"> 1271</span> <spanclass="comment">// The upper bound for the linear constraint.</span></div>
<divclass="line"><aname="l01277"></a><spanclass="lineno"> 1277</span> <spanclass="comment">// True if the constraint is "lazy", i.e. the constraint is added to the</span></div>
<divclass="line"><aname="l01278"></a><spanclass="lineno"> 1278</span> <spanclass="comment">// underlying Linear Programming solver only if it is violated.</span></div>
<divclass="line"><aname="l01279"></a><spanclass="lineno"> 1279</span> <spanclass="comment">// By default this parameter is 'false'.</span></div>
<divclass="line"><aname="l01282"></a><spanclass="lineno"> 1282</span> <spanclass="comment">// If given, this constraint is only active if `indicator_variable_`'s value</span></div>
<divclass="line"><aname="l01283"></a><spanclass="lineno"> 1283</span> <spanclass="comment">// is equal to `indicator_value_`.</span></div>
<divclass="line"><aname="l01386"></a><spanclass="lineno"> 1386</span> <spanclass="comment">// Placeholder value to indicate that a parameter is set to</span></div>
<divclass="line"><aname="l01387"></a><spanclass="lineno"> 1387</span> <spanclass="comment">// the default value defined in the wrapper.</span></div>
<divclass="line"><aname="l01391"></a><spanclass="lineno"> 1391</span> <spanclass="comment">// Placeholder value to indicate that a parameter is unknown.</span></div>
<divclass="line"><aname="l01395"></a><spanclass="lineno"> 1395</span> <spanclass="comment">// Default values for parameters. Only parameters that define the</span></div>
<divclass="line"><aname="l01396"></a><spanclass="lineno"> 1396</span> <spanclass="comment">// properties of the solution returned need to have a default value</span></div>
<divclass="line"><aname="l01397"></a><spanclass="lineno"> 1397</span> <spanclass="comment">// (that is the same for all solvers). You can also define a default</span></div>
<divclass="line"><aname="l01398"></a><spanclass="lineno"> 1398</span> <spanclass="comment">// value for performance parameters when you are confident it is a</span></div>
<divclass="line"><aname="l01399"></a><spanclass="lineno"> 1399</span> <spanclass="comment">// good choice (example: always turn presolve on).</span></div>
<divclass="line"><aname="l01450"></a><spanclass="lineno"> 1450</span> <spanclass="comment">// Boolean value indicating whether each parameter is set to the</span></div>
<divclass="line"><aname="l01451"></a><spanclass="lineno"> 1451</span> <spanclass="comment">// solver's default value. Only parameters for which the wrapper</span></div>
<divclass="line"><aname="l01452"></a><spanclass="lineno"> 1452</span> <spanclass="comment">// does not define a default value need such an indicator.</span></div>
<divclass="line"><aname="l01458"></a><spanclass="lineno"> 1458</span> <spanclass="comment">// Whether the given MPSolverResponseStatus (of a solve) would yield an RPC</span></div>
<divclass="line"><aname="l01459"></a><spanclass="lineno"> 1459</span> <spanclass="comment">// error when happening on the linear solver stubby server, see</span></div>
<divclass="line"><aname="l01461"></a><spanclass="lineno"> 1461</span> <spanclass="comment">// Note that RPC errors forbid to carry a response to the client, who can only</span></div>
<divclass="line"><aname="l01462"></a><spanclass="lineno"> 1462</span> <spanclass="comment">// see the RPC error itself (error code + error message).</span></div>
<divclass="line"><aname="l01465"></a><spanclass="lineno"> 1465</span> <spanclass="comment">// This class wraps the actual mathematical programming solvers. Each</span></div>
<divclass="line"><aname="l01466"></a><spanclass="lineno"> 1466</span> <spanclass="comment">// solver (GLOP, CLP, CBC, GLPK, SCIP) has its own interface class that</span></div>
<divclass="line"><aname="l01467"></a><spanclass="lineno"> 1467</span> <spanclass="comment">// derives from this abstract class. This class is never directly</span></div>
<divclass="line"><aname="l01468"></a><spanclass="lineno"> 1468</span> <spanclass="comment">// accessed by the user.</span></div>
<divclass="line"><aname="l01477"></a><spanclass="lineno"> 1477</span> <spanclass="comment">// The underlying solver (CLP, GLPK, ...) and MPSolver are not in</span></div>
<divclass="line"><aname="l01478"></a><spanclass="lineno"> 1478</span> <spanclass="comment">// sync for the model nor for the solution.</span></div>
<divclass="line"><aname="l01480"></a><spanclass="lineno"> 1480</span> <spanclass="comment">// The underlying solver and MPSolver are in sync for the model</span></div>
<divclass="line"><aname="l01481"></a><spanclass="lineno"> 1481</span> <spanclass="comment">// but not for the solution: the model has changed since the</span></div>
<divclass="line"><aname="l01482"></a><spanclass="lineno"> 1482</span> <spanclass="comment">// solution was computed last.</span></div>
<divclass="line"><aname="l01484"></a><spanclass="lineno"> 1484</span> <spanclass="comment">// The underlying solver and MPSolver are in sync for the model and</span></div>
<divclass="line"><aname="l01485"></a><spanclass="lineno"> 1485</span> <spanclass="comment">// the solution.</span></div>
<divclass="line"><aname="l01489"></a><spanclass="lineno"> 1489</span> <spanclass="comment">// When the underlying solver does not provide the number of simplex</span></div>
<divclass="line"><aname="l01492"></a><spanclass="lineno"> 1492</span> <spanclass="comment">// When the underlying solver does not provide the number of</span></div>
<divclass="line"><aname="l01496"></a><spanclass="lineno"> 1496</span> <spanclass="comment">// Constructor. The user will access the MPSolverInterface through the</span></div>
<divclass="line"><aname="l01497"></a><spanclass="lineno"> 1497</span> <spanclass="comment">// MPSolver passed as argument.</span></div>
<divclass="line"><aname="l01502"></a><spanclass="lineno"> 1502</span> <spanclass="comment">// Solves problem with specified parameter values. Returns true if the</span></div>
<divclass="line"><aname="l01503"></a><spanclass="lineno"> 1503</span> <spanclass="comment">// solution is optimal.</span></div>
<divclass="line"><aname="l01506"></a><spanclass="lineno"> 1506</span> <spanclass="comment">// Directly solves a MPModelRequest, bypassing the MPSolver data structures</span></div>
<divclass="line"><aname="l01507"></a><spanclass="lineno"> 1507</span> <spanclass="comment">// entirely. Returns {} (eg. absl::nullopt) if the feature is not supported by</span></div>
<divclass="line"><aname="l01508"></a><spanclass="lineno"> 1508</span> <spanclass="comment">// the underlying solver.</span></div>
<divclass="line"><aname="l01514"></a><spanclass="lineno"> 1514</span> <spanclass="comment">// Writes the model using the solver internal write function. Currently only</span></div>
<divclass="line"><aname="l01515"></a><spanclass="lineno"> 1515</span> <spanclass="comment">// available for GurobiInterface.</span></div>
<divclass="line"><aname="l01518"></a><spanclass="lineno"> 1518</span> <spanclass="comment">// ----- Model modifications and extraction -----</span></div>
<divclass="line"><aname="l01522"></a><spanclass="lineno"> 1522</span> <spanclass="comment">// Sets the optimization direction (min/max).</span></div>
<divclass="line"><aname="l01525"></a><spanclass="lineno"> 1525</span> <spanclass="comment">// Modifies bounds of an extracted variable.</span></div>
<divclass="line"><aname="l01528"></a><spanclass="lineno"> 1528</span> <spanclass="comment">// Modifies integrality of an extracted variable.</span></div>
<divclass="line"><aname="l01531"></a><spanclass="lineno"> 1531</span> <spanclass="comment">// Modify bounds of an extracted variable.</span></div>
<divclass="line"><aname="l01537"></a><spanclass="lineno"> 1537</span> <spanclass="comment">// Adds an indicator constraint. Returns true if the feature is supported by</span></div>
<divclass="line"><aname="l01538"></a><spanclass="lineno"> 1538</span> <spanclass="comment">// the underlying solver.</span></div>
<divclass="line"><aname="l01552"></a><spanclass="lineno"> 1552</span> <spanclass="comment">// Clears a constraint from all its terms.</span></div>
<divclass="line"><aname="l01555"></a><spanclass="lineno"> 1555</span> <spanclass="comment">// Changes a coefficient in the linear objective.</span></div>
<divclass="line"><aname="l01559"></a><spanclass="lineno"> 1559</span> <spanclass="comment">// Changes the constant term in the linear objective.</span></div>
<divclass="line"><aname="l01562"></a><spanclass="lineno"> 1562</span> <spanclass="comment">// Clears the objective from all its terms.</span></div>
<divclass="line"><aname="l01566"></a><spanclass="lineno"> 1566</span> <spanclass="comment">// ------ Query statistics on the solution and the solve ------</span></div>
<divclass="line"><aname="l01567"></a><spanclass="lineno"> 1567</span> <spanclass="comment">// Returns the number of simplex iterations. The problem must be discrete,</span></div>
<divclass="line"><aname="l01568"></a><spanclass="lineno"> 1568</span> <spanclass="comment">// otherwise it crashes, or returns kUnknownNumberOfIterations in NDEBUG mode.</span></div>
<divclass="line"><aname="l01570"></a><spanclass="lineno"> 1570</span> <spanclass="comment">// Returns the number of branch-and-bound nodes. The problem must be discrete,</span></div>
<divclass="line"><aname="l01571"></a><spanclass="lineno"> 1571</span> <spanclass="comment">// otherwise it crashes, or returns kUnknownNumberOfNodes in NDEBUG mode.</span></div>
<divclass="line"><aname="l01573"></a><spanclass="lineno"> 1573</span> <spanclass="comment">// Returns the best objective bound. The problem must be discrete, otherwise</span></div>
<divclass="line"><aname="l01574"></a><spanclass="lineno"> 1574</span> <spanclass="comment">// it crashes, or returns trivial_worst_objective_bound() in NDEBUG mode.</span></div>
<divclass="line"><aname="l01576"></a><spanclass="lineno"> 1576</span> <spanclass="comment">// A trivial objective bound: the worst possible value of the objective,</span></div>
<divclass="line"><aname="l01577"></a><spanclass="lineno"> 1577</span> <spanclass="comment">// which will be +infinity if minimizing and -infinity if maximing.</span></div>
<divclass="line"><aname="l01579"></a><spanclass="lineno"> 1579</span> <spanclass="comment">// Returns the objective value of the best solution found so far.</span></div>
<divclass="line"><aname="l01584"></a><spanclass="lineno"> 1584</span> <spanclass="comment">// Returns the basis status of a constraint.</span></div>
<divclass="line"><aname="l01587"></a><spanclass="lineno"> 1587</span> <spanclass="comment">// Checks whether the solution is synchronized with the model, i.e. whether</span></div>
<divclass="line"><aname="l01588"></a><spanclass="lineno"> 1588</span> <spanclass="comment">// the model has changed since the solution was computed last.</span></div>
<divclass="line"><aname="l01589"></a><spanclass="lineno"> 1589</span> <spanclass="comment">// If it isn't, it crashes in NDEBUG, and returns false othwerwise.</span></div>
<divclass="line"><aname="l01591"></a><spanclass="lineno"> 1591</span> <spanclass="comment">// Checks whether a feasible solution exists. The behavior is similar to</span></div>
<divclass="line"><aname="l01594"></a><spanclass="lineno"> 1594</span> <spanclass="comment">// Handy shortcut to do both checks above (it is often used).</span></div>
<divclass="line"><aname="l01598"></a><spanclass="lineno"> 1598</span> <spanclass="comment">// Checks whether information on the best objective bound exists. The behavior</span></div>
<divclass="line"><aname="l01599"></a><spanclass="lineno"> 1599</span> <spanclass="comment">// is similar to CheckSolutionIsSynchronized() above.</span></div>
<divclass="line"><aname="l01603"></a><spanclass="lineno"> 1603</span> <spanclass="comment">// Queries problem type. For simplicity, the distinction between</span></div>
<divclass="line"><aname="l01604"></a><spanclass="lineno"> 1604</span> <spanclass="comment">// continuous and discrete is based on the declaration of the user</span></div>
<divclass="line"><aname="l01605"></a><spanclass="lineno"> 1605</span> <spanclass="comment">// when the solver is created (example: GLPK_LINEAR_PROGRAMMING</span></div>
<divclass="line"><aname="l01606"></a><spanclass="lineno"> 1606</span> <spanclass="comment">// vs. GLPK_MIXED_INTEGER_PROGRAMMING), not on the actual content of</span></div>
<divclass="line"><aname="l01607"></a><spanclass="lineno"> 1607</span> <spanclass="comment">// the model.</span></div>
<divclass="line"><aname="l01608"></a><spanclass="lineno"> 1608</span> <spanclass="comment">// Returns true if the problem is continuous.</span></div>
<divclass="line"><aname="l01610"></a><spanclass="lineno"> 1610</span> <spanclass="comment">// Returns true if the problem is continuous and linear.</span></div>
<divclass="line"><aname="l01612"></a><spanclass="lineno"> 1612</span> <spanclass="comment">// Returns true if the problem is discrete and linear.</span></div>
<divclass="line"><aname="l01615"></a><spanclass="lineno"> 1615</span> <spanclass="comment">// Returns the index of the last variable extracted.</span></div>
<divclass="line"><aname="l01631"></a><spanclass="lineno"> 1631</span> <spanclass="comment">// Returns the boolean indicating the verbosity of the solver output.</span></div>
<divclass="line"><aname="l01633"></a><spanclass="lineno"> 1633</span> <spanclass="comment">// Sets the boolean indicating the verbosity of the solver output.</span></div>
<divclass="line"><aname="l01636"></a><spanclass="lineno"> 1636</span> <spanclass="comment">// Returns the result status of the last solve.</span></div>
<divclass="line"><aname="l01642"></a><spanclass="lineno"> 1642</span> <spanclass="comment">// Returns a string describing the underlying solver and its version.</span></div>
<divclass="line"><aname="l01648"></a><spanclass="lineno"> 1648</span> <spanclass="comment">// Computes exact condition number. Only available for continuous</span></div>
<divclass="line"><aname="l01649"></a><spanclass="lineno"> 1649</span> <spanclass="comment">// problems and only implemented in GLPK.</span></div>
<divclass="line"><aname="l01656"></a><spanclass="lineno"> 1656</span>  LOG(FATAL) <<<spanclass="stringliteral">"Not supported by this solver."</span>;</div>
<divclass="line"><aname="l01661"></a><spanclass="lineno"> 1661</span> <spanclass="comment">// See MPSolver::NextSolution() for contract.</span></div>
<divclass="line"><aname="l01664"></a><spanclass="lineno"> 1664</span> <spanclass="comment">// See MPSolver::SetCallback() for details.</span></div>
<divclass="line"><aname="l01666"></a><spanclass="lineno"> 1666</span>  LOG(FATAL) <<<spanclass="stringliteral">"Callbacks not supported for this solver."</span>;</div>
<divclass="line"><aname="l01673"></a><spanclass="lineno"> 1673</span> <spanclass="comment">// To access the maximize_ bool and the MPSolver.</span></div>
<divclass="line"><aname="l01679"></a><spanclass="lineno"> 1679</span> <spanclass="comment">// Indicates whether the model and the solution are synchronized.</span></div>
<divclass="line"><aname="l01681"></a><spanclass="lineno"> 1681</span> <spanclass="comment">// Indicates whether the solve has reached optimality,</span></div>
<divclass="line"><aname="l01682"></a><spanclass="lineno"> 1682</span> <spanclass="comment">// infeasibility, a limit, etc.</span></div>
<divclass="line"><aname="l01687"></a><spanclass="lineno"> 1687</span> <spanclass="comment">// Index in MPSolver::variables_ of last constraint extracted.</span></div>
<divclass="line"><aname="l01689"></a><spanclass="lineno"> 1689</span> <spanclass="comment">// Index in MPSolver::constraints_ of last variable extracted.</span></div>
<divclass="line"><aname="l01695"></a><spanclass="lineno"> 1695</span> <spanclass="comment">// Boolean indicator for the verbosity of the solver output.</span></div>
<divclass="line"><aname="l01698"></a><spanclass="lineno"> 1698</span> <spanclass="comment">// Index of dummy variable created for empty constraints or the</span></div>
<divclass="line"><aname="l01704"></a><spanclass="lineno"> 1704</span> <spanclass="comment">// Extracts the variables that have not been extracted yet.</span></div>
<divclass="line"><aname="l01706"></a><spanclass="lineno"> 1706</span> <spanclass="comment">// Extracts the constraints that have not been extracted yet.</span></div>
<divclass="line"><aname="l01712"></a><spanclass="lineno"> 1712</span> <spanclass="comment">// Change synchronization status from SOLUTION_SYNCHRONIZED to</span></div>
<divclass="line"><aname="l01713"></a><spanclass="lineno"> 1713</span> <spanclass="comment">// MODEL_SYNCHRONIZED. To be used for model changes.</span></div>
<divclass="line"><aname="l01716"></a><spanclass="lineno"> 1716</span> <spanclass="comment">// Sets parameters common to LP and MIP in the underlying solver.</span></div>
<divclass="line"><aname="l01718"></a><spanclass="lineno"> 1718</span> <spanclass="comment">// Sets MIP specific parameters in the underlying solver.</span></div>
<divclass="line"><aname="l01720"></a><spanclass="lineno"> 1720</span> <spanclass="comment">// Sets all parameters in the underlying solver.</span></div>
<divclass="line"><aname="l01727"></a><spanclass="lineno"> 1727</span> <spanclass="comment">// Sets a supported double parameter to an unsupported value.</span></div>
<divclass="line"><aname="l01730"></a><spanclass="lineno"> 1730</span> <spanclass="comment">// Sets a supported integer parameter to an unsupported value.</span></div>
<divclass="line"><aname="l01733"></a><spanclass="lineno"> 1733</span> <spanclass="comment">// Sets each parameter in the underlying solver.</span></div>
<divclass="line"><aname="l01739"></a><spanclass="lineno"> 1739</span> <spanclass="comment">// Sets the number of threads to be used by the solver.</span></div>
<divclass="line"><aname="l01742"></a><spanclass="lineno"> 1742</span> <spanclass="comment">// Pass solver specific parameters in text format. The format is</span></div>
<divclass="line"><aname="l01743"></a><spanclass="lineno"> 1743</span> <spanclass="comment">// solver-specific and is the same as the corresponding solver configuration</span></div>
<divclass="line"><aname="l01744"></a><spanclass="lineno"> 1744</span> <spanclass="comment">// file format. Returns true if the operation was successful.</span></div>
<divclass="line"><aname="l01746"></a><spanclass="lineno"> 1746</span> <spanclass="comment">// The default implementation of this method stores the parameters in a</span></div>
<divclass="line"><aname="l01747"></a><spanclass="lineno"> 1747</span> <spanclass="comment">// temporary file and calls ReadParameterFile to import the parameter file</span></div>
<divclass="line"><aname="l01748"></a><spanclass="lineno"> 1748</span> <spanclass="comment">// into the solver. Solvers that support passing the parameters directly can</span></div>
<divclass="line"><aname="l01749"></a><spanclass="lineno"> 1749</span> <spanclass="comment">// override this method to skip the temporary file logic.</span></div>
<divclass="line"><aname="l01753"></a><spanclass="lineno"> 1753</span> <spanclass="comment">// Reads a solver-specific file of parameters and set them.</span></div>
<divclass="line"><aname="l01754"></a><spanclass="lineno"> 1754</span> <spanclass="comment">// Returns true if there was no errors.</span></div>
<divclass="line"><aname="l01757"></a><spanclass="lineno"> 1757</span> <spanclass="comment">// Returns a file extension like ".tmp", this is needed because some solvers</span></div>
<divclass="line"><aname="l01758"></a><spanclass="lineno"> 1758</span> <spanclass="comment">// require a given extension for the ReadParameterFile() filename and we need</span></div>
<divclass="line"><aname="l01759"></a><spanclass="lineno"> 1759</span> <spanclass="comment">// to know it to generate a temporary parameter file.</span></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a03666f2e70e42a9560aa9ce7416d2644"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a03666f2e70e42a9560aa9ce7416d2644">operations_research::MPSolver::NumConstraints</a></div><divclass="ttdeci">int NumConstraints() const</div><divclass="ttdoc">Returns the number of constraints.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00337">linear_solver.h:337</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_a0ae674872034b9d61b389da66cb9503a"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#a0ae674872034b9d61b389da66cb9503a">operations_research::MPObjective::SetMaximization</a></div><divclass="ttdeci">void SetMaximization()</div><divclass="ttdoc">Sets the optimization direction to maximize.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00946">linear_solver.h:946</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a76c87990aabadd148304b95332a60ff8a21a919f23e61f3bdea7509c3887c888f"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a76c87990aabadd148304b95332a60ff8a21a919f23e61f3bdea7509c3887c888f">operations_research::MPSolver::GLOP_LINEAR_PROGRAMMING</a></div><divclass="ttdoc">Linear Programming solver using GLOP (Recommended solver).</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00192">linear_solver.h:192</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_aeae0a6e1e84d015690573b08d62b1395"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#aeae0a6e1e84d015690573b08d62b1395">operations_research::MPSolverParameters::GetIntegerParam</a></div><divclass="ttdeci">int GetIntegerParam(MPSolverParameters::IntegerParam param) const</div><divclass="ttdoc">Returns the value of an integer parameter.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_a7319655592ea63d50ef2a6645e309784a420e8170e7ec327dd847b9610fc4565b"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#a7319655592ea63d50ef2a6645e309784a420e8170e7ec327dd847b9610fc4565b">operations_research::MPSolverParameters::LP_ALGORITHM</a></div><divclass="ttdoc">Algorithm to solve linear programs.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01341">linear_solver.h:1341</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_a2def997791a2a5119c3502aa68c34181"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#a2def997791a2a5119c3502aa68c34181">operations_research::MPConstraint::SetCoefficient</a></div><divclass="ttdeci">void SetCoefficient(const MPVariable *const var, double coeff)</div><divclass="ttdoc">Sets the coefficient of the variable on the constraint.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a1269e748520719b9d11f6ef2d1c28c42"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a1269e748520719b9d11f6ef2d1c28c42">operations_research::MPSolver::underlying_solver</a></div><divclass="ttdeci">void * underlying_solver()</div><divclass="ttdoc">Advanced usage: returns the underlying solver.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_af63f7de45a05eb7439a7a1c9ca594fd8"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#af63f7de45a05eb7439a7a1c9ca594fd8">operations_research::MPSolver::SupportsProblemType</a></div><divclass="ttdeci">static bool SupportsProblemType(OptimizationProblemType problem_type)</div><divclass="ttdoc">Whether the given problem type is supported (this will depend on the targets that you linked).</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a372de693ad40b3f42839c8ec6ac845f4"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a372de693ad40b3f42839c8ec6ac845f4">operations_research::MPSolver::Reset</a></div><divclass="ttdeci">void Reset()</div><divclass="ttdoc">Advanced usage: resets extracted model to solve from scratch.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_abc935c6e0cb353e2c61d38ad8af1ed5c"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#abc935c6e0cb353e2c61d38ad8af1ed5c">operations_research::MPObjective::XpressInterface</a></div><divclass="ttdeci">friend class XpressInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00985">linear_solver.h:985</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html">operations_research::MPVariable</a></div><divclass="ttdoc">The class for variables of a Mathematical Programming (MP) model.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01010">linear_solver.h:1010</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html">operations_research::MPSolver</a></div><divclass="ttdoc">This mathematical programming (MP) solver class is the main class though which users build and solve ...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00174">linear_solver.h:174</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_af89ed33216d227599a7752bc0dc97ce3"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#af89ed33216d227599a7752bc0dc97ce3">operations_research::MPSolverParameters::ResetDoubleParam</a></div><divclass="ttdeci">void ResetDoubleParam(MPSolverParameters::DoubleParam param)</div><divclass="ttdoc">Sets a double parameter to its default value (default value defined in MPSolverParameters if it exist...</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_abbf4c26107aac610a00471f41740b01e"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#abbf4c26107aac610a00471f41740b01e">operations_research::MPSolver::LookupConstraintOrNull</a></div><divclass="ttdeci">MPConstraint * LookupConstraintOrNull(const std::string &constraint_name) const</div><divclass="ttdoc">Looks up a constraint by name, and returns nullptr if it does not exist.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_aee1ddf25e86286c16face31551751bda"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#aee1ddf25e86286c16face31551751bda">operations_research::MPObjective::KnapsackInterface</a></div><divclass="ttdeci">friend class KnapsackInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00989">linear_solver.h:989</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_ad01b184e1c49d8aabd15a268ff976ac8a9d70aea1ff48f145644d82953fd4322a"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#ad01b184e1c49d8aabd15a268ff976ac8a9d70aea1ff48f145644d82953fd4322a">operations_research::MPSolverParameters::PRESOLVE_OFF</a></div><divclass="ttdoc">Presolve is off.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01351">linear_solver.h:1351</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_aee1ddf25e86286c16face31551751bda"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#aee1ddf25e86286c16face31551751bda">operations_research::MPConstraint::KnapsackInterface</a></div><divclass="ttdeci">friend class KnapsackInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01239">linear_solver.h:1239</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_ab17a7a859c6e429296e55570c06337cf"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#ab17a7a859c6e429296e55570c06337cf">operations_research::MPSolver::ComputeConstraintActivities</a></div><divclass="ttdeci">std::vector< double > ComputeConstraintActivities() const</div><divclass="ttdoc">Advanced usage: compute the "activities" of all constraints, which are the sums of their linear terms...</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_a60944ecdcad88cfb4d4d32feea70c9b5"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#a60944ecdcad88cfb4d4d32feea70c9b5">operations_research::MPObjective::CLPInterface</a></div><divclass="ttdeci">friend class CLPInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00979">linear_solver.h:979</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_a397e8c8da87415d5408e2dd5ec3e9932a184546f243ecb7d9be48659f8be82992"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#a397e8c8da87415d5408e2dd5ec3e9932a184546f243ecb7d9be48659f8be82992">operations_research::MPSolverParameters::DUAL_TOLERANCE</a></div><divclass="ttdoc">Advanced usage: tolerance for dual feasibility of basic solutions.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01333">linear_solver.h:1333</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_acca41811e8aaab0112b987749c0ecb93"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#acca41811e8aaab0112b987749c0ecb93">operations_research::MPVariable::index</a></div><divclass="ttdeci">int index() const</div><divclass="ttdoc">Returns the index of the variable in the MPSolver::variables_.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01031">linear_solver.h:1031</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_aa71d36872f416feaa853788a7a7a7ef8"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#aa71d36872f416feaa853788a7a7a7ef8">operations_research::MPConstraint::Clear</a></div><divclass="ttdeci">void Clear()</div><divclass="ttdoc">Clears all variables and coefficients. Does not clear the bounds.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a200ccd114eb5057856c05501c2d4abe5"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a200ccd114eb5057856c05501c2d4abe5">operations_research::MPSolver::MakeBoolVarArray</a></div><divclass="ttdeci">void MakeBoolVarArray(int nb, const std::string &name, std::vector< MPVariable * > *vars)</div><divclass="ttdoc">Creates an array of boolean variables.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a13350b0e0b8b4b2571b6088895f08ab1"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a13350b0e0b8b4b2571b6088895f08ab1">operations_research::MPSolver::ParseSolverType</a></div><divclass="ttdeci">static bool ParseSolverType(absl::string_view solver, OptimizationProblemType *type)</div><divclass="ttdoc">Parses the name of the solver.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_a7383308e6b9b63b18196798db342ce8a"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#a7383308e6b9b63b18196798db342ce8a">operations_research::MPVariable::BopInterface</a></div><divclass="ttdeci">friend class BopInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01096">linear_solver.h:1096</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_a2def997791a2a5119c3502aa68c34181"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#a2def997791a2a5119c3502aa68c34181">operations_research::MPObjective::SetCoefficient</a></div><divclass="ttdeci">void SetCoefficient(const MPVariable *const var, double coeff)</div><divclass="ttdoc">Sets the coefficient of the variable in the objective.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_acbd4413b1370baca9c45aecb0cb8ebd2"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#acbd4413b1370baca9c45aecb0cb8ebd2">operations_research::MPSolver::SatInterface</a></div><divclass="ttdeci">friend class SatInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00779">linear_solver.h:779</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_a68da85394a0aa65bda40355466afba93"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#a68da85394a0aa65bda40355466afba93">operations_research::MPObjective::MinimizeLinearExpr</a></div><divclass="ttdeci">void MinimizeLinearExpr(const LinearExpr &linear_expr)</div><divclass="ttdoc">Resets the current objective to minimize linear_expr.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00932">linear_solver.h:932</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_aa9a00625dd56e64b32c97b95445a1b9c"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#aa9a00625dd56e64b32c97b95445a1b9c">operations_research::MPSolver::ExportModelAsLpFormat</a></div><divclass="ttdeci">bool ExportModelAsLpFormat(bool obfuscate, std::string *model_str) const</div><divclass="ttdoc">Shortcuts to the homonymous MPModelProtoExporter methods, via exporting to a MPModelProto with Export...</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_ae7cbd08108e1636184f28c1a71c42393"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#ae7cbd08108e1636184f28c1a71c42393">operations_research::MPSolver::CplexInterface</a></div><divclass="ttdeci">friend class CplexInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00773">linear_solver.h:773</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html">operations_research::MPConstraint</a></div><divclass="ttdoc">The class for constraints of a Mathematical Programming (MP) model.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01135">linear_solver.h:1135</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_abc935c6e0cb353e2c61d38ad8af1ed5c"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#abc935c6e0cb353e2c61d38ad8af1ed5c">operations_research::MPVariable::XpressInterface</a></div><divclass="ttdeci">friend class XpressInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01093">linear_solver.h:1093</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_af5a7cf0c655f37c0b388a2ddcf32ac3e"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#af5a7cf0c655f37c0b388a2ddcf32ac3e">operations_research::MPSolver::CBCInterface</a></div><divclass="ttdeci">friend class CBCInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00770">linear_solver.h:770</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a573d479910e373f5d771d303e440587da03f919221217f95d21a593a7120165e1"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a573d479910e373f5d771d303e440587da03f919221217f95d21a593a7120165e1">operations_research::MPSolver::FEASIBLE</a></div><divclass="ttdoc">feasible, or stopped by limit.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00407">linear_solver.h:407</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a18daa488abaa904f23c8f74158290883"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a18daa488abaa904f23c8f74158290883">operations_research::MPSolver::NextSolution</a></div><divclass="ttdeci">ABSL_MUST_USE_RESULT bool NextSolution()</div><divclass="ttdoc">Some solvers (MIP only, not LP) can produce multiple solutions to the problem.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_af5a7cf0c655f37c0b388a2ddcf32ac3e"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#af5a7cf0c655f37c0b388a2ddcf32ac3e">operations_research::MPVariable::CBCInterface</a></div><divclass="ttdeci">friend class CBCInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01086">linear_solver.h:1086</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_ae189b253817210ee7e605b089ccf47e4"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#ae189b253817210ee7e605b089ccf47e4">operations_research::MPSolverParameters::SetIntegerParam</a></div><divclass="ttdeci">void SetIntegerParam(MPSolverParameters::IntegerParam param, int value)</div><divclass="ttdoc">Sets a integer parameter to a specific value.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_a25a1112e410b183f49ef4ce8da1bdc74ab3f9de74d2d20c2eebcec60b7273d485"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#a25a1112e410b183f49ef4ce8da1bdc74ab3f9de74d2d20c2eebcec60b7273d485">operations_research::MPSolverParameters::SCALING_OFF</a></div><divclass="ttdoc">Scaling is off.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01381">linear_solver.h:1381</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_a356d08f701ec7c64a00c19818bb72886"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#a356d08f701ec7c64a00c19818bb72886">operations_research::MPObjective::GetCoefficient</a></div><divclass="ttdeci">double GetCoefficient(const MPVariable *const var) const</div><divclass="ttdoc">Gets the coefficient of a given variable in the objective.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_aa3d71b1d66352ee439fdcdf8f3b93067"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#aa3d71b1d66352ee439fdcdf8f3b93067">operations_research::MPObjective::minimization</a></div><divclass="ttdeci">bool minimization() const</div><divclass="ttdoc">Is the optimization direction set to minimize?</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_a96ffc785b7b2135c7980c985883ffdd3"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#a96ffc785b7b2135c7980c985883ffdd3">operations_research::MPObjective::offset</a></div><divclass="ttdeci">double offset() const</div><divclass="ttdoc">Gets the constant term in the objective.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00919">linear_solver.h:919</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_ac75b700ead5ff5d0944b5161e6dac9e8"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#ac75b700ead5ff5d0944b5161e6dac9e8">operations_research::MPSolver::InterruptSolve</a></div><divclass="ttdeci">bool InterruptSolve()</div><divclass="ttdoc">Interrupts the Solve() execution to terminate processing if possible.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_ad90797a6c268fa29b515bdb5972c7bfb"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#ad90797a6c268fa29b515bdb5972c7bfb">operations_research::MPConstraint::SetLB</a></div><divclass="ttdeci">void SetLB(double lb)</div><divclass="ttdoc">Sets the lower bound.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01173">linear_solver.h:1173</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_aee1ddf25e86286c16face31551751bda"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#aee1ddf25e86286c16face31551751bda">operations_research::MPSolver::KnapsackInterface</a></div><divclass="ttdeci">friend class KnapsackInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00780">linear_solver.h:780</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a9d0b53fb310c467e251ddbb25d499082"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a9d0b53fb310c467e251ddbb25d499082">operations_research::MPSolver::SetNumThreads</a></div><divclass="ttdeci">util::Status SetNumThreads(int num_threads)</div><divclass="ttdoc">Sets the number of threads to use by the underlying solver.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_abc935c6e0cb353e2c61d38ad8af1ed5c"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#abc935c6e0cb353e2c61d38ad8af1ed5c">operations_research::MPConstraint::XpressInterface</a></div><divclass="ttdeci">friend class XpressInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01235">linear_solver.h:1235</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_a7319655592ea63d50ef2a6645e309784a4d52eb956c0c02b9cbc37720f27abbb0"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#a7319655592ea63d50ef2a6645e309784a4d52eb956c0c02b9cbc37720f27abbb0">operations_research::MPSolverParameters::SCALING</a></div><divclass="ttdoc">Advanced usage: enable or disable matrix scaling.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01345">linear_solver.h:1345</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_a665001590f89bb9446d0030e2ef8047b"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#a665001590f89bb9446d0030e2ef8047b">operations_research::MPObjective::terms</a></div><divclass="ttdeci">const absl::flat_hash_map< const MPVariable *, double >& terms() const</div><divclass="ttdoc">Returns a map from variables to their coefficients in the objective.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00911">linear_solver.h:911</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_ac28a56eeedb62d070578a9231f1875ea"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#ac28a56eeedb62d070578a9231f1875ea">operations_research::MPVariable::GurobiInterface</a></div><divclass="ttdeci">friend class GurobiInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01091">linear_solver.h:1091</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_ad01b184e1c49d8aabd15a268ff976ac8"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#ad01b184e1c49d8aabd15a268ff976ac8">operations_research::MPSolverParameters::PresolveValues</a></div><divclass="ttdeci">PresolveValues</div><divclass="ttdoc">For each categorical parameter, enumeration of possible values.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01349">linear_solver.h:1349</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a880227c1bbe5a1a2a21796a947804615"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a880227c1bbe5a1a2a21796a947804615">operations_research::MPSolver::ExportModelToProto</a></div><divclass="ttdeci">void ExportModelToProto(MPModelProto *output_model) const</div><divclass="ttdoc">Exports model to protocol buffer.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverInterface_html_a2cb8082675772ca81d04e87b6f4b1c8b"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverInterface.html#a2cb8082675772ca81d04e87b6f4b1c8b">operations_research::MPSolverInterface::kDummyVariableIndex</a></div><divclass="ttdeci">static const int kDummyVariableIndex</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01700">linear_solver.h:1700</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_a4584733ca3a135bb0e29e7b29988901d"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#a4584733ca3a135bb0e29e7b29988901d">operations_research::MPConstraint::SetUB</a></div><divclass="ttdeci">void SetUB(double ub)</div><divclass="ttdoc">Sets the upper bound.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01176">linear_solver.h:1176</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_a6c754b527a347994b06eeb49a09ac222"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#a6c754b527a347994b06eeb49a09ac222">operations_research::MPConstraint::GLOPInterface</a></div><divclass="ttdeci">friend class GLOPInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01236">linear_solver.h:1236</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_a79b59c0c868544afdaa05d89c8f8541f"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#a79b59c0c868544afdaa05d89c8f8541f">operations_research::MPSolverParameters::LpAlgorithmValues</a></div><divclass="ttdeci">LpAlgorithmValues</div><divclass="ttdoc">LP algorithm to use.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01357">linear_solver.h:1357</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_ae74ce5ecb0dd3b4bcddb31bd59da7089"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#ae74ce5ecb0dd3b4bcddb31bd59da7089">operations_research::MPSolver::LoadModelFromProtoWithUniqueNamesOrDie</a></div><divclass="ttdeci">MPSolverResponseStatus LoadModelFromProtoWithUniqueNamesOrDie(const MPModelProto &input_model, std::string *error_message)</div><divclass="ttdoc">Loads model from protocol buffer.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_acbd4413b1370baca9c45aecb0cb8ebd2"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#acbd4413b1370baca9c45aecb0cb8ebd2">operations_research::MPConstraint::SatInterface</a></div><divclass="ttdeci">friend class SatInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01238">linear_solver.h:1238</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_ad8227ba86a01f26e4f173cd5e219d5d1"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#ad8227ba86a01f26e4f173cd5e219d5d1">operations_research::MPVariable::name</a></div><divclass="ttdeci">const std::string & name() const</div><divclass="ttdoc">Returns the name of the variable.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01013">linear_solver.h:1013</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_a397e8c8da87415d5408e2dd5ec3e9932af5546ac8a26f50d8798bf634598a7eba"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#a397e8c8da87415d5408e2dd5ec3e9932af5546ac8a26f50d8798bf634598a7eba">operations_research::MPSolverParameters::RELATIVE_MIP_GAP</a></div><divclass="ttdoc">Limit for relative MIP gap.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01323">linear_solver.h:1323</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_aeec48f5c4d2d1cc79926734f9b586ad5"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#aeec48f5c4d2d1cc79926734f9b586ad5">operations_research::MPConstraint::dual_value</a></div><divclass="ttdeci">double dual_value() const</div><divclass="ttdoc">Advanced usage: returns the dual value of the constraint in the current solution (only available for ...</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html">operations_research::MPSolverParameters</a></div><divclass="ttdoc">This class stores parameter settings for LP and MIP solvers.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01318">linear_solver.h:1318</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_a570e7e2c973cc96bedb0db08f5e062e3"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#a570e7e2c973cc96bedb0db08f5e062e3">operations_research::MPConstraint::ub</a></div><divclass="ttdeci">double ub() const</div><divclass="ttdoc">Returns the upper bound.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01170">linear_solver.h:1170</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1LinearRange_html"><divclass="ttname"><ahref="classoperations__research_1_1LinearRange.html">operations_research::LinearRange</a></div><divclass="ttdoc">An expression of the form:</div><divclass="ttdef"><b>Definition:</b><ahref="linear__expr_8h_source.html#l00192">linear_expr.h:192</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a2c50b77c283c82d632f0dc605ceca3c3"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a2c50b77c283c82d632f0dc605ceca3c3">operations_research::MPSolver::VerifySolution</a></div><divclass="ttdeci">bool VerifySolution(double tolerance, bool log_errors) const</div><divclass="ttdoc">Advanced usage: Verifies the correctness of the solution.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a9f55f5e7a62b45961982063ebc1e9945"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a9f55f5e7a62b45961982063ebc1e9945">operations_research::MPSolver::Solve</a></div><divclass="ttdeci">ResultStatus Solve()</div><divclass="ttdoc">Solves the problem using the default parameter values.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_aee8250cf90d66d569534338248924469"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#aee8250cf90d66d569534338248924469">operations_research::MPSolver::ProblemType</a></div><divclass="ttdeci">virtual OptimizationProblemType ProblemType() const</div><divclass="ttdoc">Returns the optimization problem type set at construction.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00260">linear_solver.h:260</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_ac187b2ba08422f3a06b8d1e1502ceea6"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#ac187b2ba08422f3a06b8d1e1502ceea6">operations_research::MPObjective::SetMinimization</a></div><divclass="ttdeci">void SetMinimization()</div><divclass="ttdoc">Sets the optimization direction to minimize.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00943">linear_solver.h:943</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_ac28a56eeedb62d070578a9231f1875ea"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#ac28a56eeedb62d070578a9231f1875ea">operations_research::MPConstraint::GurobiInterface</a></div><divclass="ttdeci">friend class GurobiInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01233">linear_solver.h:1233</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_a8844020cc1376123531cd53c831acdef"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#a8844020cc1376123531cd53c831acdef">operations_research::MPVariable::MPVariableSolutionValueTest</a></div><divclass="ttdeci">friend class MPVariableSolutionValueTest</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01095">linear_solver.h:1095</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_a7319655592ea63d50ef2a6645e309784adabd0cf2fcb5726b7fc2aa3d54d5f3ff"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#a7319655592ea63d50ef2a6645e309784adabd0cf2fcb5726b7fc2aa3d54d5f3ff">operations_research::MPSolverParameters::INCREMENTALITY</a></div><divclass="ttdoc">Advanced usage: incrementality from one solve to the next.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01343">linear_solver.h:1343</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_aecd5fee61b6013b1207c2ea622c849b5"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#aecd5fee61b6013b1207c2ea622c849b5">operations_research::MPVariable::basis_status</a></div><divclass="ttdeci">MPSolver::BasisStatus basis_status() const</div><divclass="ttdoc">Advanced usage: returns the basis status of the variable in the current solution (only available for ...</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_ad8227ba86a01f26e4f173cd5e219d5d1"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#ad8227ba86a01f26e4f173cd5e219d5d1">operations_research::MPConstraint::name</a></div><divclass="ttdeci">const std::string & name() const</div><divclass="ttdoc">Returns the name of the constraint.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01138">linear_solver.h:1138</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_a3d269786b0c64ba034e7e8a8a09213fc"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#a3d269786b0c64ba034e7e8a8a09213fc">operations_research::MPObjective::SetOffset</a></div><divclass="ttdeci">void SetOffset(double value)</div><divclass="ttdoc">Sets the constant term in the objective.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_a6c754b527a347994b06eeb49a09ac222"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#a6c754b527a347994b06eeb49a09ac222">operations_research::MPObjective::GLOPInterface</a></div><divclass="ttdeci">friend class GLOPInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00986">linear_solver.h:986</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_a7383308e6b9b63b18196798db342ce8a"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#a7383308e6b9b63b18196798db342ce8a">operations_research::MPConstraint::BopInterface</a></div><divclass="ttdeci">friend class BopInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01237">linear_solver.h:1237</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_a6c754b527a347994b06eeb49a09ac222"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#a6c754b527a347994b06eeb49a09ac222">operations_research::MPVariable::GLOPInterface</a></div><divclass="ttdeci">friend class GLOPInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01094">linear_solver.h:1094</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_acca41811e8aaab0112b987749c0ecb93"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#acca41811e8aaab0112b987749c0ecb93">operations_research::MPConstraint::index</a></div><divclass="ttdeci">int index() const</div><divclass="ttdoc">Returns the index of the constraint in the MPSolver::constraints_.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01203">linear_solver.h:1203</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_a372de693ad40b3f42839c8ec6ac845f4"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#a372de693ad40b3f42839c8ec6ac845f4">operations_research::MPSolverParameters::Reset</a></div><divclass="ttdeci">void Reset()</div><divclass="ttdoc">Sets all parameters to their default value.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_aa71d36872f416feaa853788a7a7a7ef8"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#aa71d36872f416feaa853788a7a7a7ef8">operations_research::MPSolver::Clear</a></div><divclass="ttdeci">void Clear()</div><divclass="ttdoc">Clears the objective (including the optimization direction), all variables and constraints.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_ab0c809243bacbba99e083bddd16ebcaa"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#ab0c809243bacbba99e083bddd16ebcaa">operations_research::MPConstraint::is_lazy</a></div><divclass="ttdeci">bool is_lazy() const</div><divclass="ttdoc">Advanced usage: returns true if the constraint is "lazy" (see below).</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01182">linear_solver.h:1182</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_a356d08f701ec7c64a00c19818bb72886"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#a356d08f701ec7c64a00c19818bb72886">operations_research::MPConstraint::GetCoefficient</a></div><divclass="ttdeci">double GetCoefficient(const MPVariable *const var) const</div><divclass="ttdoc">Gets the coefficient of a given variable on the constraint (which is 0 if the variable does not appea...</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_a7a302239fbb1f938a513636a6c7a3e2d"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#a7a302239fbb1f938a513636a6c7a3e2d">operations_research::MPVariable::reduced_cost</a></div><divclass="ttdeci">double reduced_cost() const</div><divclass="ttdoc">Advanced usage: returns the reduced cost of the variable in the current solution (only available for ...</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a51ae17fc48ac80f494d7ed2202d61f29"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a51ae17fc48ac80f494d7ed2202d61f29">operations_research::MPSolver::nodes</a></div><divclass="ttdeci">int64 nodes() const</div><divclass="ttdoc">Returns the number of branch-and-bound nodes evaluated during the solve.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_aecd5fee61b6013b1207c2ea622c849b5"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#aecd5fee61b6013b1207c2ea622c849b5">operations_research::MPConstraint::basis_status</a></div><divclass="ttdeci">MPSolver::BasisStatus basis_status() const</div><divclass="ttdoc">Advanced usage: returns the basis status of the constraint.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_acbd4413b1370baca9c45aecb0cb8ebd2"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#acbd4413b1370baca9c45aecb0cb8ebd2">operations_research::MPVariable::SatInterface</a></div><divclass="ttdeci">friend class SatInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01097">linear_solver.h:1097</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_aeeef6511f130ba8a9db2c308dbeada5c"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#aeeef6511f130ba8a9db2c308dbeada5c">operations_research::MPSolverParameters::MPSolverParameters</a></div><divclass="ttdeci">MPSolverParameters()</div><divclass="ttdoc">The constructor sets all parameters to their default value.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_ad7c866ce738bfb6ac5fcee91fed998ed"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#ad7c866ce738bfb6ac5fcee91fed998ed">operations_research::MPSolverParameters::kDefaultIntegerParamValue</a></div><divclass="ttdeci">static const int kDefaultIntegerParamValue</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01389">linear_solver.h:1389</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a76c87990aabadd148304b95332a60ff8aa12b397b225ca43d143085b619706e18"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a76c87990aabadd148304b95332a60ff8aa12b397b225ca43d143085b619706e18">operations_research::MPSolver::SAT_INTEGER_PROGRAMMING</a></div><divclass="ttdoc">SAT based solver (requires only integer and Boolean variables).</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00228">linear_solver.h:228</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a573d479910e373f5d771d303e440587dadd7ccc352d727224d39519584ed37cd7"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a573d479910e373f5d771d303e440587dadd7ccc352d727224d39519584ed37cd7">operations_research::MPSolver::ABNORMAL</a></div><divclass="ttdoc">abnormal, i.e., error of some kind.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00413">linear_solver.h:413</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_a02bfb5cd5deeb2d5149f6976ee0456d6"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#a02bfb5cd5deeb2d5149f6976ee0456d6">operations_research::MPVariable::SetBounds</a></div><divclass="ttdeci">void SetBounds(double lb, double ub)</div><divclass="ttdoc">Sets both the lower and upper bounds.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_a60944ecdcad88cfb4d4d32feea70c9b5"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#a60944ecdcad88cfb4d4d32feea70c9b5">operations_research::MPVariable::CLPInterface</a></div><divclass="ttdeci">friend class CLPInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01087">linear_solver.h:1087</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1LinearExpr_html"><divclass="ttname"><ahref="classoperations__research_1_1LinearExpr.html">operations_research::LinearExpr</a></div><divclass="ttdoc">LinearExpr models a quantity that is linear in the decision variables (MPVariable) of an optimization...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__expr_8h_source.html#l00114">linear_expr.h:114</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_a215b66c2ff063ffbf5b538ee402304cba01f385fe2acfe85efe038aa62b31edfb"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#a215b66c2ff063ffbf5b538ee402304cba01f385fe2acfe85efe038aa62b31edfb">operations_research::MPSolverParameters::INCREMENTALITY_OFF</a></div><divclass="ttdoc">Start solve from scratch.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01369">linear_solver.h:1369</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_a5c083b37243075a00bf909840dc7c933"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#a5c083b37243075a00bf909840dc7c933">operations_research::MPVariable::SLMInterface</a></div><divclass="ttdeci">friend class SLMInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01090">linear_solver.h:1090</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_a0623b9007b18f0e4bb078fb6eb4dadaa"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#a0623b9007b18f0e4bb078fb6eb4dadaa">operations_research::MPSolverParameters::kUnknownIntegerParamValue</a></div><divclass="ttdeci">static const int kUnknownIntegerParamValue</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01393">linear_solver.h:1393</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a981cdf256aa33e518b8747c96bf1a9c7"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a981cdf256aa33e518b8747c96bf1a9c7">operations_research::MPSolver::LookupVariableOrNull</a></div><divclass="ttdeci">MPVariable * LookupVariableOrNull(const std::string &var_name) const</div><divclass="ttdoc">Looks up a variable by name, and returns nullptr if it does not exist.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_accc4f1882f13ad57ef6bbe8fbe5d365d"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#accc4f1882f13ad57ef6bbe8fbe5d365d">operations_research::MPVariable::lb</a></div><divclass="ttdeci">double lb() const</div><divclass="ttdoc">Returns the lower bound.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01034">linear_solver.h:1034</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_ae7cbd08108e1636184f28c1a71c42393"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#ae7cbd08108e1636184f28c1a71c42393">operations_research::MPObjective::CplexInterface</a></div><divclass="ttdeci">friend class CplexInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00984">linear_solver.h:984</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_a94743823a7ad3c565902fcf7956d4ae2"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#a94743823a7ad3c565902fcf7956d4ae2">operations_research::MPVariable::SetInteger</a></div><divclass="ttdeci">void SetInteger(bool integer)</div><divclass="ttdoc">Sets the integrality requirement of the variable.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_a5c083b37243075a00bf909840dc7c933"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#a5c083b37243075a00bf909840dc7c933">operations_research::MPConstraint::SLMInterface</a></div><divclass="ttdeci">friend class SLMInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01232">linear_solver.h:1232</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a76c87990aabadd148304b95332a60ff8a83b85675904f261c34c280b2abdcd9ae"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a76c87990aabadd148304b95332a60ff8a83b85675904f261c34c280b2abdcd9ae">operations_research::MPSolver::SCIP_MIXED_INTEGER_PROGRAMMING</a></div><divclass="ttdoc">Mixed integer Programming Solver using SCIP.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00205">linear_solver.h:205</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_abc6bcaac179c603ad3386fa7449c86a7"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#abc6bcaac179c603ad3386fa7449c86a7">operations_research::MPVariable::integer</a></div><divclass="ttdeci">bool integer() const</div><divclass="ttdoc">Returns the integrality requirement of the variable.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01019">linear_solver.h:1019</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_a7319655592ea63d50ef2a6645e309784"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#a7319655592ea63d50ef2a6645e309784">operations_research::MPSolverParameters::IntegerParam</a></div><divclass="ttdeci">IntegerParam</div><divclass="ttdoc">Enumeration of parameters that take integer or categorical values.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01337">linear_solver.h:1337</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_a25a1112e410b183f49ef4ce8da1bdc74a62fd26c37f80b6aabec3b463c55a1c85"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#a25a1112e410b183f49ef4ce8da1bdc74a62fd26c37f80b6aabec3b463c55a1c85">operations_research::MPSolverParameters::SCALING_ON</a></div><divclass="ttdoc">Scaling is on.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01383">linear_solver.h:1383</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a236f9752f4df4c5134617330a040ec8a"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a236f9752f4df4c5134617330a040ec8a">operations_research::MPSolver::SCIPInterface</a></div><divclass="ttdeci">friend class SCIPInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00771">linear_solver.h:771</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_ac195da617c5cdd546ab7ecc67a2e7235"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#ac195da617c5cdd546ab7ecc67a2e7235">operations_research::MPObjective::MaximizeLinearExpr</a></div><divclass="ttdeci">void MaximizeLinearExpr(const LinearExpr &linear_expr)</div><divclass="ttdoc">Resets the current objective to maximize linear_expr.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00928">linear_solver.h:928</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a76c87990aabadd148304b95332a60ff8ad183dc62c63346a3b984b93fbda0137a"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a76c87990aabadd148304b95332a60ff8ad183dc62c63346a3b984b93fbda0137a">operations_research::MPSolver::CBC_MIXED_INTEGER_PROGRAMMING</a></div><divclass="ttdoc">Mixed integer Programming Solver using Coin CBC.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00213">linear_solver.h:213</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a018794097e44ee8189380eef2b0f267f"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a018794097e44ee8189380eef2b0f267f">operations_research::MPSolver::FillSolutionResponseProto</a></div><divclass="ttdeci">void FillSolutionResponseProto(MPSolutionResponse *response) const</div><divclass="ttdoc">Encodes the current solution in a solution response protocol buffer.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_ac28a56eeedb62d070578a9231f1875ea"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#ac28a56eeedb62d070578a9231f1875ea">operations_research::MPSolver::GurobiInterface</a></div><divclass="ttdeci">friend class GurobiInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00772">linear_solver.h:772</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_ae1a3e0a695903c8e6effd524a7f92784"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#ae1a3e0a695903c8e6effd524a7f92784">operations_research::MPSolver::GLPKInterface</a></div><divclass="ttdeci">friend class GLPKInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00768">linear_solver.h:768</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a226456dfb15300dd4e59d0bf80d0ce07"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a226456dfb15300dd4e59d0bf80d0ce07">operations_research::MPSolver::MutableObjective</a></div><divclass="ttdeci">MPObjective * MutableObjective()</div><divclass="ttdoc">Returns the mutable objective object.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00395">linear_solver.h:395</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a77083241e8bdb93b619c7b9feaf82dec"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a77083241e8bdb93b619c7b9feaf82dec">operations_research::MPSolver::SetSolverSpecificParametersAsString</a></div><divclass="ttdeci">bool SetSolverSpecificParametersAsString(const std::string &parameters)</div><divclass="ttdoc">Advanced usage: pass solver specific parameters in text format.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a5004489a36bc1393efa043044a63732f"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a5004489a36bc1393efa043044a63732f">operations_research::MPSolver::Objective</a></div><divclass="ttdeci">const MPObjective & Objective() const</div><divclass="ttdoc">Returns the objective object.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00392">linear_solver.h:392</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_af5a7cf0c655f37c0b388a2ddcf32ac3e"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#af5a7cf0c655f37c0b388a2ddcf32ac3e">operations_research::MPObjective::CBCInterface</a></div><divclass="ttdeci">friend class CBCInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00978">linear_solver.h:978</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_a236f9752f4df4c5134617330a040ec8a"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#a236f9752f4df4c5134617330a040ec8a">operations_research::MPVariable::SCIPInterface</a></div><divclass="ttdeci">friend class SCIPInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01089">linear_solver.h:1089</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a573d479910e373f5d771d303e440587d"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a573d479910e373f5d771d303e440587d">operations_research::MPSolver::ResultStatus</a></div><divclass="ttdeci">ResultStatus</div><divclass="ttdoc">The status of solving the problem.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00403">linear_solver.h:403</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_abc935c6e0cb353e2c61d38ad8af1ed5c"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#abc935c6e0cb353e2c61d38ad8af1ed5c">operations_research::MPSolver::XpressInterface</a></div><divclass="ttdeci">friend class XpressInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00774">linear_solver.h:774</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a76c87990aabadd148304b95332a60ff8"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a76c87990aabadd148304b95332a60ff8">operations_research::MPSolver::OptimizationProblemType</a></div><divclass="ttdeci">OptimizationProblemType</div><divclass="ttdoc">The type of problems (LP or MIP) that will be solved and the underlying solver (GLOP,...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00182">linear_solver.h:182</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_a570e7e2c973cc96bedb0db08f5e062e3"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#a570e7e2c973cc96bedb0db08f5e062e3">operations_research::MPVariable::ub</a></div><divclass="ttdeci">double ub() const</div><divclass="ttdoc">Returns the upper bound.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01037">linear_solver.h:1037</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a191cd9b1ba3e3c01a558a1f6c02a4429"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a191cd9b1ba3e3c01a558a1f6c02a4429">operations_research::MPSolver::Name</a></div><divclass="ttdeci">const std::string & Name() const</div><divclass="ttdoc">Returns the name of the model set at construction.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00255">linear_solver.h:255</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_a692014f815d7927760762b046675f658"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#a692014f815d7927760762b046675f658">operations_research::MPSolverParameters::GetDoubleParam</a></div><divclass="ttdeci">double GetDoubleParam(MPSolverParameters::DoubleParam param) const</div><divclass="ttdoc">Returns the value of a double parameter.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_a02bfb5cd5deeb2d5149f6976ee0456d6"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#a02bfb5cd5deeb2d5149f6976ee0456d6">operations_research::MPConstraint::SetBounds</a></div><divclass="ttdeci">void SetBounds(double lb, double ub)</div><divclass="ttdoc">Sets both the lower and upper bounds.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_a09343ed6dde3059443fe6f4caa16e986"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#a09343ed6dde3059443fe6f4caa16e986">operations_research::MPSolverParameters::ResetIntegerParam</a></div><divclass="ttdeci">void ResetIntegerParam(MPSolverParameters::IntegerParam param)</div><divclass="ttdoc">Sets an integer parameter to its default value (default value defined in MPSolverParameters if it exi...</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a573d479910e373f5d771d303e440587dae071e79c23f061c9dd00ee09519a0031"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a573d479910e373f5d771d303e440587dae071e79c23f061c9dd00ee09519a0031">operations_research::MPSolver::MODEL_INVALID</a></div><divclass="ttdoc">the model is trivially invalid (NaN coefficients, etc).</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00415">linear_solver.h:415</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a682a2933267dcfca8c5ba919406d7269"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a682a2933267dcfca8c5ba919406d7269">operations_research::MPSolver::LoadSolutionFromProto</a></div><divclass="ttdeci">util::Status LoadSolutionFromProto(const MPSolutionResponse &response, double tolerance=kDefaultPrimalTolerance)</div><divclass="ttdoc">Load a solution encoded in a protocol buffer onto this solver for easy access via the MPSolver interf...</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a5ff11cd513c803ba3f75f2f672f1cf6f"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a5ff11cd513c803ba3f75f2f672f1cf6f">operations_research::MPSolver::constraints</a></div><divclass="ttdeci">const std::vector< MPConstraint * >& constraints() const</div><divclass="ttdoc">Returns the array of constraints handled by the MPSolver.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00344">linear_solver.h:344</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_a60944ecdcad88cfb4d4d32feea70c9b5"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#a60944ecdcad88cfb4d4d32feea70c9b5">operations_research::MPConstraint::CLPInterface</a></div><divclass="ttdeci">friend class CLPInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01229">linear_solver.h:1229</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_aaa766a9aa802903bf7a6e5b8fb82c70c"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#aaa766a9aa802903bf7a6e5b8fb82c70c">operations_research::MPSolver::Write</a></div><divclass="ttdeci">void Write(const std::string &file_name)</div><divclass="ttdoc">Writes the model using the solver internal write function.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_a3df780d69d67985929c76e750f913e21"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#a3df780d69d67985929c76e750f913e21">operations_research::MPObjective::maximization</a></div><divclass="ttdeci">bool maximization() const</div><divclass="ttdoc">Is the optimization direction set to maximize?</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_acbd4413b1370baca9c45aecb0cb8ebd2"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#acbd4413b1370baca9c45aecb0cb8ebd2">operations_research::MPObjective::SatInterface</a></div><divclass="ttdeci">friend class SatInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00988">linear_solver.h:988</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_a5c083b37243075a00bf909840dc7c933"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#a5c083b37243075a00bf909840dc7c933">operations_research::MPObjective::SLMInterface</a></div><divclass="ttdeci">friend class SLMInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00982">linear_solver.h:982</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a8eb213aafa3773dfb6a05d184e61bb8a"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a8eb213aafa3773dfb6a05d184e61bb8a">operations_research::MPSolver::GetNumThreads</a></div><divclass="ttdeci">int GetNumThreads() const</div><divclass="ttdoc">Returns the number of threads to be used during solve.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00580">linear_solver.h:580</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_ae1a3e0a695903c8e6effd524a7f92784"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#ae1a3e0a695903c8e6effd524a7f92784">operations_research::MPObjective::GLPKInterface</a></div><divclass="ttdeci">friend class GLPKInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00980">linear_solver.h:980</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_a8554e97d98d05016f16300cedf2be9f6"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#a8554e97d98d05016f16300cedf2be9f6">operations_research::MPObjective::Value</a></div><divclass="ttdeci">double Value() const</div><divclass="ttdoc">Returns the objective value of the best solution found so far.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_ac28a56eeedb62d070578a9231f1875ea"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#ac28a56eeedb62d070578a9231f1875ea">operations_research::MPObjective::GurobiInterface</a></div><divclass="ttdeci">friend class GurobiInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00983">linear_solver.h:983</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_a665001590f89bb9446d0030e2ef8047b"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#a665001590f89bb9446d0030e2ef8047b">operations_research::MPConstraint::terms</a></div><divclass="ttdeci">const absl::flat_hash_map< const MPVariable *, double >& terms() const</div><divclass="ttdoc">Returns a map from variables to their coefficients in the constraint.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01162">linear_solver.h:1162</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_a3eee00e1029a4006afbd791f78d91657"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#a3eee00e1029a4006afbd791f78d91657">operations_research::MPObjective::OptimizeLinearExpr</a></div><divclass="ttdeci">void OptimizeLinearExpr(const LinearExpr &linear_expr, bool is_maximization)</div><divclass="ttdoc">Resets the current objective to take the value of linear_expr, and sets the objective direction to ma...</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a728f0121faaa95a451eaef6eb13e2242"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a728f0121faaa95a451eaef6eb13e2242">operations_research::MPSolver::MakeVar</a></div><divclass="ttdeci">MPVariable * MakeVar(double lb, double ub, bool integer, const std::string &name)</div><divclass="ttdoc">Creates a variable with the given bounds, integrality requirement and name.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html">operations_research::MPObjective</a></div><divclass="ttdoc">A class to express a linear objective.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00883">linear_solver.h:883</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_ae9513c0aac7da800987dd6bd053c929d"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#ae9513c0aac7da800987dd6bd053c929d">operations_research::MPSolver::ClampSolutionWithinBounds</a></div><divclass="ttdeci">util::Status ClampSolutionWithinBounds()</div><divclass="ttdoc">Resets values of out of bound variables to the corresponding bound and returns an error if any of the...</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a9d3beb2afe4ae647674b054bf29290e2"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a9d3beb2afe4ae647674b054bf29290e2">operations_research::MPSolver::NumVariables</a></div><divclass="ttdeci">int NumVariables() const</div><divclass="ttdoc">Returns the number of variables.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00272">linear_solver.h:272</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_a397e8c8da87415d5408e2dd5ec3e9932a8c7c9aed0dcd36fc9a9af2fab295caf3"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#a397e8c8da87415d5408e2dd5ec3e9932a8c7c9aed0dcd36fc9a9af2fab295caf3">operations_research::MPSolverParameters::PRIMAL_TOLERANCE</a></div><divclass="ttdoc">Advanced usage: tolerance for primal feasibility of basic solutions.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01331">linear_solver.h:1331</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_ae7cbd08108e1636184f28c1a71c42393"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#ae7cbd08108e1636184f28c1a71c42393">operations_research::MPVariable::CplexInterface</a></div><divclass="ttdeci">friend class CplexInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01092">linear_solver.h:1092</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_a236f9752f4df4c5134617330a040ec8a"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#a236f9752f4df4c5134617330a040ec8a">operations_research::MPConstraint::SCIPInterface</a></div><divclass="ttdeci">friend class SCIPInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01231">linear_solver.h:1231</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a858f72e8c0c03339c8d797d41a6fd4b8"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a858f72e8c0c03339c8d797d41a6fd4b8">operations_research::MPSolver::SolverVersion</a></div><divclass="ttdeci">std::string SolverVersion() const</div><divclass="ttdoc">Returns a string describing the underlying solver and its version.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_ae1a3e0a695903c8e6effd524a7f92784"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#ae1a3e0a695903c8e6effd524a7f92784">operations_research::MPConstraint::GLPKInterface</a></div><divclass="ttdeci">friend class GLPKInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01230">linear_solver.h:1230</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_a7383308e6b9b63b18196798db342ce8a"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#a7383308e6b9b63b18196798db342ce8a">operations_research::MPObjective::BopInterface</a></div><divclass="ttdeci">friend class BopInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00987">linear_solver.h:987</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_afd922eb2bef96597c426557a8056f76d"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#afd922eb2bef96597c426557a8056f76d">operations_research::MPSolver::BasisStatus</a></div><divclass="ttdeci">BasisStatus</div><divclass="ttdoc">Advanced usage: possible basis status values for a variable and the slack variable of a linear constr...</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00612">linear_solver.h:612</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_acdb0e5753d20e4d3ece49a0451d24c4f"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#acdb0e5753d20e4d3ece49a0451d24c4f">operations_research::MPSolver::MPSolver</a></div><divclass="ttdeci">MPSolver(const std::string &name, OptimizationProblemType problem_type)</div><divclass="ttdoc">Create a solver with the given name and underlying solver backend.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_ab0f83070e72cee887e874382ee6d6958"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#ab0f83070e72cee887e874382ee6d6958">operations_research::MPSolver::LoadModelFromProto</a></div><divclass="ttdeci">MPSolverResponseStatus LoadModelFromProto(const MPModelProto &input_model, std::string *error_message)</div><divclass="ttdoc">Loads model from protocol buffer.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a5c083b37243075a00bf909840dc7c933"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a5c083b37243075a00bf909840dc7c933">operations_research::MPSolver::SLMInterface</a></div><divclass="ttdeci">friend class SLMInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00775">linear_solver.h:775</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_a615d9bd9c0c88aa56d31fdf95fbb5749"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#a615d9bd9c0c88aa56d31fdf95fbb5749">operations_research::MPObjective::AddLinearExpr</a></div><divclass="ttdeci">void AddLinearExpr(const LinearExpr &linear_expr)</div><divclass="ttdoc">Adds linear_expr to the current objective, does not change the direction.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a60944ecdcad88cfb4d4d32feea70c9b5"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a60944ecdcad88cfb4d4d32feea70c9b5">operations_research::MPSolver::CLPInterface</a></div><divclass="ttdeci">friend class CLPInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00769">linear_solver.h:769</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_a236f9752f4df4c5134617330a040ec8a"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#a236f9752f4df4c5134617330a040ec8a">operations_research::MPObjective::SCIPInterface</a></div><divclass="ttdeci">friend class SCIPInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00981">linear_solver.h:981</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a4eef77bb51bde41e69bed87ea44b86e1"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a4eef77bb51bde41e69bed87ea44b86e1">operations_research::MPSolver::ComputeExactConditionNumber</a></div><divclass="ttdeci">double ComputeExactConditionNumber() const</div><divclass="ttdoc">Advanced usage: computes the exact condition number of the current scaled basis: L1norm(B) * L1norm(i...</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_a215b66c2ff063ffbf5b538ee402304cba34d17de87fc7339e07256ca5319dfa67"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#a215b66c2ff063ffbf5b538ee402304cba34d17de87fc7339e07256ca5319dfa67">operations_research::MPSolverParameters::INCREMENTALITY_ON</a></div><divclass="ttdoc">Reuse results from previous solve as much as the underlying solver allows.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01375">linear_solver.h:1375</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_a397e8c8da87415d5408e2dd5ec3e9932"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#a397e8c8da87415d5408e2dd5ec3e9932">operations_research::MPSolverParameters::DoubleParam</a></div><divclass="ttdeci">DoubleParam</div><divclass="ttdoc">Enumeration of parameters that take continuous values.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01321">linear_solver.h:1321</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_adf1a0cc6a3736f3db9880392efe02f0e"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#adf1a0cc6a3736f3db9880392efe02f0e">operations_research::MPVariable::solution_value</a></div><divclass="ttdeci">double solution_value() const</div><divclass="ttdoc">Returns the value of the variable in the current solution.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_ab32654406932f9a6afcf44c4d5a143d2"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#ab32654406932f9a6afcf44c4d5a143d2">operations_research::MPSolver::OutputIsEnabled</a></div><divclass="ttdeci">bool OutputIsEnabled() const</div><divclass="ttdoc">Controls (or queries) the amount of output produced by the underlying solver.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a34caaebb9e2b365ef0ec449e870f5b5d"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a34caaebb9e2b365ef0ec449e870f5b5d">operations_research::MPSolver::variables</a></div><divclass="ttdeci">const std::vector< MPVariable * >& variables() const</div><divclass="ttdoc">Returns the array of variables handled by the MPSolver.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00278">linear_solver.h:278</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a4bf4b01cb836a567c90aeeea374ca2a2"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a4bf4b01cb836a567c90aeeea374ca2a2">operations_research::MPSolver::SetHint</a></div><divclass="ttdeci">void SetHint(std::vector< std::pair< const MPVariable *, double >> hint)</div><divclass="ttdoc">Sets a hint for solution.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_af5a7cf0c655f37c0b388a2ddcf32ac3e"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#af5a7cf0c655f37c0b388a2ddcf32ac3e">operations_research::MPConstraint::CBCInterface</a></div><divclass="ttdeci">friend class CBCInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01228">linear_solver.h:1228</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_ad01b184e1c49d8aabd15a268ff976ac8a3b48e7f264e3228b1494312657fd611a"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#ad01b184e1c49d8aabd15a268ff976ac8a3b48e7f264e3228b1494312657fd611a">operations_research::MPSolverParameters::PRESOLVE_ON</a></div><divclass="ttdoc">Presolve is on.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01353">linear_solver.h:1353</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_aee1ddf25e86286c16face31551751bda"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#aee1ddf25e86286c16face31551751bda">operations_research::MPVariable::KnapsackInterface</a></div><divclass="ttdeci">friend class KnapsackInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01098">linear_solver.h:1098</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_a9ec8e5b1017d35c4ce048c67330b0a10"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#a9ec8e5b1017d35c4ce048c67330b0a10">operations_research::MPObjective::BestBound</a></div><divclass="ttdeci">double BestBound() const</div><divclass="ttdoc">Returns the best objective bound.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_aa71d36872f416feaa853788a7a7a7ef8"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#aa71d36872f416feaa853788a7a7a7ef8">operations_research::MPObjective::Clear</a></div><divclass="ttdeci">void Clear()</div><divclass="ttdoc">Clears the offset, all variables and coefficients, and the optimization direction.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a6c754b527a347994b06eeb49a09ac222"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a6c754b527a347994b06eeb49a09ac222">operations_research::MPSolver::GLOPInterface</a></div><divclass="ttdeci">friend class GLOPInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00777">linear_solver.h:777</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolverParameters_html_a1816929ef3ed29e5884291472b1b8739"><divclass="ttname"><ahref="classoperations__research_1_1MPSolverParameters.html#a1816929ef3ed29e5884291472b1b8739">operations_research::MPSolverParameters::SetDoubleParam</a></div><divclass="ttdeci">void SetDoubleParam(MPSolverParameters::DoubleParam param, double value)</div><divclass="ttdoc">Sets a double parameter to a specific value.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a7383308e6b9b63b18196798db342ce8a"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a7383308e6b9b63b18196798db342ce8a">operations_research::MPSolver::BopInterface</a></div><divclass="ttdeci">friend class BopInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00778">linear_solver.h:778</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPObjective_html_addbc1b5c5e43ec84e2ffc8ec3ab9d830"><divclass="ttname"><ahref="classoperations__research_1_1MPObjective.html#addbc1b5c5e43ec84e2ffc8ec3ab9d830">operations_research::MPObjective::SetOptimizationDirection</a></div><divclass="ttdeci">void SetOptimizationDirection(bool maximize)</div><divclass="ttdoc">Sets the optimization direction (maximize: true or minimize: false).</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPConstraint_html_ae7cbd08108e1636184f28c1a71c42393"><divclass="ttname"><ahref="classoperations__research_1_1MPConstraint.html#ae7cbd08108e1636184f28c1a71c42393">operations_research::MPConstraint::CplexInterface</a></div><divclass="ttdeci">friend class CplexInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01234">linear_solver.h:1234</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a8f94769e8f7f3e051ba504be9ed1fa6f"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a8f94769e8f7f3e051ba504be9ed1fa6f">operations_research::MPSolver::iterations</a></div><divclass="ttdeci">int64 iterations() const</div><divclass="ttdoc">Returns the number of simplex iterations.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a99ad12b13903108544b594819a65b793"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a99ad12b13903108544b594819a65b793">operations_research::MPSolver::SolveWithProto</a></div><divclass="ttdeci">static void SolveWithProto(const MPModelRequest &model_request, MPSolutionResponse *response)</div><divclass="ttdoc">Solves the model encoded by a MPModelRequest protocol buffer and fills the solution encoded as a MPSo...</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_ab60f33fbc8132eda10c296885625b7d9"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#ab60f33fbc8132eda10c296885625b7d9">operations_research::MPSolver::MakeRowConstraint</a></div><divclass="ttdeci">MPConstraint * MakeRowConstraint()</div><divclass="ttdoc">Creates a constraint with -infinity and +infinity bounds.</div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPSolver_html_a573d479910e373f5d771d303e440587da0e6873a155f86a4695f463bf8601d05f"><divclass="ttname"><ahref="classoperations__research_1_1MPSolver.html#a573d479910e373f5d771d303e440587da0e6873a155f86a4695f463bf8601d05f">operations_research::MPSolver::NOT_SOLVED</a></div><divclass="ttdoc">not been solved yet.</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l00417">linear_solver.h:417</a></div></div>
<divclass="ttc"id="aclassoperations__research_1_1MPVariable_html_ae1a3e0a695903c8e6effd524a7f92784"><divclass="ttname"><ahref="classoperations__research_1_1MPVariable.html#ae1a3e0a695903c8e6effd524a7f92784">operations_research::MPVariable::GLPKInterface</a></div><divclass="ttdeci">friend class GLPKInterface</div><divclass="ttdef"><b>Definition:</b><ahref="linear__solver_8h_source.html#l01088">linear_solver.h:1088</a></div></div>