今天给大家介绍一款小型求解器:excel_solver。该求解器是基于Scipy、Numpy开发的。
从官网上看,该包使用 Scipy 函数模拟 Excel 求解器的 UI 的包装器。实际上是使用了scipy.optimize.linprog()函数,但该包对该函数进行了简化封装,使用起来非常方便。
安装
安装方式跟其他包安装方式一样,使用pip就行。
pip install excel-solver==0.0.0
安装完成后就可以直接使用了。
基础使用
案例1,解决一个最小化的线性规划的问题。在python中编程处理,非常简洁方便。
import excel_solver as solver
solver.solve(
problem_type = "min",
objective_function = [
4, 5, 3, 7, 6
],
constraints_left = [
[10, 20, 10, 30, 20],
[5, 7, 4, 9, 2],
[1, 4, 10, 2, 1],
[500, 450, 160, 300, 500],
],
constraints_right = [
16,
10,
15,
600,
],
constraints_signs = [
">=",
">=",
">=",
">=",
],
minimum_for_all=0.1, # 根据15行到19行设定一个最小值的约束。
)
输出结果:
案例2,解决一个最大化的线性规划的问题。
import excel_solver as solver
solver.solve(
problem_type = "max",
objective_function = [
16, 20.5, 14
],
constraints_left = [
[4, 6, 2],
[3, 8, 6],
[9, 6, 4],
[30, 40, 25],
],
constraints_right = [
2000,
2000,
1440,
9600,
],
constraints_signs = [
"<=",
"<=",
"<=",
"<=",
],
)
输出结果:
求解方式代码非常简便、易用。对于小规模线性规划问题,完全可以使用该求解包求解。
微信公众号后台回复
加群:加入全球华人OR|AI|DS社区硕博微信学术群
资料:免费获得大量运筹学相关学习资料
人才库:加入运筹精英人才库,获得独家职位推荐
电子书:免费获取平台小编独家创作的优化理论、运筹实践和数据科学电子书,持续更新中ing...
加入我们:加入「运筹OR帷幄」,参与内容创作平台运营
知识星球:加入「运筹OR帷幄」数据算法社区,免费参与每周「领读计划」、「行业inTalk」、「OR会客厅」等直播活动,与数百位签约大V进行在线交流
文章须知
文章作者:用户007
微信编辑:疑疑
文章转载自『Python学习杂记』公众号,原文链接:一款小型求解器使用介绍
关注我们
FOLLOW US