使用Google Optimization Tools

时间:2017-10-12 12:15:58

标签: python solver cplex

我想学点东西。谁能告诉我以下表达的含义:

from ortools.linear_solver import pywraplp

def main():

solver=pywraplp.Solver('TravellingSalesmanProblemMIP', pywraplp.Solver.CBC_MIXED_INTEGER_PROGRAMMING)

我猜它用于创建求解器。什么时候使用?而且,如果我们用CPLEX解决我们的python模型,那么这个表达式对cplex有什么特殊的对应关系吗?我在互联网上偶尔看过几次这些台词;我只是想学习。

谢谢

1 个答案:

答案 0 :(得分:0)

你猜错了。这会创建一个Solver类的实例,其中包含name' TravellingSalesmanProblemMIP'和problem_type CBC_MIXED_INTEGER_PROGRAMMING。您必须创建Solver的实例才能解决问题。如果您想使用CPLEX而不是CBC,则可以将CBC_MIXED_INTEGER_PROGRAMMING替换为CPLEX_MIXED_INTEGER_PROGRAMMING。该项目的文档是here,源代码(git repo)是here。有许多Python示例here

这个项目似乎是用C ++编写的,Python包装器是从那里自动生成的。特定于Python的文档似乎缺乏。您可能需要研究源代码才能找到答案。如果这听起来令人生畏,你可能想要使用别的东西。