python - 使用 python cplex 解决方案池获得独特的解决方案
问题描述
我有一个 MILP 模型,我尝试使用 cplex python API 来解决它。我需要得到不止一种解决方案。问题是当我从我的 cplex 池中获得例如 50 个解决方案时,这些解决方案非常相似。在获得这些解决方案之前,我如何才能以某种方式进行洗牌,并在不添加新约束的情况下尽可能多地获得彼此不同的解决方案?
解决方案
您可以为此使用解决方案池过滤器。使用多样性过滤器,您可以确保解决方案足够不同。然而,这些过滤器仅适用于二进制变量。
您可以在解决方案池文档和解决方案池参考文档中找到更多详细信息。可以在此处和此处的 C 库参考文档中找到有关过滤器函数的详细信息。
用户手册还提供了一个关于寻找使用另一种策略的不同解决方案的示例。请参阅CPLEX > CPLEX 用户手册 > 离散优化解决方案池:生成并保留多个解决方案 > 解决方案池的参数 > 示例:通过替换参数的多样化解决方案
推荐阅读
- spring-mongodb - 如何使用 AbstractMongoEventListener 取消删除?
- python - 在 4 个 CPU 上执行 CPU 密集型任务时,20 个进程中的 400 个线程优于 4 个进程中的 400 个线程
- powershell - 在当前 Powershell 会话中启动后台进程
- javascript - 如何使用 Selenium 从亚马逊上的自动建议中“点击”某些建议?
- excel - 如何根据包含昼夜温度数据的表获取日期时间值的温度
- python - 将文件中的单行读取为 numpy.array 的单行脚本
- android - 如何使用ffmpeg并排创建两个带有填充和图像背景的视频?
- python - Lark 解析器语法适用于 Earley,但不适用于 LALR
- java - 错误:(107、9)java:找不到符号符号:方法loadConfiguration()?
- regex - 将电子邮件地址插入 sender_access_regexp 的脚本(并添加正则表达式)