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.

OptimizationVariable

Variable para la optimización

Descripción

Un objeto contiene variables para las expresiones de optimización.OptimizationVariable Estas expresiones representan la función objetiva o las restricciones. Las variables son de naturaleza simbólica y pueden ser matrices de cualquier tamaño.

Creación

Cree un objeto utilizando.OptimizationVariableoptimvar

Propiedades

expandir todo

Propiedades de toda la matriz

Esta propiedad es de solo lectura.

Nombre de variable, especificado como una cadena o un vector de caracteres.

proporciona la etiqueta de variable que se mostrará, como en,,,, o. también proporciona los nombres de campo en la estructura de la solución que devuelve.NameshowboundsshowconstrshowexprshowproblemshowvarNamesolve

Sugerencia

Para evitar confusiones, establezca el nombre de variable.nameMATLAB® Por ejemplo,

metal = optimvar('metal')

Tipos de datos: char | string

Tipo de variable, especificado como o.'continuous''integer'

  • – Valores reales'continuous'

  • – Valores enteros'integer'

El tipo de variable se aplica a todas las variables de la matriz. Para tener varios tipos de variable, cree varias variables.

Sugerencia

Para especificar una variable binaria, utilice el tipo y especifique = y =.'integer'LowerBound0UpperBound1

Tipos de datos: char | string

Nombres de índice, especificados como una matriz de celdas de cadenas o vectores de caracteres. Para obtener información sobre el uso de nombres de índice, consulte.Índice con nombre para variables de optimización

Tipos de datos: cell

Propiedades de elemento

Límite inferior, especificado como un escalar real o como una matriz real que tiene las mismas dimensiones que el objeto.OptimizationVariable Los valores escalares se aplican a todos los elementos de la variable.

La propiedad siempre se muestra como una matriz.LowerBound Sin embargo, puede establecer la propiedad como un escalar que se aplica a todos los elementos. Por ejemplo,

var.LowerBound = 0

Tipos de datos: double

Límite superior, especificado como un escalar real o como una matriz real que tiene las mismas dimensiones que el objeto.OptimizationVariable Los valores escalares se aplican a todos los elementos de la variable.

La propiedad siempre se muestra como una matriz.UpperBound Sin embargo, puede establecer la propiedad como un escalar que se aplica a todos los elementos. Por ejemplo

var.UpperBound = 1

Tipos de datos: double

Funciones del objeto

showboundsMostrar límites variables
showvarMostrar variable de optimización
writeboundsGuarde la descripción de los límites variables
writevarGuardar Descripción de la variable de optimización

Ejemplos

contraer todo

Cree una variable de optimización escalar denominada.dollars

dollars = optimvar('dollars')
dollars =    OptimizationVariable with properties:            Name: 'dollars'           Type: 'continuous'     IndexNames: {{}  {}}     LowerBound: -Inf     UpperBound: Inf    See variables with showvar.   See bounds with showbounds.  

Cree un vector de variable de optimización de 3 por 1 llamado.x

x = optimvar('x',3)
x =    3x1 OptimizationVariable array with properties:    Array-wide properties:           Name: 'x'           Type: 'continuous'     IndexNames: {{}  {}}    Elementwise properties:     LowerBound: [3x1 double]     UpperBound: [3x1 double]    See variables with showvar.   See bounds with showbounds.  

Cree un vector de variable de optimización de enteros denominado que esté indexado por las cadenas y.bolts"brass""stainless""galvanized" Utilice los índices de para crear una expresión de optimización y experimente con la creación utilizando matrices de caracteres o en una orientación diferente.boltsbolts

Cree utilizando cadenas en una orientación de fila.bolts

bnames = ["brass","stainless","galvanized"]; bolts = optimvar('bolts',bnames,'Type','integer')
bolts =    1x3 OptimizationVariable array with properties:    Array-wide properties:           Name: 'bolts'           Type: 'integer'     IndexNames: {{}  {1x3 cell}}    Elementwise properties:     LowerBound: [-Inf -Inf -Inf]     UpperBound: [Inf Inf Inf]    See variables with showvar.   See bounds with showbounds.  

Cree una expresión de optimización mediante los índices de cadena.

y = bolts("brass") + 2*bolts("stainless") + 4*bolts("galvanized")
y =    Linear OptimizationExpression      bolts('brass') + 2*bolts('stainless') + 4*bolts('galvanized')  

Utilice una matriz de celdas de vectores de caracteres en lugar de cadenas para obtener una variable con los mismos índices que antes.

bnames = {'brass','stainless','galvanized'}; bolts = optimvar('bolts',bnames,'Type','integer')
bolts =    1x3 OptimizationVariable array with properties:    Array-wide properties:           Name: 'bolts'           Type: 'integer'     IndexNames: {{}  {1x3 cell}}    Elementwise properties:     LowerBound: [-Inf -Inf -Inf]     UpperBound: [Inf Inf Inf]    See variables with showvar.   See bounds with showbounds.  

Utilice una versión orientada a columnas de, 3 por 1 en lugar de 1 por 3, y observe que tiene esa orientación también.bnamesbolts

bnames = ["brass";"stainless";"galvanized"]; bolts = optimvar('bolts',bnames,'Type','integer')
bolts =    3x1 OptimizationVariable array with properties:    Array-wide properties:           Name: 'bolts'           Type: 'integer'     IndexNames: {{1x3 cell}  {}}    Elementwise properties:     LowerBound: [3x1 double]     UpperBound: [3x1 double]    See variables with showvar.   See bounds with showbounds.  

Cree una matriz de 3 por 4 por 2 de las variables de optimización nombradas.xarray

xarray = optimvar('xarray',3,4,2)
xarray =    3x4x2 OptimizationVariable array with properties:    Array-wide properties:           Name: 'xarray'           Type: 'continuous'     IndexNames: {{}  {}  {}}    Elementwise properties:     LowerBound: [3x4x2 double]     UpperBound: [3x4x2 double]    See variables with showvar.   See bounds with showbounds.  

También puede crear variables multidimensionales indexadas por una mezcla de nombres e índices numéricos. Por ejemplo, cree una matriz de 3 por 4 de variables de optimización donde la primera dimensión está indexada por las cadenas y, y la segunda dimensión se indexa numéricamente.'brass''stainless''galvanized'

bnames = ["brass","stainless","galvanized"]; bolts = optimvar('bolts',bnames,4)
bolts =    3x4 OptimizationVariable array with properties:    Array-wide properties:           Name: 'bolts'           Type: 'continuous'     IndexNames: {{1x3 cell}  {}}    Elementwise properties:     LowerBound: [3x4 double]     UpperBound: [3x4 double]    See variables with showvar.   See bounds with showbounds.  

Cree una variable de optimización denominada de tamaño 3 por 3 por 3 que represente variables binarias.x

x = optimvar('x',3,3,3,'Type','integer','LowerBound',0,'UpperBound',1)
x =    3x3x3 OptimizationVariable array with properties:    Array-wide properties:           Name: 'x'           Type: 'integer'     IndexNames: {{}  {}  {}}    Elementwise properties:     LowerBound: [3x3x3 double]     UpperBound: [3x3x3 double]    See variables with showvar.   See bounds with showbounds.  

Más acerca de

expandir todo

Sugerencias

  • objetos tienen un comportamiento de copia.OptimizationVariablehandle Mira y.Handle Object Behavior (MATLAB)Comparison of Handle and Value Classes (MATLAB) Controlar el comportamiento de la copia significa que una copia de un punto al original y no tiene una existencia independiente.OptimizationVariable Por ejemplo, cree una variable, cópiela y, a continuación, establezca una propiedad de.xyy Tenga en cuenta que toma el nuevo valor de propiedad.x

    x = optimvar('x','LowerBound',1); y = x; y.LowerBound = 0; showbounds(x)
         0 <= x

Introducido en R2017b