Problemes de Viatjants

Slides:



Advertisements
Presentaciones similares
Tania Guzmán García Luis González Varela Alexandre González Rivas
Advertisements

ALGORITMOS DE KRUSKAL Y PRIM
Caminos más cortos a partir de múltiples fuentes en un grafo
MODELO DE LA RUTA MAS CORTA
Diseño y análisis de algoritmos
Diseño y análisis de algoritmos
GRAFOS Presentado por: Oscar Leonardo Ramírez John Freddy Sandoval
GRAFOS: ALGORITMOS FUNDAMENTALES
Teoría de Grafos I semestre 2009 UNIVERSIDAD NACIONAL DE INGENIERIA
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.
MATEMÁTICAS DISCRETAS.
“GRAFOS” Chacón Zamora José Christian González García Andrea
Instituto Tecnológico De Villahermosa
Investigación de Operaciones II
Investigación de Operaciones II
Método de Ford-Fulkerson
RafaC - Matemática Discreta - UCM 07/08


Complejidad Roberto Moriyón.
Complejidad Problemas NP-Completos
AED I. Estructuras de Datos.
GRAFOS HUGO ARAYA CARRASCO.
Teoría de Grafos.
Programación de Computadores
Matemáticas para Ciencias de la Computación MCC3182
PROGRAMACIÓN PARALELA EN ALGORITMOS SOBRE GRAFOS
Modelos Cuantitativos
Ejemplos de Grafos: Red de tráfico con caminos y cruces.
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.
Ciudad de Könisberg, Prusia, en XVIII:
Teoria de grafos.-clase 4
Temas importantes para el desarrollo de la segunda parte del TPE
Ecuaciones Algebraicas
Árbol recubridor mínimo Distancias
I n s t i t u t o T e c n o l ó g i c o d e T e c n o l ó g i c o d e V i l l a h e r m o s a ING. EN SISTEMAS CATEDRATICO: I.I. Zinath Javier Gerónimo.
Single-Source Shortest Paths “Camino más corto desde/hacia una fuente”
Problemas de Decisión y Optimización
Matemáticas Discretas
Diseño y análisis de algoritmos

Parte II. Algorítmica. 3. Algoritmos voraces.
Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau.
Ecuaciones Algebraicas
Surge cuando se necesita un modelo costo-efectividad que permita transportar ciertos bienes desde un lugar de origen a un destino que necesita aquellos.
Agustín J. González ELO320: Estructura de Datos y Algoritmos
Matemática Aplicada I José Ramón Gómez Envolvente convexa Tema 5.
Estructuras de datos para Grafos
Grafos Emmanuel Parada..
1 Single-Source Shortest Paths “Camino más corto desde/hacia una fuente” Agustín J. González ELO320: Estructura de Datos y Algoritmos 1.er. Sem
Minimum Spanning Tree (Árbol de Expansión Mínima)
1 Flujo Máximo Agustín J. González ELO320: Estructura de Datos y Algoritmos.
Agustín J. González ELO320: Estructura de Datos y Algoritmos
Cecilia Laborde González
Estructura de Datos 4 Grafos Dirigidos
Instituto Tecnológico De Villahermosa Alumno: Lázaro García Hernández.
Heap Fibonacci heap de Fibonacci es una estructura de datos similar a un heap binomial pero con mejor coste amortizado. se utiliza para mejorar el tiempo.
ANALISIS DE REDES UNIDAD PROCEDIMIENTO DE OPTIMIZACION
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
 Edsger Wybe Dijkstra Nació en Rotterdam, (Holanda) en Sus padres eran ambos intelectuales y él recibió una excelente educación. su facilidad para.
Escuela de Ciencias Basicas, Tecnología e Ingeniería
GRAFOS.
M.C. Meliza Contreras González
Matemáticas Discretas MISTI
Recorridos de grafos Segunda Parte M.C. Meliza Contreras González.
ALGORITMO FLOYD WARSHALL
MAIKOL ESTIVEN MARTINEZ LAS MATEMATICA EN LA INGENIERIA DE SISITEMAS CORPORACIÓN UNIVERSITARIA REMINGTON.
LOS ALGORITMOS Vadim Loktionov. ¿Que es un Algoritmo? -Un algoritmo se puede definir como una secuencia de instrucciones que representan un modelo de.
A la compu… ¿se le escapa la tortuga? Dra. Isabel Méndez-Díaz.
El camí més curt i estratègies per a trobar-lo
Transcripción de la presentación:

Problemes de Viatjants Carlos D'Andrea Facultat de Matemàtiques 1 1 1 1

Problemes de Viatjants El Conector Mínimo El Camino más Corto El Problema del Viajante 2 2 2

El Conector Mínimo 3 3 3

El Camino más Corto 4 4 4

El Problema del Viajante 5 5 5

Fáciles de resolver?? 6 6 6

¿Todas las rutas posibles? 6 ciudades 120=5x4x3x2x1 10 ciudades 362880=9x8x7x6x5x4x3x2x1 15 ciudades >100.000.000.000 20 ciudades > 1017 7 7

Algoritmo Un algoritmo es como una receta de cocina, un conjunto de instrucciones precisas que uno sigue para resolver un problema 8 8 8

Algoritmo eficiente Los algoritmos eficientes son aquelllos que un ordenador puede realizar en tiempo razonable 9 9 9

¿"Razonable"? Si la cantidad de pasos a realizar es exponencial (como el factorial del número de vértices), el algoritmo NO es eficiente 10 10 10

¿"Exponencial"? 15 operaciones 32=9 → 92=81→ 812=6561→ 65612=43046721 316=3x3x3x3x3x3x3x3x3x3x3x3x3x3x3x3=43046721 15 operaciones 32=9 → 92=81→ 812=6561→ 65612=43046721 4 operaciones 11 11 11

Iterativo vs recursivo 32^n=3x3x3x3x3x......x3x3x3 2n-1 productos ¡Exponencial! 32=9 → 92=81→ .....→ (32^(n-1))2 n productos ¡Lineal! 12 12 12

En nuestro caso... ¿Es posible encontrar un algoritmo (recursivo, iterativo o...) que resuelva los tres problemas sin tener que hacer una cantidad exponencial de operaciones? 13 13 13

Hoy aprenderemos... Conector mínimo: Algoritmo de Prim Camino más corto: Algoritmo de Dijkstra Problema del Viajante: ??? 14 14 14

Un poco de lenguaje Un grafo conexo tiene vértices o nodos aristas o lados las aristas tienen pesos o longitudes 15 15 15

Conector Mínimo (Algoritmo de Prim) Dado un grafo conexo, encuentra una red mínima o un conector mínimo entre todos sus vértices 16 16 16

Algoritmo de Prim: paso 0 Elegimos un vértice cualquiera (A1), y lo "separamos" de los otros V={A1} W={A2,A3,A4,A5,A6,A7} 17 17 17

Algoritmo de Prim: 1o paso Calculamos todas las longitudes de aristas que salen de V y llegan a W V={A1} W={A2,A3,A4,A5,A6,A7} 18 18 18

Algoritmo de Prim: 2o paso Nos quedamos con el lado de longitud más corta, y agregamos el nuevo vértice a V V={A1,A4} W={A2,A3,A5,A6,A7} 19 19 19

Algoritmo de Prim: 3o paso Como en el 1er paso, volvemos a calcular todas las longitudes de lados que conectan puntos de V con puntos de W V={A1,A4} W={A2,A3,A5,A6,A7} 20 20 20

Algoritmo de Prim: 4o paso Como en el 2do paso, nos quedamos con el lado de menor longitud. Modificamos los conjuntos V y W V={A1,A4,A5} W={A2,A3,A6,A7} 21 21 21

Algoritmo de Prim: 5o paso Repetimos el 1er paso V={A1,A4,A5} W={A2,A3,A6,A7} 22 22 22

Algoritmo de Prim: 6o paso Repetimos el 2do paso V={A1,A4,A5,A7} W={A2,A3,A6} 23 23 23

Algoritmo de Prim: 7o paso Repetimos el 1er paso V={A1,A4,A5,A7} W={A2,A3,A6} 24 24 24

Algoritmo de Prim: 8o paso Repetimos el 2do paso V={A1,A4,A5,A7,A3} W={A2,A6} 25 25 25

Algoritmo de Prim: 9o paso Repetimos el 1er paso V={A1,A4,A5,A7,A3} W={A2,A6} 26 26 26

Algoritmo de Prim: 10o paso Repetimos el 2do paso V={A1,A4,A5,A7,A3,A2} W={A6} 27 27 27

Algoritmo de Prim: finale Repetimos el 1er paso V={A1,A4,A5,A7,A3,A2} W={A6} y el 2do una vez más 28 28 28

Y la red mínima es... 29 29 29

Análisis Algoritmo recursivo: hay dos pasos que se repiten: Calcular las longitudes desde un conjunto de vértices hacia el otro Elegir el lado de longitud mínima e incrementar el conjunto de vértices de partida. Cantidad de pasos: 2 x (cantidad de vértices -1) 30 30 30

¿Cómo lo ve el ordenador? Grafo Matriz 31 31 31

El código 32 32 32

(Algoritmo de Dijkstra) El Camino más corto (Algoritmo de Dijkstra) Dados un grafo conexo y dos de sus vértices, encuentra un camino de longitud mínima que los une 33 33 33

Algoritmo de Dijkstra: paso 0 Separamos los vértices en 2 conjuntos, uno de ellos solamente tendrá a uno de los extremos con una distancia asociada (= 0) V={(A5,0)} W={A1,A2,A3,A4,A5,A7} 34 34 34

Algoritmo de Dijkstra: 1o paso Calculamos todas las distancias posibles entre vértices de V y vértices de W V={(A5,0)} W={A1,A2,A3,A4,A6,A7} 35 35 35

Algoritmo de Dijkstra: 2o paso Nos quedamos con la menor distancia, y la incorporamos al conjunto V V={(A5,0),(A4,3)} W={A1,A2,A3,A5,A7} 36 36 36

Algoritmo de Dijkstra: 3o paso Repetimos el primer paso V={(A5,0),(A4,3)} W={A1,A2,A3,A5,A7} 37 37 37

V={(A5,0),(A4,3),(A1,4)} W={A2,A3,A5,A7} Algoritmo de Dijkstra: 4o paso Repetimos el segundo paso V={(A5,0),(A4,3),(A1,4)} W={A2,A3,A5,A7} 38 38 38

V={(A5,0),(A4,3),(A1,4)} W={A2,A3,A5,A7} Algoritmo de Dijkstra: 5o paso Repetimos el primer paso V={(A5,0),(A4,3),(A1,4)} W={A2,A3,A5,A7} 39 39 39

V={(A5,0),(A4,3),(A1,4),(A7,8)} W={A2,A3,A5} Algoritmo de Dijkstra: 6o paso Repetimos el segundo paso V={(A5,0),(A4,3),(A1,4),(A7,8)} W={A2,A3,A5} 40 40 40

¡Problema resuelto! 41 41 41

Camino más corto A6- A7 V={(A6,0)} W={A1,A2,A3,A4,A5,A7} 42 42 42

Camino más corto A6- A7 V={(A6,0),(A4,5)} W={A1,A2,A3,A5,A7} 43 43 43

Camino más corto A6- A7 V={(A6,0),(A4,5)} W={A1,A2,A3,A5,A7} 44 44 44

V={(A6,0),(A4,5),(A1,5)} W={A2,A3,A5,A7} Camino más corto A6- A7 V={(A6,0),(A4,5),(A1,5)} W={A2,A3,A5,A7} 45 45 45

V={(A6,0),(A4,5),(A1,5)} W={A2,A3,A5,A7} Camino más corto A6- A7 V={(A6,0),(A4,5),(A1,5)} W={A2,A3,A5,A7} 46 46 46

V={(A6,0),(A4,5),(A1,5),(A2,7)} W={A3,A5,A7} Camino más corto A6- A7 V={(A6,0),(A4,5),(A1,5),(A2,7)} W={A3,A5,A7} 47 47 47

V={(A6,0),(A4,5),(A1,5),(A2,7)} W={A3,A5,A7} Camino más corto A6- A7 V={(A6,0),(A4,5),(A1,5),(A2,7)} W={A3,A5,A7} 48 48 48

V={(A6,0),(A4,5),(A1,5),(A2,7),(A5,0)} W={A3,A7} Camino más corto A6- A7 V={(A6,0),(A4,5),(A1,5),(A2,7),(A5,0)} W={A3,A7} 49 49 49

V={(A6,0),(A4,5),(A1,5),(A2,7),(A5,0)} W={A3,A7} Camino más corto A6- A7 V={(A6,0),(A4,5),(A1,5),(A2,7),(A5,0)} W={A3,A7} 50 50 50

V={(A6,0),(A4,5),(A1,5),(A2,7),(A5,8)(A7,9)} W={A3} Camino más corto A6- A7 V={(A6,0),(A4,5),(A1,5),(A2,7),(A5,8)(A7,9)} W={A3} 51 51 51

V={(A6,0),(A4,5),(A1,5),(A2,7),(A5,8)(A7,9)} W={A3} Y el camino más corto es... V={(A6,0),(A4,5),(A1,5),(A2,7),(A5,8)(A7,9)} W={A3} 52 52 52

Análisis Algoritmo recursivo: hay dos pasos que se repiten: Calcular las distancias desde un conjunto de vértices hacia el otro Elegir la distancia mínima e incrementar el conjunto de vértices de partida hasta llegar al destino Al llegar al destino hay que "desandar" el camino 53 53 53

El Problema del Viajante (????) 54 54 54

Y el paseo más corto es... A1→A7→A3→A2→A6→A4→A5→A4→A1= 31 55 55 55

Sin pasar 2 veces por el mismo lugar.. A1→A7→A3→A2→A6→A5→A1= 32 56 56 56

¿Algoritmo??? 57 57 57

No hay! Mejor dicho: No se sabe si hay un algoritmo o no (???) Desde el año 2000 hay una recompensa de 1.000.000 u$d para quien "resuelva" el problema 58 58 58

Yo quiero ser millonario... 59 59 59

Primeros pasos.... Demostrar que los algoritmos de Prim y Dijkstra calculan lo que dicen que calculan Implementar (programar) estos algoritmos Estudiar la complejidad de estos algoritmos Aprender a diferenciar las clases de complejidad Tener ideas originales! 60 60

En esta facultad... Grados, masters y doctorados en Matemática e Informática Grupos de Investigación en: Matemática discreta y algoritmos Álgebra Computacional Aspectos computacionales de sistemas dinámicos ... Facultat de Matemàtiques 61 61 61 61

¡Al Taller! 62 62