使用python线性规划学习总结

33人阅读 评论(0) 收藏 举报
分类:

1.pulp

例子:https://blog.csdn.net/MartaYang/article/details/71439074

          https://blog.csdn.net/cyuhong/article/details/50865909

          https://www.cnblogs.com/shizhenqiang/p/8274806.html

2.python-pymprog
3.scipy.optimize.linprog


1.pulp试试这个模块

from pulp import *
# 设置对象
f  = LpProblem('lptest', LpMinimize)
# 设置三个变量,并设置变量最小取值
x = LpVariable('x', lowBound = 0)
y = LpVariable('y', lowBound = 0)
z = LpVariable('z', lowBound = 0)

# 载入约束变量
f += 3.05 * x + 4.05 * y + 6.1 * z >= 7.9

# 求解
GLPK().solve(f)

# 显示结果
for i in f.variables():
    print(i.name + "=" + str(i.varValue))

显示如下:

GLPSOL: GLPK LP/MIP Solver, v4.55
Parameter(s) specified in the command line:
 --cpxlp C:\Users\tony\AppData\Local\Temp\12100-pulp.lp -o C:\Users\tony\AppData\Local\Temp\12100-pulp.sol
Reading problem data from 'C:\Users\tony\AppData\Local\Temp\12100-pulp.lp'...
1 row, 4 columns, 3 non-zeros
8 lines were read
GLPK Simplex Optimizer, v4.55
1 row, 4 columns, 3 non-zeros
Preprocessing...
1 row, 3 columns, 3 non-zeros
Scaling...
 A: min|aij| = 3.050e+000  max|aij| = 6.100e+000  ratio = 2.000e+000
Problem data seem to be well scaled
Constructing initial basis...
Size of triangular part is 1
      0: obj =  0.000000000e+000  infeas = 7.900e+000 (0)
*     1: obj =  0.000000000e+000  infeas = 0.000e+000 (0)
OPTIMAL LP SOLUTION FOUND
Time used:   0.0 secs
Memory used: 0.0 Mb (36952 bytes)
Writing basic solution to 'C:\Users\tony\AppData\Local\Temp\12100-pulp.sol'...
1

__dummy=None
x=0.0
y=0.0
z=1.29508

使用python-pymprog模块解决线性规划问题

原文https://blog.csdn.net/Gardenia_Hello/article/details/70466079

今天在学习数模的过程中遇到了一些线性规划的问题,老师推荐的是lingo这款软件,然而并不想因此再新学一门语言。于是找到了找到了一个python下解决线性规划问题的模块——Pymprog。

- 安装

本人使用的Windows下的Python环境Anaconda,使用conda应该是找不到这个模块的,直接使用pip安装即可。

pip install pymprog
  • 1

- 简单的例子

如解决如下规划问题:

maximize  15 x + 10 y         # 目标函数
S.T.
             x         <=  3  # 约束条件1
                    y  <=  4  # 约束条件2
             x +    y  <=  5  # 约束条件3
             x >=0, y >=0     # x,y非零
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
#coding: utf-8
from pymprog import *
begin('bike production')
x, y = var('x, y') # 变量
maximize(15 * x + 10 * y, 'profit') # 目标函数
x <= 3 # 约束条件1
y <= 4 # 约束条件2
x + y <= 5 # 约束条件3
solve()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

产生结果如下:

>>> from pymprog import *
>>> begin('bike production')
model('bikes production') is the default model.
>>> x, y = var('x, y') # create variables
>>> x, y # take a look at them
(0 <= x continuous, 0 <= y continuous)
>>> maximize(15*x + 10*y, 'profit')
Max profit: 15 * x + 10 * y
>>> x <= 3
0 <= x <= 3 continuous
>>> y <= 4
0 <= y <= 4 continuous
>>> x + y <= 5
R1: x + y <= 5
>>> solve()
GLPK Simplex Optimizer, v4.60
1 row, 2 columns, 2 non-zeros
*     0: obj =  -0.000000000e+00 inf =   0.000e+00 (2)
*     2: obj =   6.500000000e+01 inf =   0.000e+00 (0)
OPTIMAL LP SOLUTION FOUND
查看评论

python求线性规划

"""#需要安装pip install numpy-1.12.1rc1+mkl-cp35-cp35m-win32.whl,numpy_mkl地址 不然提示    from numpy._distr...
  • li1367356
  • li1367356
  • 2017-03-13 11:22:16
  • 654

运筹学 —线性规划总结

线性规划问题 1.      概述 线性规划问题是在一组线性约束下,求资源配置的最大最小值的问题。          直观的变现是在一个约束条件围成的区域上寻找一个点,这个点使得资源配置最优化: ...
  • weixin_37585227
  • weixin_37585227
  • 2017-03-07 17:43:42
  • 920

用python-pulp解决线性规划问题

Linux环境下,要是用python的pulp涉及先安装pulp(easy_install)和调试安装glpk(更改源,在命令行中下载即可)...
  • MartaYang
  • MartaYang
  • 2017-05-09 09:38:38
  • 2526

Python学习中的心得体会记录(一)

Python是一门面向对象的解释性语言(脚本语言),这一类语言的特点就是不用编译,程序在运行的过程中,由对应的解释器向CPU进行翻译,个人理解就是一边编译一边执行。而JAVA这一类语言是需要预先编译的...
  • w815878564
  • w815878564
  • 2015-11-02 01:54:44
  • 4802

Python中使用pulp进行线性规范计算

Pulp,用python来做线性规划 入门程序: 1 2 3 4 5 max: 2 * x1 + 5 * x2 约束: 1.  2 * x1 - x2 ...
  • Cyuhong
  • Cyuhong
  • 2016-03-12 15:50:07
  • 2767

运筹学总结—好不好总结就好

关于自学考试中运筹学的一些理解和思维导图的总结。
  • u013030601
  • u013030601
  • 2015-03-08 22:00:26
  • 1704

使用python-pymprog模块解决线性规划的问题

使用python-pymprog模块解决线性规划的问题今天在学习数模的过程中遇到了一些线性规划的问题,老师推荐的是lingo这款软件,然而并不想因此再新学一门语言。于是找到了找到了一个python下解...
  • Gardenia_Hello
  • Gardenia_Hello
  • 2017-04-22 16:54:12
  • 4547

matlab和Python线性规划

先说matlab,数据用csv文件,打开数据用csvread函数注意:csvread函数只试用与用逗号分隔的纯数字文件第一种:M = CSVREAD(‘FILENAME’) ,直接读取csv文件的数据...
  • ZSZ_shsf
  • ZSZ_shsf
  • 2016-10-11 15:00:14
  • 1768

用python做线性规划

比如要做这道题吧,需要用到scipy库里面的函数 scipy.optimize.linprog(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None, boun...
  • your_answer
  • your_answer
  • 2018-01-22 17:14:32
  • 285

Python学习初衷、心得

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...
  • AyoCross
  • AyoCross
  • 2016-09-10 18:31:40
  • 3028
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 89万+
    积分: 2万+
    排名: 335
    博客专栏
    最新评论