Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

OptimizationProblem

Problema de optimización

Descripción

Un objeto describe un problema de optimización, incluidas las variables para la optimización, las restricciones, la función objetiva y si el objetivo debe maximizarse o minimizarse.OptimizationProblem Resuelve un problema completo usando.solve

Creación

Cree un objeto mediante.OptimizationProblemoptimproblem

Propiedades

expandir todo

Etiqueta de problema, especificada como una cadena o un vector de caracteres. El software no utiliza.Descripción Es una etiqueta arbitraria que se puede utilizar por cualquier motivo. Por ejemplo, puede compartir, archivar o presentar un modelo o problema y almacenar información descriptiva sobre el modelo o el problema en la propiedad.Descripción

Ejemplo: "Describes a traveling salesman problem"

Tipos de datos: char | string

Indicación para minimizar o maximizar, especificado como o.'minimize''maximize' Esta propiedad afecta a cómo funciona.solve

Puede utilizar el nombre abreviado para o para.'min''minimize''max''maximize'

Ejemplo: 'maximize'

Tipos de datos: char | string

Esta propiedad es de solo lectura.

Variables de optimización en el objeto, devueltas como una estructura de objetos.OptimizationVariable

Tipos de datos: struct

Función objetiva, especificada como un escalar o como una estructura que contiene un escalar.OptimizationExpressionOptimizationExpression Incorpore una función objetiva al problema al crear el problema, o más adelante utilizando la notación de puntos.

prob = optimproblem('Objective',5*brownies + 2*cookies) % or prob = optimproblem; prob.Objective = 5*brownies + 2*cookies

Restricciones de optimización, especificadas como un objeto o como una estructura que contiene objetos.OptimizationConstraintOptimizationConstraint Incorpore restricciones al problema al crear el problema o, más adelante, utilizando la notación de puntos:

constrs = struct('TrayArea',10*brownies + 20*cookies <= traysize,...     'TrayWeight',12*brownies + 18*cookies <= maxweight); prob = optimproblem('Constraints',constrs) % or prob.Constraints.TrayArea = 10*brownies + 20*cookies <= traysize prob.Constraints.TrayWeight = 12*brownies + 18*cookies <= maxweight

Quite una restricción configurarla.[]

prob.Constraints.TrayArea = [];

Funciones del objeto

writeproblemGuardar Descripción del problema de optimización
showproblemProblema de optimización de pantalla
solveResuelve el problema de optimización
prob2structConvierta el problema de optimización en forma de solucionador

Ejemplos

contraer todo

Crear un problema de programación lineal para la maximización. El problema tiene dos variables positivas y tres restricciones de desigualdad lineales.

prob = optimproblem('ObjectiveSense','max');

Crear variables positivas. Incluya una función objetiva en el problema.

x = optimvar('x',2,1,'LowerBound',0); prob.Objective = x(1) + 2*x(2);

Cree restricciones de desigualdad lineales en el problema.

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

Revisa el problema.

showproblem(prob)
  OptimizationProblem :    max :        x(1) + 2*x(2)   subject to cons1:        x(1) + 5*x(2) <= 100   subject to cons2:        x(1) + x(2) <= 40   subject to cons3:        2*x(1) + 0.5*x(2) <= 60   variable bounds:        0 <= x(1)        0 <= x(2) 

Resuelve el problema.

sol = solve(prob);
Optimal solution found. 
sol.x
ans = 2×1

   25.0000
   15.0000

Introducido en R2017b