Tuesday 6 December 2016

Gamultiobj Binary Options

Documentación Este ejemplo muestra cómo realizar una optimización multiobjetiva utilizando la función de algoritmo genético multiobjetivo gamultiobj en la Caja de herramientas de optimización global. Optimización multiobjetiva simple El problema gamultiobj puede ser utilizado para resolver problemas de optimización multiobjetiva en varias variables. Aquí queremos minimizar dos objetivos, cada uno con una variable de decisión. Los dos objetivos tienen sus mínimos en x -2 y x 2 respectivamente. Sin embargo, en un problema multiobjetivo, x -2. X2 y cualquier solución en el intervalo -2 lt x lt2 es igualmente óptima. No existe una sola solución a este problema multiobjetivo. El objetivo del algoritmo genético multiobjetivo es encontrar un conjunto de soluciones en ese rango (idealmente con una buena propagación). El conjunto de soluciones también se conoce como un frente de Pareto. Todas las soluciones en el frente de Pareto son óptimas. Codificación de la función Fitness Creamos un archivo MATLAB llamado simplemultiobjective. m: El algoritmo Genetic solveur asume que la función fitness tendrá una entrada x. Donde x es un vector de fila con tantos elementos como el número de variables del problema. La función de aptitud calcula el valor de cada función objetivo y devuelve estos valores en una única salida vectorial y. Minimizar usando gamultiobj Para usar la función gamultiobj, necesitamos proporcionar al menos dos argumentos de entrada, una función de aptitud y el número de variables en el problema. Los dos primeros argumentos de salida devueltos por gamultiobj son X. los puntos en el frente de Pareto y FVAL. Los valores de la función objetivo en los valores X. Un tercer argumento de salida, exitFlag. Le dice la razón por la que se detuvo gamultiobj. Un cuarto argumento, OUTPUT. Contiene información sobre el rendimiento del solver. Gamultiobj también puede devolver un quinto argumento, POPULATION. Que contiene la población cuando terminó gamultiobj y un sexto argumento, SCORE. Que contiene los valores de función de todos los objetivos de la POBLACIÓN cuando gamultiobj terminado. La X devuelta por el solver es una matriz en la que cada fila es el punto en el frente de Pareto para las funciones objetivo. El FVAL es una matriz en la que cada fila contiene el valor de las funciones objetivo evaluadas en el punto correspondiente en X. Problema de optimización multiobjetivo restringido gamultiobj puede manejar problemas de optimización con desigualdad lineal, igualdad y restricciones limitadas simples. Aquí queremos agregar restricciones vinculadas a un problema multiobjetivo simple resuelto previamente. Gamultiobj acepta las restricciones de desigualdad lineal en la forma Ax lt b y las restricciones de igualdad lineal en la forma Aeqx beq y restricciones enlazadas en la forma lb lt x lt ub. Pasamos A y Aeq como matrices y b. Beq. Lb y ub como vectores. Como no tenemos restricciones lineales en este ejemplo, pasamos por esas entradas. Todas las soluciones en X (cada fila) satisfarán todas las restricciones lineales y enlazadas dentro de la tolerancia especificada en options. ConstraintTolerance. Sin embargo, si utiliza su propia función de cruce o mutación, asegúrese de que los nuevos individuos son factibles con respecto a limitaciones limitadas lineales y simples. Adición de la visualización gamultiobj puede aceptar una o más funciones de trazado a través del argumento de opciones. Esta característica es útil para visualizar el rendimiento del solver en tiempo de ejecución. Las funciones de trazado se pueden seleccionar utilizando optimoptions. Aquí utilizamos optimoptions para seleccionar dos funciones de trazado. La primera función de trazado es gaplotpareto. Que traza el frente de Pareto (limitado a tres objetivos) en cada generación. La segunda función de parcela es gaplotscorediversity. Que representa la diversidad de puntuaciones para cada objetivo. Las opciones se pasan como el último argumento al solver. Vectorizar su función de acondicionamiento físico Considere las funciones de acondicionamiento físico anteriores de nuevo: Por defecto, el solver gamultiobj sólo pasa en un punto a la vez a la función de acondicionamiento físico. Sin embargo, si la función de fitness está vectorizada para aceptar un conjunto de puntos y devuelve un conjunto de valores de función, puede acelerar su solución. Por ejemplo, si el solver necesita evaluar cinco puntos en una llamada a esta función de aptitud, entonces llamará a la función con una matriz de tamaño 5 por 1, es decir, 5 filas y 1 columna (recuerde que 1 es el número de Variables). Cree un archivo MATLAB denominado vectorizedmultiobjective. m: Esta versión vectorizada de la función de aptitud toma una matriz pop con un número arbitrario de puntos, las filas de pop. Y devuelve una matriz de tamaño populationSize-by-numberOfObjectives. Necesitamos especificar que la función de fitness sea vectorizada usando las opciones creadas usando optimoptions. Las opciones se pasan como el noveno argumento. Comando MATLAB Hizo clic en un enlace que corresponde a este comando MATLAB: Ejecute el comando escribiéndolo en la ventana de comandos de MATLAB. Los navegadores Web no admiten comandos de MATLAB. Este tema fue útil Selecciona tu país Elige tu país para obtener contenido traducido donde esté disponible y ver eventos y ofertas locales. Según su ubicación, le recomendamos que seleccione:. También puede seleccionar una ubicación de la siguiente lista: Documentación Opciones multiobjetivas Las opciones multiobjetivas definen los parámetros característicos del algoritmo genético multiobjetivo. Puede especificar los siguientes parámetros: DistanceMeasureFcn 8212 Define un identificador de la función que calcula la medida de distancia de individuos, calculada en la variable de decisión o el espacio de diseño (genotipo) o en el espacio de funciones (fenotipo). Por ejemplo, la función de medida de distancia predeterminada es distancecrowding en espacio de función, o. ParetoFraction 8212 Establece la fracción de individuos para mantener el primer frente de Pareto mientras que el solver selecciona individuos de frentes más altos. Esta opción es un escalar entre 0 y 1. Opciones híbridas de función ga Función híbrida Una función híbrida es otra función de minimización que se ejecuta después de que el algoritmo genético termina. Puede especificar una función híbrida en la función híbrida (HybridFcn). No utilice con problemas enteros. Las opciones son 8212 Sin función híbrida. Fminsearch (fminsearch) 8212 Utiliza la función MATLAB x00AE fminsearch para realizar una minimización no restringida. Patternsearch (patternsearch) 8212 Utiliza una búsqueda de patrones para realizar una minimización restringida o no restringida. Fminunc (fminunc) 8212 Utiliza la función fminunc de Toolbox de optimización para realizar una minimización sin restricciones. Fmincon (fmincon) 8212 Utiliza la función de la caja de herramientas de optimización fmincon para realizar la minimización restringida. Nota: Asegúrese de que su función híbrida acepta las restricciones de problemas. De lo contrario, ga genera un error. Puede configurar opciones separadas para la función híbrida. Utilice optimset para fminsearch. O optimoptions para fmincon. Búsqueda de patrones. O fminunc. Por ejemplo: Incluya las opciones híbridas en la estructura de opciones Algoritmo genético como sigue: hybridopts debe existir antes de establecer opciones. Gamultiobj Función híbrida Una función híbrida es otra función de minimización que se ejecuta después de que el algoritmo genético multiobjetivo termina. Puede especificar la función híbrida fgoalattain en la función híbrida (HybridFcn). En uso como una función híbrida multiobjetivo, el solver hace lo siguiente: Calcule el máximo y el mínimo de cada función objetivo en las soluciones. Para el objetivo j en la solución k. F (j) max k F k (j) F min (j) min k F k (j). Calcular el peso total en cada solución k, w (k) x2211 j F max (j) x2212 F k (j) 1 F max (j) x2212 F min (j). Calcule el peso para cada función objetivo j en cada solución k, p (j, k) w (k) F max (j) x2212 F k (j) 1 F max (j) x2212 F min (j). Para cada solución k. Realizan el problema de logro objetivo con el vector de objetivo F min y el vector de peso p (j, k). Para obtener más información, consulte la sección 9.6 de Deb 3. Criterios de parada Opciones Los criterios de detención determinan qué causa que el algoritmo termine. Puede especificar las siguientes opciones: Generaciones (MaxGenerations) 8212 Especifica el número máximo de iteraciones que debe realizar el algoritmo genético. El valor predeterminado es 100numberOfVariables. Límite de tiempo (MaxTime) 8212 Especifica el tiempo máximo en segundos que el algoritmo genético ejecuta antes de detenerse, medido por tic y toc. Este límite se aplica después de cada iteración, por lo que ga puede superar el límite cuando una iteración toma un tiempo sustancial. Límite de aptitud física (FitnessLimit) 8212 El algoritmo se detiene si el mejor valor de aptitud es menor o igual al valor de límite de aptitud física. Generaciones de bloqueo (MaxStallGenerations) 8212 El algoritmo se detiene si el cambio relativo medio en el valor de la mejor función de aptitud sobre las generaciones Stall es menor o igual que Tolerancia de la función. (Si la opción Stall Test (StallTest) es geometricWeighted, entonces la prueba es para un cambio relativo medio ponderado geométrico.) Para un problema con restricciones no lineales, las generaciones Stall se aplican al subproblema (vea Algoritmos de Resolución de Restricciones no lineales). Para gamultiobj. Si el cambio relativo promedio ponderado en el spread de las soluciones de Pareto sobre las generaciones de Stall es menor que la tolerancia de la función. Y la extensión es más pequeña que la extensión media sobre las últimas generaciones de la parida. Entonces el algoritmo se detiene. La extensión es una medida del movimiento del frente de Pareto. Límite de tiempo de parada (MaxStallTime) 8212 El algoritmo se detiene si no hay mejoría en el mejor valor de aptitud para un intervalo de tiempo en segundos especificado por el límite de tiempo de Stall. Medido por tic y toc. Tolerancia de función (FunctionTolerance) 8212 El algoritmo se detiene si el cambio relativo medio en el mejor valor de la función de aptitud sobre las generaciones Stall es menor o igual que Tolerancia de función. (Si la opción StallTest es geometricWeighted, entonces la prueba es para un cambio relativo medio ponderado geométrico.) Para gamultiobj. Si el cambio relativo promedio ponderado en el spread de las soluciones de Pareto sobre las generaciones de Stall es menor que la tolerancia de la función. Y la extensión es más pequeña que la extensión media sobre las últimas generaciones de la parida. Entonces el algoritmo se detiene. La extensión es una medida del movimiento del frente de Pareto. Tolerancia de restricción (ConstraintTolerance) 8212 La tolerancia de restricción no se utiliza como criterio de parada. Se utiliza para determinar la viabilidad con respecto a restricciones no lineales. Además, max (sqrt (eps), ConstraintTolerance) determina la factibilidad con respecto a las restricciones lineales. Funciones de salida Las funciones de salida son funciones que el algoritmo genético llama a cada generación. A diferencia de todos los demás solucionadores, una función de salida ga no sólo puede leer los valores del estado del algoritmo, sino que puede modificar esos valores. Para especificar la función de salida mediante la aplicación Optimización, seleccione la función Personalizar. Escriba myfun en el cuadro de texto, donde myfun es el nombre de su función. Escriba myfun con la sintaxis adecuada. Para pasar parámetros adicionales en la función de salida, utilice Funciones anónimas. Para funciones de salida múltiple, introduzca una matriz de celdas de funciones de salida:. En la línea de comandos, establezca Para funciones de salida múltiple, escriba una matriz de celdas: Para ver una plantilla que puede utilizar para escribir sus propias funciones de salida, escriba en la línea de comandos de MATLAB. Estructura de la función de salida Su función de salida debe tener la siguiente sintaxis de llamada: MATLAB pasa las opciones. estado. Y señale los datos a su función de salida, y la función de salida devuelve el estado. Opciones. Y optchanged datos. Nota: Para detener las iteraciones, establezca state. StopFlag en un vector de caracteres no vacío, como y. La función de salida tiene los siguientes argumentos de entrada: opciones 8212 Estructura de opciones estado 8212 Estructura que contiene información sobre la generación actual. La Estructura del Estado describe los campos del estado. Flag 8212 Estado actual del algoritmo: init 8212 Estado de inicialización iter 8212 Interrupción de estado de Iteración 8212 Iteración de un subproblema de un problema no linealmente restringido Cuando se interrumpe el indicador. Los valores de los campos de valores óptimos se aplican a las iteraciones de subproblema. Cuando se interrumpe la bandera. Ga no acepta cambios en las opciones. E ignora optchanged. Done 8212 Estado final Pasar parámetros adicionales en la documentación de la caja de herramientas de optimización explica cómo proporcionar parámetros adicionales a la función. La función de salida devuelve los siguientes argumentos a ga: state 8212 Estructura que contiene información sobre la generación actual. La Estructura del Estado describe los campos del estado. Para detener las iteraciones, establezca state. StopFlag en un vector de caracteres no vacío, como y. Opciones 8212 Estructura de opciones modificada por la función de salida. Este argumento es opcional. Optchanged 8212 Indicador booleano que indica cambios en las opciones. Para cambiar las opciones de iteraciones posteriores, establezca optchanged a true. Cambiar la estructura del Estado Precaución Cambiar la estructura del estado descuidadamente puede conducir a resultados inconsistentes o erróneos. Por lo general, puede lograr las mismas o mejores modificaciones de estado mediante el uso de funciones de mutación o crossover, en lugar de cambiar la estructura del estado en una función de trazado o función de salida. Ga las funciones de salida pueden cambiar la estructura del estado (ver Estructura del Estado). Tenga cuidado al cambiar valores en esta estructura, ya que puede pasar datos inconsistentes a ga. Sugerencia Si la estructura de salida cambia el campo Población, asegúrese de actualizar el campo Puntaje y posiblemente el Mejor. NonlinIneq. O NonlinEq, para que contengan información coherente. Para actualizar el campo Puntaje después de cambiar el campo Población, primero calcule los valores de la función de aptitud de la población, luego calcule la escala de aptitud para la población. Consulte Opciones de ajuste de aptitud. Opciones de visualización a la ventana de comandos El nivel de visualización (visualización) especifica la cantidad de información que se muestra en la línea de comandos mientras se está ejecutando el algoritmo genético. Las opciones disponibles son Off (desactivado) 8212 No se muestra ninguna salida. Iterativo (iter) 8212 Se muestra información en cada iteración. Diagnóstico (diagnóstico) 8212 Se muestra información en cada iteración. Además, el diagnóstico lista algunas informaciones sobre el problema y las opciones que se han cambiado de los valores predeterminados. Final (final) 8212 Se muestra el motivo de la parada. Tanto el Iterativo como el Diagnóstico muestran la siguiente información: Generación 8212 Número de generación f-count 8212 Número acumulado de evaluaciones de la función de aptitud Mejor f (x) 8212 Mejor valor de la función de aptitud Media f (x) 8212 Valor medio de la función de aptitud Generaciones de pérdida 8212 Número de generaciones desde La última mejora de la función fitness Cuando se ha especificado una función de restricción no lineal, Iterative y Diagnose no muestran la Media f (x). Pero también mostrará: Máxima restricción 8212 La restricción de restricción no lineal máxima El valor predeterminado de Nivel de visualización está desactivado en la final de la aplicación de optimización en las opciones creadas utilizando las opciones de optimización Opciones de vectorización y paralelo (evaluación de funciones de usuario) Evaluados en serie, en paralelo o de forma vectorizada. Estas opciones están disponibles en la sección Evaluación de la función de usuario del panel Opciones de la aplicación Optimización o mediante la configuración de las opciones UsarVectorizado y UsarParal con opciones de optimización. Cuando Evaluate fitness y constraint functions (UseVectorized) está en serial (falso), ga llama a la función de fitness en un individuo a la vez, ya que recorre la población. (En la línea de comandos, esto supone que UseParallel está en su valor por defecto de false.) Cuando Evaluate fitness y constraint functions (UseVectorized) está vectorizado (true), ga llama a la función fitness en toda la población a la vez, es decir, en una sola llamada A la función de fitness. Si hay restricciones no lineales, la función de aptitud y las restricciones no lineales deben ser vectorizadas para que el algoritmo pueda calcular de forma vectorizada. Cuando Evalúe funciones de restricción y aptitud (UseParallel) está en paralelo (true), ga llama a la función de aptitud en paralelo, utilizando el entorno paralelo que estableció (consulte Cómo utilizar el procesamiento paralelo). En la línea de comandos, defina UseParallel como false para calcular en serie. Nota: No puede utilizar simultáneamente los cálculos vectorizados y paralelos. Si establece UseParallel en true y UseVectorized en true. Ga evalúa su aptitud y las funciones de restricción de una manera vectorizada, no en paralelo. Cómo se evalúan las funciones de acondicionamiento y restricción Seleccione su CountryDocumentation fmincon Limitaciones fmincon es un método basado en degradado diseñado para trabajar en problemas en los que las funciones de objetivo y restricción son continuas y tienen derivadas continuas. Para el algoritmo de confianza-región-reflexivo, debe proporcionar el gradiente en diversión y establecer la opción SpecifyObjectiveGradient a true. El algoritmo de confianza-región-reflexivo no permite límites iguales superior e inferior. Por ejemplo, si lb (2) ub (2). Fmincon da este error: Hay dos sintaxis diferentes para pasar un Hessian, y hay dos sintaxis diferentes para pasar una función HessianMultiplyFcn una para trust-region-reflective. Y otro para el punto interior. Véase Incluyendo Hessians. Para la confianza-región-reflexivo. El Hessian del Lagrangian es igual que el Hessian de la función objetiva. Usted pasa ese Hessian como la tercera salida de la función objetivo. Para el punto interior. El Hessian del Lagrange implica los multiplicadores de Lagrange y los Hessians de las funciones no lineales de la restricción. Se pasa el Hessian como una función separada que tiene en cuenta tanto el punto actual x como la estructura multiplicadora de Lagrange lambda. Cuando el problema es inviable, fmincon intenta minimizar el valor de restricción máximo. Más sobre Hessian como entrada fmincon utiliza un Hessian como entrada opcional. Este Hessiano es la matriz de las segundas derivadas del Lagrangiano (véase la Ecuación 3-1), a saber, x2207 xx2L (x. X03BB) x2207 2f (x) x2211 x03BB i x2207 2ci (x) x2211 x03BB i x2207 2 Ceqi (x). Para más detalles sobre cómo suministrar un Hessian a los algoritmos de reflexión o de interior-región de confianza-región, vea Incluyendo Hessians. Los algoritmos de conjunto activo y sqp no aceptan un Hessian de entrada. Calculan una aproximación cuasi-Newton al Hessian del Lagrangian. El algoritmo del punto interior tiene varias opciones para la opción de aproximación de Hesse. Elija la aproximación de Hessian de entrada para el punto interior fmincon: bfgs 8212 fmincon calcula el Hessian por una aproximación cuasi-Newton densa. Esta es la aproximación de Hessian por defecto. Lbfgs 8212 fmincon calcula el Hessian mediante una aproximación cuasi-Newton de memoria limitada y gran escala. Se utiliza la memoria predeterminada, 10 iteraciones. 8212 fmincon calcula el Hessian mediante una aproximación cuasi-Newton de memoria limitada y gran escala. El número entero positivo especifica cuántas iteraciones pasadas deben ser recordadas. Finite-difference 8212 fmincon calcula un producto Hessian-times-vector por diferencias finitas del gradiente (s). Debe proporcionar el gradiente de la función objetivo, y también los gradientes de restricciones no lineales (si existen). Establezca la opción SpecifyObjectiveGradient en true y, si procede, la opción SpecifyConstraintGradient en true. Debe establecer el Algoritmo de subproblema en cg. Hessian Multiply Function Los algoritmos del interior-punto y de confianza-región-reflexivos permiten que usted suministre una función de multiplicación del Hessian. Esta función da el resultado de un producto Hessian-tiempo-vector, sin computar el Hessian directamente. Esto puede ahorrar memoria. Para más detalles, vea Función Multiplicar Hessian. Algoritmos Optimización del Interior-Punto Este algoritmo se describe en el Algoritmo del Punto Interior de fmincon. Hay una descripción más extensa en 1. 41. y 9. SQP y SQP-Legacy Optimización Los algoritmos fmincon sqp y legacy de sqp son similares al algoritmo de conjunto activo descrito en Active-Set Optimization. El Algoritmo SQP de fmincon describe las principales diferencias. En resumen, estas diferencias son: Optimización de Conjunto Activo fmincon utiliza un método de programación cuadrática secuencial (SQP). En este método, la función resuelve un subproblema de programación cuadrática (QP) en cada iteración. Fmincon actualiza una estimación del Hessian del Lagrangian en cada iteración usando la fórmula de BFGS (véase fminunc y referencias 7 y 8). Fmincon realiza una búsqueda de línea usando una función de mérito similar a la propuesta por 6. 7. y 8. El subproblema QP se resuelve usando una estrategia de conjunto activo similar a la descrita en 5. El Algoritmo de Conjunto Activo fmincon describe este algoritmo en detalle. Véase también SQP Implementación para más detalles sobre el algoritmo utilizado. Optimización Reflexiva de la Región de la Confianza El algoritmo reflexivo de la región de la confianza es un método de la región de confianza del subespacio y se basa en el método de Newton interior-reflexivo descrito en 3 y 4. Cada iteración implica la solución aproximada de un sistema lineal grande usando el método De los gradientes conjugados precondicionados (PCG). Consulte las descripciones del método de degradado conjugado y de confianza en la región fmincon Trust Region Reflective Algorithm. Referencias 1 Byrd, R. H. J. C. Gilbert y J. Nocedal. Un método de región de confianza basado en técnicas de punto interior para la programación no lineal. Programación Matemática. Vol. 89, Nº 1, 2000, pág. 1498211185. 2 Byrd, R. H. Mary E. Hribar y Jorge Nocedal. Un Algoritmo de Punto Interior para la Programación No Lineal a Gran Escala. Revista SIAM sobre Optimización. Vol. 9, No. 4, 1999, pág. 8778211900. 3 Coleman, T. F. y Y. Li. Un interior, enfoque de la región Trust para la minimización no lineal sujeto a límites. Revista SIAM sobre Optimización. Vol. 6, 1996, pp. 4188211445. 4 Coleman, T. F. y Y. Li. Sobre la Convergencia de Métodos Reflexivos de Newton para la Minimización No Lineal a Gran Escala Sujeta a Límites. Programación Matemática. Vol. 67, Número 2, 1994, pp. 1898211224. 5 Gill, P. E. W. Murray, y M. H. Wright. Optimización Práctica. Londres, Academic Press, 1981. 6 Han, S. P. Un método globalmente convergente para la programación no lineal. Revista de Teoría de la Optimización y Aplicaciones. Vol. 22, 1977, pág. 297. 7 Powell, M. J. D. Un algoritmo rápido para cálculos de optimización no linealmente limitados. Análisis numérico . Ed. G. A. Watson, Notas de Lectura en Matemáticas. Springer-Verlag, vol. 630, 1978. 8 Powell, M. J. D. La convergencia de métodos métricos variables para cálculos de optimización no linealmente restringidos. Nonlinear Programming 3 (O. L. Mangasarian, R. R. Meyer y S. M. Robinson, eds.), Academic Press, 1978. 9 Waltz, R. A. J. L. Morales, J. Nocedal y D. Orban. Un algoritmo interior para la optimización no lineal que combina los pasos de búsqueda de línea y de región de confianza. Programación Matemática. Vol. 107, No. 3, 2006, pp. 3918211408. Seleccione su país


No comments:

Post a Comment