fico xpress优化器python接口
xpress的Python项目详细描述
Xpress Python接口
xpress python接口是一个python模块,用于使用python编程语言和FICO Xpress优化器库创建和解决优化问题。该模块允许
- 创建、处理、解决和查询优化问题;
- 使用python数字库(如numpy)创建优化问题;
- 设置并获取问题参数(控件和属性)的值;以及
- 使用python函数作为xpress优化器和xpress非线性解算器的回调。
xpress python接口允许创建、处理和解决所有可以用fico xpress库解决的问题:线性规划(lp)、二次规划(qp)、二阶圆锥规划(socp)及其混合整数扩展:milp、miqp、miqcqp、misocp,以及一般非线性和混合整数非线性。
示例
下面是一个带二次约束和两个变量的优化问题,其中一个变量是整数:
min x1^2 + 2 x2
s.t. x1 + 3 x2 >= 4
-10 <= x1 <= 10
x1 in Z
x2 >= 0
程序的输入和求解如下(注意,所有变量都假定为非负):
importxpressasxpx=xp.var(vartype=xp.integer,name='x1',lb=-10,ub=10)y=xp.var(name='x2')p=xp.problem()p.addVariable(x,y)p.setObjective(x**2+2*y)p.addConstraint(x+3*y>=4)p.solve()print("solution: {0} = {1}; {2} = {3}".format(x.name,p.getSolution(x),y.name,p.getSolution(y)))
安装
从8.5.3版开始,可以从PyPI和Anaconda下载Xpress Python接口。运行
pip install xpress
从pypi安装,然后
conda install -c fico-xpress xpress
从conda存储库安装。
下载的包中包含:一个文件夹,其中包含模块使用的几个示例,难度各不相同;一个目录license
,其中包含Xpress Community License;一个目录doc
,其中包含PDF版本的手册——Xpress优化器库的完整HTML文档,包括Python接口及其示例,也可以在FICO Xpress Optimization Help页上找到。
如果您没有任何FICO Xpress许可证,则模块将识别社区许可证,无需进一步操作。如果您确实拥有许可证,例如位于/users/johndoe/xpauth.xpr
,请确保将全局环境变量XPRESS
设置为指向包含xpauth.xpr
文件的文件夹,即XPRESS=/user/johndoe
。
许可
位于license
目录中的文件community-xpauth.xpr
许可证文件允许解决最多5000行+列的问题。要获得无限制的许可证,请通过support@fico.com与FICO联系。学术许可证也是无限的,可以通过Academic Partnership Program获得。
版权所有(c)Fair Isaac 1983-2019