Optimización combinatoria

Alternar contenido

Optimización combinatoria

LOS'optimización combinatoria, también llamado optimización discreta, est une branche de l’optimisation en Matemáticas appliquées et en informatique, également liée à la recherche opérationnelle, l’algorithmique et la théorie de la complejidad. L’optimisation combinatoire consiste à trouver dans un ensemble un sous-ensemble contenant les « meilleures solutions ».

Encontrar una solución óptima en un conjunto discreto y finito es un problema fácil en teoría: solo tienes que probar todas las soluciones y comparar sus cualidades para ver la mejor. Sin embargo, la explosión combinatoria de posibles soluciones de ciertos problemas matemáticos no permite obtener una solución en un tiempo "humano".

Quelques problèmes d’optimisation combinatoire peuvent être résolus (de manière exacte) en temps polynomial par exemple par un algorithme de programación dinámica ou en montrant que le problème peut être formulé comme un problème d’optimisation linéaire en variables réelles. Dans la plupart des cas, le problème est Np-difficile et, pour le résoudre, il faut faire appel à des algorithmes adaptés.

En la práctica, la complejidad físicamente aceptable es a menudo solo polinomial. Entonces estamos satisfechos con tener una solución aproximada en el mejor de los casos, obtenida por una heurística o una metaheurística. Es importante señalar que algunos de estos métodos proporcionan óptimos globales, la diferencia con los métodos exactos es el hecho de no tener una prueba formal (prueba matemática o de finalidad) de su optimalidad global.

técnica de optimización combinatoria

Árbol de soluciones

Es decir mi l’ensemble des solutions des problèmes. Il est supposé discret et fini. L’énumération des solutions se représente en árbol. Tous les éléments de mi están separados en no sous-ensemble non vides disjoints contenant chacun une partie de l’ensemble des solutions. Par exemple, l’ensemble peut être séparé en deux dans le problème du sac à dos si on prend ou non un élément xk en el bolso.

La operación se puede repetir para cada subconjunto hasta que cada conjunto contenga solo un elemento. En el ejemplo de la mochila, cada subconjunto se separa hasta que se toma una decisión sobre el último elemento.

La raíz del árbol es mi, los cables son los subconjuntos, etc. como se muestra en el siguiente diagrama:

optimización de enumeración

Técnicas de resolución

Exacto

Estos métodos dan una garantía para encontrar la solución óptima para una instancia de tamaño finito en un tiempo limitado y para demostrar su optimalidad.

Heurístico

Cuando la complejidad de un problema es exponencial o presenta una explosión combinatoria, se recomienda el uso de heurísticas. Este es un método que proporciona rápidamente una "buena" solución al problema. Esta solución aproximada puede proporcionar un punto de partida para utilizar un método exacto (como la esquina noroeste para el problema del transporte). Todos los algoritmos codiciosos e ingenuos son heurísticos.

Cabe señalar que las heurísticas están diseñadas para resolver un problema dado y no pueden usarse en otras condiciones a diferencia de las metaheurísticas. Las heurísticas se evalúan según tres criterios:

  1. Qualité du résultat : l’heuristique est confrontée aux resultados optimaux pour un ensemble de valeurs du problème donné (on parle de benchmark). La qualité de la solution peut soit être une distance à la solution optimale, soit une probabilité de l’atteindre.
  2. Costo de la heurística: complejidad en el tiempo y el espacio.
  3. Campo de aplicación: el campo de admisibilidad de todas las variables.

Las heurísticas para un problema dado son numerosas, por lo que es importante proporcionar una rápida y proporcionar "buenos" resultados.

Metaheurístico

Las metaheurísticas tienen un mayor nivel de abstracción que las heurísticas, ya que es un método que puede adaptarse a un problema dado. Así, los métodos se pueden aplicar a diversos problemas (en forma de caja negra) sin modificar su funcionamiento. También hablamos de heurística generalista.

Hay dos tipos de metaheurísticas: población (Para) o curso (B). La mayoría de los algoritmos no tienen una población determinada, por lo que es posible utilizar el algoritmo para una ruta o una población.

metaheurística de ruta de población

Ambos tipos funcionan con el mismo proceso de cuatro pasos:

  1. Vecindario : la vecindad de una solución es un subconjunto de soluciones que pueden alcanzarse mediante una transformación de la solución inicial (por permutación, por extensión, por mutación, por eyección, etc.).
  2. Exploración : la exploración consiste en recopilar datos de todo el barrio.
  3. Operación : la operación utiliza la información recolectada para definir las áreas de “interés” del área de investigación que forma el barrio.
  4. Memoria : la memoria tiene en cuenta el aprendizaje y permite determinar las zonas susceptibles de tener un óptimo global. Si las nuevas soluciones o los criterios de parada ya no permiten mejorar la solución, el algoritmo se detiene. De lo contrario, regrese al paso 1. Ciertos algoritmos solo funcionan con criterios de detención, por lo que estamos hablando de metaheurísticas sin memoria.

algoritmo de optimización

Compartir, repartir
es_ESES
A los bloggers de %d les gusta esto: