ortools:如何使用搜索策略sweep和best insert?

Posted

技术标签:

【中文标题】ortools:如何使用搜索策略sweep和best insert?【英文标题】:ortools: How to use search strategies sweep and best insertion? 【发布时间】:2018-05-02 14:31:09 【问题描述】:

我想用SWEEPBEST_INSERTION 策略解决路由问题:

search_params = pywrapcp.RoutingModel.DefaultSearchParameters()
strategy = routing_enums_pb2.FirstSolutionStrategy.SWEEP
search_params.first_solution_strategy = strategy
assignment = routing.SolveWithParameters(search_params)

找不到作业并打印

E0502 16:25:38.036972 15475 routing.cc:1604] 未定义的扫描排列器 用于 ROUTING_SWEEP 策略。

到屏幕上。如何定义“扫频编曲”?

strategy = routing_enums_pb2.FirstSolutionStrategy.BEST_INSERTION

也没有返回任何作业,也没有告诉我为什么。

【问题讨论】:

这个问题可能已经很老了,但是......对于 BEST_INSERTION 方法,文档说:截至 2/2012 年,仅适用于具有可选节点的模型(具有有限的惩罚成本)。 如果不是你的情况,它可能会崩溃(我尝试使用 C++,但它给了我一个分段错误)。 【参考方案1】:

您需要使用SetSweepArranger,不幸的是它没有在 python 中导出(即 swig 包装)...

【讨论】:

那我该如何使用呢?有解决方法吗?还有,因为好奇,为什么不导出呢?

以上是关于ortools:如何使用搜索策略sweep和best insert?的主要内容,如果未能解决你的问题,请参考以下文章

使用ortools时如何获取cpsolver的变量和约束

单目标优化求解基于matlab秃鹰算法(BES)求解最优目标问题含Matlab源码 1546期

优化算法搜索引擎优化算法(BES)含Matlab源码 1426期

Python中如何使用ortools求解二次规划?

如何在 ORTOOLS 中使用 SCIP for MILP [python]

如何在 ortools 中更改约束参数的类型