Descargar la presentación
La descarga está en progreso. Por favor, espere
1
PROBLEMA DEL AGENTE VIAJERO
JULIAN HUMBERTO SALAZAR PINEDA COD UNIVERSIDAD DE CALDAS
2
PROBLEMA DEL AGENTE VIAJERO ( TSP )
“ Un agente viajero, partiendo de su ciudad de origen, debe visitar exactamente una vez cada ciudad de un conjunto de ellas (previamente especificado) y retornar al punto de partida. Conociendo el coste de ir de cada ciudad a otra, determinar el recorrido de coste mínimo.”
3
Ha sido uno de los mas estudiados en Investigación Operativa, por lo que merece una atención especial. Cuando la teoría de la Complejidad Algorítmica se desarrolló, el TSP fue uno de los primeros problemas en estudiarse, probando Karp en 1972 que pertenece a la clase de los problemas difíciles (NP-hard)
4
Como una de las características del TSP es el de pertenecer a una clase de problemas muy difíciles de resolver es decir, hallar la solución óptima, en la práctica es muy común el utilizar algoritmos de aproximación (heurísticas) para obtener soluciones factibles de alta calidad (relativamente cercanas al óptimo) en tiempos de ejecución relativamente pequeños
5
Para enunciar el problema formalmente introducimos la siguiente terminología: Sea un grafo G=(V,A,C) donde V es el conjunto de vértices, A es el de aristas y C=(cij) es la matriz de costes. Esto es, cij es el coste o distancia de la arista (i, j). • Un camino (o cadena) es una sucesión de aristas (e1, e2, …, ek) en donde el vértice final de cada arista coincide con el inicial de la siguiente. También puede representarse por la sucesión de vértices utilizados. • Un camino es simple o elemental si no utiliza el mismo vértice mas de una vez. • Un ciclo es un camino (e1, e2, …, ek) en el que el vértice final de ek coincide con el inicial de e1. • Un ciclo es simple si lo es el camino que lo define. • Un subtour es un ciclo simple que no pasa por todos los vértices del grafo. • Un tour o ciclo hamiltoniano es un ciclo simple que pasa por todos los vértices del grafo.
6
Dado un grafo no dirigido, completo y con pesos, G, encontrar el ciclo de menor coste que pase por todos los nodos. 10 1 2 45 20 40 55 25 5 25 30 3 15 50 4 Ejemplo: Un cartero tiene que repartir cartas por todo el pueblo. ¿Qué ruta debe seguir para que el coste de desplazamiento sea mínimo?
7
Ejemplo de Ciclo Hamiltoniano
8
REGLAS MIOPES la solución se construye de manera progresiva. En cada iteración se tiene una solución parcial y se extiende esta solución seleccionando una de las posibles opciones. Solo considera la mejor opción en el paso siguiente sin tomar en cuenta lo ocurrido antes. Ejemplo: la heurística del vecino más cercano
9
VECINO MÁS CERCANO Paso 1: Comenzar con cualquier nodo como nodo inicial Paso 2: Encontrar el nodo no visitado más cercano al último nodo visitado y agregarlo al camino. Paso 3: Repetir el Paso 2 hasta que todos los nodos de la red estén contenidos en el camino. Unir el primer nodo con el último visitado.
10
Algoritmo Vecino más Cercano
masCercanoTSP (V, E, W) Seleccionar un vértice arbitrario s para iniciar el ciclo C. v = s; Mientras haya vértices que no estén aun en C Seleccionar una arista vw de peso mínimo, donde w no está en C. Añadir la arista vw a C; v = w; Añadir la arista vs a C. Return C; Es fácil implementar este algoritmo con un tiempo de peor caso en O(n) para procesar un grafo de n vértices.
11
Si se ejecuta el vecino más cercano con el siguiente grafo partiendo del vértice 1, la salida es el ciclo 1, 3, 2, 4, 1, con un peso total de 85.
12
Eslabón más Corto En cada iteración de su ciclo principal toma una arista de peso mínimo de entre todas las aristas restantes en cualquier parte del grafo; sin embargo desechará esa arista si no es posible que pueda formar parte de un recorrido junto con las otras aristas que ya se escogieron. El subgrafo formado por las aristas ya escogidas en cualquier punto del algoritmo constituye una colección de caminos simples. No debe haber ciclos (antes del final) ni vértices en los que incidan más de dos aristas escogidas. El algoritmo termina una vez que ha procesado todas las aristas.
13
Algoritmo Eslabón más Corto
eslabonMasCortoTSP (V, E, W) R = E; // R es las aristas restantes C = 0; // C es las aristas del ciclo Mientras R no esté vacío: Quitar la arista más ligera (más corta), vw; de R Si vw no forma un ciclo con las aristas de C y vw no sería la tercera arista de C que incide en v o w. Añadir vw a C. // Continuar el ciclo Añadir la arista que conecta que conecta los extremos del camino que está en C. return C; El tiempo de Ejecución es similar al del Algoritmo de Kruskal.
14
Si se ejecuta este algoritmo para el siguiente grafo, selecciona las aristas (2,3), (3,4), (1,2) y (1,4) El recorrido tiene un peso de 77.
15
¿ Que tan buenos son los algoritmos de Aproximación para el TSP
Estas sencillas estrategias de tiempo polinómico para resolver el TSP no producen recorridos mínimos. Ya dijimos que el TSP es NP-completo, y probablemente no exista ningún algoritmo que lo resuelva en tiempo polinómico. (claro que esto no implica que las estrategias de vecina mas cercano y del eslabón más corto siempre produzcan un recorrido no óptimo; a veces sí hallan el recorrido mínimo.)
16
Aplicaciones más importantes del TSP
Fabricación de circuitos integrados Rutas de vehículos en el ramo de la logística Recogida (robotizada) de material en almacenes Instalación de componentes en ordenadores Aparece como subproblema en otras aplicaciones Programación de tareas que se presenta en la manufactura de bienes seleccionar la ruta de los recolectores de dinero de teléfonos públicos
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.