pyomo的特殊结构检测
cog-suspect的Python项目详细描述
pyomo的特殊结构检测
此库实现以下方法:
- 检测凸凹表达式
- 检测递增和递减表达式
- 检测线性、二次和多项式表达式
- 收紧表达式边界
请将此软件作为
@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)
- 首次公开发行。耶!