Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porLUIS SOM Modificado hace 7 años
1
UNIVERSIDAD TECNOLOGICA INDOAMERICA INGENIERIA EN CIENCIAS DE LA COMPUTACION INTELIGENCIA ARTIFICIAL NOMBRE: NICOLAS RAMOS NIVEL: OCTAVO AMBATO - ECUADOR
2
El problema del vendedor viajero, problema del vendedor ambulante, problema del agente viajero o problema del viajante (TSP por sus siglas en inglés), responde a la siguiente pregunta: dada una lista de ciudades y las distancias entre cada par de ellas, ¿cuál es la ruta más corta posible que visita cada ciudad exactamente una vez y al finalizar regresa a la ciudad origen? DESCRIPCION
3
EL PROBLEMA En el problema se presentan N! rutas posibles, aunque se puede simplificar ya que dada una ruta nos da igual el punto de partida y esto reduce el número de rutas a examinar en un factor N quedando (N-1)!. Como no importa la dirección en que se desplace el viajante, el número de rutas a examinar se reduce nuevamente en un factor 2. Por lo tanto, hay que considerar (N-1)!/2 rutas posibles. En la práctica, para un problema del viajante con 5 ciudades hay 12 rutas diferentes y no necesitamos un ordenador para encontrar la mejor ruta, pero apenas aumentamos el número de ciudades las posibilidades crece exponencialmente (en realidad, factorialmente):
4
Para 10 ciudades hay 181.440 rutas diferentes Para 30 ciudades hay más de 4·10^31 rutas posibles. Un ordenador que calcule un millón de rutas por segundo necesitaría 10^18 años para resolverlo. Dicho de otra forma, si se hubiera comenzado a calcular al comienzo de la creación del universo (hace unos 13.400 millones de años) todavía no se habría terminado. Puede comprobarse que por cada ciudad nueva que incorporemos, el número de rutas se multiplica por el factor N y crece exponencialmente (factorialmente). Por ello el problema pertenece a la clase de problemas NP- completos.
5
EL PROBLEMA DEL VIAJANTE DE COMERCIO Recordar: Encontrar un recorrido de longitud mínima para un viajante que tiene que visitar varias ciudades y volver al punto de partida, conocida la distancia existente entre cada dos ciudades. Es decir, dado un grafo dirigido con arcos de longitud no negativa, se trata de encontrar un circuito de longitud mínima que comience y termine en el mismo vértice y pase exactamente una vez por cada uno de los vértices restantes (circuito hamiltoniano). ¡Estoy hasta las ’s de viajar !
6
EL PROBLEMA DEL VIAJANTE DE COMERCIO Formalización: Sean G=(V,A) un grafo orientado, V={1,2,…,n}, D[i,j] la longitud de (i,j) A, D[i,j]= si no existe el arco (i,j). El circuito buscado empieza en el vértice 1. Candidatos: E = { 1,X,1 | X es una permutación de (2,3,…,n) } |E| = (n-1)! Soluciones factibles: E = { 1,X,1 | X = x 1,x 2,…,x n-1, es una permutación de (2,3,…,n) tal que (i j,i j+1 ) A, 0<j<n, (1, x 1 ) A, (x n-1,1) A} Funcion objetivo: F(X)=D[1,x 1 ]+D[x 1, x 2 ] + D[x 2, x 3 ]+...+D[x n-2, x n-1 ]+ +D[x n,1]
7
EL PROBLEMA DEL VIAJANTE DE COMERCIO Representación del espacio de estados: Caso de un grafo completo con |V| = 4. 1 1615131211 10 9 8 7 6 14 5 4 3 2 x 1 =2 x 1 =3 x 1 =4 x 2 =3x 2 =4 x 2 =2x 2 =4 x 2 =2x 2 =3 x 3 =4x 3 =3 x 3 =4 x 3 =2 x 3 =3x 3 =2 Cada hoja es una solución y representa el viaje definido por el camino desde la raíz hasta la hoja.
8
EL PROBLEMA DEL VIAJANTE DE COMERCIO Definición de una cota(X,k) muy sencilla: Suma de aristas ya escogidas cota(X,k)=D[1,X[1]]+ i=1..k-2 D[X[i],X[i+1]] Ejemplo: (n=5) 20301011 15 1642 35 24 19618 3 1647 Ejemplo de matriz no reducida.
9
EL PROBLEMA DEL VIAJANTE DE COMERCIO Puede mejorarse usando la matriz de distancias reducida: Una fila (columna) de la matriz de distancias se dice reducida si sus elementos son no negativos y contiene al menos un 0. Una matriz de distancias se dice reducida si cada fila y columna es reducida. Para cada k, 1<k<n, todo circuito hamiltoniano incluye exactamente un arco de la forma (k,-) y exactamente un arco de la forma (-,k). Si se resta una constante t de cada elemento de una fila (columna) de la matriz de distancias, la longitud de todo hamiltoniano se reduce exactamente en t y un hamiltoniano de distancia mínima lo sigue siendo. 20301011 15 1642 35 24 19618 3 1647 Ejemplo de matriz no reducida.
10
EL PROBLEMA DEL VIAJANTE DE COMERCIO Si se elige t como el mínimo de los elementos de la fila (columna) i-ésima y se resta t de todos los elementos de esa fila (columna), la fila resultante es reducida. Repitiendo el proceso para filas y columnas, siempre se puede conseguir que la matriz de distancias sea reducida. La cantidad total L restada de filas y columnas es una cota inferior de la longitud de un hamiltoniano de longitud mínima Reducción de la fila 1, t = 10. 20301011 15 1642 35 24 19618 3 1647 102001 15 1642 35 24 19618 3 1647 101701 12 1120 03 02 15312 0 110012 20301011 15 1642 35 24 19618 3 1647 Reducción de la matriz, L = 25.
11
EL PROBLEMA DEL VIAJANTE DE COMERCIO Cálculo de la cota inferior para los nodos distintos de la raíz y de las hojas: Sea A la matriz de distancias reducida para el nodo y. Sea x un hijo de y que corresponda a incluir el arco (i,j) en el recorrido y que no sea hoja. La matriz B reducida para x, y por tanto cota(x), se calcula de la siguiente forma: 1.Cambiar todos los elementos de la fila i y de la columna j de A por . Esto evita el incluir más arcos que salgan de i o lleguen a j. 2.Cambiar el elemento (j,1) de A por Esto evita considerar el arco (j,1). 3.B es la matriz que se obtiene al reducir todas las filas y columnas de la matriz resultante (excepto aquéllas formadas sólo por “ ”). Si r es el valor total restado en el paso (3): cota(x)=cota(y) + D[i,j] + r
12
EL PROBLEMA DEL VIAJANTE DE COMERCIO Ejemplo: 101701 12 1120 03 02 15312 0 110012 20301011 15 1642 35 24 19618 3 1647 Grafo original.Matriz reducida, L = 25. 1 2 5 4 3 x 1 = 2 x 1 = 3 x 1 = 4 x 1 = 5 1120 0 02 15 12 0 11 012 1 20 3 02 43 0 00 12 12 11 0 03 2 312 0 1100 10 90 03 0 1209 00 ˆ c 25 ˆ c ˆ c 25+10 35 ˆ c 25+17+11 53 ˆ c 25+1+5 31
13
1 2 5 4 3 x 1 = 2 x 1 = 3 x 1 = 4 x 1 = 5 UB = EL PROBLEMA DEL VIAJANTE DE COMERCIO 6 7 8 x 2 = 2 x 2 = 3 x 2 = 5 ˆ c 25 ˆ c ˆ c 35 ˆ c 53 ˆ c 31 ˆ c 28 ˆ c 50 ˆ c 36 910 11 x 3 = 3 x 3 = 5 ˆ c 32 ˆ c 28 ˆ c x 4 = 3 Es hoja (solución), se actualiza UB = 28. El siguiente nodo en curso sería el 5, pero cota(5)>UB luego el algoritmo termina y el hamiltoniano mínimo es 1,4,2,5,3,1.
14
EL PROBLEMA DEL VIAJANTE DE COMERCIO Otras versiones, basadas en otra representación del espacio de estados: G=(V,A), |V|=n, |A|=a A={(o i, d i )}, o i V, d i V D[o i, d i ], distancia de la arista Un hamiltoniano es un conjunto de n arcos. Además, para cada vértice i, 0<i<n+1, debe haber en ese conjunto exactamente un arco de la forma (i,j) y uno de la forma (k,i). Soluciones Factibles: {X=()| i x i {0,1}, x i =n, u V (( !i (x i =1 o i =u) ( !j (x j =1 d j =u)) } Función Objetivo: F(X)= x i D[o i, d i ] Arbol de búsqueda= árbol binario: Un hijo izquierdo representa la inclusión de un determinado arco en el hamiltoniano mientras que su hermano derecho representa la exclusión de ese arco.
15
EL PROBLEMA DEL VIAJANTE DE COMERCIO Si se elige, para empezar, el arco (i,j): el subárbol izquierdo representa todos los recorridos que incluyen el arco (i,j), y el subárbol derecho los recorridos que no lo incluyen; si hay un recorrido óptimo incluido en el subárbol izquierdo, entonces sólo faltan por seleccionar n-1 arcos para encontrarlo, mientras que si todos están en el derecho, hay que seleccionar todavía n arcos. Ejercicio: pensar en como se calcula la cota de un nodo, dada la cota de su padre
16
EL PROBLEMA DEL VIAJANTE DE COMERCIO Por ejemplo, con el grafo de antes: Se llega al nodo 6. Se han elegido ya tres arcos: (3,1), (5,3), (1,4). Para los dos restantes, sólo queda ya una opción: (4,2) y (2,5). Así, se obtiene el recorrido: 5,3,1,4,2,5. Con distancia total: 28 (así, UB = 28) El siguiente nodo en curso es el 3, con y el algoritmo acaba. 67 45 23 1 20301011 15 1642 35 24 19618 3 1647 incluir (3,1)excluir (3,1) incluir (5,3)excluir (5,3) incluir (1,4) excluir (1,4) ˆ c 25 ˆ c ˆ c 28 ˆ c ˆ c 36 ˆ c 37 ˆ c 36 ˆ c(3) UB
17
Problema: Viajante de Comercio Estado inicial: Estado final: Posibles estados: Operadores: A B C D E 7 6 10 6 5 13 8 bsi Búsqueda anchura Búsqueda profundidad Búsqueda bidireccional Búsqueda coste uniforme VisitarCiudadA = VA, VisitarCiudadB = VB,...... VisitarCiudadE = VE (A C) (A D) (A B) (A E ) (A C D) (A C D E) (A C D E B)... (A... A) Ej: (A B E D C A) (A C D E B A) (A)
18
Problema: Viajante de Comercio (A) (A B)(A C) (A D) (A E) VB VE VC VD (A C D) (A C D E) (A C D E B) (A C D E B A) VD VE VB VA 7 7 6 6 10 13 5 ÁRBOL DE BÚSQUEDA (ejemplo haciendo uso de costes)
19
Búsqueda en anchura (A) (A B)(A C) (A D) (A E) Expande primero los nodos menos profundos (A B A) (A B D)(A B E) (A C A)(A C D) (A D A)(A D B) (A D E) (A D C) (A E A) (A E B) (A E D)........(A B E A)(A B E D)(A C D A)(A C D B)(A C D E)........ (A D C A)........ (A B E DA)(A B E DC) (A C D B A)(A C D B E) (A C D E A)(A C D E B) (A B E DC A)(A C D B E A) (A C D E B A)..................................... Completa?Si, si b es finito Optima? Si Complejidad espacial y temporal? En el peor de los casos se expanden todos los nodos hasta el nivel de la solución (d). O (b d ) (1+b+ b 2 +...+b d ) En cada nivel se expanden b nodos, por cada nodo de ese nivel
20
Búsqueda en profundidad (A) (A B)(A C) (A D) (A E) (A B D) Expande primero los nodos no expandidos más profundos (A B E A) (A B E D A) (A B E D C A) (A B E) (A B D C)(A B D E)(A B D A) (A B D C A) (A B E D C) (A B A) (A B D E A) (A B E D) Completa?No, falla en espacios de profundidad infinita (puede haber bucles, estados repetidos) Optima? No, puede encontrar un camino peor Complejidad temporal?En el peor de los casos se expanden todos los nodos hasta el nivel de máx profundidad (m). O (b m ) Complejidad espacial?Factor de ramificación * profundidad de la solución. O (bm) (lineal!)
21
Búsqueda bidireccional (A) (A B)(A C) (A D) (A E) Simultáneamente desde estado inicial hasta objetivo y viceversa (A B A) (A B D)(A B E) (A C A)(A C D) (A D A)(A D B) (A D E) (A D C) (A E A) (A E B) (A E D)........(A B E A)(A B E D)(A C D A)(A C D B)(A C D E)........ (A D C A)........ (A C D E B A) (A C D E B) (A C D E) Completa?Si Optima? Si Complejidad espacial y temporal?En cada sentido O (b d/2 ) O (b d/2 ) + O (b d/2 ) = O (b d/2 ) << O (b d ) Se garantiza si se utiliza en ambos sentidos búsqueda en anchura
22
Búsqueda de coste uniforme (A) Expande primero los nodos no expandidos con menor coste de camino........ (A B) 7 (A C) 6 (A D) 10 (A E) 13 (A C A)(A C D) 5- 11 6 (A C D A)(A C D B)(A C D E) 108 6-176-17 (A B A) (A B D)(A B E) 7- 14 8 10- 7 (A D A)(A D B) (A D E) (A D C) 10-20 86 5-15 (A B E A)(A B E D) 1313 6 (A D C A) 6 (A C D E A)(A C D E B) 13 10-27 (A C D E B A) 7-34 (A E A) (A E B) (A E D) 13 10 6 (A C D B A)(A C D B E) 10 7 (A B E DA)(A B E DC) 10 5 (A C D B E A) 13 (A B E DC A) 6 Completa?Si Optima? Si, si se cumple que g(suc(n)) >= g(n) Complejidad espacial y temporal?Nº de nodos con g(n) <= coste de la solución optima. O (b d ) Búsqueda primero en anchura es una búsqueda de coste uniforme con g(n)=profundidad(n)
23
Comparación de las estrategias de búsqueda ciega
24
EJEMPLOS: EL VIAJANTE DE COMERCIO Definido en el paquete IA.probTSP. Las 4 clases que representan el problema: ProbTSPBoard: representación del espacio (un vector de n posiciones que representan la secuencia de recorrido entre las n ciudades) ProbTSPHeuristicFunction: implementa la función heurística (suma del recorrido) ProbTSPSuccessorFunction: implementa la función que genera los estados accesibles desde uno dado (todos los posibles intercambios de 2 ciudades) probTSPGoalTest: define una función que siempre retorna falso como prueba de estado final (En este caso lo desconocemos.) 24
25
EJEMPLOS: EL VIAJANTE DE COMERCIO La clase ProbTSPJFrame permite ejecutar la ascensión de colinas y el temple simulado. Se puede modificar el numero de ciudades. En cada panel aparece la ejecución del problema del viajante de comercio con ascensión de colinas y temple simulado. 25
26
EJEMPLOS: EL VIAJANTE DE COMERCIO Se puede comprobar que frecuentemente la solución que da el temple simulado es mejor. Evidentemente, para cada tamaño de problema habría que reajustar los parámetros del temple simulado. 26
27
EJEMPLOS: EL VIAJANTE DE COMERCIO 27
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.