首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用纸浆,根据一定的约束选择项目

利用纸浆,根据一定的约束选择项目
EN

Stack Overflow用户
提问于 2021-06-10 07:45:16
回答 1查看 51关注 0票数 0
代码语言:javascript
复制
|project|loc_Bangalore|loc_Pune|cat_s|cat_c|
|:------|:-----------:|:------:|:---:|:---:|
|abc    |1            |0       |0    |1    |
|Sys    |1            |0       |0    |1    |
|Syst   |0            |1       |1    |0    |
|EPS    |1            |0       |0    |1    |
|foss   |1            |0       |0    |1    |
|opc    |0            |1       |1    |0    |

给定的

以上df 1中的

为true,0为false。我必须从给定的df中选择所有的项目,满足以下条件:1.总体项目选择count<=4(班加罗尔定位project+pune location project+cat_s project+cat_c <=4)

2.在选择项目项目时,应包括以下几个方面:1. project<=3 2.港口选址项目<=1 3.cat_s project<=1 4.cat_c project<=3

我必须选择同时满足这两种条件的项目。我不能为this.Pls写方程,帮我解决这个问题。

EN

回答 1

Stack Overflow用户

发布于 2021-06-10 16:04:34

我觉得你们关系很好。你没有给出你从上面得到的答案,但我猜你得到了一堆野生整数值,包括负整数值,因为你的决策变量没有边界,所以它可以在__区域选择-568个项目。

第一个问题:当变量表示是/否类型的决策时,您应该将它变成二进制变量。改变这一点:

代码语言:javascript
复制
proj_vars = pulp.LpVariable.dicts("project",project_list,cat='Integer')

至:

代码语言:javascript
复制
proj_vars = pulp.LpVariable.dicts("project",project_list,cat='Binary')

第二个问题:现在,你失去了一个目标函数.你所拥有的只是一堆“上层约束”,模型(至少是你发布的那篇文章)没有增加(或分配)项目的动机。你把它当作最小化模型..。你在减少什么?

从您所描述的情况来看,您似乎希望在受约束的情况下执行最大数量的项目。要做到这一点,您必须:添加一个简单的目标,即项目之和,并将问题转换为最大化问题。讲得通?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67916836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档