主要内容

OptimizationProblem

描述

一个OptimizationProblem对象描述优化问题,包括优化变量、约束条件、目标函数以及目标是最大化还是最小化。解决一个完整的问题解决

提示

有关完整的工作流程,请参见具体问题具体分析优化工作流程

创建

创建一个OptimizationProblem对象的使用optimproblem

警告

基于问题的方法不支持目标函数、非线性等式或非线性不等式中的复值。如果函数计算具有复杂值,即使是作为中间值,最终结果也可能是不正确的。

属性

全部展开

问题标签,指定为字符串或字符向量。该软件不使用描述.这是一个随意的标签,你可以用在任何理由上。例如,您可以共享、存档或呈现一个模型或问题,并将模型或问题的描述性信息存储在描述财产。

例子:描述了一个旅行推销员的问题

数据类型:字符|字符串

表示最小化或最大化,指定为“最小化”“最大化”.这个属性会影响解决的工作原理。

您可以使用简短的名称“最小值”“最小化”“马克斯”“最大化”

例子:“最大化”

数据类型:字符|字符串

此属性是只读的。

对象中的优化变量,指定为的结构OptimizationVariable对象。

数据类型:结构体

目标函数,指定为标量OptimizationExpression或者作为包含标量的结构OptimizationExpression.在创建问题时将目标函数合并到问题中,或者稍后使用点表示法。

概率= optimproblem (“目标”5 *布朗尼+ 2 *饼干)%或概率= optimproblem;概率。目标= 5*布朗尼+ 2*饼干

优化约束,指定为OptimizationConstraint对象,一个OptimizationEquality对象,一个OptimizationInequality对象,或作为包含这些对象之一的结构。在创建问题时将约束合并到问题中,或者稍后使用点表示法:

若干=结构(“TrayArea”10*布朗尼+ 20*饼干<= traysize,...“TrayWeight”,12*布朗尼+ 18*饼干<= maxweight);概率= optimproblem (“约束”若干)%或probe . constraints . trayarea = 10* browies + 20*cookies <= traysize probe . constraints . trayweight = 12* browies + 18*cookies <= maxweight

通过将其设置为来删除约束[]

prob.Constraints.TrayArea = [];

对象的功能

optimoptions 创建优化选项
prob2struct 将优化问题或方程问题转化为求解器形式
显示 显示优化对象信息
解决 解决优化问题或方程问题
varindex 将问题变量映射到基于求解器的变量索引
保存优化对象描述

例子

全部折叠

创建一个最大化的线性规划问题。该问题有两个正变量和三个线性不等式约束。

概率= optimproblem (“ObjectiveSense”“马克斯”);

创建积极的变量。在问题中包含一个目标函数。

x = optimvar (“x”、2、1,下界的, 0);概率。目标= x(1) + 2*x(2);

在问题中创建线性不等式约束。

con1 = x(1) + 5*x(2) <= 100;con2 = x(1) + x(2) <= 40;con3 = 2*x(1) + x(2)/2 <= 60;prob.Constraints。cons1 = cons1;prob.Constraints。cons2 = cons2;prob.Constraints。cons3 = cons3;

回顾这个问题。

显示(概率)
优化问题:求解:x maximize: x(1) + 2*x(2)受制于con1: x(1) + 5*x(2) <= 100受制于con2: x(1) + x(2) <= 40受制于con3: 2*x(1) + 0.5*x(2) <= 60变量边界:0 <= x(1) 0 <= x(2)

解决这个问题。

索尔=解决(问题);
使用linprog解决问题。找到最优解。
sol.x
ans =2×125.0000 - 15.0000

版本历史

介绍了R2017b

Baidu
map