怎样借助相关编程语言解决如下问题
看起来是个0-1背包问题。所有物品的重量都精确到小数点后1位,其实可以乘以10后当整数处理。0-1背包问题的标准解法是动态规划,但是它的复杂度依赖于物品的重量值,如果物品的最大重量远大于物品数量,会比较慢。也可以尝试随机化算法,比如先随机分堆,然后不断尝试调整,逼近目标。
■网友
对于修改后的问题,利用0-1规划解决是不错的方法。---------------------------------------设
为第
个数
当
属于第一组时,令
,否则为0当
属于第二组时,令
,否则为0可建立如下0-1规划;
(一个数最多只能出现在一组中)
(第一组数之和大于等于120)
(第二组数之和大于等于120)
---------------------------------------上述0-1规划的解便是最后答案下面附上代码(LINGO): model:sets:m/1..16/:x,y,a;endsetsdata:a=31.9 24.1 24.6 26.7 31.5 16.9 23.2 25.9 16.0 19.2 31.8 18.3 16.9 22.8 12.4 19.6;enddatamin=@sum(m:a*x)+@sum(m:a*y);@for(m(i):x(i)+y(i)\u0026lt;=1);@sum(m:a*x)\u0026gt;=120;@sum(m:a*y)\u0026gt;=120;@for(m:@bin(x));@for(m:@bin(y));求解结果为第2,9,10,12,14,16个数为一组;第4,7,8,11,15个数为另一组。两组和都是120。------------------------------------------对于再次修改后的问题,建立如下规划模型即可:
(一个数最多只能出现在一组中)
(第一组数之和大于等于120)
(第二组数之和大于等于120) 【怎样借助相关编程语言解决如下问题】
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 人员■海安疾控:北京确诊病例密接者及相关人员检测结果均为阴性
- 大连暂停小诊所和村卫生室等相关医疗服务
- 浙江柯桥排查两起进口冷链食品风险相关人员核酸阴性
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
