2020-09-01 16:00:33 +02:00
<!-- HTML header for doxygen 1.8.18 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv = "Content-Type" content = "text/xhtml;charset=UTF-8" / >
< meta http-equiv = "X-UA-Compatible" content = "IE=9" / >
2022-01-16 18:02:36 +01:00
< meta name = "generator" content = "Doxygen 1.8.15" / >
2020-09-01 16:00:33 +02:00
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
< title > OR-Tools: christofides.h Source File< / title >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "jquery.js" > < / script >
< script type = "text/javascript" src = "dynsections.js" > < / script >
< link href = "navtree.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "resize.js" > < / script >
< script type = "text/javascript" src = "navtreedata.js" > < / script >
< script type = "text/javascript" src = "navtree.js" > < / script >
2022-01-16 18:02:36 +01:00
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */< / script >
2020-09-01 16:00:33 +02:00
< link href = "search/search.css" rel = "stylesheet" type = "text/css" / >
< script type = "text/javascript" src = "search/searchdata.js" > < / script >
< script type = "text/javascript" src = "search/search.js" > < / script >
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" / >
< link href = "styleSheet.tmp.css" rel = "stylesheet" type = "text/css" / >
< / head >
< body >
< div id = "top" > <!-- do not remove this div, it is closed by doxygen! -->
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
< tr style = "height: 56px;" >
< td id = "projectlogo" > < img alt = "Logo" src = "orLogo.png" / > < / td >
< td id = "projectalign" style = "padding-left: 0.5em;" >
< div id = "projectname" > OR-Tools
2021-12-14 13:41:01 +01:00
  < span id = "projectnumber" > 9.2< / span >
2020-09-01 16:00:33 +02:00
< / div >
< / td >
< / tr >
< / tbody >
< / table >
< / div >
<!-- end header part -->
2022-01-16 18:02:36 +01:00
<!-- Generated by Doxygen 1.8.15 -->
2020-09-01 16:00:33 +02:00
< script type = "text/javascript" >
2022-01-16 18:02:36 +01:00
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
2020-09-01 16:00:33 +02:00
/* @license-end */
< / script >
< script type = "text/javascript" src = "menudata.js" > < / script >
< script type = "text/javascript" src = "menu.js" > < / script >
< script type = "text/javascript" >
2022-01-16 18:02:36 +01:00
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
2020-09-01 16:00:33 +02:00
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
2022-01-16 18:02:36 +01:00
/* @license-end */< / script >
2020-09-01 16:00:33 +02:00
< div id = "main-nav" > < / div >
< / div > <!-- top -->
< div id = "side-nav" class = "ui-resizable side-nav-resizable" >
< div id = "nav-tree" >
< div id = "nav-tree-contents" >
< div id = "nav-sync" class = "sync" > < / div >
< / div >
< / div >
< div id = "splitbar" style = "-moz-user-select:none;"
class="ui-resizable-handle">
< / div >
< / div >
< script type = "text/javascript" >
2022-01-16 18:02:36 +01:00
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('christofides_8h_source.html','');});
2020-09-01 16:00:33 +02:00
/* @license-end */
< / script >
< div id = "doc-content" >
<!-- window showing the filter options -->
< div id = "MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
< / div >
<!-- iframe showing the search results (closed by default) -->
< div id = "MSearchResultsWindow" >
< iframe src = "javascript:void(0)" frameborder = "0"
name="MSearchResults" id="MSearchResults">
< / iframe >
< / div >
< div class = "header" >
2022-01-16 18:02:36 +01:00
< div class = "headertitle" >
< div class = "title" > christofides.h< / div > < / div >
2020-09-01 16:00:33 +02:00
< / div > <!-- header -->
< div class = "contents" >
2022-01-16 18:02:36 +01:00
< a href = "christofides_8h.html" > Go to the documentation of this file.< / a > < div class = "fragment" > < div class = "line" > < a name = "l00001" > < / a > < span class = "lineno" > 1< / span >   < span class = "comment" > // Copyright 2010-2021 Google LLC< / span > < / div > < div class = "line" > < a name = "l00002" > < / a > < span class = "lineno" > 2< / span >   < span class = "comment" > // Licensed under the Apache License, Version 2.0 (the " License" );< / span > < / div > < div class = "line" > < a name = "l00003" > < / a > < span class = "lineno" > 3< / span >   < span class = "comment" > // you may not use this file except in compliance with the License.< / span > < / div > < div class = "line" > < a name = "l00004" > < / a > < span class = "lineno" > 4< / span >   < span class = "comment" > // You may obtain a copy of the License at< / span > < / div > < div class = "line" > < a name = "l00005" > < / a > < span class = "lineno" > 5< / span >   < span class = "comment" > //< / span > < / div > < div class = "line" > < a name = "l00006" > < / a > < span class = "lineno" > 6< / span >   < span class = "comment" > // http://www.apache.org/licenses/LICENSE-2.0< / span > < / div > < div class = "line" > < a name = "l00007" > < / a > < span class = "lineno" > 7< / span >   < span class = "comment" > //< / span > < / div > < div class = "line" > < a name = "l00008" > < / a > < span class = "lineno" > 8< / span >   < span class = "comment" > // Unless required by applicable law or agreed to in writing, software< / span > < / div > < div class = "line" > < a name = "l00009" > < / a > < span class = "lineno" > 9< / span >   < span class = "comment" > // distributed under the License is distributed on an " AS IS" BASIS,< / span > < / div > < div class = "line" > < a name = "l00010" > < / a > < span class = "lineno" > 10< / span >   < span class = "comment" > // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.< / span > < / div > < div class = "line" > < a name = "l00011" > < / a > < span class = "lineno" > 11< / span >   < span class = "comment" > // See the License for the specific language governing permissions and< / span > < / div > < div class = "line" > < a name = "l00012" > < / a > < span class = "lineno" > 12< / span >   < span class = "comment" > // limitations under the License.< / span > < / div > < div class = "line" > < a name = "l00013" > < / a > < span class = "lineno" > 13< / span >   < / div > < div class = "line" > < a name = "l00014" > < / a > < span class = "lineno" > 14< / span >   < span class = "comment" > // ChristofidesPathSolver computes an approximate solution to the Traveling< / span > < / div > < div class = "line" > < a name = "l00015" > < / a > < span class = "lineno" > 15< / span >   < span class = "comment" > // Salesman Problen using the Christofides algorithm (c.f.< / span > < / div > < div class = "line" > < a name = "l00016" > < / a > < span class = "lineno" > 16< / span >   < span class = "comment" > // https://en.wikipedia.org/wiki/Christofides_algorithm).< / span > < / div > < div class = "line" > < a name = "l00017" > < / a > < span class = "lineno" > 17< / span >   < span class = "comment" > // Note that the algorithm guarantees finding a solution within 3/2 of the< / span > < / div > < div class = "line" > < a name = "l00018" > < / a > < span class = "lineno" > 18< / span >   < span class = "comment" > // optimum when using minimum weight perfect matching in the matching phase.< / span > < / div > < div class = "line" > < a name = "l00019" > < / a > < span class = "lineno" > 19< / span >   < span class = "comment" > // The complexity of the algorithm is dominated by the complexity of the< / span > < / div > < div class = "line" > < a name = "l00020" > < / a > < span class = "lineno" > 20< / span >   < span class = "comment" > // matching algorithm: O(n^2 * log(n)) if minimal matching is used, or at least< / span > < / div > < div class = "line" > < a name = "l00021" > < / a > < span class = "lineno" > 21< / span >   < span class = "comment" > // O(n^3) or O(nmlog(n)) otherwise, depending on the implementation of the< / span > < / div > < div class = "line" > < a name = "l00022" > < / a > < span class = "lineno" > 22< / span >   < span class = "comment" > // perfect matching algorithm used, where n is the number of nodes and m is the< / span > < / div > < div class = "line" > < a name = "l00023" > < / a > < span class = "lineno" > 23< / span >   < span class = "comment" > // number of edges of the subgraph induced by odd-degree nodes of the minimum< / span > < / div > < div class = "line" > < a name = "l00024" > < / a > < span class = "lineno" > 24< / span >   < span class = "comment" > // spanning t
< div class = "ttc" id = "namespaceoperations__research_html_a7ae31ba4c3b4899478e53ca13df35dfc" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a7ae31ba4c3b4899478e53ca13df35dfc" > operations_research::NodeIndex< / a > < / div > < div class = "ttdeci" > int32_t NodeIndex< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "ebert__graph_8h_source.html#l00193" > ebert_graph.h:193< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_constraint_proto_html_a77bf5d8610054e5bd74cf0048bce5f25" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_constraint_proto.html#a77bf5d8610054e5bd74cf0048bce5f25" > operations_research::MPConstraintProto::set_lower_bound< / a > < / div > < div class = "ttdeci" > void set_lower_bound(double value)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8pb_8h_source.html#l05137" > linear_solver.pb.h:5137< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_solver_html_a573d479910e373f5d771d303e440587d" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_solver.html#a573d479910e373f5d771d303e440587d" > operations_research::MPSolver::ResultStatus< / a > < / div > < div class = "ttdeci" > ResultStatus< / div > < div class = "ttdoc" > The status of solving the problem.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8h_source.html#l00439" > linear_solver.h:439< / a > < / div > < / div >
< div class = "ttc" id = "classutil_1_1_reverse_arc_list_graph_html" > < div class = "ttname" > < a href = "classutil_1_1_reverse_arc_list_graph.html" > util::ReverseArcListGraph< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "graph_8h_source.html#l00462" > graph.h:462< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_christofides_path_solver_html_a942f29030f08426e7e318204e987e2f7" > < div class = "ttname" > < a href = "classoperations__research_1_1_christofides_path_solver.html#a942f29030f08426e7e318204e987e2f7" > operations_research::ChristofidesPathSolver::Solve< / a > < / div > < div class = "ttdeci" > bool Solve()< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "christofides_8h_source.html#l00252" > christofides.h:252< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_constraint_proto_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_constraint_proto.html" > operations_research::MPConstraintProto< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8pb_8h_source.html#l00510" > linear_solver.pb.h:510< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_solver_html_a76c87990aabadd148304b95332a60ff8a83b85675904f261c34c280b2abdcd9ae" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_solver.html#a76c87990aabadd148304b95332a60ff8a83b85675904f261c34c280b2abdcd9ae" > operations_research::MPSolver::SCIP_MIXED_INTEGER_PROGRAMMING< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8h_source.html#l00200" > linear_solver.h:200< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_min_cost_perfect_matching_html_a67a0db04d321a74b7e7fcfd3f1a3f70b" > < div class = "ttname" > < a href = "classoperations__research_1_1_min_cost_perfect_matching.html#a67a0db04d321a74b7e7fcfd3f1a3f70b" > operations_research::MinCostPerfectMatching::Status< / a > < / div > < div class = "ttdeci" > Status< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "perfect__matching_8h_source.html#l00083" > perfect_matching.h:83< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_variable_proto_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_variable_proto.html" > operations_research::MPVariableProto< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8pb_8h_source.html#l00272" > linear_solver.pb.h:272< / a > < / div > < / div >
< div class = "ttc" id = "linear__solver_8h_html" > < div class = "ttname" > < a href = "linear__solver_8h.html" > linear_solver.h< / a > < / div > < div class = "ttdoc" > A C++ wrapper that provides a simple and unified interface to several linear programming and mixed in...< / div > < / div >
< div class = "ttc" id = "gurobi__interface_8cc_html_a0728f23c9a47655d38e0bf1a2f200bcf" > < div class = "ttname" > < a href = "gurobi__interface_8cc.html#a0728f23c9a47655d38e0bf1a2f200bcf" > model< / a > < / div > < div class = "ttdeci" > GRBmodel * model< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "gurobi__interface_8cc_source.html#l00274" > gurobi_interface.cc:274< / a > < / div > < / div >
< div class = "ttc" id = "namespaceoperations__research_1_1sat_html_af904018d9a1c9983624b1ce0331f2bf5" > < div class = "ttname" > < a href = "namespaceoperations__research_1_1sat.html#af904018d9a1c9983624b1ce0331f2bf5" > operations_research::sat::Solve< / a > < / div > < div class = "ttdeci" > CpSolverResponse Solve(const CpModelProto & model_proto)< / div > < div class = "ttdoc" > Solves the given CpModelProto and returns an instance of CpSolverResponse.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "cp__model__solver_8cc_source.html#l03470" > cp_model_solver.cc:3470< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_christofides_path_solver_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_christofides_path_solver.html" > operations_research::ChristofidesPathSolver< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "christofides_8h_source.html#l00050" > christofides.h:50< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_christofides_path_solver_html_a87145cf1f5a36d27fd856596a23d495a" > < div class = "ttname" > < a href = "classoperations__research_1_1_christofides_path_solver.html#a87145cf1f5a36d27fd856596a23d495a" > operations_research::ChristofidesPathSolver::ChristofidesPathSolver< / a > < / div > < div class = "ttdeci" > ChristofidesPathSolver(NodeIndex num_nodes, CostFunction costs)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "christofides_8h_source.html#l00220" > christofides.h:220< / a > < / div > < / div >
< div class = "ttc" id = "routing__flow_8cc_html_a64e7efc5529154ba56903e75f5300990" > < div class = "ttname" > < a href = "routing__flow_8cc.html#a64e7efc5529154ba56903e75f5300990" > tail< / a > < / div > < div class = "ttdeci" > int64_t tail< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "routing__flow_8cc_source.html#l00149" > routing_flow.cc:149< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_christofides_path_solver_html_a3076d9001536ea98d419faa81e7d8a47" > < div class = "ttname" > < a href = "classoperations__research_1_1_christofides_path_solver.html#a3076d9001536ea98d419faa81e7d8a47" > operations_research::ChristofidesPathSolver::TravelingSalesmanPath< / a > < / div > < div class = "ttdeci" > std::vector< NodeIndex > TravelingSalesmanPath()< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "christofides_8h_source.html#l00241" > christofides.h:241< / a > < / div > < / div >
< div class = "ttc" id = "constraint__solver_2table_8cc_html_a9293e4d29cac928301645070dd307683" > < div class = "ttname" > < a href = "constraint__solver_2table_8cc.html#a9293e4d29cac928301645070dd307683" > b< / a > < / div > < div class = "ttdeci" > int64_t b< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_2table_8cc_source.html#l00047" > constraint_solver/table.cc:47< / a > < / div > < / div >
< div class = "ttc" id = "integral__types_8h_html" > < div class = "ttname" > < a href = "integral__types_8h.html" > integral_types.h< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_variable_proto_html_ac91622e1f864308bd349b37d5b1a9528" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_variable_proto.html#ac91622e1f864308bd349b37d5b1a9528" > operations_research::MPVariableProto::set_upper_bound< / a > < / div > < div class = "ttdeci" > void set_upper_bound(double value)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8pb_8h_source.html#l04858" > linear_solver.pb.h:4858< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_constraint_proto_html_ab6d1169646b89c2fb993c5b2e40eb925" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_constraint_proto.html#ab6d1169646b89c2fb993c5b2e40eb925" > operations_research::MPConstraintProto::add_coefficient< / a > < / div > < div class = "ttdeci" > void add_coefficient(double value)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8pb_8h_source.html#l05091" > linear_solver.pb.h:5091< / a > < / div > < / div >
< div class = "ttc" id = "namespaceoperations__research_html_aa63055860fc53f8eed56d23d2571c180" > < div class = "ttname" > < a href = "namespaceoperations__research.html#aa63055860fc53f8eed56d23d2571c180" > operations_research::BuildEulerianTourFromNode< / a > < / div > < div class = "ttdeci" > std::vector< NodeIndex > BuildEulerianTourFromNode(const Graph & graph, NodeIndex root)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "eulerian__path_8h_source.html#l00116" > eulerian_path.h:116< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_solver_html_a573d479910e373f5d771d303e440587da2579881e7c83261bc21bafb5a5c92cad" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_solver.html#a573d479910e373f5d771d303e440587da2579881e7c83261bc21bafb5a5c92cad" > operations_research::MPSolver::OPTIMAL< / a > < / div > < div class = "ttdoc" > optimal.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8h_source.html#l00441" > linear_solver.h:441< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_christofides_path_solver_html_a1d4f082de5fc3eed348d65eb30b5f3e7ab66d0823917c9351a4cb68dff77f445a" > < div class = "ttname" > < a href = "classoperations__research_1_1_christofides_path_solver.html#a1d4f082de5fc3eed348d65eb30b5f3e7ab66d0823917c9351a4cb68dff77f445a" > operations_research::ChristofidesPathSolver::MatchingAlgorithm::MINIMUM_WEIGHT_MATCHING< / a > < / div > < / div >
< div class = "ttc" id = "minimum__spanning__tree_8h_html" > < div class = "ttname" > < a href = "minimum__spanning__tree_8h.html" > minimum_spanning_tree.h< / a > < / div > < / div >
< div class = "ttc" id = "pack_8cc_html_a4255f714cea26cdd64f6a0ee72d34a8c" > < div class = "ttname" > < a href = "pack_8cc.html#a4255f714cea26cdd64f6a0ee72d34a8c" > weight< / a > < / div > < div class = "ttdeci" > int64_t weight< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "pack_8cc_source.html#l00510" > pack.cc:510< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_christofides_path_solver_html_ae2b64dddd58baf1bc5e01cb14971e52e" > < div class = "ttname" > < a href = "classoperations__research_1_1_christofides_path_solver.html#ae2b64dddd58baf1bc5e01cb14971e52e" > operations_research::ChristofidesPathSolver::SetMatchingAlgorithm< / a > < / div > < div class = "ttdeci" > void SetMatchingAlgorithm(MatchingAlgorithm matching)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "christofides_8h_source.html#l00069" > christofides.h:69< / a > < / div > < / div >
< div class = "ttc" id = "namespaceoperations__research_html_a111f44b9b9cf67a8e8d83794ac9f5291" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a111f44b9b9cf67a8e8d83794ac9f5291" > operations_research::CapAdd< / a > < / div > < div class = "ttdeci" > int64_t CapAdd(int64_t x, int64_t y)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "saturated__arithmetic_8h_source.html#l00126" > saturated_arithmetic.h:126< / a > < / div > < / div >
< div class = "ttc" id = "namespaceoperations__research_html_aecf320bda6e95d1edaf3a546673e3e6b" > < div class = "ttname" > < a href = "namespaceoperations__research.html#aecf320bda6e95d1edaf3a546673e3e6b" > operations_research::ArcIndex< / a > < / div > < div class = "ttdeci" > int32_t ArcIndex< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "ebert__graph_8h_source.html#l00202" > ebert_graph.h:202< / a > < / div > < / div >
< div class = "ttc" id = "base_2logging_8h_html_a46e69120fbd3b36e6960e096d23b66f0" > < div class = "ttname" > < a href = "base_2logging_8h.html#a46e69120fbd3b36e6960e096d23b66f0" > DCHECK_NE< / a > < / div > < div class = "ttdeci" > #define DCHECK_NE(val1, val2)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "base_2logging_8h_source.html#l00891" > base/logging.h:891< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_constraint_proto_html_a6eb30abca090afff604b4e53304e287d" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_constraint_proto.html#a6eb30abca090afff604b4e53304e287d" > operations_research::MPConstraintProto::add_var_index< / a > < / div > < div class = "ttdeci" > void add_var_index(int32_t value)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8pb_8h_source.html#l05044" > linear_solver.pb.h:5044< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_variable_proto_html_a03ba55fe410af563250a79463d9eb7c6" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_variable_proto.html#a03ba55fe410af563250a79463d9eb7c6" > operations_research::MPVariableProto::set_is_integer< / a > < / div > < div class = "ttdeci" > void set_is_integer(bool value)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8pb_8h_source.html#l04914" > linear_solver.pb.h:4914< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_christofides_path_solver_html_a1d4f082de5fc3eed348d65eb30b5f3e7a201b88f6589fa1271207fe29f583dc96" > < div class = "ttname" > < a href = "classoperations__research_1_1_christofides_path_solver.html#a1d4f082de5fc3eed348d65eb30b5f3e7a201b88f6589fa1271207fe29f583dc96" > operations_research::ChristofidesPathSolver::MatchingAlgorithm::MINIMUM_WEIGHT_MATCHING_WITH_MIP< / a > < / div > < / div >
< div class = "ttc" id = "base_2logging_8h_html_aae2dc65d9ea248d54bf39daa986dd295" > < div class = "ttname" > < a href = "base_2logging_8h.html#aae2dc65d9ea248d54bf39daa986dd295" > DCHECK_GE< / a > < / div > < div class = "ttdeci" > #define DCHECK_GE(val1, val2)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "base_2logging_8h_source.html#l00894" > base/logging.h:894< / a > < / div > < / div >
< div class = "ttc" id = "cp__model__solver_8cc_html_abcd33b18ce6d5a90a4ba5c37cfa58829" > < div class = "ttname" > < a href = "cp__model__solver_8cc.html#abcd33b18ce6d5a90a4ba5c37cfa58829" > response< / a > < / div > < div class = "ttdeci" > SharedResponseManager * response< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "cp__model__solver_8cc_source.html#l01953" > cp_model_solver.cc:1953< / a > < / div > < / div >
< div class = "ttc" id = "saturated__arithmetic_8h_html" > < div class = "ttname" > < a href = "saturated__arithmetic_8h.html" > saturated_arithmetic.h< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_solver_html_a76c87990aabadd148304b95332a60ff8ad183dc62c63346a3b984b93fbda0137a" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_solver.html#a76c87990aabadd148304b95332a60ff8ad183dc62c63346a3b984b93fbda0137a" > operations_research::MPSolver::CBC_MIXED_INTEGER_PROGRAMMING< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8h_source.html#l00202" > linear_solver.h:202< / a > < / div > < / div >
< div class = "ttc" id = "base_2logging_8h_html" > < div class = "ttname" > < a href = "base_2logging_8h.html" > logging.h< / a > < / div > < / div >
< div class = "ttc" id = "graph_8h_html" > < div class = "ttname" > < a href = "graph_8h.html" > graph.h< / a > < / div > < / div >
< div class = "ttc" id = "base_2logging_8h_html_ae17f8119c108cf3070bad3449c7e0006" > < div class = "ttname" > < a href = "base_2logging_8h.html#ae17f8119c108cf3070bad3449c7e0006" > DCHECK< / a > < / div > < div class = "ttdeci" > #define DCHECK(condition)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "base_2logging_8h_source.html#l00889" > base/logging.h:889< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_variable_proto_html_a77bf5d8610054e5bd74cf0048bce5f25" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_variable_proto.html#a77bf5d8610054e5bd74cf0048bce5f25" > operations_research::MPVariableProto::set_lower_bound< / a > < / div > < div class = "ttdeci" > void set_lower_bound(double value)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8pb_8h_source.html#l04830" > linear_solver.pb.h:4830< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_constraint_proto_html_ac91622e1f864308bd349b37d5b1a9528" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_constraint_proto.html#ac91622e1f864308bd349b37d5b1a9528" > operations_research::MPConstraintProto::set_upper_bound< / a > < / div > < div class = "ttdeci" > void set_upper_bound(double value)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8pb_8h_source.html#l05165" > linear_solver.pb.h:5165< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_min_cost_perfect_matching_html_a67a0db04d321a74b7e7fcfd3f1a3f70ba2579881e7c83261bc21bafb5a5c92cad" > < div class = "ttname" > < a href = "classoperations__research_1_1_min_cost_perfect_matching.html#a67a0db04d321a74b7e7fcfd3f1a3f70ba2579881e7c83261bc21bafb5a5c92cad" > operations_research::MinCostPerfectMatching::OPTIMAL< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "perfect__matching_8h_source.html#l00085" > perfect_matching.h:85< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_christofides_path_solver_html_a1d4f082de5fc3eed348d65eb30b5f3e7a99c5fe202c37dcd8ed9cc60926a4f525" > < div class = "ttname" > < a href = "classoperations__research_1_1_christofides_path_solver.html#a1d4f082de5fc3eed348d65eb30b5f3e7a99c5fe202c37dcd8ed9cc60926a4f525" > operations_research::ChristofidesPathSolver::MatchingAlgorithm::MINIMAL_WEIGHT_MATCHING< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_solver_html_ab0f83070e72cee887e874382ee6d6958" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_solver.html#ab0f83070e72cee887e874382ee6d6958" > operations_research::MPSolver::LoadModelFromProto< / a > < / div > < div class = "ttdeci" > MPSolverResponseStatus LoadModelFromProto(const MPModelProto & input_model, std::string *error_message)< / div > < div class = "ttdoc" > Loads model from protocol buffer.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8cc_source.html#l00644" > linear_solver.cc:644< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_variable_proto_html_a4b8844c0490b3c525060762f8bc11a8c" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_variable_proto.html#a4b8844c0490b3c525060762f8bc11a8c" > operations_research::MPVariableProto::set_objective_coefficient< / a > < / div > < div class = "ttdeci" > void set_objective_coefficient(double value)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8pb_8h_source.html#l04886" > linear_solver.pb.h:4886< / a > < / div > < / div >
< div class = "ttc" id = "linear__solver_8pb_8h_html" > < div class = "ttname" > < a href = "linear__solver_8pb_8h.html" > linear_solver.pb.h< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_solver_html_acede9075c58cb2f506c99a9fe6f20303" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_solver.html#acede9075c58cb2f506c99a9fe6f20303" > operations_research::MPSolver::Solve< / a > < / div > < div class = "ttdeci" > ResultStatus Solve()< / div > < div class = "ttdoc" > Solves the problem using the default parameter values.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8cc_source.html#l01390" > linear_solver.cc:1390< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_solver_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_solver.html" > operations_research::MPSolver< / a > < / div > < div class = "ttdoc" > This mathematical programming (MP) solver class is the main class though which users build and solve ...< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8h_source.html#l00183" > linear_solver.h:183< / a > < / div > < / div >
< div class = "ttc" id = "namespaceoperations__research_html" > < div class = "ttname" > < a href = "namespaceoperations__research.html" > operations_research< / a > < / div > < div class = "ttdoc" > Collection of objects used to extend the Constraint Solver library.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "dense__doubly__linked__list_8h_source.html#l00021" > dense_doubly_linked_list.h:21< / a > < / div > < / div >
< div class = "ttc" id = "perfect__matching_8h_html" > < div class = "ttname" > < a href = "perfect__matching_8h.html" > perfect_matching.h< / a > < / div > < / div >
< div class = "ttc" id = "namespaceoperations__research_html_ab1cf773de0cae72d0c44efe5b8f4bb89" > < div class = "ttname" > < a href = "namespaceoperations__research.html#ab1cf773de0cae72d0c44efe5b8f4bb89" > operations_research::IsEulerianGraph< / a > < / div > < div class = "ttdeci" > bool IsEulerianGraph(const Graph & graph)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "eulerian__path_8h_source.html#l00040" > eulerian_path.h:40< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_christofides_path_solver_html_ab558649a26fef3a74f0909ef5af45e90" > < div class = "ttname" > < a href = "classoperations__research_1_1_christofides_path_solver.html#ab558649a26fef3a74f0909ef5af45e90" > operations_research::ChristofidesPathSolver::TravelingSalesmanCost< / a > < / div > < div class = "ttdeci" > CostType TravelingSalesmanCost()< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "christofides_8h_source.html#l00230" > christofides.h:230< / a > < / div > < / div >
< div class = "ttc" id = "namespaceoperations__research_html_a33a2f4c26fd60cd0fa98257b571c974f" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a33a2f4c26fd60cd0fa98257b571c974f" > operations_research::BuildPrimMinimumSpanningTree< / a > < / div > < div class = "ttdeci" > std::vector< typename Graph::ArcIndex > BuildPrimMinimumSpanningTree(const Graph & graph, const ArcValue & arc_value)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "minimum__spanning__tree_8h_source.html#l00115" > minimum_spanning_tree.h:115< / a > < / div > < / div >
< div class = "ttc" id = "namespaceoperations__research_html_a08c4f1d4e19627689e141cf08b9f77bc" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a08c4f1d4e19627689e141cf08b9f77bc" > operations_research::ComputeMinimumWeightMatching< / a > < / div > < div class = "ttdeci" > absl::StatusOr< std::vector< std::pair< typename GraphType::NodeIndex, typename GraphType::NodeIndex > > > ComputeMinimumWeightMatching(const GraphType & graph, const WeightFunctionType & weight)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "christofides_8h_source.html#l00109" > christofides.h:109< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_model_proto_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_model_proto.html" > operations_research::MPModelProto< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8pb_8h_source.html#l02800" > linear_solver.pb.h:2800< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_christofides_path_solver_html_a1d4f082de5fc3eed348d65eb30b5f3e7" > < div class = "ttname" > < a href = "classoperations__research_1_1_christofides_path_solver.html#a1d4f082de5fc3eed348d65eb30b5f3e7" > operations_research::ChristofidesPathSolver::MatchingAlgorithm< / a > < / div > < div class = "ttdeci" > MatchingAlgorithm< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "christofides_8h_source.html#l00052" > christofides.h:52< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_min_cost_perfect_matching_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_min_cost_perfect_matching.html" > operations_research::MinCostPerfectMatching< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "perfect__matching_8h_source.html#l00052" > perfect_matching.h:52< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_solver_html_a018794097e44ee8189380eef2b0f267f" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_solver.html#a018794097e44ee8189380eef2b0f267f" > operations_research::MPSolver::FillSolutionResponseProto< / a > < / div > < div class = "ttdeci" > void FillSolutionResponseProto(MPSolutionResponse *response) const< / div > < div class = "ttdoc" > Encodes the current solution in a solution response protocol buffer.< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8cc_source.html#l00818" > linear_solver.cc:818< / a > < / div > < / div >
< div class = "ttc" id = "eulerian__path_8h_html" > < div class = "ttname" > < a href = "eulerian__path_8h.html" > eulerian_path.h< / a > < / div > < / div >
< div class = "ttc" id = "namespaceoperations__research_html_a93c78280670aaeea4913d156699a403a" > < div class = "ttname" > < a href = "namespaceoperations__research.html#a93c78280670aaeea4913d156699a403a" > operations_research::ComputeMinimumWeightMatchingWithMIP< / a > < / div > < div class = "ttdeci" > absl::StatusOr< std::vector< std::pair< typename GraphType::NodeIndex, typename GraphType::NodeIndex > > > ComputeMinimumWeightMatchingWithMIP(const GraphType & graph, const WeightFunctionType & weight)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "christofides_8h_source.html#l00145" > christofides.h:145< / a > < / div > < / div >
< div class = "ttc" id = "classoperations__research_1_1_m_p_solution_response_html" > < div class = "ttname" > < a href = "classoperations__research_1_1_m_p_solution_response.html" > operations_research::MPSolutionResponse< / a > < / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "linear__solver_8pb_8h_source.html#l04478" > linear_solver.pb.h:4478< / a > < / div > < / div >
< div class = "ttc" id = "constraint__solver_2table_8cc_html_acb18315d548212835cd8ed4287e6c0b6" > < div class = "ttname" > < a href = "constraint__solver_2table_8cc.html#acb18315d548212835cd8ed4287e6c0b6" > a< / a > < / div > < div class = "ttdeci" > int64_t a< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "constraint__solver_2table_8cc_source.html#l00046" > constraint_solver/table.cc:46< / a > < / div > < / div >
< div class = "ttc" id = "classutil_1_1_reverse_arc_list_graph_html_a7b505ba4a01bce342d049f5a8674da72" > < div class = "ttname" > < a href = "classutil_1_1_reverse_arc_list_graph.html#a7b505ba4a01bce342d049f5a8674da72" > util::ReverseArcListGraph::AddArc< / a > < / div > < div class = "ttdeci" > ArcIndexType AddArc(NodeIndexType tail, NodeIndexType head)< / div > < div class = "ttdef" > < b > Definition:< / b > < a href = "graph_8h_source.html#l01508" > graph.h:1508< / a > < / div > < / div >
2021-01-26 11:28:50 +01:00
< / div > <!-- fragment --> < / div > <!-- contents -->
< / div > <!-- doc - content -->
2020-09-01 16:00:33 +02:00
<!-- HTML footer for doxygen 1.8.18 -->
<!-- start footer part -->
< div id = "nav-path" class = "navpath" > <!-- id is needed for treeview function! -->
< ul >
< li class = "navelem" > < a class = "el" href = "dir_a7cc1eeded8f693d0da6c729bc88c45a.html" > ortools< / a > < / li > < li class = "navelem" > < a class = "el" href = "dir_725f3a5915051842f84e3ea508be2a62.html" > graph< / a > < / li > < li class = "navelem" > < a class = "el" href = "christofides_8h.html" > christofides.h< / a > < / li >
< li class = "footer" > Generated by
< a href = "http://www.doxygen.org/index.html" >
2022-01-16 18:02:36 +01:00
< img class = "footer" src = "doxygen.png" alt = "doxygen" / > < / a > 1.8.15 < / li >
2020-09-01 16:00:33 +02:00
< / ul >
< / div >
< / body >
< / html >