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.

optimvar

Cree variables de optimización

Descripción

ejemplo

x = optimvar(name) crea una variable de optimización escalar. Una variable de optimización es un objeto simbólico que permite crear expresiones para la función objetiva y las restricciones de problemas en términos de la variable.

Sugerencia

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

metal = optimvar('metal')

ejemplo

x = optimvar(name,n) crea un vector de variables de optimización de-por-1.n

ejemplo

x = optimvar(name,cstr) crea un vector de variables de optimización que puede utilizar para la indexación.cstr El número de elementos de es el mismo que la longitud del vector.xcstr La orientación de es la misma que la orientación de: es un vector de fila cuando es un vector de fila, y es un vector de columna cuando es un vector de columna.xcstrxcstrxcstr

ejemplo

x = optimvar(name,cstr1,n2,...,cstrk) O x = optimvar(name,{cstr1,cstr2,...,cstrk}) O x = optimvar(name,[n1,n2,...,nk]), para cualquier combinación de enteros positivos j y nombres k, crea una matriz de variables de optimización con dimensiones iguales a los enteros j y las longitudes de las entradas k.ncstrncstr1

ejemplo

x = optimvar(___,Name,Value), para cualquier sintaxis anterior, utiliza opciones adicionales especificadas por uno o más argumentos de par.Name,Value Por ejemplo, para especificar una variable de entero, use.x = optimvar('x','Type','integer')

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.  

Argumentos de entrada

contraer todo

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

Sugerencia

Para evitar confusiones sobre qué nombre se relaciona con qué aspecto de una variable, establezca el nombre de la variable de área de trabajo en el nombre de la variable. Por ejemplo,

truck = optimvar('truck');

Ejemplo: "Warehouse"

Ejemplo: 'truck'

Tipos de datos: char | string

Dimensión variable, especificada como un entero positivo.

Ejemplo: 4

Tipos de datos: double

Nombres de índice, especificados como una matriz de cadenas o una matriz de celdas de matrices de caracteres.

Ejemplo: x = optimvar('x',["Warehouse","Truck","City"])

Ejemplo: x = optimvar('x',{'Warehouse','Truck','City'})

Tipos de datos: string | cell

Argumentos de par nombre-valor

Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

Ejemplo: Crear como un vector no negativo de 3 elementos con y por el comandoxx(2) <= 2x(3) <= 4x = optimvar('x',3,'LowerBound',0,'UpperBound',[Inf,2,4])

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 variables binarias, utilice el tipo con igual a e igual a.'integer'LowerBound0UpperBound1

Ejemplo: 'integer'

Límites inferiores, especificados como una matriz del mismo tamaño que o como un escalar real.x Si es un escalar, el valor se aplica a todos los elementos de.LowerBoundx

Ejemplo: Para establecer un límite inferior de todos los elementos de, especifique el valor escalar.0x0

Tipos de datos: double

Límites superiores, especificados como una matriz del mismo tamaño que o como un escalar real.x Si es un escalar, el valor se aplica a todos los elementos de.UpperBoundx

Ejemplo: Para establecer un límite superior de todos los elementos de, especifique el valor escalar.2x2

Tipos de datos: double

Argumentos de salida

contraer todo

Variable de optimización, devuelta como una matriz.OptimizationVariable Las dimensiones de la matriz son las mismas que las de las variables de entrada correspondientes, como-por-.cstr1cstr2

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