xprog用户指南Word格式.docx

上传人:b****2 文档编号:14939649 上传时间:2022-10-26 格式:DOCX 页数:37 大小:514.95KB
下载 相关 举报
xprog用户指南Word格式.docx_第1页
第1页 / 共37页
xprog用户指南Word格式.docx_第2页
第2页 / 共37页
xprog用户指南Word格式.docx_第3页
第3页 / 共37页
xprog用户指南Word格式.docx_第4页
第4页 / 共37页
xprog用户指南Word格式.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

xprog用户指南Word格式.docx

《xprog用户指南Word格式.docx》由会员分享,可在线阅读,更多相关《xprog用户指南Word格式.docx(37页珍藏版)》请在冰豆网上搜索。

xprog用户指南Word格式.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1