国外网站要备案吗,dede手机网站制作,wordpress 4.7.9,免费网站百度收录本节以一个实际数学建模案例#xff0c;讲解 PuLP 求解线性规划问题的建模与编程。
1、问题描述 某厂生产甲乙两种饮料#xff0c;每百箱甲饮料需用原料6千克、工人10名#xff0c;获利10万元#xff1b;每百箱乙饮料需用原料5千克、工人20名#xff0c;获利9万元。 今工…
本节以一个实际数学建模案例讲解 PuLP 求解线性规划问题的建模与编程。
1、问题描述 某厂生产甲乙两种饮料每百箱甲饮料需用原料6千克、工人10名获利10万元每百箱乙饮料需用原料5千克、工人20名获利9万元。 今工厂共有原料60千克、工人150名又由于其他条件所限甲饮料产量不超过8百箱。 1问如何安排生产计划即两种饮料各生产多少使获利最大 2若投资0.8万元可增加原料1千克是否应作这项投资投资多少合理 3若每百箱甲饮料获利可增加1万元是否应否改变生产计划 4若每百箱甲饮料获利可增加1万元若投资0.8万元可增加原料1千克是否应作这项投资投资多少合理 5若不允许散箱按整百箱生产如何安排生产计划即两种饮料各生产多少使获利最大 欢迎关注 Youcans 原创系列每周更新数模笔记
Python数模笔记-PuLP库 Python数模笔记-StatsModels统计回归 Python数模笔记-Sklearn Python数模笔记-NetworkX Python数模笔记-模拟退火算法
2、用PuLP 库求解线性规划
2.1 问题 1
1数学建模 问题建模 决策变量 x1甲饮料产量单位百箱 x2乙饮料产量单位百箱 目标函数 max fx 10*x1 9*x2 约束条件 6*x1 5*x2 60 10*x1 20*x2 150 取值范围 给定条件x1, x2 0x1 8 推导条件由 x1,x20 和 10*x120*x2150 可知0x1150x27.5 因此0 x180 x27.5 2Python 编程 import pulp # 导入 pulp库ProbLP1 pulp.LpProblem(ProbLP1, sensepulp.LpMaximize) # 定义问题 1求最大值x1 pulp.LpVariable(x1, lowBound0, upBound8, catContinuous) # 定义 x1x2 pulp.LpVariable(x2, lowBound0, upBound7.5, catContinuous) # 定义 x2ProbLP1 (10*x1 9*x2) # 设置目标函数 f(x)ProbLP1 (6*x1 5*x2 60) # 不等式约束ProbLP1 (10*x1 20*x2 150) # 不等式约束ProbLP1.solve()print(ProbLP1.name) # 输出求解状态print(Status:, pulp.LpStatus[ProbLP1.status]) # 输出求解状态for v in ProbLP1.variables():print(v.name, , v.varValue) # 输出每个变量的最优值print(F1(x), pulp.value(ProbLP1.objective)) # 输出最优解的目标函数值# 关注 Youcans分享原创系列 https://blog.csdn.net/youcans 3运行结果
ProbLP1
x16.4285714
x24.2857143
F1(X)102.85714272.2 问题 2
1数学建模 问题建模 决策变量 x1甲饮料产量单位百箱 x2乙饮料产量单位百箱 x3增加投资单位万元 目标函数 max fx 10*x1 9*x2 - x3 约束条件 6*x1 5*x2 60 x3/0.8 10*x1 20*x2 150 取值范围 给定条件x1, x2 0x1 8 推导条件由 x1,x20 和 10*x120*x2150 可知0x1150x27.5 因此0 x180 x27.5 2Python 编程 import pulp # 导入 pulp库ProbLP2 pulp.LpProblem(ProbLP2, sensepulp.LpMaximize) # 定义问题 2求最大值x1 pulp.LpVariable(x1, lowBound0, upBound8, catContinuous) # 定义 x1x2 pulp.LpVariable(x2, lowBound0, upBound7.5, catContinuous) # 定义 x2x3 pulp.LpVariable(x3, catContinuous) # 定义 x3ProbLP2 (10*x1 9*x2 - x3) # 设置目标函数 f(x)ProbLP2 (6*x1 5*x2 - 1.25*x3 60) # 不等式约束ProbLP2 (10*x1 20*x2 150) # 不等式约束ProbLP2.solve()print(ProbLP2.name) # 输出求解状态print(Status:, pulp.LpStatus[ProbLP2.status]) # 输出求解状态for v in ProbLP2.variables():print(v.name, , v.varValue) # 输出每个变量的最优值print(F2(x), pulp.value(ProbLP2.objective)) # 输出最优解的目标函数值3运行结果
ProbLP2
x18.0
x23.5
x34.4
F2(X)107.12.3 问题 3
1数学建模 问题建模 决策变量 x1甲饮料产量单位百箱 x2乙饮料产量单位百箱 目标函数 max fx 11*x1 9*x2 约束条件 6*x1 5*x2 60 10*x1 20*x2 150 取值范围 给定条件x1, x2 0x1 8 推导条件由 x1,x20 和 10*x120*x2150 可知0x1150x27.5 因此0 x180 x27.5 2Python 编程 import pulp # 导入 pulp库ProbLP3 pulp.LpProblem(ProbLP3, sensepulp.LpMaximize) # 定义问题 3求最大值x1 pulp.LpVariable(x1, lowBound0, upBound8, catContinuous) # 定义 x1x2 pulp.LpVariable(x2, lowBound0, upBound7.5, catContinuous) # 定义 x2ProbLP3 (11 * x1 9 * x2) # 设置目标函数 f(x)ProbLP3 (6 * x1 5 * x2 60) # 不等式约束ProbLP3 (10 * x1 20 * x2 150) # 不等式约束ProbLP3.solve()print(ProbLP3.name) # 输出求解状态print(Status:, pulp.LpStatus[ProbLP3.status]) # 输出求解状态for v in ProbLP3.variables():print(v.name, , v.varValue) # 输出每个变量的最优值print(F3(x) , pulp.value(ProbLP3.objective)) # 输出最优解的目标函数值3运行结果
ProbLP3
x18.0
x22.4
F3(X) 109.62.4 问题 4
1数学建模 问题建模 决策变量 x1甲饮料产量单位百箱 x2乙饮料产量单位百箱 x3增加投资单位万元 目标函数 max fx 11*x1 9*x2 - x3 约束条件 6*x1 5*x2 60 x3/0.8 10*x1 20*x2 150 取值范围 给定条件x1, x2 0x1 8 推导条件由 x1,x20 和 10*x120*x2150 可知0x1150x27.5 因此0 x180 x27.5 2Python 编程 import pulp # 导入 pulp库 ProbLP4 pulp.LpProblem(ProbLP4, sensepulp.LpMaximize) # 定义问题 2求最大值x1 pulp.LpVariable(x1, lowBound0, upBound8, catContinuous) # 定义 x1x2 pulp.LpVariable(x2, lowBound0, upBound7.5, catContinuous) # 定义 x2x3 pulp.LpVariable(x3, catContinuous) # 定义 x3ProbLP4 (11 * x1 9 * x2 - x3) # 设置目标函数 f(x)ProbLP4 (6 * x1 5 * x2 - 1.25 * x3 60) # 不等式约束ProbLP4 (10 * x1 20 * x2 150) # 不等式约束ProbLP4.solve()print(ProbLP4.name) # 输出求解状态print(Status:, pulp.LpStatus[ProbLP4.status]) # 输出求解状态for v in ProbLP4.variables():print(v.name, , v.varValue) # 输出每个变量的最优值print(F4(x) , pulp.value(ProbLP4.objective)) # 输出最优解的目标函数值# 关注 Youcans分享原创系列 https://blog.csdn.net/youcans 3运行结果
ProbLP4
x18.0
x23.5
x34.4
F4(X) 115.12.5 问题 5整数规划问题
1数学建模 问题建模 决策变量 x1甲饮料产量正整数单位百箱 x2乙饮料产量正整数单位百箱 目标函数 max fx 10*x1 9*x2 约束条件 6*x1 5*x2 60 10*x1 20*x2 150 取值范围 给定条件x1, x2 0x1 8x1, x2 为整数 推导条件由 x1,x20 和 10*x120*x2150 可知0x1150x27.5 因此0 x180 x27 说明本题中要求饮料车辆为整百箱即决策变量 x1,x2 为整数因此是整数规划问题。PuLP提供了整数规划的
2Python 编程 import pulp # 导入 pulp库ProbLP5 pulp.LpProblem(ProbLP5, sensepulp.LpMaximize) # 定义问题 1求最大值x1 pulp.LpVariable(x1, lowBound0, upBound8, catInteger) # 定义 x1变量类型整数x2 pulp.LpVariable(x2, lowBound0, upBound7, catInteger) # 定义 x2变量类型整数ProbLP5 (10 * x1 9 * x2) # 设置目标函数 f(x)ProbLP5 (6 * x1 5 * x2 60) # 不等式约束ProbLP5 (10 * x1 20 * x2 150) # 不等式约束ProbLP5.solve()print(ProbLP5.name) # 输出求解状态print(Status:, pulp.LpStatus[ProbLP5.status]) # 输出求解状态for v in ProbLP5.variables():print(v.name, , v.varValue) # 输出每个变量的最优值print(F5(x) , pulp.value(ProbLP5.objective)) # 输出最优解的目标函数值3运行结果
ProbLP5
x18.0
x22.0
F5(X) 98.0版权说明 YouCans 原创作品 Copyright 2021 YouCans, XUPT Crated2021-04-28 关注 Youcans分享原创系列 https://blog.csdn.net/youcans
Python数模笔记-PuLP库1线性规划入门 Python数模笔记-PuLP库2线性规划进阶 Python数模笔记-PuLP库3线性规划实例 Python数模笔记-StatsModels 统计回归1简介 Python数模笔记-StatsModels 统计回归2线性回归 Python数模笔记-StatsModels 统计回归3模型数据的准备 Python数模笔记-StatsModels 统计回归4可视化 Python数模笔记-Sklearn 1介绍 Python数模笔记-Sklearn 2聚类分析 Python数模笔记-Sklearn 3主成分分析 Python数模笔记-Sklearn 4线性回归 Python数模笔记-Sklearn 5支持向量机 Python数模笔记-模拟退火算法1多变量函数优化 Python数模笔记-模拟退火算法2约束条件的处理 Python数模笔记-模拟退火算法3整数规划问题 Python数模笔记-模拟退火算法4旅行商问题