UNIVERSIDAD TECNOLOGICA INDOAMERICA INGENIERIA EN CIENCIAS DE LA COMPUTACION INTELIGENCIA ARTIFICIAL NOMBRE: NICOLAS RAMOS NIVEL: OCTAVO AMBATO - ECUADOR.

Slides:



Advertisements
Presentaciones similares
ESTRUCTURA DE DATOS Unidad 04 TDA no lineales - Árboles.
Advertisements

Inteligencia Artificial
Diseño y análisis de algoritmos
GRAFOS Presentado por: Oscar Leonardo Ramírez John Freddy Sandoval
Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.
BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA
Problema: Viajante de Comercio
Inteligencia Artificial Resolver problemas mediante búsqueda
Tema Nº4.
Inteligencia Artificial Resolver problemas mediante búsqueda
GRAFOS HUGO ARAYA CARRASCO.
Material de apoyo Unidad 4 Estructura de datos
Grafos. Un Grafo G es un par de conjuntos (V, E), donde V es un conjunto no vacío de elementos llamados vértices o nodos y E es un conjunto formado por.
ALGORITMO DE FLOYD dik + dkj < dij
Trabajo presentado por: LUIS FERNANDO OBANDO ING
Optimización Combinatoria usando Algoritmos Evolucionistas Problemas de Optimización. Idea: Encontrar una solución "factible" y "óptima" de acuerdo a algún.
Solución de problemas por Búsqueda
Problemas de Decisión y Optimización
Diseño y análisis de algoritmos
Ramificación y acotación (Branch and Bound)
profesor: Luigi Ceccaroni
Árboles Recomendado: 1. Nivelación Funciones
Definiciones: conjuntos, grafos, y árboles
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
Análisis de los algoritmos Unidad 7. Análisis La resolución práctica de un problema – algoritmo o método de resolución – y por otra un programa o codificación.
Análisis de redes en gvSIG Espacio para logotipos Victoria Agazzi
GRAFOS ESTRUCTURA DE DATOS. INTRODUCCION Los grafos son estructuras de datos Representan relaciones entre objetos Relaciones arbitrarias, es decir No.
Un grafo consta de un conjunto de vértices y un conjunto de aristas. Cada arista de un grafo se especifica mediante un par de vértices. Denotemos al conjunto.
BÚSQUEDA EN ESPACIOS DE ESTADOS Espacio de estados: modelo del mundo representado por un grafo Espacio de estados: modelo del mundo representado por un.
Profesor: Mag. Ing. Pavel Aliaga E. Facultad de Ing. de Sistemas Universidad de Lima Teoría de Grafos Estructuras Discretas en Computación.
8-Puzle consiste en un tablero cuadrado (3x3) en el que hay situados 8 bloques cuadrados numerados (con lo cual se deja un hueco del tamaño de un bloque).
BÚSQUEDA DE SOLUCIONES Soluciones no Informadas (cont.) Dra. Myriam Hernández A.
Curso Sygma. Grafos Universidad San Buenaventura Cali.
LOGICA Y MATEMATICA COMPUTACIONAL
SUMA DE MATRICES 2º BCT.
Optimización: Programación Lineal
Universidad Autónoma del Estado de México
PLANIFICACIÓN DE LAS RUTAS DE DISTRIBUCIÓN
ANALISIS Y DISEÑO DEL ALGORITMOS
PROBLEMA DEL AGENTE VIAJERO
Guía de Ejercicios 3: D&AA Universidad Viña del Mar 30/9/2002
Montículos Binarios (Binary Heaps)
TAD’s ARBOLES GENERALIZADOS
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2016
Estadística Básica Curso de Estadística Básica MCC. Manuel Uribe Saldaña MCC. José Gonzalo Lugo Pérez SESION 3 MEDIDAS DE TENDENCIA CENTRAL Y MEDIDAS DE.
TEORÍA DE GRAFOS -Algoritmo de Dijkstra -Algoritmo de Primm -Algoritmo de Kruskal Integrantes:
Análisis de redes Por: Alexander Miss.
Análisis de redes. 3.4 Problema de flujo máximo.
Búsqueda por profundidad iterativa
Grafos dirigidos: Sea G un grafo, si cada arista en G tiene una dirección entonces G se llama grafo dirigido o dígrafo y sus aristas se llaman arcos.
TEMA Nº 1 Conjuntos numéricos. Aprendizajes esperados: Utilizar y clasificar los distintos conjuntos numéricos en sus diversas formas de expresión, tanto.
Conjuntos numéricos. objetivos: Utilizar y clasificar los distintos conjuntos numéricos en sus diversas formas de expresión. recordar la operatoria básica.
ÁRBOLES ESTRUCTURA DE DATOS II ING. CARLOS ALBERTO PULLAS.
Inteligencia Artificial
Árboles (Trees) Árboles Árboles binarios Recorridos de árboles
GRAFOS ESTRUCTURAS DE DATOS.
MÉTODO DE MÍNIMO COSTO DANIELA NARANJO LAURA RUBIO RENGIFO
Curso de Programación Estructurada
TEMAS *Arboles Binarios *listas Abiertas y Cerradas - Inserción - Recorrido - Eliminación *Pilas - Concepto - Inserción - Recorrido -
Grafos (parte 1).
OPTIMIZACIÓN EN REDES EN ALGUNOS PROBLEMAS DE OPTIMIZACIÓN PUEDE SER ÚTIL REPRESENTAR EL PROBLEMA A TRAVÉS DE UNA GRÁFICA: ruteo de vehículos, distribución.
GRAFOS ESTRUCTURA DE DATOS. INTRODUCCION Los grafos son estructuras de datos Representan relaciones entre objetos Relaciones arbitrarias, es decir No.
Arboles. Árboles ¿Qué son? Son Estructuras de datos “No lineales”” ¿Para que se utilizan? Representar Fórmulas Algebraicas Organizar Objetos Inteligencia.
Tema 5: Grafos CIS - UABJB - Estructura de Datos II
Algoritmos de caminos más cortos
TEMA Nº 1 Conjuntos numéricos. Aprendizajes esperados: Utilizar y clasificar los distintos conjuntos numéricos en sus diversas formas de expresión, tanto.
Luis Manuel Monroy García Matemáticas discretas Ingeniería de Sistemas Universidad Simón Bolívar.
UNIVERSIDAD NACIONAL DEL CENTRO DEL PERU FACULTAD DE INGENIERIA DE MINAS HUANCAYO I MODELO DE REDES Ing. Eli Teobaldo Caro Meza CURSO: INVESTIGACION.
Espacio de estados: un problema se divide en un conjunto de pasos de resolución desde el inicio hasta el objetivo. Los estados y su relación de accesibilidad.
Grafos. Concepto: Un Grafo no es más que un conjunto de nodos o vértices que se encuentran relacionados con unas aristas. Además, los vértices tienen.
Transcripción de la presentación:

UNIVERSIDAD TECNOLOGICA INDOAMERICA INGENIERIA EN CIENCIAS DE LA COMPUTACION INTELIGENCIA ARTIFICIAL NOMBRE: NICOLAS RAMOS NIVEL: OCTAVO AMBATO - ECUADOR

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

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):

Para 10 ciudades hay 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 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.

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 !

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]

EL PROBLEMA DEL VIAJANTE DE COMERCIO Representación del espacio de estados: Caso de un grafo completo con |V| = 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.

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)            Ejemplo de matriz no reducida.

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.            Ejemplo de matriz no reducida. 

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.                                             Reducción de la matriz, L = 25.

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

EL PROBLEMA DEL VIAJANTE DE COMERCIO Ejemplo:                       Grafo original.Matriz reducida, L = x 1 = 2 x 1 = 3 x 1 = 4 x 1 = 5     12  0 11  012         1  20  3   0 00  12         12  11  0 03  2  312          10  90  03  0  1209   00        ˆ c  25 ˆ c  ˆ c   35 ˆ c   53 ˆ c   31

x 1 = 2 x 1 = 3 x 1 = 4 x 1 = 5 UB =  EL PROBLEMA DEL VIAJANTE DE COMERCIO x 2 = 2 x 2 = 3 x 2 = 5 ˆ c  25 ˆ c  ˆ c  35 ˆ c  53 ˆ c  31 ˆ c  28 ˆ c  50 ˆ c  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.

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.

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

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            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

Problema: Viajante de Comercio Estado inicial: Estado final: Posibles estados: Operadores: A B C D E 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)

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 ÁRBOL DE BÚSQUEDA (ejemplo haciendo uso de costes)

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 b d ) En cada nivel se expanden b nodos, por cada nodo de ese nivel

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!)

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

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) (A C D A)(A C D B)(A C D E) (A B A) (A B D)(A B E) (A D A)(A D B) (A D E) (A D C) (A B E A)(A B E D) (A D C A) 6 (A C D E A)(A C D E B) (A C D E B A) 7-34 (A E A) (A E B) (A E D) (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)

Comparación de las estrategias de búsqueda ciega

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

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

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

EJEMPLOS: EL VIAJANTE DE COMERCIO 27