主要内容

OptimizationProblem

优化问题

描述

一个OptimizationProblem对象描述了一个优化的问题,包括为优化变量,约束、目标函数,目标是最大化或最小化。解决使用一个完整的问题解决

提示

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

创建

创建一个OptimizationProblem对象的使用optimproblem

警告

具体问题具体分析的方法不支持复杂的值在一个目标函数,非线性等式,或非线性金宝app不等式。如果一个函数计算具有复杂的价值,即使作为一个中间值,最终结果可能是不正确的。

属性

全部展开

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

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

数据类型:字符|字符串

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

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

例子:“最大化”

数据类型:字符|字符串

这个属性是只读的。

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

数据类型:结构体

目标函数,指定为一个标量OptimizationExpression包含一个标量或结构OptimizationExpression。把一个目标函数的问题,当你创建问题,通过使用点符号或更高版本。

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

优化约束条件,指定为一个OptimizationConstraint对象,一个OptimizationEquality对象,一个OptimizationInequality对象,或作为一个结构包含这些对象之一。将约束问题当您创建问题,通过使用点符号或晚:

若干=结构(“TrayArea”,20 * 10 *布朗尼+饼干< = traysize,“TrayWeight”12 *布朗尼+ 18 *饼干< = maxweight);概率= optimproblem (“约束”若干)%或prob.Constraints。TrayArea = 10 *布朗尼+ 20 *饼干< = traysize prob.Constraints。TrayWeight = 12 *布朗尼+ 18 * < = maxweight cookie

删除一个约束通过设置它[]

prob.Constraints。TrayArea = [];

对象的功能

optimoptions 创建优化选项
prob2struct 优化问题或方程问题转化为求解器的形式
显示 显示信息优化对象
解决 解决优化问题或方程的问题
varindex 问题变量映射到solver-based变量指数
保存优化对象描述

例子

全部折叠

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

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

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

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

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

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

回顾这个问题。

显示(概率)
OptimizationProblem:解:x最大化:(1)+ 2 * x(2)受cons1: (1) + 5 * x (2) < = 100 cons2主题:x (1) + (2) < = 40 cons3主题:2 * x(1) + 0.5 *(2) < = 60变量范围:0 < 0 < = x = x (1) (2)

解决这个问题。

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