博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用LINGO来解决0/1背包算法问题
阅读量:6881 次
发布时间:2019-06-26

本文共 481 字,大约阅读时间需要 1 分钟。

原文:

1.问题说明

  0/1背包问题:我们有n种物品,物品j的重量为wj,价格为pj。我们假定所有物品的重量和价格都是非负的。背包所能承受的最大重量为W。如果限定每种物品只能选择0个或1个,则问题称为0-1背包问题。(摘自百度百科)

  例子:

假设有10个物品,重量和价格分别如下图所示,背包承受最大重量W=2000,每种物品能选择放或者不放,求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大。

  

2.数学模型

  

3.lingo代码实现

需要用到的特性是lingo的集合,数据,函数

 

4.效果

点击solve按钮,即可求得所有的未知数。

由图可知,isok为1的数的号码,为了获得最大值我们所需要放入背包的物品是:3号,6号,7号,8号,10号。

此时的背包内物品的总重量是1840,总价值是495.

 

源码地址:https://files.cnblogs.com/files/lizhijian/%E8%83%8C%E5%8C%85%E9%97%AE%E9%A2%98%E7%AE%97%E6%B3%95.rar

 

感谢阅读

 

转载地址:http://uagfl.baihongyu.com/

你可能感兴趣的文章
(.公司)域名2015年度报告:仅一家注册量过万
查看>>
关于红黑树的学习笔记
查看>>
阿里云异构计算产品是如何保障双11业务的
查看>>
ICO身份核实KYC
查看>>
分贝计算
查看>>
Ubuntu上安装锐利清晰的文泉驿正黑字体
查看>>
Xshell在vim中不能使用小键盘的问题
查看>>
贴几个自己写的BigIP F5的iRule
查看>>
2013 China Hadoop Summit杂记
查看>>
CMAKE安装MYSQL 5.6.10
查看>>
linux日常管理常用命令--w
查看>>
我的友情链接
查看>>
memcached常用命令详解
查看>>
inotify + rsync 实时同步
查看>>
远程登录linux主机更换IP地址【非交互】
查看>>
Hyperledger Fabric初识与环境搭建
查看>>
漫谈培训之高效培训——让鸡肋变成鸡排
查看>>
使用Configuration Manager配置报表服务
查看>>
简述安装web.py框架及初次使用概述
查看>>
【Java每日一题】20170329
查看>>