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

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

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

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

1

Problemes de Viatjants

Facultat de Matemàtiques

Carlos D'AndreaCarlos D'Andrea

Page 2: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

El Conector Mínimo El Camino más Corto El Problema del Viajante

Problemes de Viatjants

Page 3: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

El Conector Mínimo

Page 4: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

El Camino más Corto

Page 5: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

El Problema del Viajante

Page 6: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Fáciles de resolver??

Page 7: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

¿Todas las rutas posibles?

6 ciudades 120=5x4x3x2x110 ciudades 362880=9x8x7x6x5x4x3x2x115 ciudades >100.000.000.00020 ciudades > 1017

Page 8: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo

Un algoritmo es como una receta de cocinareceta de cocina, un conjunto de instruccionesconjunto de instrucciones precisas que uno

sigue para resolver un problema

Page 9: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo eficiente

Los algoritmos eficienteseficientes son aquelllos que un ordenador puede realizar en tiempo razonablerazonable

Page 10: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

¿"Razonable"?

Si la cantidad de pasos a realizar es exponencialexponencial (como el factorial del número de vértices), el

algoritmo NO es eficiente

Page 11: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

¿"Exponencial"?

316=3x3x3x3x3x3x3x3x3x3x3x3x3x3x3x3=4304672115 operaciones

32=9 → 92=81→ 812=6561→ 65612=430467214 operaciones

Page 12: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Iterativo vs recursivo

32^n=3x3x3x3x3x......x3x3x32n-1 productos ¡Exponencial!¡Exponencial!

32=9 → 92=81→ .....→ (32^(n-1))2

n productos ¡Lineal!¡Lineal!

Page 13: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

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?

Page 14: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Hoy aprenderemos...

Conector mínimo: Algoritmo de PrimCamino más corto: Algoritmo de DijkstraProblema del Viajante: ???

Page 15: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Un poco de lenguaje

Un grafo conexo tienevértices o nodosaristas o ladoslas aristas tienen pesos o longitudes

Page 16: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

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

Page 17: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo de Prim: paso 0

Elegimos un vértice cualquiera (A1), y lo

"separamos" de los otros

V={A1} W={A

2,A

3,A

4,A

5,A

6,A

7}

Page 18: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo de Prim: 1o paso

Calculamos todas las longitudes de aristas que salen de V y llegan a WV={A

1} W={A

2,A

3,A

4,A

5,A

6,A

7}

Page 19: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo de Prim: 2o paso

Nos quedamos con el el lado de longitud más corta, y agregamos el nuevo vértice a V

V={A1,A

4} W={A

2,A

3,A

5,A

6,A

7}

Page 20: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

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,A

4} W={A

2,A

3,A

5,A

6,A

7}

Page 21: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo de Prim: 4o paso

Como en el 2do paso, nos quedamos con el el lado de menor longitud. Modificamos los conjuntos V y W

V={A1,A

4,A

5} W={A

2,A

3,A

6,A

7}

Page 22: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo de Prim: 5o paso

Repetimos el 1er paso

V={A1,A

4,A

5} W={A

2,A

3,A

6,A

7}

Page 23: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo de Prim: 6o paso

Repetimos el 2do paso

V={A1,A

4,A

5,A

7} W={A

2,A

3,A

6}

Page 24: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo de Prim: 7o paso

Repetimos el 1er paso

V={A1,A

4,A

5,A

7} W={A

2,A

3,A

6}

Page 25: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo de Prim: 8o paso

Repetimos el 2do paso

V={A1,A

4,A

5,A

7,A

3} W={A

2,A

6}

Page 26: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo de Prim: 9o paso

Repetimos el 1er paso

V={A1,A

4,A

5,A

7,A

3} W={A

2,A

6}

Page 27: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo de Prim: 10o paso

Repetimos el 2do paso

V={A1,A

4,A

5,A

7,A

3,A

2} W={A

6}

Page 28: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo de Prim: finale

Repetimos el 1er pasoV={A

1,A

4,A

5,A

7,A

3,A

2} W={A

6}

y el 2do una vez más

Page 29: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Y lala red mínima es...

Page 30: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Análisis

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

Page 31: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

¿Cómo lo ve el ordenador?

Grafo Matriz

Page 32: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

El código

Page 33: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

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

Page 34: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

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={(A

5,0)} W={A

1,A

2,A

3,A

4,A

5,A

7}

Page 35: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo de Dijkstra: 1o paso

Calculamos todas las distancias posibles entre vértices de V y vértices de W

V={(A5,0)} W={A

1,A

2,A

3,A

4,A

6,A

7}

Page 36: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo de Dijkstra: 2o paso

Nos quedamos con lala menor distancia, y la incorporamos al conjunto V

V={(A5,0),(A

4,3)} W={A

1,A

2,A

3,A

5,A

7}

Page 37: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo de Dijkstra: 3o paso

Repetimos el primer paso

V={(A5,0),(A

4,3)} W={A

1,A

2,A

3,A

5,A

7}

Page 38: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo de Dijkstra: 4o paso

Repetimos el segundo paso

V={(A5,0),(A

4,3),(A

1,4)} W={A

2,A

3,A

5,A

7}

Page 39: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo de Dijkstra: 5o paso

Repetimos el primer paso

V={(A5,0),(A

4,3),(A

1,4)} W={A

2,A

3,A

5,A

7}

Page 40: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Algoritmo de Dijkstra: 6o paso

Repetimos el segundo paso

V={(A5,0),(A

4,3),(A

1,4),(A

7,8)} W={A

2,A

3,A

5}

Page 41: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

¡Problema resuelto!

Page 42: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Camino más corto A6- A

7

V={(A6,0)} W={A

1,A

2,A

3,A

4,A

5,A

7}

Page 43: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Camino más corto A6- A

7

V={(A6,0),(A

4,5)} W={A

1,A

2,A

3,A

5,A

7}

Page 44: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Camino más corto A6- A

7

V={(A6,0),(A

4,5)} W={A

1,A

2,A

3,A

5,A

7}

Page 45: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Camino más corto A6- A

7

V={(A6,0),(A

4,5),(A

1,5)} W={A

2,A

3,A

5,A

7}

Page 46: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Camino más corto A6- A

7

V={(A6,0),(A

4,5),(A

1,5)} W={A

2,A

3,A

5,A

7}

Page 47: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Camino más corto A6- A

7

V={(A6,0),(A

4,5),(A

1,5),(A

2,7)} W={A

3,A

5,A

7}

Page 48: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Camino más corto A6- A

7

V={(A6,0),(A

4,5),(A

1,5),(A

2,7)} W={A

3,A

5,A

7}

Page 49: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Camino más corto A6- A

7

V={(A6,0),(A

4,5),(A

1,5),(A

2,7),(A

5,0)} W={A

3,A

7}

Page 50: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Camino más corto A6- A

7

V={(A6,0),(A

4,5),(A

1,5),(A

2,7),(A

5,0)} W={A

3,A

7}

Page 51: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Camino más corto A6- A

7

V={(A6,0),(A

4,5),(A

1,5),(A

2,7),(A

5,8)(A

7,9)} W={A

3}

Page 52: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Y elel camino más corto es...

V={(A6,0),(A

4,5),(A

1,5),(A

2,7),(A

5,8)(A

7,9)}

W={A3}

Page 53: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Análisis

Algoritmo recursivo: hay dos pasos que se repiten:(1) Calcular las distanciasdistancias desde un conjunto de vértices hacia el otro(2) Elegir lala distancia mínima e incrementar el conjunto de vértices de partida hasta llegar al destinoAl llegar al destino hay que "desandar" el camino

Page 54: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

El Problema del Viajante(????)

Page 55: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Y el paseo más corto es...

A1→A

7→A

3→A

2→A

6→A

4→A

5→A

4→A

1= 31

Page 56: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Sin pasar 2 veces por el mismo lugar..

A1→A

7→A

3→A

2→A

6→A

5→A

1= 32

Page 57: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

¿Algoritmo???

Page 58: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

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 "resuelvaresuelva" el problema

Page 59: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Yo quiero ser millonario...

Page 60: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

Primeros pasos....

Demostrar que los algoritmos de Prim y Dijkstra calculan lo que dicen que calculanImplementar (programar) estos algoritmosEstudiar la complejidad de estos algoritmosAprender a diferenciar las clases de complejidadTener ideas originales!

Page 61: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

61

En esta facultad...

Facultat de MatemàtiquesGrados, masters y doctorados en Matemática e Informática

Grupos de Investigación en:Matemática discreta y algoritmosÁlgebra ComputacionalAspectos computacionales de sistemas dinámicos...

Page 62: 1 Problemes de Viatjants Facultat de Matemàtiques Carlos D'Andrea Carlos D'Andrea.

¡Al Taller!