`
hankgong
  • 浏览: 199615 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

PULP:用Python替代AMPL建模语言

阅读更多

数学建模简单的说就是求最大化最小化问题,现在大学都有数学建模比赛,另外做科研的时候其实也经常用到。一般要么是用Lingo,要么是用matlab,其实AMPL是比较通用的描述及数学建模的语言,不过比较贵,记得我以前发神经买过一年的license花了我快2000块钱。

 

现在cplex或者ampl都有破解版的可以下到,不过毕竟不知道什么时候就不能用了,其实也有免费的软件可以用,glpk就可以解LP或者MIP的问题,而且还自带一个简单的模型描述语言,不过有时候要描述复杂一点的场景就有点不行了。

 

PULP是用python写的建模描述语言,自带的例子里面就带有column generation的例子,显然是比glpk自带的那个强不少,下面就用一个例子来说明一个简单建模的流程吧。

 

# Import PuLP modeler functions
from pulp import *

# A new LP problem
prob = LpProblem("test1", LpMinimize)

# Variables
# 0 <= x <= 4
x = LpVariable("x", 0, 4)
# -1 <= y <= 1
y = LpVariable("y", -1, 1)
# 0 <= z
z = LpVariable("z", 0)
# Use None for +/- Infinity, i.e. z <= 0 -> LpVariable("z", None, 0)

# Objective
prob += x + 4*y + 9*z, "obj"
# (the name at the end is facultative)

# Constraints
prob += x+y <= 5, "c1"
prob += x+z >= 10, "c2"
prob += -y+z == 7, "c3"
# (the names at the end are facultative)

# Write the problem as an LP file
prob.writeLP("test1.lp")

# Solve the problem using the default solver
prob.solve()
# Use prob.solve(GLPK()) instead to choose GLPK as the solver
# Use GLPK(msg = 0) to suppress GLPK messages
# If GLPK is not in your path and you lack the pulpGLPK module,
# replace GLPK() with GLPK("/path/")
# Where /path/ is the path to glpsol (excluding glpsol itself).
# If you want to use CPLEX, use CPLEX() instead of GLPK().
# If you want to use XPRESS, use XPRESS() instead of GLPK().
# If you want to use COIN, use COIN() instead of GLPK(). In this last case,
# two paths may be provided (one to clp, one to cbc).

# Print the status of the solved LP
print "Status:", LpStatus[prob.status]

# Print the value of the variables at the optimum
for v in prob.variables():
	print v.name, "=", v.varValue

# Print the value of the objective
print "objective=", value(prob.objective)

 

分享到:
评论
2 楼 hankgong 2010-06-23  
我个人是不喜欢matlab,也几乎从来没有用过matlab,虽然matlab有着无数我永远都用不到的库函数。

庞然大物不说,matlab的语法也很过时了。matlab用来描述建模的问题好像不太方便,要变成矩阵的样子。不过现在在也有matlab中可以描述问题的库了,stanford有个cvx可以解LP和一般的凸优化。
1 楼 passionke 2010-06-23  
不错  呵呵 python可以考虑哦
我暑假要参加数学建模了
但是matlab还是有优势些罢 

相关推荐

    Python库 | PuLP-1.5.1.zip

    资源分类:Python库 所属语言:Python 资源全名:PuLP-1.5.1.zip 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    pulp:python线性编程API

    PuLP是用Python编写的LP建模器。 PuLP可以生成MPS或LP文件,并调用 ,COIN-OR CLP / , , , , , , , 来解决线性问题。 安装 安装纸浆的最简单方法是通过 如果您的系统上有pip: python -m pip install pulp...

    PyPI 官网下载 | pulp_python-client-3.6.0.dev1639106886.tar.gz

    3. **易用性**:使用Python语言,使得模型的编写过程简洁且易于理解。 4. **灵活性**:不仅可以处理标准的线性或整数问题,还支持二次规划和非线性问题。 5. **扩展性**:通过插件机制,可以轻松集成新的求解器或...

    Python库 | pulp_python-client-3.3.0.dev1618458733.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:pulp_python-client-3.3.0.dev1618458733.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | pulp_python-client-3.0.0b12.dev1598566289.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:pulp_python-client-3.0.0b12.dev1598566289.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | pulp_python-client-3.6.0.dev1633059275.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:pulp_python-client-3.6.0.dev1633059275.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    puppet-pulp:在redhat linux上安装和管理pulp仓库的模块

    Pulp Repo 带来了托管内部 puppet 存储库的能力(除其他外)(如 puppetforge 但没有漂亮的 Web 界面)。 快速开始 安装 禁用 在同一个机器上安装服务器、管理客户端和消费者: class { 'pulp': } # Install ...

    Python库 | pulp_python-client-3.2.0.tar.gz

    **Python库Pulp详解** Pulp是一个用于线性规划和整数编程的Python库,它为用户提供了在Python环境中构建和解决优化问题的便捷工具。Pulp库是基于COIN-OR的CBC求解器,这是一款开源的线性、整数和混合整数线性规划...

    Python库 | pulp-2to3-migration-0.15.0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:pulp-2to3-migration-0.15.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | pulp_rpm-client-3.8.0.dev1602521314.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:pulp_rpm-client-3.8.0.dev1602521314.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | pulp_python-client-3.0.0b12.dev1601244520.tar.gz

    总结来说,Pulp是一个强大的Python库,它简化了线性规划和整数规划的建模和求解过程,是Python开发者处理优化问题的理想工具。对于那些需要解决复杂优化问题的项目,Pulp是不可多得的利器。通过学习和使用Pulp,...

    Python库 | pulp_python-client-3.3.0.dev1618890811.tar.gz

    Python作为一门广泛使用的编程语言,拥有丰富的库支持,其中Pulp就是一款强大的线性规划求解器,主要用于优化问题的建模和解决。本文将深入探讨Pulp库的核心功能、使用方法以及在实际问题中的应用。 Pulp是Python的...

    Python库 | pulp_python-client-3.7.0.dev1649650315.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:pulp_python-client-3.7.0.dev1649650315.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | pulp_python-client-3.7.0.dev1647857394.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:pulp_python-client-3.7.0.dev1647857394.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | pulp-smash-2017.3.31.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:pulp-smash-2017.3.31.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | pulp_python-client-3.0.0b13.dev1608954229.tar.gz

    《Python库Pulp:优化与建模利器》 在Python的开发世界中,Pulp是一个不可或缺的库,尤其对于那些需要处理线性规划、整数规划等优化问题的后端开发者来说,它提供了强大的建模工具。Pulp是Python的一个开源库,用于...

    基于python进行数学建模源码.zip

    一直以来,数学建模一直都是matlab的天下,所以本人作为python的忠实粉丝,尝试利用python进行数学建模,项目内容包括: 1.利用python进行线性规划--对标lingo 2.利用python进行遗传算法求解-还可以动态可视化--对...

    Python库 | pulp_python-3.0.0b10-py3-none-any.whl

    总的来说,"pulp_python-3.0.0b10-py3-none-any.whl" 是Python开发人员的一个强大工具,它使得复杂的优化问题可以通过Python简洁的语法进行建模和求解。这个压缩包包含了Pulp库的预发布版本,为开发人员提供了试验新...

    Python库 | pulp_rpm_client-3.9.0-py3-none-any.whl

    安装完成后,即可在Python代码中导入并使用`pulp_rpm_client`库。其API设计遵循Python的惯用法,易于理解和使用。例如,要创建一个新的RPM仓库并上传包,可以这样操作: ```python from pulp_rpm_client import ...

    Python库 | pulp_deb-2.12.1-py3-none-any.whl

    资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:pulp_deb-2.12.1-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

Global site tag (gtag.js) - Google Analytics