Problema de vendedor ambulante basado en recocido simulado

Basado en el método de recocido simulado del problema del vendedor ambulante Matlab, siga la cuenta pública de WeChat "adquisición de comunicación en el aula" y responda al problema del vendedor ambulante basado en el método de recocido simulado

 


1. Introducción

Desde que Kirkpatrick, Little Gerat y Wakki "publicaron sus artículos pioneros sobre la base de la investigación de sus predecesores sobre mecánica estadística", el algoritmo de recocido simulado ha sido elogiado por resolver muchos problemas difíciles de optimización combinatoria. El "salvador" se ha aplicado al diseño asistido por computadora, como VLSI, procesamiento de imágenes y visión por computadora, telecomunicaciones, economía y muchos otros campos científicos y de ingeniería.

2. Introducción al algoritmo de recocido simulado

1. El
algoritmo de recocido simulado del proceso de recocido de sólidos se deriva del principio de recocido de sólidos. El sólido se calienta a un nivel suficientemente alto y luego se enfría lentamente. Cuando se calienta la temperatura, las partículas internas del sólido se desordenan a medida que aumenta la temperatura y aumenta la energía interna Y las partículas se vuelven gradualmente ordenadas cuando se enfrían lentamente, alcanzando un estado de equilibrio a cada temperatura y finalmente alcanzando el estado fundamental a temperatura ambiente, momento en el que la energía interna se reduce al mínimo.

 

2. Principio del algoritmo de recocido simulado

La primera idea del algoritmo de recocido simulado (Simulated Annealing, SA) fue propuesta por N.Metrópolis et al. En 1953. En 1983, S. Kirkpatrick y otros introdujeron con éxito la idea del recocido en el campo de la optimización combinatoria. Es un algoritmo de optimización estocástica basado en la estrategia de solución iterativa de Monte-Carlo, cuyo punto de partida se basa en la similitud entre el proceso de recocido de materia sólida en física y problemas generales de optimización combinatoria. El algoritmo de recocido simulado parte de una cierta temperatura inicial más alta, con la disminución continua de los parámetros de temperatura, combinada con la probabilidad de características de salto repentino para encontrar aleatoriamente la solución óptima global de la función objetivo en el espacio de solución, es decir, la solución óptima local puede saltar y fusionarse probabilísticamente Con el tiempo tiende al óptimo global. El algoritmo de recocido simulado es un algoritmo de optimización general. Al dar al proceso de búsqueda un salto de probabilidad variable en el tiempo y eventualmente cero, puede evitar efectivamente caer en una estructura serial que es localmente mínima y eventualmente tiende al óptimo global. mejoramiento.

Tres, el propósito del algoritmo de recocido simulado

La función objetivo de muchos problemas prácticos de optimización es no convexa y existen muchas soluciones óptimas locales, sin embargo, sigue siendo un problema difícil encontrar de manera eficaz la solución óptima global de funciones objetivas generales no convexas. Especialmente a medida que aumenta el tamaño del problema de optimización, el número de soluciones óptimas locales aumentará rápidamente.

El algoritmo de recocido simulado utiliza la similitud entre el proceso de resolución de problemas y el proceso de recocido del objeto fundido, y utiliza el proceso de recocido del objeto simulado aleatorio para completar la resolución del problema, es decir, el valor del parámetro se ajusta bajo la acción del parámetro de control (temperatura) hasta que el Los valores de los parámetros seleccionados finalmente hacen que la función de energía alcance el mínimo global.

Cuarto, el proceso de algoritmo de recocido simulado

Pasos del algoritmo:
Paso 1: Seleccione la función objetivo adecuada f como función de energía E para el problema, determine los parámetros iniciales: temperatura inicial T, temperatura final, velocidad de enfriamiento α (α∈ [0,1]), número de iteración de temperatura única k.
Paso 2: Establecer el número inicial de iteraciones t = 0, generar el estado inicial X0 y calcular su energía E0.
Paso 3: Utilice la solución actual como centro para generar una nueva solución vecina X1 a partir de la función de generación de estado y calcule su energía E1.
Paso 4: Utilice la regla de aceptación de Metropolis para comparar la energía de los dos estados y decidir si acepta X1. Si se acepta, establezca el estado actual en X1, si no, establezca el estado actual en X0;
Paso 5: Actualice el número de iteraciones para determinar si ha alcanzado el valor establecido Umbral k, si es así, enfríe T = T * α, y sea t = 0.
Paso 6: Juzgue si la temperatura alcanza la temperatura final, si lo es, ejecute el paso 7 en secuencia; si no, vaya al paso 3 y repita el
Paso 7: la solución actual se emite como la solución óptima.
Diagrama de flujo del algoritmo:

Cinco, las ventajas y desventajas del algoritmo de recocido simulado

1. Ventajas
(1) Aceptar la solución que se deteriora con cierta probabilidad, introducir el mecanismo natural del proceso de recocido del sistema físico y aceptar el punto de prueba que hace que el valor de la función objetivo sea "malo" con una cierta probabilidad, y no obliga a que el último estado sea cierto. Mejor que el estado anterior.

(2) El algoritmo de escalada se compara con el algoritmo de recocido simulado. Algoritmo
de escalada: suponiendo que el punto C es la solución actual, el algoritmo de escalada dejará de buscar cuando encuentre la solución local óptima del punto A, porque el punto A no se puede obtener por muy pequeño que se mueva en esa dirección Mejor solucion.
El recocido simulado es en realidad un algoritmo codicioso, pero su proceso de búsqueda introduce factores aleatorios y acepta una solución peor que la solución actual con cierta probabilidad, por lo que puede saltar de esta solución local óptima y alcanzar el máximo global. Excelente solucion. Una vez que el algoritmo de recocido simulado encuentra la solución local óptima A, aceptará el movimiento de E con cierta probabilidad. Quizás después de algunos de estos movimientos que no son óptimos locales, se alcanzará el punto D, por lo que se saltará el máximo local A.
dd88caeb643cb910163656c5c55b3a0e.pnguploading.4e448015.gifNo se pudo volver a cargar y cancelar

(3) Introducir el parámetro de control del algoritmo T para
dividir el proceso de optimización en varias etapas y determinar los criterios de selección del estado aleatorio en cada etapa La función de aceptación viene dada por el algoritmo de Metropolis con un modelo matemático simple.
Los dos pasos importantes del algoritmo de recocido simulado son: uno es comenzar desde el punto de iteración anterior bajo cada parámetro de control T para generar un estado aleatorio vecino, y el criterio de aceptación determinado por T determina la elección de este nuevo estado; el otro es reducir lentamente el control Parámetro T, aumente el criterio de recepción hasta que T-> 0, la cadena de estados sea estable en el estado óptimo del problema de optimización y se mejore la confiabilidad de la solución óptima global del algoritmo de recocido simulado.

(4) Búsqueda utilizando el valor de la función del objeto.
Los algoritmos de búsqueda tradicionales no solo necesitan utilizar el valor de la función objetivo, sino que a menudo también necesitan otra información auxiliar, como el valor derivado de la función objetivo, para determinar la dirección de búsqueda. Cuando esta información no existe, el algoritmo falla. El algoritmo de recocido simulado solo usa el valor de la función de adecuación transformado de la función objetivo para determinar la dirección de búsqueda adicional y el rango de búsqueda sin otra información auxiliar.

(5) Búsqueda de regiones complejas.
El algoritmo de recocido simulado es mejor para buscar regiones complejas y encontrar regiones con altas expectativas. No es eficiente para resolver problemas simples.

2. Desventajas
(1) El tiempo de solución es demasiado largo: cuando hay muchas variables y la función objetivo es compleja, para obtener una buena solución aproximada, el parámetro de control T debe partir de un valor mayor y ejecutar más en cada valor de temperatura T. Algoritmo Sub-Metropolis, por lo que la velocidad de cálculo iterativo es lenta.

(2) El rendimiento del algoritmo está relacionado con el valor inicial y los parámetros son sensibles: el valor inicial de la temperatura T y el tamaño del paso de reducción son más difíciles de determinar. Si el valor inicial de T se selecciona más grande, el tamaño del paso de reducción es demasiado pequeño, aunque al final se puede obtener un mejor resultado. Sin embargo, la velocidad de convergencia del algoritmo es demasiado lenta; si el valor inicial de T se elige pequeño y el tamaño del paso se reduce demasiado, es probable que no se obtenga la solución óptima global.

(3) La solución óptima que se encuentra actualmente se pierde debido a la ejecución del enlace de aceptación de probabilidad en el proceso de búsqueda.

Seis algoritmos de recocido simulado mejorado

(1) Algoritmo de recocido simulado con memoria El algoritmo de recocido simulado
no solo puede aceptar la solución que hace que la función objetivo se mueva en una buena dirección durante la iteración, sino que también puede aceptar la solución que empeora la función objetivo dentro de un cierto límite, lo que hace que el algoritmo sea efectivo Salta de la trampa mínima local. Sin embargo, para problemas de ingeniería con múltiples valores extremos, este algoritmo difícilmente puede garantizar que la solución óptima que finalmente obtengamos sea la solución óptima que se haya alcanzado durante todo el proceso de búsqueda. Para resolver este problema, podemos agregar una memoria al algoritmo para que pueda recordar el mejor resultado jamás logrado en el proceso de búsqueda, lo que puede mejorar la calidad de la solución final para nosotros en muchos casos.

(2) Algoritmo de recocido simulado con calentamiento monótono.
Cuando la temperatura T es suficientemente grande, la probabilidad de aceptación correspondiente se acerca a 1, y el algoritmo busca globalmente; cuando la temperatura T es suficientemente pequeña, la probabilidad de aceptación correspondiente se acerca Para O, si la búsqueda cae en el óptimo local en este momento, el tiempo para saltar fuera del óptimo local será bastante largo. Dado que el costo de tiempo de saltar del óptimo local es alto porque la probabilidad de aceptar la mala solución es demasiado baja (es decir, la temperatura es demasiado baja), luego de que la búsqueda ingresa al óptimo local, la temperatura se aumenta artificialmente para aumentar la probabilidad de aceptar la mala solución. Es relativamente fácil buscar fuera del óptimo local, de ahí la idea de un proceso de calentamiento monótono.

(3) Al recocido simulado paralelo
se le ha dado un modo de recocido simulado, es decir, se ha dado un conjunto de valores de parámetros de recocido y sus reglas de cambio, y N valores iniciales se seleccionan independientemente en la región D de acuerdo con una determinada distribución. , Calcule al mismo tiempo, entonces se pueden obtener N resultados, que se pueden considerar como vectores aleatorios independientes e idénticamente distribuidos.

(4) Incrementar el proceso de búsqueda complementario. Es decir, una vez finalizado el proceso de recocido, con la solución óptima buscada como estado inicial, se vuelve a realizar el proceso de recocido simulado o la búsqueda de quimiotaxis local.

(5) Elija un estado inicial adecuado;

(6) Diseñar criterios de terminación de algoritmos apropiados;

Siete, la aplicación del algoritmo de recocido simulado

El problema TSP (Travelling Salesman) es uno de los problemas de combinación óptima más representativos. Su aplicación ha ido penetrando paulatinamente en diversos campos técnicos y en nuestra vida cotidiana. Originalmente se propuso para el transporte, como el enrutamiento de aeronaves, Enviar correo, servicio de entrega urgente, diseño de ruta de autobús escolar, etc. De hecho, su rango de aplicación se ha expandido a muchos otros campos, como el diseño de chips VLSI, diseño de placas de circuitos, control de robots, enrutamiento de vehículos, logística y distribución.


El problema del viajante (TSP) es que el viajante tiene que viajar a varias ciudades y se conoce el costo entre las ciudades. Para ahorrar costos, comience desde la ciudad donde se encuentra y regrese después de atravesar todas las ciudades, preguntando cómo hacer que el costo total del viaje sea el más corto ?

Este problema pertenece al problema NPC. Hay dos algoritmos principales:
(1) Método exhaustivo: la complejidad del algoritmo es O (n!). Cuando el número de ciudades es grande, el tiempo de ejecución del algoritmo es inaceptable, pero el resultado es una solución precisa.
(2) Algoritmo de búsqueda aleatoria: algoritmo de escalada, algoritmo de recocido simulado, algoritmo de colonia de hormigas, etc.

 

 

Usando los resultados de la simulación de MATLAB:

 

 

 

 

8. Pregunta

1. En el proceso de utilizar el algoritmo de recocido simulado para resolver el problema de TSP, es necesario generar una nueva solución en cada iteración ¿Qué se debe hacer en la simulación y sobre qué base?

Respuesta: En la simulación anterior, la nueva solución se genera intercambiando aleatoriamente el orden de las dos ciudades en la ruta de viaje. El número de intercambios disminuye a medida que aumenta la temperatura y el mínimo es uno. Hay muchos métodos para generar nuevas soluciones en problemas de TSP. Entre ellos, hay tres métodos tradicionales de uso común, el método de transformación de dos puntos, el método de dos transformaciones y el método de tres transformaciones. El método mejorado tiene como objetivo aumentar el rango del espacio de la nueva solución. Entre ellos, utilizamos una mejora El método de transformación de dos puntos. En el problema de TSP, el nuevo método de generación de soluciones tiene un requisito fundamental de que el paso de búsqueda sea lo suficientemente pequeño, es decir, todas las soluciones se pueden atravesar desde cualquier solución inicial (porque cualquier solución puede ser la solución óptima), y el método de transformación de dos puntos se puede utilizar para atravesar. Todas las soluciones posibles y el número máximo de intercambios de una solución a otra es n × (n-1) / 2. Además, en este proceso, es necesario hacer que el espacio de la nueva solución sea lo suficientemente grande como para garantizar que se pueda saltar el óptimo local. Debido a que hay esperanzas de que el nuevo espacio de solución sea grande (cuando T es grande, es decir, es beneficioso saltar del óptimo local), el nuevo espacio de solución es pequeño (cuando T es pequeño, es decir, la iteración posterior), el nuevo método de generación de soluciones puede atravesar todas las soluciones, por lo que Se adopta el método de conversión de dos puntos en el que el número de intercambios disminuye con la disminución de la temperatura.

2. ¿Cómo juzgar si la iteración se completa a partir del gráfico de distancia y tiempos de iteración?

Respuesta: En el algoritmo de recocido simulado, la iteración generalmente se detiene al juzgar la temperatura de recocido, el número de iteraciones o al no aceptar nuevas soluciones durante mucho tiempo. A partir del gráfico de distancia y número de iteraciones, si la distancia entre la iteración anterior y la siguiente es menor de cierto grado, se puede juzgar aproximadamente que la iteración está completa. Cuando el número de iteraciones tiende a infinito, el resultado de optimización del algoritmo de recocido simulado puede considerarse hacia la solución global óptima con probabilidad 1. Sin embargo, cuando el número de iteraciones es limitado, la solución obtenida puede ser solo una mejor solución, pero no necesariamente la solución global óptima.

Supongo que te gusta

Origin blog.csdn.net/Xiaoxll12/article/details/105177389
Recomendado
Clasificación