pyomo的特殊结构检测

cog-suspect的Python项目详细描述


pyomo的特殊结构检测

DOItraviscodecov

此库实现以下方法:

  • 检测凸凹表达式
  • 检测递增和递减表达式
  • 检测线性、二次和多项式表达式
  • 收紧表达式边界

请将此软件作为

@Article{Suspect2019,
author={Ceccon, Francesco and Siirola, John D. and Misener, Ruth},
title={{SUSPECT}: {MINLP} special structure detector for Pyomo},
journal={Optimization Letters},
year={2019},
month={Feb},
issn="1862-4480",
doi="10.1007/s11590-019-01396-y",
url="https://doi.org/10.1007/s11590-019-01396-y"
}

安装

疑犯需要Python3.5或更高版本。我们建议在 虚拟环境

要创建虚拟环境,请运行:

$ python3 -m venv myenv
$ source myenv/bin/activate

然后您就可以克隆并安装可疑的:

$ git clone https://github.com/cog-imperial/suspect.git
$ cd suspect
$ pip install -r requirements.txt
$ pip install .

命令行用法

包中包含一个实用程序,用于显示有关 一个问题。

您可以按以下方式运行实用程序:

model_summary.py -p /path/to/problem.osil

或者,如果要检查变量边界,请包含解决方案:

model_summary.py -p /path/to/problem.osil -s /path/to/problem.sol

存储库还包含一个dockerfile以简化在 云环境中的批处理模式。有关详细信息,请参阅批处理文件夹。

库使用

fromsuspectimportdetect_special_structureimportpyomo.environasamlmodel=aml.ConcreteModel()model.x=aml.Var()model.y=aml.Var()model.obj=aml.Objective(expr=(model.y-model.x)**3)model.c1=aml.Constraint(expr=model.y-model.x>=0)info=detect_special_structure(model)# try info.variables, info.objectives, and info.constraintsprint(info.objectives['obj'])

许可证

版权所有2018 Francesco Ceccon

根据apache许可证2.0版(以下简称“许可证”)授权; 除非符合许可证,否则您不能使用此文件。 您可以在以下网址获取许可证副本:

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则软件 根据许可证分发是按“原样”分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。

确认

这项工作是由一个工程和物理科学研究委员会的研究奖学金,以RM[赠款编号EP/p016871/1]资助。

更改日志

1.1.0(2019-01-31)

  • 添加二次表达式类型
  • 为x*x添加间隔特例
  • 固定间隔sin
  • 添加与数字的间隔比较

1.0.7(2018-08-30)

  • 添加间隔abs
  • 增加间隔功率

1.0.6(2018-07-05)

  • 将expressiontype和unaryFunctionType更改为intenum

1.0.5(2018-07-05)

  • 文档改进

1.0.4(2018-07-04)

  • 首次公开发行。耶!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用“Wed,01 Jul 2015 17:32:41 EDT”解析字符串   java Storm apache升级(1.0.0到2.0.0)   java类驻留在不同的目录中,而不是包指定的目录。为什么?   将Java中的图像缩放到非常小的维度   java如何通过子文档从自定义方面访问ElasticSearch parentdoc字段   java如何在RationalSoftwareArchitect中使用findbugs?   Java中的事件提升处理   java值被添加到arrayList的所有索引中,而不是在“”时添加到最后一个索引中。正在使用arraylist的add()方法   JFrame中的java JPanel派生类   java如何用循环和异步方法模拟类   java Android阻止可绘制背景超出视图范围   为客户排序Java阵列   java Apache poi如何将工作表设置为枚举位置值属性?   java Rhino在使用自定义类参数调用javascript函数时出错   java格式化日期从年月日到年月日   spring如何修复java。lang.illegalargumentexception在此特定场景中是否尝试创建具有null实体的合并事件?   java如何创建更好的对象