xprog用户指南Word格式.docx
- 文档编号:14939649
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:37
- 大小:514.95KB
xprog用户指南Word格式.docx
《xprog用户指南Word格式.docx》由会员分享,可在线阅读,更多相关《xprog用户指南Word格式.docx(37页珍藏版)》请在冰豆网上搜索。
3.2.1简单投资组合示例13
3.2.2库存示例15
4分布式鲁棒优化18
4.1Xprog应用于分布式鲁棒优化18
4.11模糊集18
4.L2扩展模糊集的构造18
4.1.3模糊集的期望19
4.2示彳列20
421简单分布鲁棒优化问题20
4.2.2报童模型23
4.2.3医疗预约安排26
1介绍
XPios是一个用于在MATLAB环境下构造不确定性优化模型的工具箱。
(2012A或以上版本)。
它能够解决确定性的、随机的、鲁棒的和分布式的。
鲁棒优化问题(1,2,3)。
灵感来自决策规则技术[1,2,4,5],这工具箱还支持将多阶段问题中的可调整资源决策建模为可处理的决策规则近似。
与MATLAB的矩阵计算语法一致,XProg非常易于实现,并且与其他MATLAB的数值函数和图形函数兼容。
针对大规模优化问题,开发了基于高效矩阵处理函数的工具箱,能够利用不确定集的特殊结构来降低计算成本。
IBMILOGCPLEX混合整数优化器在当前版本中用于求解以线性、二次或二阶锥形程序形式的模型。
在整个用户指南中,我们将使用粗体字母来表示矩阵和向量。
矩阵或向量的条目用带表示索引下标的常规字母表示。
工具箱中的所有函数都被写为函数“functions”,而输入和输出参数则写作“arguments”。
随后的章节组织如下。
下一章介绍了该工具箱的配置、数据结构和基本功能。
利用几个确定性和随机性编程实例演示了XProg的实现。
第三章给出了求解鲁棒优化问题的一般步骤,包括建立随机变量和不确定性集合,以及为可调整决策建立决策规则函数。
最后一章讨论了分布式鲁棒优化问题的建模与求解。
2从XPorg开始
2.1准备工作
XP1O2在32位和64位Matlab下工作,版本2012A或以上。
它需要安装IBMILOGCPLEX作为混合整数优化器。
这个软件是一个流行的商业求解器,而且对学校使用人员是免费的。
2.2配置
XProg使用IBMILOGCPLEXOptimizationStudio12.6.3/12.6.2/12.6.1作为求解器。
如果这些解决程序已经安装在默认目录下,那么它们可以轻松地与我们的工具箱链接。
用户只需要在命令窗口中运行交互式输入程序conjfigure。
如图2.1所示,您可以选择您正在使用的CPLEX优化器的版本。
然后程序将询问所选的解决程序是否安装在默认目录中。
一旦用户键入"
Y”,程序就完成了配置过程。
如果使川其他版本的CPLEX优化器,或者如果这些求解器安装在其他目录中,那么一旦指定了求解器的版本和目录,程序配置将帮助用户编译求解器函数。
如果使用其他版本的CPLEX优化器,或者指定了这些求解器。
请注意,在这种情况下,您需要在计算机中安装兼容的C/C++编译器,并且编译器应该在MATLAB命令提示符下通过调用“MEX安装程序”来预先激活。
详细过程如图2.2所示。
配置XProg的笫一步是将“dll”文件“cplexXXXX.dll”从"
CPLEX根目录CPLEXXXXcpleXXXX\cple\bin”目录复制到XProg工具箱的由mction”文件夹中,其中“XXXX”表示CPLEX优化器的版本号。
请注意,在使用XPROG之前,只需要进行编译。
除非使用不同版本的CPLEX优化器,否则不需要为将来的实现重复这些步骤。
CommandWindow
»
configure
PleasespecifytheversioncfIBMILOGCPLE.i.
[1]IBMILOGCPLEXOptUULZatiOnStUCllC12.6.3
[2JIBMILOGCPLLXOptULlZctlOIl5gdic12.6.2
[2JTRMTT-narPT.FV即七^行行^具七夕CT!
Kfiid'
c
[1]Ouhcxa
[0]None
Yourselecclonis:
1
TrCPT.EXC^firrizatinnStndir1363in9dlFdinthen»
fai21-di-yXPrcoconiijuxacicncomlered!
图2.1配置xprogCPLEX12.6.3安装在默认目录
CommandWtndo,<
/⑥
canEigure
Plecscspecify匕huvcrzionofISMIICGCPLEX.
[1]IBMILOSCPLEXOp^urazatxonStJdio12.€.3
[2]IBMILOSCPLEXOptimizationStJdio12.6.2
[3]IBMILOSCPLEHOp^dmisationSwdio12.€.1[ijorneis
Yourseleculonis:
4
FLecscnp〜工lyulicvc.zXjq。
工ulicCTLEXoulvcx.CPLEX12.6.3
Pleajsespecifythedirectoryo£
IBHTLOGCFZJZXsolver.
C:
\Egg=皿?
ilss\IBM\2LO3\CFLEX_Stadxol263
Biildxngwizh•MicrosoftVxsualC+4-2008(C),.
MIXco3nplet:
edsuccessrulty.
SolvershavebeenccmpiXedsucceasEully.
XPrcgconriguracionconpieced!
为》
图2.2配置XPROG为用户指定的求解器
2.3XProg基础
2.3.1XProg的模型,决策,约束
在XProg工具箱中定义了以下对象和函数来构造和解决优化模型。
1)startxprog和endxprog
函薮starjxprog用于把XProg工具箱包含到工作目录中,并且在运行基于XProg的任何代码之前都需要它。
一旦工具箱被包含到工作目录中,用户可以在任何文件夹中执行XPROG程序。
函数end_xprog用于从当前工作目录中删除XPROG。
如果函数或对象名称与其他工具箱存在矛盾,则使用此函数。
在下表中列出了所有XPROG对象的名称。
表2」XPorg工具箱的对象
名称
定义
absexp
线性仿射表达式的绝对值
bound
决策变量或随机变量的界
constraint
约束条件
drcconstraint
具有期望条件的不确定约束的鲁棒对偶
exp
线性仿射表达式的指数函数
expconstraint
期望条件约束
explinfun
一类不确定线性函数的期望
expoconstraint
指数约束
linfun
线性函数
linoptim
确定性优化程序
normconstraint
二阶锥约束
normexp
二阶锥表达式
qexpconstraint
圆锥指数二次约束
qexpfun
圆锥指数二次函数
rcconstraint
不确定约束的鲁棒对应
refrule
带索引的决策规则函数
rule
决策规则函数
sqconstraint
平方项的约束
sqconstraints
平方项约束
sqexp
平方表达式
sqmat
矩阵形式的平方表达式
subsets
置信集
unconstraints
不确定性约束
不确定线性函数
variables
决策变量或随机变量
xprog
XPROG模型
2)xprog
函数xprog创建一个新的XPROG优化模型对象
Model=xprog创建优化模型对象模型
model=xprog(nanie)创建一个优化对象model带有用户定义的标题name
3)decision
函数decision为模型对象定义新的决策变量
x=model.decision为模型对象model定义一个连续决策变量x
x=model.dedsion(N)为model定义N*1的向量x为连续决策变量
x=model.decision(N,M)为model定义N*M的向量x为连续决策变量
x=model.decision(N,M,type)?
jmodel定义N*M的向量x为连续决策变量。
如果type=O,则这些变量是连续的;
如果type=l,则这些变量是二进制的;
如果type=2,则这些变量是通用整数。
x=model.decision(N,M,type,name)这组变量的名称是name
4)add
函数add用于添加一组约束到模型对象中
model.add(constralnt)添加constraint到优化模型对象model中。
参数constraint可以是任何确定性二次可表示约束,或者线性约束,包括随机变量或期望项。
model.add(constrahit,naine)指定name为约束名称
5)min和max
函数min和max用来定义对象函数。
对象函数必须是1*1的形式。
注意不允许对同一个模型定义对象函数超过一次。
如果对象函数被修改,将会给出错误信息。
modeLmhi(Fim)最小化对象函数Fun。
modeLmax(Fun)最大化对象函数Fun。
6)solve
函数solve解答Xprog工具箱构建的优化问题。
modeLsolve解决对象model的优化问题。
相对混合整数规划(MIP)的间隔设置为10口如果问题中包含整数变量。
modeLsolve(MIPGAP)求解程序将终止当MIP间隔小于误差MIPGAP。
注意MIP间隔误差是无效的当model中所有决策变量都是连续的。
7)get
函数get用来检索模型的目标值,或选择决策变量的最优解。
modeLget得到对象model的值。
x.get得到决策变量矩阵x的解232矩阵索引与算术运算
XProg应用与MATLAB相同的索引系统访问矩阵中的决策变量。
下面的示例演示如何为索引决策变量制定约束。
model=xprog;
%createamodel;
x=model.decision(5,6);
%definea5*6decisionvariablematrix
modeLadd(x>
=0);
model.add(x>
=zeros(5,6));
model.add(3*x(l,5)<
=10);
model.add(x(l,:
)<
=x(5,:
));
model.add(x(:
end-1:
end)<
=l);
%eachelementofxisnonnegative
%sameasabove
%3*x_15<
=10
%the1strow
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- xprog 用户指南
![提示](https://static.bdocx.com/images/bang_tan.gif)