跳到内容
/ 萨索比 公共

sasoptpy是一个Python包,为SAS Viya Optimization解算器提供建模接口。

许可证

通知 您必须登录才能更改通知设置

sassoftware/sasoptpy

存储库文件导航

概述

sasoptpy是用于SAS优化和SAS/OR解算器的Python接口。它使开发人员能够使用本机Python数据结构快速制定和解决数学优化问题。sasoptpy可以处理客户端和服务器端数据,并且允许并发,这使它成为处理小型和大型项目的一个很好的工具。

特征

  • 支持多种优化问题类型:
    • 线性优化(LP)
    • 混合整数线性优化(MILP)
    • 非线性优化(NLP)
    • 二次优化(QP)
  • 同时使用客户端和服务器端数据
  • 允许使用运行时操作进行抽象建模
  • 支持工作区,使您能够同时运行多个问题
  • 提供用于调整MILP解算器参数的包装器

流量

混凝土模型

使用本机Python功能,您可以在客户端上建模优化问题,并在SAS Viya或SAS 9.4中解决它。该问题完全由客户端生成,计算量大的部分由优化求解器处理。

抽象模型

如果服务器上有可用的数据,则可以对抽象问题建模,并显著缩短模型生成时间。您还可以从同时解决几个问题中受益。

安装

您可以通过PyPI、Conda或从存储库中进行克隆来安装saoptpy。

  • PyPI公司

    pip安装sasoptpy
  • 康达

    conda安装-c sas-institute sasoptpy
  • 存储库

    git克隆https://github.com/sassoftware/sasoptpy.git光盘萨索比/python3 setup.py安装

示例

1.团队选择问题

在许多团队运动中,如足球、篮球和电子竞技,一个常见的任务是从可用的球员库中选择团队成员。在下面的例子中,考虑一个一般性的问题,决策者试图从数百名候选人中签下三名球员。目标是最大化团队的总评分。

问题总结如下:

  • 数据
    • 球员名单及其属性、所需位置和合同价格
    • 预算限额
  • 决策
    • 为每个位置选择签约球员
  • 约束条件
    • 总签署成本不应超过预算限制
    • 玩家只能玩他们想要的位置

目标就是最大化团队评级。团队评级是职位对评级的平方和。

Jupyter笔记本显示了如何使用简单线性化和SAS优化MILP解算器解决此问题。(nbviewer)

2.饮食问题

饮食问题,也称为Stigler饮食问题,是文献中最早的优化问题之一。乔治·斯蒂格勒(George J.Stigler)最初提出的问题是如何在满足最低营养需求的同时找到最便宜的饮食(斯蒂格勒1945)。

这个众所周知的问题可以用线性优化很容易地解决。由于该方法尚未在1937年开发,Stigler使用启发式解决了这个问题。尽管他的解决方案不是最佳解决方案,但他每年只差24美分就错过了最佳解决方案。

您可以看到如何使用中sasoptpy包的建模功能,将此问题写入数学方程并输入SAS优化求解器Jupyter笔记本.(nbviewer)


贡献

我们欢迎所有贡献,包括错误报告、新功能、文档修复、性能增强和新想法。

如果你有什么要分享的,我们接受Github上的拉请求。请参阅贡献说明了解更多详细信息。请参阅出资人协议有关我们行为准则的更多详细信息。

测验

单元测试主要用于内部测试。如果设置了环境变量,可以使用单位测试测试提交的健康状况或测试代码覆盖率。请参见测试自述文件了解更多详细信息。

文档

官方文档托管在Github Pages上:https://sassoftware.github.io/sasoptpy网址/.

还提供PDF版本:https://sassoftware.github.io/sasoptpy/sasopcpy.pdf.

使用以下命令自动生成文档狮身人面像源代码中提供了所有类、方法和函数API。主结构可以在文件文件夹。

许可证

此软件包是在Apache 2.0许可证下发布的。请参见许可证了解详细信息。


版权所有©SAS Institute Inc。

关于

sasoptpy是一个Python包,为SAS Viya Optimization解算器提供建模接口。

资源

许可证

星星

观察者

叉子

包装

未发布任何程序包

贡献者4

  •  
  •  
  •  
  •