Python使用PuLP第三方库解决线性规划问题
假设我们考虑投资两种证券X和Y。若投资X证券的数量为xxx,投资Y证券的数量为yyy, 试求3x+2y3x+2y3x+2y的最大值。限制条件如下:
- 投资2倍的X证券数量与投资Y证券数量之和不超过100;
- 投资X证券数量与投资Y证券数量之和不超过80;
- 投资X证券的数量不超过40;
- 不允许卖空(short selling)。
该最大化问题的数学表达式如下:
求f(x,y)=3x+2yf(x,y)=3x+2yf(x,y)=3x+2y的最大值,约束条件:
2x+y≤100x+y≤80x≤40x≥0,y≥02x + y ≤ 100 \\ x + y ≤ 80 \\ x ≤ 40 \\ x ≥0, y ≥ 0 2x+y≤100x+y≤80x≤40x≥0,y≥0
import pulpx = pulp.LpVariable("x", lowBound=0,upBound=40,cat=pulp.LpContinuous)#设置x的上下界,LpContinuous是连续优化,还可以指定LpInteger求整数解,具体问题具体分析
y = pulp.LpVariable("y", lowBound=0,cat=pulp.LpContinuous)
#设置y的下界,方法同上problem = pulp.LpProblem("problem",pulp.LpMaximize) #命名,指定问题类型为求最大值problem += 3*x + 2*y #指定目标函数
problem += 2*x + y <= 100 #添加约束条件
problem += x + y <= 80status = problem.solve()print(pulp.LpStatus[problem.status])
print("The optimal solution: x=",pulp.value(x),", y=",pulp.value(y))
打印如下:
Optimal # Status为Optimal即求出了最优解,其他情况参考解释文档
The optimal solution: x= 20.0 , y= 60.0
接下来为了尝试区分整数规划和连续优化的区别,我修改了约束条件:
2.3x+0.766y≤100x+y≤80x≤40x≥0,y≥02.3x + 0.766y ≤ 100 \\ x + y ≤ 80 \\ x ≤ 40 \\ x ≥0, y ≥ 0 2.3x+0.766y≤100x+y≤80x≤40x≥0,y≥0
这时候变量可选参数LpContinuous和LpInteger(代码第3、5行)就派上用场了。
在指定了LpInteger后应该求得整数解(进行整数规划),果然输出结果如下:
Optimal
The optimal solution: x= 25.0 , y= 55.0
而在指定了LpContinuous后可能求得非整数解,输出结果如下:
Optimal
The optimal solution: x= 25.241199 , y= 54.758801
请注意:参数cat=pulp.LpContinuous是默认的。
还有一个用字典解决线性规划的方法,等有时间再更
Python使用PuLP第三方库解决线性规划问题相关推荐
- pulp和scipy库解决线性规划
目录 1.pulp库解决简单线性规划问题 2.pulp库解决大型线性规划问题 3.scipy库解决线性规划 1.pulp库解决简单线性规划问题 ''' max fx = 2*x1 + 3*x2 - 5 ...
- python pip安装第三方库老是报错_#python pip 安装dlib一直失败?#python安装dlib错误...
#python pip 安装dlib一直失败?#python安装dlib错误 python dlib 教程2020-10-11 07:52:36人已围观 ubuntu里面怎么安装dlib 下面是在ub ...
- qpython3安装第三方库_【工具篇】python pip安装第三方库
python安装第三方库其实挺简单的, 一句话总结:pip install 库名 (如pip install jieba 安装结巴库) 但会有一些安装的细节, 本文将详细展开如何pip安装第三方库的详 ...
- Python pip安装第三方库的国内镜像
Python pip 安装第三方库的国内镜像 Windows系统下,一般情况下使用pip在DOS界面安装python第三方库时,经常会遇到超时的问题,导致第三方库无法顺利安装,此时就需要国内镜像源的帮 ...
- python安装第三方包总是超时_(python pip安装第三方库超时问题(raise ReadTimeoutErrorself._pool, None, 'Read timed out.')...
(python pip安装第三方库超时问题(raise ReadTimeoutErrorself._pool, None, 'Read timed out.') pip工具安装 百度经验链接: pip ...
- python离线安装第三方库
python离线安装第三方库 本人也是一枚小白,欢迎大佬们批评指正! 当服务器是未联网状态时,在环境中安装第三方包就很不方便.下面是自己学习过多篇文章后,结合自己实际安装步骤,写的一点总结. 1. 在 ...
- 【Python软件和第三方库国内地址】
Python软件和第三方库国内地址 提示:国外地址下载半天,总失败 文章目录 Python软件和第三方库国内地址 前言 一.安装Python 1.[国内华为镜像](https://mirrors.hu ...
- JS--使用第三方库解决浮点数(小数)计算不准确的问题
原文网址:JS--使用第三方库解决浮点数(小数)计算不准确的问题_IT利刃出鞘的博客-CSDN博客 简介 本文介绍如何解决JavaScript在计算浮点数(小数)时不准确(精度丢失)的问题. 问题描述 ...
- python基础和第三方库 笔记(python基础完结包括高级用法,第三方库持续更新中...)
python基础 注:本笔记面向有一定基础的人 本笔记是本人快速复习python过程中记录的,不适合零基础的人学习python的主工具,可以作为辅工具,本笔记记录了入门阶段常用操作,如有错误的地方,希 ...
最新文章
- 06开始完整制作网站
- Java SE 9(JDK9)环境安装及交互式编程环境Jshell使用示例
- python消费datahub_DataHub使用指南-阿里云开发者社区
- yarn ngc使用练习
- Dlib机器学习库安装
- Java学习笔记----线程
- 【SpringMVC】下载功能
- 小程序对实体行业转型有何影响?
- cmake 历史版本
- springboot整合
- 抖音热门音乐整理合集歌曲打包分享
- 【OpenGL】室内3D弹球
- (小程序) 客户签名及签名后页面整体转图片后上传
- 炒菜机器人放食材的顺序_炒菜机器人的制作方法
- Linux下快速解析nf_conntrack
- JCR分区(WOS或Thomson Reuters或汤姆森 路透)和中科院分区(附网址及查询方法)_2018年
- MyEclipse老是提示 resetting selection 长耗时的问题
- wps上下标怎么对齐_wps如何设置表格对齐方式图解
- Form表单提交成功,但是后台并没有处理数据且debug无效
- Windows 开发之VC++垃圾清理程序软件