主要内容

优化问题

优化问题

描述

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

小费

对于完整的工作流程,请参阅基于问题的优化工作流程

创建

创建一个优化问题对象的使用OptimProblem.

警告

基于问题的方法不支持客观函数,非线性等分或非线性不等式中的复杂值。万博1manbetx如果函数计算具有复数,甚至作为中间值,最终结果也可能不正确。

特性

展开全部

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

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

数据类型:char|细绳

指示最小化或最大化,指定为'最小化''最大化'。这个属性会影响如何解决的工作原理。

您可以使用短名称'min'为了'最小化'“马克斯”为了'最大化'

例子:'最大化'

数据类型:char|细绳

此属性是只读的。

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

数据类型:塑造

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

prob = OptimProblem('客观的',5 *布朗尼酸+ 2 *饼干)%或prob = OptimProblem;prob.objective = 5 *布朗尼酸+ 2 * cookie

优化约束,指定为一个优化混合物对象,一个优化等级对象,一个OptimizationInequality对象,或作为包含其中一个对象的结构。使用点表示法创建问题时,将约束合并到问题中,或者以后:

constrs = struct('trayarea',10 *布朗尼尼斯+ 20 * cookie <=镶嵌,......'trayweight',12 *布朗尼尼+ 18 * cookie <= maxweight);prob = OptimProblem('限制',约束)%或prob.constraints.trayarea = 10 *布朗尼+ 20 * cookie <= traysize prob.constraints.trayweight = 12 *布朗尼+ 18 * cookie <= maxweight

通过设置来移除约束[]

prob.constraints.trayarea = [];

对象功能

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

例子

全部收缩

为最大化创建线性编程问题。问题有两个正变量和三个线性不等式约束。

prob = OptimProblem('ObjectiveSense'“马克斯”);

创建正变量。在问题中包含目标函数。

x = Optimvar('X',2,1,'indowbound', 0);概率。目标= x(1) + 2*x(2);

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

drawtext (x(1) + 5*x(2) <= 100;drawtext (x(1) + x(2) <= 40;drawtext (1) = 2*x(1) + x(2)/2, colorred;prob.Constraints。cons1 = cons1;prob.Constraints。cons2 = cons2;prob.Constraints。cons3 = cons3;

回顾这个问题。

展示(prob)
优化问题:求解:x最大化:x(1)+ 2 * x(2)受CONS1:x(1)+ 5 * x(2)<= 100受到CONS2的影响:x(1)+ x(2)<= 40受限于CONS3:2 * x(1)+ 0.5 * x(2)<= 60可变界限:0 <= x(1)0 <= x(2)

解决这个问题。

索尔=解决(问题);
使用linprog解决问题。找到最佳解决方案。
sol.x.
ans =.2×125.0000 15.0000
在R2017B中介绍