Main Content

Referencia de opciones de optimización

Opciones de optimización

La siguiente tabla describe las opciones de optimización. Cree opciones utilizando la función optimoptions u optimset para fminbnd, fminsearch, fzero o lsqnonneg.

Consulte las páginas de referencia de la función en cuestión para ver información sobre los valores de opción disponibles y los valores predeterminados.

Los valores predeterminados para las opciones varían dependiendo de la función de optimización a la que llama con options como argumento de entrada. Puede determinar los valores de opción predeterminados para cualquiera de las funciones de optimización introduciendo optimoptions('solvername') o el equivalente optimoptions(@solvername). Por ejemplo:

optimoptions('fmincon')

devuelve una lista de las opciones y los valores predeterminados para el algoritmo 'interior-point' fmincon predeterminado. Para encontrar los valores predeterminados para otro algoritmo fmincon, establezca la opción Algorithm. Por ejemplo:

opts = optimoptions('fmincon','Algorithm','sqp')

optimoptions "esconde" algunas opciones; es decir, no muestra sus valores. Esas opciones no aparecen en esta tabla. En su lugar, aparecen en Opciones ocultas.

Opciones de optimización

Nombre de opciónDescripciónUtilizada por las funcionesRestricciones
AbsoluteGapTolerance

Valor real no negativo. intlinprog se detiene si la diferencia entre los límites superior (U) e inferior (L) calculados internamente en la función objetivo es menor que o igual a AbsoluteGapTolerance:

U – L <= AbsoluteGapTolerance.

intlinprogSolo optimoptions
AbsoluteMaxObjectiveCount

Número de F(x) para minimizar los valores absolutos del peor de los casos.

fminimax

 
Algorithm

Elige el algoritmo utilizado por el solver.

fmincon, fminunc, fsolve, linprog, lsqcurvefit, lsqlin, lsqnonlin, quadprog 
BarrierParamUpdate

Elige el algoritmo para actualizar el parámetro de barrera del algoritmo 'interior-point', o bien 'monotone' o bien 'predictor-corrector'.

fmincon 
BranchRule

Regla para escoger el componente para la ramificación:

  • 'maxpscost': el componente fraccional con el máximo pseudocoste. Consulte Branch and Bound.

  • 'strongpscost': el componente fraccional con el máximo pseudocoste, con una estimación minuciosa del pseudocoste. Consulte Branch and Bound.

  • 'reliability': el componente fraccional con el máximo pseudocoste, con una estimación incluso más minuciosa del pseudocoste que en 'strongpscost'. Consulte Branch and Bound.

  • 'mostfractional': el componente cuya parte fraccional es la que más se acerca a 1/2.

  • 'maxfun': el componente fraccional con un componente correspondiente máximo en el valor absoluto del vector objetivo f.

intlinprogSolo optimoptions
CheckGradients

Compare las derivadas analíticas proporcionadas por el usuario (gradientes o matrices jacobianas, en función del solver seleccionado) con las derivadas de diferencias finitas.

fgoalattain, fmincon, fminimax, fminunc, fseminf, fsolve, lsqcurvefit, lsqnonlin

Solo optimoptions. Para optimset, utilice DerivativeCheck
ConstraintTolerance

Tolerancia en la vulneración de restricciones.

coneprog, fgoalattain, fmincon, fminimax, fseminf, intlinprog, linprog, lsqlin, quadprog

Solo optimoptions. Para optimset, utilice TolCon
CutGeneration

Nivel de generación de corte (consulte Cut Generation):

  • 'none': ningún corte. Hace que CutMaxIterations sea irrelevante.

  • 'basic': generación de corte normal.

  • 'intermediate': utilice más tipos de corte.

  • 'advanced': utilice la mayoría de tipos de corte.

intlinprogSolo optimoptions
CutMaxIterationsNúmero de pases por todos los métodos de generación de cortes antes de entrar en la fase de ramificación y acotamiento, un entero de 1 a 50. Deshabilite la generación de cortes estableciendo la opción CutGeneration en 'none'.intlinprogSolo optimoptions
Display

Nivel de visualización.

  • 'off' no muestra salida alguna.

  • 'iter' muestra la salida en cada iteración y emite el mensaje de salida predeterminado.

  • 'iter-detailed' muestra la salida en cada iteración y emite el mensaje de salida técnico.

  • 'notify' solo muestra la salida si la función no converge y emite el mensaje de salida predeterminado.

  • 'notify-detailed' solo muestra la salida si la función no converge y emite el mensaje de salida técnico.

  • 'final' solo muestra la salida final y emite el mensaje de salida predeterminado.

  • 'final-detailed' solo muestra la salida final y emite el mensaje de salida técnico.

Todas. Consulte las páginas de referencia de la función en cuestión para ver los valores que se aplican.

 
EnableFeasibilityMode

Elige el algoritmo para lograr factibilidad en el algoritmo 'interior-point'. true utiliza un algoritmo diferente que el false predeterminado.

fmincon 
EqualityGoalCount

Especifique el número de objetivos requeridos para que el objetivo fun sea igual a la meta establecida. Reordene sus objetivos, si fuera necesario, para que fgoalattain logre los primeros objetivos EqualityGoalCount de forma exacta.

fgoalattain

Solo optimoptions. Para optimset, utilice GoalsExactAchieve
FiniteDifferenceStepSize

Factor de tamaño de salto de escalar o vector para diferencias finitas. Cuando establece FiniteDifferenceStepSize en un vector v, las diferencias finitas progresivas delta son

delta = v.*sign′(x).*max(abs(x),TypicalX);

, donde sign′(x) = sign(x) excepto sign′(0) = 1. Las diferencias finitas centrales son

delta = v.*max(abs(x),TypicalX);

El escalar FiniteDifferenceStepSize se expande a un vector. La opción predeterminada es sqrt(eps) para diferencias finitas progresivas y eps^(1/3) para diferencias finitas centrales.

fgoalattain, fmincon, fminimax, fminunc, fseminf, fsolve, lsqcurvefit, lsqnonlin

Solo optimoptions. Para optimset, utilice FinDiffRelStep
FiniteDifferenceType

Las diferencias finitas, utilizadas para estimar gradientes, son o bien 'forward' (la opción predeterminada), o bien 'central' (centradas), que requiere el doble de evaluaciones de función, pero debería ser más precisa. Es posible que las diferencias 'central' vulneren los límites durante su evaluación en evaluaciones fmincon interior-point si la opción HonorBounds está establecida en false.

fgoalattain, fmincon, fminimax, fminunc, fseminf, fsolve, lsqcurvefit, lsqnonlin

Solo optimoptions. Para optimset, utilice FinDiffType
FunctionTolerance

Tolerancia de terminación en el valor de la función.

fgoalattain, fmincon, fminimax, fminsearch, fminunc, fseminf, fsolve, lsqcurvefit, lsqlin, lsqnonlin, quadprog

Solo optimoptions. Para optimset, utilice TolFun
HessianApproximation

Método de aproximación de la matriz hessiana: 'bfgs', 'lbfgs', {'lbfgs',Positive Integer} o 'finite-difference'.

Se ignora cuando HessianFcn o HessianMultiplyFcn no están vacías.

fmincon

Solo optimoptions. Para optimset, utilice Hessian
HessianFcn

Matriz hessiana proporcionada por el usuario, especificada como un identificador de función (consulte Incluir matrices hessianas).

fmincon, fminuncSolo optimoptions. Para optimset, utilice HessFcn
HessianMultiplyFcn

Función de multiplicación de matriz hessiana proporcionada por el usuario, especificada como un identificador de función.

Se ignora cuando HessianFcn no está vacía.

fmincon, fminunc, quadprog

Solo optimoptions. Para optimset, utilice HessMult
Heuristics

Algoritmo para buscar puntos factibles (consulte Heuristics for Finding Feasible Solutions):

  • 'basic'

  • 'intermediate'

  • 'advanced'

  • 'rss'

  • 'rins'

  • 'round'

  • 'diving'

  • 'rss-diving'

  • 'rins-diving'

  • 'round-diving'

  • 'none'

intlinprogSolo optimoptions
HeuristicsMaxNodesEntero estrictamente positivo que limita el número de nodos que puede explorar intlinprog en su búsqueda de ramificación y acotación de puntos factibles. Consulte Heuristics for Finding Feasible Solutions.intlinprogSolo optimoptions
HonorBounds

La opción predeterminada true garantiza que los límites de restricción se satisfagan en todas las iteraciones. Desactive la opción estableciéndola en false.

fminconSolo optimoptions. Para optimset, utilice AlwaysHonorConstraints
IntegerPreprocess

Tipos de preprocesamiento de enteros (consulte Mixed-Integer Program Preprocessing):

  • 'none': utilice muy pocos saltos de preprocesamiento de enteros.

  • 'basic': utilice un número moderado de saltos de preprocesamiento de enteros.

  • 'advanced': utilice todos los saltos de preprocesamiento de enteros disponibles.

intlinprogSolo optimoptions
IntegerToleranceValor real de 1e-6 a 1e-3, donde se da la desviación máxima del entero que puede tener un componente de la solución x para que se siga considerando un entero. IntegerTolerance no es un criterio de detención.intlinprogSolo optimoptions
JacobianMultiplyFcn

Función de multiplicación de matriz jacobiana proporcionada por el usuario, especificada como un identificador de función. Se ignora a menos que SpecifyObjectiveGradient sea true para fsolve, lsqcurvefit y lsqnonlin.

fsolve, lsqcurvefit, lsqlin, lsqnonlin

 
LinearSolver

Tipo de solver lineal interno en el algoritmo. Para lsqlin y quadprog:

  • 'auto': utilice 'sparse' si la matriz cuadrática pasada es dispersa (H para quadprog, C para lsqlin) y 'dense' si no lo es.

  • 'sparse': utilice álgebra lineal dispersa.

  • 'dense': utilice álgebra lineal densa.

Para coneprog:

  • 'auto' (opción predeterminada): coneprog elige el solver de salto.

    • Si el problema es denso, el solver de salto es 'prodchol'.

    • De lo contrario, el solver de salto es 'augmented'.

  • 'augmented': solver de salto de formato aumentado. Consulte [1].

  • 'normal': solver de salto de formato normal. Consulte [1].

  • 'prodchol': solver de salto Cholesky de formato de producto. Consulte [4] y [5].

  • 'schur': solver de salto del método del complemento de Schur. Consulte [2].

coneprog, algoritmo lsqlin 'interior-point' y algoritmo quadprog 'interior-point-convex'

 
LPMaxIterationsEntero estrictamente positivo, el número máximo de iteraciones de algoritmo simplex por nodo durante el proceso de ramificación y acotamiento.intlinprogSolo optimoptions
LPOptimalityToleranceValor real no negativo donde los costes reducidos deben superar LPOptimalityTolerance para que una variable se incorpore a la base.intlinprogSolo optimoptions
MaxFunctionEvaluations

Número máximo de evaluaciones de función permitidas.

fgoalattain, fminbnd, fmincon, fminimax, fminsearch, fminunc, fseminf, fsolve, lsqcurvefit, lsqnonlin

Solo optimoptions. Para optimset, utilice MaxFunEvals
MaxIterations

Número máximo de iteraciones permitidas.

Todas excepto fzero y lsqnonneg

Solo optimoptions. Para optimset, utilice MaxIter
MaxFeasiblePointsEntero estrictamente positivo. intlinprog se detiene si encuentra MaxFeasiblePoints puntos factibles enteros.intlinprogSolo optimoptions
MaxNodesEntero estrictamente positivo que es el número máximo de nodos que explora el solver en su proceso de ramificación y acotación.

intlinprog

 
MaxTime

Tiempo máximo en segundos permitido para el algoritmo.

coneprog, intlinprog, linprog

 
NodeSelection

Escoja el nodo que desea explorar a continuación.

  • 'simplebestproj': mejor proyección. Consulte Branch and Bound.

  • 'minobj': explore el nodo con la función objetivo mínima.

  • 'mininfeas': explore el nodo con la suma mínima de infactibilidades enteras. Consulte Branch and Bound.

intlinprogSolo optimoptions
ObjectiveCutOffValor real mayor que -Inf. La opción predeterminada es Inf.intlinprogSolo optimoptions
ObjectiveImprovementThresholdValor real no negativo. intlinprog cambia la solución factible actual solo cuando ubica otra con un valor de función objetivo que es al menos menor en la misma magnitud que el valor de ObjectiveImprovementThreshold: (fold – fnew)/(1 + |fold|) > ObjectiveImprovementThreshold.intlinprogSolo optimoptions
ObjectiveLimit

Si el valor de la función objetivo es inferior a ObjectiveLimit y la iteración es factible, las iteraciones se detienen.

fmincon, fminunc, lsqlin, quadprog 
OptimalityTolerance

Tolerancia de terminación en la optimalidad de primer orden.

coneprog, fgoalattain, fmincon, fminimax, fminunc, fseminf, fsolve, linprog (solo interior-point), lsqcurvefit, lsqlin, lsqnonlin, quadprog

Solo optimoptions. Para optimset, utilice TolFun
OutputFcn

Especifique una o varias funciones definidas por el usuario a las que una función de optimización llame en cada iteración. Pase un identificador de función o un arreglo de celdas de identificadores de función. Consulte Output Function and Plot Function Syntax o intlinprog Output Function and Plot Function Syntax.

fgoalattain, fminbnd, fmincon, fminimax, fminsearch, fminunc, fseminf, fsolve, fzero, intlinprog, lsqcurvefit, lsqnonlin

 
PlotFcn

Representa varias medidas de progreso mientras el algoritmo se ejecuta. Seleccione una de las gráficas predefinidas o escriba la suya propia. Introduzca el nombre de función como aparece en la lista o como un identificador de función como @optimplotx. Pase un nombre de función de gráfica integrada, un identificador de función o un arreglo de celdas de nombres integrados o identificadores de función. Para funciones de gráfica personalizadas, pase identificadores de función.

  • 'optimplotx' representa el punto actual

  • 'optimplotfunccount' representa el recuento de la función

  • 'optimplotfval' representa el valor de la función

  • 'optimplotfvalconstr' representa el mejor valor de función objetivo factible que se encuentra como gráfica de líneas. La gráfica muestra los puntos no factibles en rojo y los puntos factibles en azul, con una tolerancia de factibilidad de 1e-6.

  • 'optimplotconstrviolation' representa la vulneración de restricciones máxima

  • 'optimplotresnorm' representa la norma de los valores residuales

  • 'optimplotfirstorderopt' representa el primer orden de optimalidad

  • 'optimplotstepsize' representa el tamaño de salto

  • 'optimplotmilp' representa el intervalo para programas lineales de enteros mixtos

Consulte Funciones de gráfica o intlinprog Output Function and Plot Function Syntax.

fgoalattain, fminbnd, fmincon, fminimax, fminsearch, fminunc, fseminf, fsolve, fzero, intlinprog, lsqcurvefit, lsqnonlin. Consulte las páginas de referencia de la función en cuestión para ver los valores que se aplican.

Solo optimoptions. Para optimset, utilice PlotFcns
RelativeGapTolerance

Valor real de 0 a 1. intlinprog se detiene si la diferencia relativa entre los límites superior (U) e inferior (L) calculados internamente en la función objetivo es menor que o igual a RelativeGapTolerance:

(U – L) / (abs(U) + 1) <= RelativeGapTolerance.

intlinprogSolo optimoptions
RootLPAlgorithm

Algoritmo para resolver programas lineales:

  • 'dual-simplex': algoritmo dual simplex

  • 'primal-simplex': algoritmo primal simplex

intlinprogSolo optimoptions
RootLPMaxIterationsEntero no negativo que es el número máximo de iteraciones del algoritmo simplex para resolver el problema de programación lineal inicial.intlinprogSolo optimoptions
ScaleProblem

Para algoritmos fmincon interior-point y sqp, true provoca que el algoritmo normalice todas las restricciones y la función objetivo en sus valores iniciales. Deshabilite la opción estableciéndola en la opción predeterminada, false.

fmincon 
SpecifyConstraintGradient

Gradientes definidas por el usuario para las restricciones no lineales.

fgoalattain, fmincon, fminimax

Solo optimoptions. Para optimset, utilice GradConstr
SpecifyObjectiveGradient

Gradientes o matrices jacobianas definidas por el usuario para las funciones objetivo.

fgoalattain, fmincon, fminimax, fminunc, fseminf, fsolve, lsqcurvefit, lsqnonlin

Solo optimoptions. Para optimset, utilice GradObj o Jacobian
StepTolerance

Tolerancia de terminación en x.

Todas las funciones excepto linprog y coneprog

 
SubproblemAlgorithm

Determina cómo se calcula el salto de iteración.

fmincon, fminunc, fsolve, lsqcurvefit, lsqlin, lsqnonlin 
TypicalX

Arreglo que especifica la magnitud típica del arreglo de parámetros x. El tamaño del arreglo es el mismo que el tamaño de x0, el punto de inicio. Principalmente para escalar diferencias finitas para la estimación de gradientes.

fgoalattain, fmincon, fminimax, fminunc, fseminf, fsolve, lsqcurvefit, lsqlin, lsqnonlin, quadprog

 
UseParallel

Cuando true, los solvers aplicables estiman gradientes en paralelo. Deshabilite la opción estableciéndola en false.

fgoalattain, fmincon, fminimax, fminunc, fsolve, lsqcurvefit, lsqnonlin.

 

Opciones ocultas

optimoptions "esconde" algunas opciones; es decir, no muestra sus valores. Para descubrir cómo visualizar estas opciones y por qué están ocultas, consulte Visualizar opciones.

Las páginas de referencia de la función enumeran estas opciones en cursiva.

Opciones ocultas de Optimization Toolbox

Esta tabla enumera las opciones ocultas de Optimization Toolbox™.

Opciones ocultadas por optimoptions

Nombre de opciónDescripciónUtilizada por las funcionesRestricciones
Diagnóstico

Muestre información de diagnóstico sobre la función que se desea minimizar o resolver.

Todas excepto fminbnd, fminsearch, fzero y lsqnonneg

 
DiffMaxChange

Cambio máximo en las variables para diferenciación finita.

fgoalattain, fmincon, fminimax, fminunc, fseminf, fsolve, lsqcurvefit, lsqnonlin

 
DiffMinChange

Cambio mínimo en las variables para diferenciación finita.

fgoalattain, fmincon, fminimax, fminunc, fseminf, fsolve, lsqcurvefit, lsqnonlin

 
FunValCheck

Compruebe si los valores de la función objetivo y de las restricciones son válidos. 'on' muestra un error cuando la función objetivo o las restricciones devuelven un valor complex, NaN o Inf.

Nota

FunValCheck no devuelve un error para Inf si se utiliza con fminbnd, fminsearch o fzero, que gestionan Inf de forma adecuada.

'off' no muestra ningún error.

fgoalattain, fminbnd, fmincon, fminimax, fminsearch, fminunc, fseminf, fsolve, fzero, lsqcurvefit, lsqnonlin

 
HessPattern

Patrón de dispersión de la matriz hessiana para diferenciación finita. El tamaño de la matriz es de n por n, donde n es el número de elementos en x0, el punto de inicio.

fmincon, fminunc

 
HessUpdate

Método de actualización quasi-Newton.

fminunc

 
InitBarrierParam

Valor de barrera inicial.

fmincon 
InitDamping

Parámetro Levenberg-Marquardt inicial.

fsolve, lsqcurvefit, lsqnonlinSolo optimoptions
InitTrustRegionRadius

Radio inicial de la región de confianza.

fmincon 
JacobPattern

Patrón de dispersión de la matriz jacobiana para diferenciación finita. El tamaño de la matriz es m por n, donde m es el número de valores del primer argumento devueltos por la función fun especificada por el usuario y n es el número de elementos en x0, el punto de inicio.

fsolve, lsqcurvefit, lsqnonlin

 
LPPreprocess

Tipo de preprocesamiento para la solución al programa lineal relajado (consulte Linear Program Preprocessing):

  • 'none': sin preprocesamiento.

  • 'basic': utilice preprocesamiento.

intlinprogSolo optimoptions
MaxPCGIter

Número máximo de iteraciones permitidas del método del gradiente conjugado precondicionado.

fmincon, fminunc, fsolve, lsqcurvefit, lsqlin, lsqnonlin, quadprog

 
MaxProjCGIter

Una tolerancia para el número de iteraciones de gradiente conjugado proyectado; se trata de una iteración interior, no del número de iteraciones del algoritmo.

fmincon 
MaxSQPIter

Número máximo de iteraciones permitidas del método de programación cuadrática secuencial.

fgoalattain, fmincon, fminimax

 
MeritFunction

Utilice la función de mérito de consecución de metas/mínimo y máximo (multiobjetivo) frente a fmincon (objetivo único).

fgoalattain, fminimax

 
PrecondBandWidth

Ancho de banda superior del precondicionador para PCG. Estableciéndolo en 'Inf' se utiliza una factorización directa en lugar de CG.

fmincon, fminunc, fsolve, lsqcurvefit, lsqlin, lsqnonlin, quadprog

 
Preproceso

Nivel de preprocesamiento LP anterior a las iteraciones del algoritmo simplex o dual simplex.

linprog

Solo optimoptions
RelLineSrchBnd

Límite relativo de la longitud de salto de búsqueda de línea.

fgoalattain, fmincon, fminimax, fseminf

 
RelLineSrchBndDuration

Número de iteraciones para el cual debe estar activo el límite que se especifica en RelLineSrchBnd.

fgoalattain, fmincon, fminimax, fseminf

 
ScaleProblem

Al utilizar la opción Algorithm 'levenberg-marquardt', establecer la opción ScaleProblem en 'jacobian' puede ayudar en ocasiones al solver con problemas mal escalados.

fsolve, lsqcurvefit, lsqnonlin 
TolConSQP

Tolerancia de vulneración de restricciones para la iteración interior SQP.

fgoalattain, fmincon, fminimax, fseminf 
TolPCG

Tolerancia de terminación en la iteración PCG.

fmincon, fminunc, fsolve, lsqcurvefit, lsqlin, lsqnonlin, quadprog

 
TolProjCG

Una tolerancia relativa para el algoritmo de gradiente conjugado proyectado; se trata de una iteración interior, no de la iteración del algoritmo.

fmincon 
TolProjCGAbs

Tolerancia absoluta para el algoritmo de gradiente conjugado proyectado; se trata de una iteración interior, no de la iteración del algoritmo.

fmincon 

Opciones ocultas de Global Optimization Toolbox

Para saber por qué estas opciones están ocultas, consulte Options that optimoptions Hides (Global Optimization Toolbox).

Opciones ocultadas por optimoptions

Nombre de opciónUtilizada por las funciones
Cache

patternsearch

CacheSize

patternsearch

CacheTol

patternsearch

DisplayInterval

particleswarm, simulannealbnd

FunValCheck

particleswarm

HybridInterval

simulannealbnd

InitialPenalty

ga, patternsearch

MaxMeshSize

patternsearch

MeshRotate

patternsearch

MigrationDirection

ga

MigrationFraction

ga

MigrationInterval

ga

PenaltyFactor

ga, patternsearch

PlotInterval

ga, patternsearch, simulannealbnd

StallTest

ga

TolBindpatternsearch

Temas relacionados