<ahref="linear__relaxation_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-2021 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="l00005"></a><spanclass="lineno"> 5</span> <spanclass="comment">//</span></div><divclass="line"><aname="l00006"></a><spanclass="lineno"> 6</span> <spanclass="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><divclass="line"><aname="l00007"></a><spanclass="lineno"> 7</span> <spanclass="comment">//</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="l00013"></a><spanclass="lineno"> 13</span> </div><divclass="line"><aname="l00014"></a><spanclass="lineno"> 14</span> <spanclass="preprocessor">#ifndef OR_TOOLS_SAT_LINEAR_RELAXATION_H_</span></div><divclass="line"><aname="l00015"></a><spanclass="lineno"> 15</span> <spanclass="preprocessor">#define OR_TOOLS_SAT_LINEAR_RELAXATION_H_</span></div><divclass="line"><aname="l00016"></a><spanclass="lineno"> 16</span> </div><divclass="line"><aname="l00017"></a><spanclass="lineno"> 17</span> <spanclass="preprocessor">#include <vector></span></div><divclass="line"><aname="l00018"></a><spanclass="lineno"> 18</span> </div><divclass="line"><aname="l00019"></a><spanclass="lineno"> 19</span> <spanclass="preprocessor">#include "<aclass="code"href="cp__model__mapping_8h.html">ortools/sat/cp_model_mapping.h</a>"</span></div><divclass="line"><aname="l00020"></a><spanclass="lineno"> 20</span> <spanclass="preprocessor">#include "<aclass="code"href="integer_8h.html">ortools/sat/integer.h</a>"</span></div><divclass="line"><aname="l00021"></a><spanclass="lineno"> 21</span> <spanclass="preprocessor">#include "<aclass="code"href="sat_2linear__constraint_8h.html">ortools/sat/linear_constraint.h</a>"</span></div><divclass="line"><aname="l00022"></a><spanclass="lineno"> 22</span> <spanclass="preprocessor">#include "<aclass="code"href="linear__programming__constraint_8h.html">ortools/sat/linear_programming_constraint.h</a>"</span></div><divclass="line"><aname="l00023"></a><spanclass="lineno"> 23</span> <spanclass="preprocessor">#include "<aclass="code"href="sat_2model_8h.html">ortools/sat/model.h</a>"</span></div><divclass="line"><aname="l00024"></a><spanclass="lineno"> 24</span> </div><divclass="line"><aname="l00025"></a><spanclass="lineno"> 25</span> <spanclass="keyword">namespace </span><aclass="code"href="
<divclass="ttc"id="namespaceoperations__research_1_1sat_html_a12d2d24c73fef12818b04df8d5cc368f"><divclass="ttname"><ahref="namespaceoperations__research_1_1sat.html#a12d2d24c73fef12818b04df8d5cc368f">operations_research::sat::AppendLinMaxRelaxationPart1</a></div><divclass="ttdeci">void AppendLinMaxRelaxationPart1(const ConstraintProto &ct, Model *model, LinearRelaxation *relaxation)</div><divclass="ttdef"><b>Definition:</b><ahref="linear__relaxation_8cc_source.html#l00826">linear_relaxation.cc:826</a></div></div>
<divclass="ttc"id="namespaceoperations__research_1_1sat_html_a5564bcb1461ad3cbce7f744c3fb58c6b"><divclass="ttname"><ahref="namespaceoperations__research_1_1sat.html#a5564bcb1461ad3cbce7f744c3fb58c6b">operations_research::sat::AppendFullEncodingRelaxation</a></div><divclass="ttdeci">bool AppendFullEncodingRelaxation(IntegerVariable var, const Model &model, LinearRelaxation *relaxation)</div><divclass="ttdef"><b>Definition:</b><ahref="linear__relaxation_8cc_source.html#l00041">linear_relaxation.cc:41</a></div></div>
<divclass="ttc"id="namespaceoperations__research_1_1sat_html_a2dacc587a4c4f61238d9c8e85a3cf2dc"><divclass="ttname"><ahref="namespaceoperations__research_1_1sat.html#a2dacc587a4c4f61238d9c8e85a3cf2dc">operations_research::sat::ComputeLinearRelaxation</a></div><divclass="ttdeci">void ComputeLinearRelaxation(const CpModelProto &model_proto, int linearization_level, Model *m, LinearRelaxation *relaxation)</div><divclass="ttdef"><b>Definition:</b><ahref="linear__relaxation_8cc_source.html#l01449">linear_relaxation.cc:1449</a></div></div>
<divclass="ttc"id="classoperations__research_1_1sat_1_1_model_html"><divclass="ttname"><ahref="classoperations__research_1_1sat_1_1_model.html">operations_research::sat::Model</a></div><divclass="ttdoc">Class that owns everything related to a particular optimization model.</div><divclass="ttdef"><b>Definition:</b><ahref="sat_2model_8h_source.html#l00038">sat/model.h:38</a></div></div>
<divclass="ttc"id="namespaceoperations__research_1_1sat_html_a5f9a5fb599bce0a25848485d9b5033a0"><divclass="ttname"><ahref="namespaceoperations__research_1_1sat.html#a5f9a5fb599bce0a25848485d9b5033a0">operations_research::sat::AppendIntervalRelaxation</a></div><divclass="ttdeci">void AppendIntervalRelaxation(const ConstraintProto &ct, Model *model, LinearRelaxation *relaxation)</div><divclass="ttdef"><b>Definition:</b><ahref="linear__relaxation_8cc_source.html#l00665">linear_relaxation.cc:665</a></div></div>
<divclass="ttc"id="namespaceoperations__research_1_1sat_html_ac5b14d2bd73645b629f45c44317a5b4e"><divclass="ttname"><ahref="namespaceoperations__research_1_1sat.html#ac5b14d2bd73645b629f45c44317a5b4e">operations_research::sat::AppendIntMaxRelaxation</a></div><divclass="ttdeci">void AppendIntMaxRelaxation(const ConstraintProto &ct, int linearization_level, Model *model, LinearRelaxation *relaxation)</div><divclass="ttdef"><b>Definition:</b><ahref="linear__relaxation_8cc_source.html#l00552">linear_relaxation.cc:552</a></div></div>
<divclass="ttc"id="namespaceoperations__research_1_1sat_html_aff14a4092356fceea657393b7b234b7f"><divclass="ttname"><ahref="namespaceoperations__research_1_1sat.html#aff14a4092356fceea657393b7b234b7f">operations_research::sat::AppendPartialGreaterThanEncodingRelaxation</a></div><divclass="ttdeci">void AppendPartialGreaterThanEncodingRelaxation(IntegerVariable var, const Model &model, LinearRelaxation *relaxation)</div><divclass="ttdef"><b>Definition:</b><ahref="linear__relaxation_8cc_source.html#l00248">linear_relaxation.cc:248</a></div></div>
<divclass="ttc"id="namespaceoperations__research_1_1sat_html_a5df2c2953d660d96c11967cd903a55fe"><divclass="ttname"><ahref="namespaceoperations__research_1_1sat.html#a5df2c2953d660d96c11967cd903a55fe">operations_research::sat::AppendLinearConstraintRelaxation</a></div><divclass="ttdeci">void AppendLinearConstraintRelaxation(const ConstraintProto &ct, bool linearize_enforced_constraints, Model *model, LinearRelaxation *relaxation)</div><divclass="ttdef"><b>Definition:</b><ahref="linear__relaxation_8cc_source.html#l00971">linear_relaxation.cc:971</a></div></div>
<divclass="ttc"id="namespaceoperations__research_1_1sat_html_a53d4cc6dea5adf2353b4af43bc1bb2f0"><divclass="ttname"><ahref="namespaceoperations__research_1_1sat.html#a53d4cc6dea5adf2353b4af43bc1bb2f0">operations_research::sat::AppendBoolAndRelaxation</a></div><divclass="ttdeci">void AppendBoolAndRelaxation(const ConstraintProto &ct, Model *model, LinearRelaxation *relaxation)</div><divclass="ttdef"><b>Definition:</b><ahref="linear__relaxation_8cc_source.html#l00392">linear_relaxation.cc:392</a></div></div>
<divclass="ttc"id="namespaceoperations__research_1_1sat_html_a1ccfd912c87b8ca68a7fe0d62d7f49bc"><divclass="ttname"><ahref="namespaceoperations__research_1_1sat.html#a1ccfd912c87b8ca68a7fe0d62d7f49bc">operations_research::sat::TryToLinearizeConstraint</a></div><divclass="ttdeci">void TryToLinearizeConstraint(const CpModelProto &model_proto, const ConstraintProto &ct, int linearization_level, Model *model, LinearRelaxation *relaxation)</div><divclass="ttdef"><b>Definition:</b><ahref="linear__relaxation_8cc_source.html#l01042">linear_relaxation.cc:1042</a></div></div>
<divclass="ttc"id="namespaceoperations__research_1_1sat_html_a3bb33b0ea560d1818c283bacd4b3838e"><divclass="ttname"><ahref="namespaceoperations__research_1_1sat.html#a3bb33b0ea560d1818c283bacd4b3838e">operations_research::sat::AddNoOverlapCutGenerator</a></div><divclass="ttdeci">void AddNoOverlapCutGenerator(const ConstraintProto &ct, Model *m, LinearRelaxation *relaxation)</div><divclass="ttdef"><b>Definition:</b><ahref="linear__relaxation_8cc_source.html#l01252">linear_relaxation.cc:1252</a></div></div>
<divclass="ttc"id="namespaceoperations__research_1_1sat_html_a8b2517dbe721a55849b77267941df8d1"><divclass="ttname"><ahref="namespaceoperations__research_1_1sat.html#a8b2517dbe721a55849b77267941df8d1">operations_research::sat::AppendExactlyOneRelaxation</a></div><divclass="ttdeci">void AppendExactlyOneRelaxation(const ConstraintProto &ct, Model *model, LinearRelaxation *relaxation)</div><divclass="ttdef"><b>Definition:</b><ahref="linear__relaxation_8cc_source.html#l00433">linear_relaxation.cc:433</a></div></div>
<divclass="ttc"id="namespaceoperations__research_1_1sat_html_a87f6694cfc0f549668a974462118f99e"><divclass="ttname"><ahref="namespaceoperations__research_1_1sat.html#a87f6694cfc0f549668a974462118f99e">operations_research::sat::AppendMaxAffineRelaxation</a></div><divclass="ttdeci">void AppendMaxAffineRelaxation(const ConstraintProto &ct, Model *model, LinearRelaxation *relaxation)</div><divclass="ttdef"><b>Definition:</b><ahref="linear__relaxation_8cc_source.html#l00848">linear_relaxation.cc:848</a></div></div>
<divclass="ttc"id="namespaceoperations__research_1_1sat_html_a14b7bbca8fef62918577fe4618090e66"><divclass="ttname"><ahref="namespaceoperations__research_1_1sat.html#a14b7bbca8fef62918577fe4618090e66">operations_research::sat::AppendBoolOrRelaxation</a></div><divclass="ttdeci">void AppendBoolOrRelaxation(const ConstraintProto &ct, Model *model, LinearRelaxation *relaxation)</div><divclass="ttdef"><b>Definition:</b><ahref="linear__relaxation_8cc_source.html#l00378">linear_relaxation.cc:378</a></div></div>
<divclass="ttc"id="namespaceoperations__research_1_1sat_html_a342b60cdebf6f2d2bc0b7228f53b55dc"><divclass="ttname"><ahref="namespaceoperations__research_1_1sat.html#a342b60cdebf6f2d2bc0b7228f53b55dc">operations_research::sat::TryToAddCutGenerators</a></div><divclass="ttdeci">void TryToAddCutGenerators(const ConstraintProto &ct, int linearization_level, Model *m, LinearRelaxation *relaxation)</div><divclass="ttdef"><b>Definition:</b><ahref="linear__relaxation_8cc_source.html#l01325">linear_relaxation.cc:1325</a></div></div>
<divclass="ttc"id="namespaceoperations__research_1_1sat_html_a7545a11562b86718d401f1aeb5781c2a"><divclass="ttname"><ahref="namespaceoperations__research_1_1sat.html#a7545a11562b86718d401f1aeb5781c2a">operations_research::sat::AddCircuitCutGenerator</a></div><divclass="ttdeci">void AddCircuitCutGenerator(const ConstraintProto &ct, Model *m, LinearRelaxation *relaxation)</div><divclass="ttdef"><b>Definition:</b><ahref="linear__relaxation_8cc_source.html#l01120">linear_relaxation.cc:1120</a></div></div>
<divclass="ttc"id="namespaceoperations__research_1_1sat_html_aa490b08ec514e9c567ff098d53353db1"><divclass="ttname"><ahref="namespaceoperations__research_1_1sat.html#aa490b08ec514e9c567ff098d53353db1">operations_research::sat::AppendPartialEncodingRelaxation</a></div><divclass="ttdeci">void AppendPartialEncodingRelaxation(IntegerVariable var, const Model &model, LinearRelaxation *relaxation)</div><divclass="ttdef"><b>Definition:</b><ahref="linear__relaxation_8cc_source.html#l00173">linear_relaxation.cc:173</a></div></div>
<divclass="ttc"id="namespaceoperations__research_html"><divclass="ttname"><ahref="namespaceoperations__research.html">operations_research</a></div><divclass="ttdoc">Collection of objects used to extend the Constraint Solver library.</div><divclass="ttdef"><b>Definition:</b><ahref="dense__doubly__linked__list_8h_source.html#l00021">dense_doubly_linked_list.h:21</a></div></div>
<divclass="ttc"id="namespaceoperations__research_1_1sat_html_ac2091b9e5e6e887337a566d5ca547234"><divclass="ttname"><ahref="namespaceoperations__research_1_1sat.html#ac2091b9e5e6e887337a566d5ca547234">operations_research::sat::AppendRoutesRelaxation</a></div><divclass="ttdeci">void AppendRoutesRelaxation(const ConstraintProto &ct, Model *model, LinearRelaxation *relaxation)</div><divclass="ttdef"><b>Definition:</b><ahref="linear__relaxation_8cc_source.html#l00612">linear_relaxation.cc:612</a></div></div>
<divclass="ttc"id="namespaceoperations__research_1_1sat_html_a4dcd5302962cdb3bacde2ad477e5a187"><divclass="ttname"><ahref="namespaceoperations__research_1_1sat.html#a4dcd5302962cdb3bacde2ad477e5a187">operations_research::sat::AddIntProdCutGenerator</a></div><divclass="ttdeci">void AddIntProdCutGenerator(const ConstraintProto &ct, int linearization_level, Model *m, LinearRelaxation *relaxation)</div><divclass="ttdef"><b>Definition:</b><ahref="linear__relaxation_8cc_source.html#l01160">linear_relaxation.cc:1160</a></div></div>