optimization - xpress 的优化结果不遵循指定的变量类型
问题描述
我发现了一些问题,xpress 的优化结果不遵循指定的变量类型。我在创建 xpress 变量时设置了 vartype=xp.binary,但有些结果的值是 0.13333、0.36667、0.5。
我发现这是由其中一个约束引起的。当我禁用大多数约束时,这些值都是二进制的。然后,我一个一个地启用约束,并找到一组导致该值非二进制的约束。
有没有人观察过这个?关于如何将变量值强制为二进制的任何建议?
谢谢!
解决方案
为了完整起见,将 Erwin Kalvelagen 的评论扩展为一个答案:整数变量的分数值通常在问题不可行时发生。返回后solve()
,您需要检查attributes.mipstatus
以确保您确实有可用的解决方案(另请参阅此处MIP 状态的潜在值):
p = xp.problem()
...
p.solve()
print(p.getProbStatus(), p.getProbStatusString())
if p.attributes.mipstatus == xp.mip_solution or \
p.attributes.mipstatus == xp.mip_optimal:
print(p.getProbStatusString())
print(p.getSolution())
else:
print('No feasible solution', p.getProbStatusString())
获取问题状态的另一种方法是 function p.getProbStatus()
。
推荐阅读
- python - 如何将 int 的值与元组列表中的同一组组合?
- java - 在 Swift 中创建随机像素图像
- google-cloud-platform - 允许从 GCR 拉取容器的 Google Cloud 角色
- java - 单
如何在 REST 调用中获得失败或成功响应 - html - 如何将两个字符串与字母间距对齐
- python - 字符串的python验证
- python - 不可散列的类型 dict pymongo
- wordpress - AWS ECS fargate 容器中托管的 wordpress 站点中的 HTTPS 错误 [已解决]
- javascript - 在 xhr 不起作用之前禁用选择字段
- python - 有没有更有效的方法来增加字典中每个键的值?