GlobalSearch
Hallar el mínimo global
Descripción
Un objeto GlobalSearch contiene propiedades (opciones) que afectan cómo run ejecuta repetidamente un solucionador local para generar un objeto GlobalOptimSolution. Cuando se ejecuta, el solucionador intenta localizar una solución que tenga el valor de función objetivo más bajo.
Creación
Sintaxis
Descripción
gs = GlobalSearch crea gs, un solucionador GlobalSearch con sus propiedades establecidas en los valores predeterminados.
gs = GlobalSearch(Name,Value) establece propiedades utilizando pares nombre-valor.
gs = GlobalSearch(oldGS,Name,Value) crea una copia del solucionador oldGS GlobalSearch y establece propiedades utilizando pares nombre-valor.
gs = GlobalSearch(ms) crea gs, un solucionador GlobalSearch, con valores de propiedad comunes del solucionador ms MultiStart.
Propiedades
Factor de disminución del radio de la cuenca, especificado como un escalar desde 0 hasta 1. El radio de una cuenca disminuye después de que MaxWaitCycle puntos de inicio consecutivos estén dentro de la cuenca. El radio de la cuenca disminuye en un factor de 1 – BasinRadiusFactor .
Establezca BasinRadiusFactor en 0 para deshabilitar las actualizaciones del radio de la cuenca.
Ejemplo: 0.5
Tipos de datos: double
Nivel de visualización de la ventana de comandos, especificado como uno de los siguientes vectores de caracteres o cadenas:
'final'– Informar resultados resumidos después de querunfinalice.'iter'– Informa los resultados después de la carrera inicialfmincon, después de la Etapa 1, después de cada 200 puntos de inicio y después de cada carrera defmincon, además del resumen final.'off'– Sin pantalla.
Ejemplo: 'iter'
Tipos de datos: char | string
Multiplicador para determinar si un punto de prueba está en una cuenca de atracción existente, especificado como un escalar no negativo. Para obtener más detalles, consulte Examine Stage 2 Trial Point to See if fmincon Runs.
Ejemplo: 0.5
Tipos de datos: double
Tolerancia en los valores de una función para considerar soluciones iguales, especificada como un escalar no negativo. Los solucionadores consideran que dos soluciones son idénticas si están dentro de una distancia relativa de XTolerance entre sí y tienen valores de función objetivo dentro de una diferencia relativa de FunctionTolerance entre sí. Si no se cumplen ambas condiciones, los solucionadores informan las soluciones como distintas. Establezca FunctionTolerance en 0 para obtener los resultados de cada ejecución del solucionador local. Establezca FunctionTolerance en un valor mayor para tener menos resultados. Para obtener más detalles sobre GlobalSearch, consulte Update Solution Set en When fmincon Runs. Para obtener más detalles sobre MultiStart, consulte Create GlobalOptimSolution Object.
Ejemplo: 1e-4
Tipos de datos: double
Tiempo máximo en segundos que GlobalSearch se ejecuta, especificado como un escalar positivo. GlobalSearch y sus solucionadores locales se detienen cuando han pasado MaxTime segundos desde el comienzo de la ejecución, según lo medido por tic y toc.
MaxTime no interrumpe a los solucionadores locales durante una ejecución, por lo que el tiempo total puede superar MaxTime.
Ejemplo: 180 detiene el solucionador la primera vez que una llamada al solucionador local finaliza después de 180 segundos.
Tipos de datos: double
Parámetro de control del algoritmo, especificado como un entero positivo.
Si la función de penalización observada de
MaxWaitCyclepuntos de prueba consecutivos es al menos el umbral de penalización, entonces aumente el umbral de penalización (ver PenaltyThresholdFactor).Si hay
MaxWaitCyclepuntos de prueba consecutivos en una cuenca, actualice el radio de esa cuenca (ver BasinRadiusFactor).
Ejemplo: 40
Tipos de datos: double
Número de puntos de la Etapa 1, especificado como un entero positivo. Para obtener más detalles, consulte Obtain Stage 1 Start Point, Run.
Ejemplo: 1000
Tipos de datos: double
Número de puntos de inicio potenciales, especificado como un entero positivo.
Ejemplo: 3e4
Tipos de datos: double
Informar sobre el progreso del solucionador o detener el solucionador, especificado como un identificador de función o un arreglo de celdas de identificadores de función. Las funciones de salida se ejecutan después de cada llamada al solucionador local. También se ejecutan cuando el solucionador global comienza y finaliza. Escriba funciones de salida utilizando la sintaxis descrita en OutputFcn. Consulte Custom GlobalSearch Output Function.
La función de salida incorporada @savelocalsolutions guarda todas las soluciones locales en la variable localSolTable en el espacio de trabajo base. Esta función de salida guarda las soluciones locales inviables así como las soluciones locales factibles. Para ver un ejemplo, consulte Collect All Local Solutions.
Tipos de datos: cell | function_handle
Aumento del umbral de sanción, especificado como escalar positivo. Para obtener más detalles, consulte Reaccionar ante valores de contador grandes.
Ejemplo: 0.4
Tipos de datos: double
Traza el progreso del solucionador, especificado como un identificador de función o un arreglo de celdas de identificadores de función. Las funciones de representación se ejecutan después de cada llamada al solucionador local. También se ejecutan cuando el solucionador global comienza y finaliza. Escriba funciones de representación utilizando la sintaxis descrita en OutputFcn .
Hay dos funciones de gráfico integradas:
@gsplotbestftraza el mejor valor de la función objetivo.@gsplotfunccountgrafica el número de evaluaciones de funciones.
Consulte MultiStart Plot Function.
Ejemplo: @gsplotbestf
Tipos de datos: cell | function_handle
Puntos de inicio para ejecutar, especificados como:
'all'— Ejecutar todos los puntos de inicio.'bounds'— Ejecuta solo puntos de inicio que satisfagan los límites.'bounds-ineqs'— Ejecuta solo puntos de inicio que satisfagan límites y restricciones de desigualdad.
GlobalSearch verifica la propiedad StartPointsToRun solo durante la Etapa 2 del algoritmo GlobalSearch (el bucle principal). Para obtener más información, consulte GlobalSearch Algorithm.
Ejemplo: 'bounds' ejecuta solo puntos que satisfacen todos los límites.
Tipos de datos: char | string
Tolerancia en la distancia para considerar soluciones iguales, especificada como un escalar no negativo. Los solucionadores consideran que dos soluciones son idénticas si están dentro de una distancia relativa de XTolerance entre sí y tienen valores de función objetivo dentro de una diferencia relativa de FunctionTolerance entre sí. Si no se cumplen ambas condiciones, los solucionadores informan las soluciones como distintas. Establezca XTolerance en 0 para obtener los resultados de cada ejecución del solucionador local. Establezca XTolerance en un valor mayor para tener menos resultados. Para obtener más detalles sobre GlobalSearch, consulte Update Solution Set en When fmincon Runs. Para obtener más detalles sobre MultiStart, consulte Create GlobalOptimSolution Object.
Ejemplo: 2e-4
Tipos de datos: double
Funciones del objeto
run | Run multiple-start solver |
Ejemplos
Cree un problema de optimización que tenga varios mínimos locales e intente encontrar el mínimo global utilizando GlobalSearch. El objetivo es el problema de la espalda de camello de seis jorobas (ver Run the Solver).
rng default % For reproducibility gs = GlobalSearch; sixmin = @(x)(4*x(1)^2 - 2.1*x(1)^4 + x(1)^6/3 ... + x(1)*x(2) - 4*x(2)^2 + 4*x(2)^4); problem = createOptimProblem('fmincon','x0',[-1,2],... 'objective',sixmin,'lb',[-3,-3],'ub',[3,3]); x = run(gs,problem)
GlobalSearch stopped because it analyzed all the trial points. All 8 local solver runs converged with a positive local solver exit flag.
x = 1×2
-0.0898 0.7127
Puede solicitar el valor de la función objetivo en x cuando llama a run utilizando la siguiente sintaxis:
[x,fval] = run(gs,problem)
Sin embargo, si olvidó solicitar fval, aún puede calcular el valor de la función objetivo en x.
fval = sixmin(x)
fval = -1.0316
Consideremos una función con varios mínimos locales.
fun = @(x) x.^2 + 4*sin(5*x); fplot(fun,[-5,5])

Para buscar el mínimo global, ejecute GlobalSearch utilizando el algoritmo fmincon 'sqp'.
rng default % For reproducibility opts = optimoptions(@fmincon,'Algorithm','sqp'); problem = createOptimProblem('fmincon','objective',... fun,'x0',3,'lb',-5,'ub',5,'options',opts); gs = GlobalSearch; [x,f] = run(gs,problem)
GlobalSearch stopped because it analyzed all the trial points. All 23 local solver runs converged with a positive local solver exit flag.
x = -0.3080
f = -3.9032
Crea un objeto MultiStart no predeterminado.
ms = MultiStart('FunctionTolerance',2e-4,'UseParallel',true)
ms =
MultiStart with properties:
UseParallel: 1
Display: 'final'
FunctionTolerance: 2.0000e-04
MaxTime: Inf
OutputFcn: []
PlotFcn: []
StartPointsToRun: 'all'
XTolerance: 1.0000e-06
Crea un objeto GlobalSearch que utiliza las propiedades disponibles de ms.
gs = GlobalSearch(ms)
gs =
GlobalSearch with properties:
NumTrialPoints: 1000
BasinRadiusFactor: 0.2000
DistanceThresholdFactor: 0.7500
MaxWaitCycle: 20
NumStageOnePoints: 200
PenaltyThresholdFactor: 0.2000
Display: 'final'
FunctionTolerance: 2.0000e-04
MaxTime: Inf
OutputFcn: []
PlotFcn: []
StartPointsToRun: 'all'
XTolerance: 1.0000e-06
gs tiene el mismo valor no predeterminado de FunctionTolerance que ms. Pero gs no utiliza la propiedad UseParallel.
Crea un objeto GlobalSearch con un FunctionTolerance de 1e-4.
gs = GlobalSearch('FunctionTolerance',1e-4)gs =
GlobalSearch with properties:
NumTrialPoints: 1000
BasinRadiusFactor: 0.2000
DistanceThresholdFactor: 0.7500
MaxWaitCycle: 20
NumStageOnePoints: 200
PenaltyThresholdFactor: 0.2000
Display: 'final'
FunctionTolerance: 1.0000e-04
MaxTime: Inf
OutputFcn: []
PlotFcn: []
StartPointsToRun: 'all'
XTolerance: 1.0000e-06
Actualice la propiedad XTolerance a 1e-3 y la propiedad StartPointsToRun a 'bounds'.
gs = GlobalSearch(gs,'XTolerance',1e-3,'StartPointsToRun','bounds')
gs =
GlobalSearch with properties:
NumTrialPoints: 1000
BasinRadiusFactor: 0.2000
DistanceThresholdFactor: 0.7500
MaxWaitCycle: 20
NumStageOnePoints: 200
PenaltyThresholdFactor: 0.2000
Display: 'final'
FunctionTolerance: 1.0000e-04
MaxTime: Inf
OutputFcn: []
PlotFcn: []
StartPointsToRun: 'bounds'
XTolerance: 1.0000e-03
También puede actualizar las propiedades de una en una utilizando la notación de puntos.
gs.MaxTime = 1800
gs =
GlobalSearch with properties:
NumTrialPoints: 1000
BasinRadiusFactor: 0.2000
DistanceThresholdFactor: 0.7500
MaxWaitCycle: 20
NumStageOnePoints: 200
PenaltyThresholdFactor: 0.2000
Display: 'final'
FunctionTolerance: 1.0000e-04
MaxTime: 1800
OutputFcn: []
PlotFcn: []
StartPointsToRun: 'bounds'
XTolerance: 1.0000e-03
Algoritmos
Para obtener una descripción detallada del algoritmo, consulte GlobalSearch Algorithm. Ugray et al. [1] describen tanto el algoritmo como el método de búsqueda dispersa para generar puntos de prueba.
Referencias
[1] Ugray, Zsolt, Leon Lasdon, John Plummer, Fred Glover, James Kelly, and Rafael Martí. Scatter Search and Local NLP Solvers: A Multistart Framework for Global Optimization. INFORMS Journal on Computing, Vol. 19, No. 3, 2007, pp. 328–340.
Historial de versiones
Introducido en R2010aLa función de salida incorporada @savelocalsolutions guarda todas las soluciones locales en la variable localSolTable en el espacio de trabajo base. Esta función de salida guarda las soluciones locales inviables así como las soluciones locales factibles.
El optimValues Structure en las funciones de salida y de gráfico ahora contiene el campo constrviolation, que tiene la máxima infracción de restricción. Este valor es 0 para que no haya violaciones de restricciones.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)