一款小型求解器使用介绍

科技   2024-10-06 20:06   德国  

今天给大家介绍一款小型求解器: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

































运筹OR帷幄
致力于成为全球最大的运筹学中文线上社区
 最新文章