用python pulp的线性规划方法计算满足营养所需的最少食物
2017-05-10 14:00
288 查看
1. 问题描述
食物的单位成本
巧克力松糕: $0.50 (每片)
巧克力冰激凌:$0.20 (每份)
可乐: $0.30 (每瓶)
菠萝芝士蛋糕:$0.80 (每片)
每天的食物需求
500 卡路里
6 盎司巧克力
10 盎司糖
8 盎司脂肪
食物营养含量
巧克力松糕:400 卡路里能量,3 盎司巧克力,2 盎司糖,2 盎司脂肪
巧克力冰激凌(每份):200 卡路里能量,2 盎司巧克力,2 盎司糖,4 盎司脂肪
可乐(每瓶):150 卡路里能量,0 盎司巧克力,4 盎司糖,1 盎司脂肪
菠萝芝士蛋糕(1 片):500 卡路里能量,0 盎司巧克力,4 盎司糖,5 盎司脂肪
目标:以最小的成本满足日常营养需要。
2. 建模
食品变量:
x1:巧克力松糕片数
x2:巧克力冰激凌的份数
x3:可乐的瓶数
x4:菠萝芝士蛋糕的片数
目标:0.5*x1 + 0.2*x2 + 0.3*x3 + 0.8*x4 金额最小
3. 准备实现
pip install pulp
4. 实现
import pulp
x1 = pulp.LpVariable("x1", 0, 500)
x2 = pulp.LpVariable("x2", 0, 6)
x3 = pulp.LpVariable("x3", 0, 10)
x4 = pulp.LpVariable("x4", 0, 8)
prob = pulp.LpProblem("myProblem", pulp.LpMinimize)
prob += 0.5*x1 + 0.2*x2 + 0.3*x3 + 0.8*x4
prob += 400*x1 + 200*x2 + 150*x3 + 500*x4 >= 500
prob += 3*x1 + 2*x2 + 0 + 0 >= 6
prob += 2*x1 + 2*x2 + 4*x3 + 4*x4 >= 10
prob += 2*x1 + 4*x2 + 1*x3 + 5*x4 >= 8
status = prob.solve()
pulp.LpStatus[status]
pulp.value(x1)
pulp.value(x2)
pulp.value(x3)
pulp.value(x4)
5. 参考
http://os.chinaunix.net/a2006/1011/1058/000001058294.shtml https://github.com/coin-or/pulp
食物的单位成本
巧克力松糕: $0.50 (每片)
巧克力冰激凌:$0.20 (每份)
可乐: $0.30 (每瓶)
菠萝芝士蛋糕:$0.80 (每片)
每天的食物需求
500 卡路里
6 盎司巧克力
10 盎司糖
8 盎司脂肪
食物营养含量
巧克力松糕:400 卡路里能量,3 盎司巧克力,2 盎司糖,2 盎司脂肪
巧克力冰激凌(每份):200 卡路里能量,2 盎司巧克力,2 盎司糖,4 盎司脂肪
可乐(每瓶):150 卡路里能量,0 盎司巧克力,4 盎司糖,1 盎司脂肪
菠萝芝士蛋糕(1 片):500 卡路里能量,0 盎司巧克力,4 盎司糖,5 盎司脂肪
目标:以最小的成本满足日常营养需要。
2. 建模
食品变量:
x1:巧克力松糕片数
x2:巧克力冰激凌的份数
x3:可乐的瓶数
x4:菠萝芝士蛋糕的片数
目标:0.5*x1 + 0.2*x2 + 0.3*x3 + 0.8*x4 金额最小
3. 准备实现
pip install pulp
4. 实现
import pulp
x1 = pulp.LpVariable("x1", 0, 500)
x2 = pulp.LpVariable("x2", 0, 6)
x3 = pulp.LpVariable("x3", 0, 10)
x4 = pulp.LpVariable("x4", 0, 8)
prob = pulp.LpProblem("myProblem", pulp.LpMinimize)
prob += 0.5*x1 + 0.2*x2 + 0.3*x3 + 0.8*x4
prob += 400*x1 + 200*x2 + 150*x3 + 500*x4 >= 500
prob += 3*x1 + 2*x2 + 0 + 0 >= 6
prob += 2*x1 + 2*x2 + 4*x3 + 4*x4 >= 10
prob += 2*x1 + 4*x2 + 1*x3 + 5*x4 >= 8
status = prob.solve()
pulp.LpStatus[status]
pulp.value(x1)
pulp.value(x2)
pulp.value(x3)
pulp.value(x4)
5. 参考
http://os.chinaunix.net/a2006/1011/1058/000001058294.shtml https://github.com/coin-or/pulp
相关文章推荐
- Python中list查询及所需时间计算操作示例
- Python中使用pulp进行线性规范计算
- python随机产生100000个数计算满足条件的比例
- 【Codeforces Round 335 (Div 2)E】【计算几何-凸包 线性规划 三分凸包上最优点】Freelancer's Dreams 二维属性 充最少的钱变得满足要求 [计算几何-凸包模
- python制作的食物买卖存量计算程序
- python计算apache总内存
- Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器库
- Python (布尔类型计算)
- python满足你需要的50个模块
- python 科学计算Numpy的自学(一)
- 用Python做数学计算之基础计算
- Python简单计算
- Python爬内蒙古大学教务处并自动计算绩点(小窗体版)
- Python爬虫/文本处理/科学计算/机器学习——工具包总结
- Python动态规划计算0-1背包问题的最优值
- Python做统计计算
- uva 11584 计算最少回文串数 动态规划 lrj-P276
- 用Python计算字符串的相似度
- 计算图像相似度——《Python也可以》之一(转)
- python计算字符长度