233
Nociones B´ asicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas Modelado de Problemas con Grafos Certamen Nacional de OIA Facundo Guti´ errez (Guty) Octubre 2018 Facundo Guti´ errez (Guty) Modelado de Problemas con Grafos

Modelado de Problemas con Grafos - Certamen Nacional de OIA

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelado de Problemas con GrafosCertamen Nacional de OIA

Facundo Gutierrez (Guty)

Octubre 2018

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 2: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

1 Nociones Basicas de Grafos¿Que es un grafo?Definiciones Varias

2 Breve Repaso de algunos AlgoritmosRepresentaciones de grafosBFSDFS

3 A Resolver Problemas¿Como modelar con grafos?Modelando ProblemasProblemas de Tarea

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 3: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

1 Nociones Basicas de Grafos¿Que es un grafo?Definiciones Varias

2 Breve Repaso de algunos AlgoritmosRepresentaciones de grafosBFSDFS

3 A Resolver Problemas¿Como modelar con grafos?Modelando ProblemasProblemas de Tarea

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 4: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

¿Que es un grafo?

Grafos

Definicion:

Un grafo es un conjunto de objetos, llamados vertices o nodos,unidos mediantes lıneas llamadas aristas que relacionan un par devertices. En algunos casos, esas aristas pueden tener un pesoasociado, o una direccion particular.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 5: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

¿Que es un grafo?

Grafos

Definicion:

Un grafo es un conjunto de objetos, llamados vertices o nodos,unidos mediantes lıneas llamadas aristas que relacionan un par devertices. En algunos casos, esas aristas pueden tener un pesoasociado, o una direccion particular.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 6: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

¿Que es un grafo?

Grafos

Definicion:

Un grafo es un conjunto de objetos, llamados vertices o nodos,unidos mediantes lıneas llamadas aristas que relacionan un par devertices. En algunos casos, esas aristas pueden tener un pesoasociado, o una direccion particular.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 7: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

¿Que es un grafo?

Grafos

Definicion:

Un grafo es un conjunto de objetos, llamados vertices o nodos,unidos mediantes lıneas llamadas aristas que relacionan un par devertices. En algunos casos, esas aristas pueden tener un pesoasociado, o una direccion particular.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 8: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Definiciones Varias

Algunas definiciones

Definiciones: Vecino y Grado

Dada una arista que conecta dos vertices u y v , decimos que u esvecino de v (y que v es vecino de u). Ademas, a la cantidad devecinos de u se le llama el grado de u.

Definicion: Conexion y Distancia

Decimos que dos vertices u y v estan conectados si hay uncamino (secuencia de aristas con vertice en comun) que los une. Ala menor cantidad de aristas de un camino que los une, lellamamos la distancia de u a v .

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 9: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Definiciones Varias

Algunas definiciones

Definiciones: Vecino y Grado

Dada una arista que conecta dos vertices u y v , decimos que u esvecino de v (y que v es vecino de u). Ademas, a la cantidad devecinos de u se le llama el grado de u.

Definicion: Conexion y Distancia

Decimos que dos vertices u y v estan conectados si hay uncamino (secuencia de aristas con vertice en comun) que los une. Ala menor cantidad de aristas de un camino que los une, lellamamos la distancia de u a v .

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 10: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Definiciones Varias

¿Cual es el grado de B? ¿Cual es la distancia de F a C?Los nodos B y E, ¿estan conectados? ¿y los nodos B y G?

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 11: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Definiciones Varias

¿Cual es el grado de B?

¿Cual es la distancia de F a C?Los nodos B y E, ¿estan conectados? ¿y los nodos B y G?

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 12: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Definiciones Varias

¿Cual es el grado de B? ¿Cual es la distancia de F a C?

Los nodos B y E, ¿estan conectados? ¿y los nodos B y G?

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 13: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Definiciones Varias

¿Cual es el grado de B? ¿Cual es la distancia de F a C?Los nodos B y E, ¿estan conectados?

¿y los nodos B y G?

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 14: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Definiciones Varias

¿Cual es el grado de B? ¿Cual es la distancia de F a C?Los nodos B y E, ¿estan conectados? ¿y los nodos B y G?

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 15: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Definiciones Varias

Algunas definiciones

Definicion: Bipartito

Un grafo se dice bipartito si le podemos pintar a los vertices dedos colores de forma que toda arista conecta a dos vertices dedistinto color.

O sea, si lo podemos pintar con el patron de untablero de ajedrez.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 16: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Definiciones Varias

Algunas definiciones

Definicion: Bipartito

Un grafo se dice bipartito si le podemos pintar a los vertices dedos colores de forma que toda arista conecta a dos vertices dedistinto color. O sea, si lo podemos pintar con el patron de untablero de ajedrez.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 17: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Definiciones Varias

Algunas definiciones

Definicion: Bipartito

Un grafo se dice bipartito si le podemos pintar a los vertices dedos colores de forma que toda arista conecta a dos vertices dedistinto color. O sea, si lo podemos pintar con el patron de untablero de ajedrez.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 18: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Definiciones Varias

Algunas definiciones

Definicion: Bipartito

Un grafo se dice bipartito si le podemos pintar a los vertices dedos colores de forma que toda arista conecta a dos vertices dedistinto color. O sea, si lo podemos pintar con el patron de untablero de ajedrez.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 19: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

1 Nociones Basicas de Grafos¿Que es un grafo?Definiciones Varias

2 Breve Repaso de algunos AlgoritmosRepresentaciones de grafosBFSDFS

3 A Resolver Problemas¿Como modelar con grafos?Modelando ProblemasProblemas de Tarea

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 20: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Representaciones de grafos

Representaciones de grafos

Hay muchas formas de representar un grafo. En particular:

Lista de aristas (y cantidad de vertices)

Matriz de adyacencia

Listas de adyacencia

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 21: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Representaciones de grafos

Representaciones de grafos

Hay muchas formas de representar un grafo. En particular:

Lista de aristas (y cantidad de vertices)

Matriz de adyacencia

Listas de adyacencia

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 22: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Representaciones de grafos

Representacion de Grafos - Matriz de Adyacencia

1 2 A B ?

1 0 1 0 1 0

2 1 0 0 1 1

A 0 0 0 1 0

B 1 1 1 0 1

? 0 1 0 1 0

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 23: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Representaciones de grafos

Representacion de Grafos - Matriz de Adyacencia

1 2 A B ?

1 0 1 0 1 0

2 1 0 0 1 1

A 0 0 0 1 0

B 1 1 1 0 1

? 0 1 0 1 0

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 24: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Representaciones de grafos

Representaciones de grafos - Lista de adyacencia

1 : {2,B}2 : {1,B,?}A : {B}B : {1,2,A,?}? : {2,B}

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 25: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Representaciones de grafos

Representaciones de grafos - Lista de adyacencia

1 : {2,B}2 : {1,B,?}A : {B}B : {1,2,A,?}? : {2,B}

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 26: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Representaciones de grafos

Recorrido de Grafos - BFS

Queremos recorrer los vertices de un grafo. Segun como decidamosrecorrer el grafo vamos a poder distinguir distintas propiedades.

En un recorrido BFS (Breadth-First Search) vamos a distinguir aun nodo en particular (que en un principio puede ser cualquiera)donde comenzaremos el recorrido del grafo. Llamemosle s a dichonodo.Comenzamos visitando el nodo s, luego visitamos a todos losvecinos de s (que son los nodos que estan a distancia 1 de s),despues visitamos a los vecinos de estos vecinos (que son los nodosque estan a distancia 2 de s), y ası . . . .De alguna forma, podemos pensar que se va expandiendoordenadamente en todas las direcciones a la vez desde el nodo deorigen s.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 27: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Representaciones de grafos

Recorrido de Grafos - BFS

Queremos recorrer los vertices de un grafo. Segun como decidamosrecorrer el grafo vamos a poder distinguir distintas propiedades.En un recorrido BFS (Breadth-First Search) vamos a distinguir aun nodo en particular (que en un principio puede ser cualquiera)donde comenzaremos el recorrido del grafo. Llamemosle s a dichonodo.Comenzamos visitando el nodo s, luego visitamos a todos losvecinos de s (que son los nodos que estan a distancia 1 de s),despues visitamos a los vecinos de estos vecinos (que son los nodosque estan a distancia 2 de s), y ası . . . .

De alguna forma, podemos pensar que se va expandiendoordenadamente en todas las direcciones a la vez desde el nodo deorigen s.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 28: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Representaciones de grafos

Recorrido de Grafos - BFS

Queremos recorrer los vertices de un grafo. Segun como decidamosrecorrer el grafo vamos a poder distinguir distintas propiedades.En un recorrido BFS (Breadth-First Search) vamos a distinguir aun nodo en particular (que en un principio puede ser cualquiera)donde comenzaremos el recorrido del grafo. Llamemosle s a dichonodo.Comenzamos visitando el nodo s, luego visitamos a todos losvecinos de s (que son los nodos que estan a distancia 1 de s),despues visitamos a los vecinos de estos vecinos (que son los nodosque estan a distancia 2 de s), y ası . . . .De alguna forma, podemos pensar que se va expandiendoordenadamente en todas las direcciones a la vez desde el nodo deorigen s.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 29: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Algoritmo BFS

S: indica la capa actual de vertices que estamos visitando.W: indica la capa siguiente de vertices por visitar.visto: un arreglo que indica que vertices ya fueronprocesados.s: vertice inicial en el que comenzamos el recorrido.

BFS(G, s): (G es nuestro grafo en alguna representacion)

1 para todo vertice v : visto[v ]← Falso2 visto[s]← Verdadero,S← {s},W← {}3 Mientras S no este vacıo:

3.1 para todo vertice v en S :3.1.1 para todo w vecino de v con visto[w ] == Falso:

Agregar w a Wvisto[w ]← Verdadero

3.2 S←W3.3 W← {}

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 30: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Algoritmo BFS

S: indica la capa actual de vertices que estamos visitando.W: indica la capa siguiente de vertices por visitar.visto: un arreglo que indica que vertices ya fueronprocesados.s: vertice inicial en el que comenzamos el recorrido.

BFS(G, s): (G es nuestro grafo en alguna representacion)

1 para todo vertice v : visto[v ]← Falso2 visto[s]← Verdadero, S← {s},W← {}3 Mientras S no este vacıo:

3.1 para todo vertice v en S :3.1.1 para todo w vecino de v con visto[w ] == Falso:

Agregar w a Wvisto[w ]← Verdadero

3.2 S←W3.3 W← {}

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 31: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 32: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 33: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 34: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 35: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 36: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 37: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 38: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 39: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 40: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 41: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 42: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 43: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 44: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 45: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 46: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 47: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 48: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 49: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 50: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 51: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 52: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 53: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 54: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 55: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 56: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 57: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 58: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 59: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 60: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 61: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 62: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 63: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 64: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 65: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 66: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 67: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Ademas de simplemente recorrer un grafo en general, los usos mascomunes de BFS (o alguna modificacion del mismo) involucran:

Calcular distancias desde una fuente

Chequear si un cierto grafo es bipartito

Calcular componentes conexas

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 68: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Ademas de simplemente recorrer un grafo en general, los usos mascomunes de BFS (o alguna modificacion del mismo) involucran:

Calcular distancias desde una fuente

Chequear si un cierto grafo es bipartito

Calcular componentes conexas

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 69: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Ademas de simplemente recorrer un grafo en general, los usos mascomunes de BFS (o alguna modificacion del mismo) involucran:

Calcular distancias desde una fuente

Chequear si un cierto grafo es bipartito

Calcular componentes conexas

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 70: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

BFS

Recorrido de Grafos - BFS

Ademas de simplemente recorrer un grafo en general, los usos mascomunes de BFS (o alguna modificacion del mismo) involucran:

Calcular distancias desde una fuente

Chequear si un cierto grafo es bipartito

Calcular componentes conexas

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 71: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Veamos otra forma de recorrer a un grafo. Vamos a distinguir a unnodo en particular que indica el nodo actual del recorrido.Llamemosle v a dicho nodo.

En un recorrido DFS (Depth-First Search) comenzamos visitandoel nodo v , luego visitamos a algun vecino y cuando vemos a unvecino sin visitar seguimos un recorrido DFS desde allı. Ası hastaque todos los vecinos de v sean visitados.Una vez que todos los vecinos de v estan visitados, se da porfinalizado el recorrido desde v .De alguna forma, podemos pensar que se va expandiendoordenadamente en una direccion todo lo que se puede.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 72: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Veamos otra forma de recorrer a un grafo. Vamos a distinguir a unnodo en particular que indica el nodo actual del recorrido.Llamemosle v a dicho nodo.En un recorrido DFS (Depth-First Search) comenzamos visitandoel nodo v , luego visitamos a algun vecino y cuando vemos a unvecino sin visitar seguimos un recorrido DFS desde allı. Ası hastaque todos los vecinos de v sean visitados.Una vez que todos los vecinos de v estan visitados, se da porfinalizado el recorrido desde v .

De alguna forma, podemos pensar que se va expandiendoordenadamente en una direccion todo lo que se puede.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 73: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Veamos otra forma de recorrer a un grafo. Vamos a distinguir a unnodo en particular que indica el nodo actual del recorrido.Llamemosle v a dicho nodo.En un recorrido DFS (Depth-First Search) comenzamos visitandoel nodo v , luego visitamos a algun vecino y cuando vemos a unvecino sin visitar seguimos un recorrido DFS desde allı. Ası hastaque todos los vecinos de v sean visitados.Una vez que todos los vecinos de v estan visitados, se da porfinalizado el recorrido desde v .De alguna forma, podemos pensar que se va expandiendoordenadamente en una direccion todo lo que se puede.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 74: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Algoritmo DFS

Por la naturaleza del algoritmo, las implementaciones usuales delrecorrido DFS de un grafo son recursivas. A lo largo del algoritmoutilizaremos el arreglo auxiliar visto de manera similar.

DFS(G): (G es nuestro grafo en alguna representacion)

1 para todo vertice v :1.1 visto[v ]← Falso

2 para todo vertice v :2.1 Si visto[v ] == Falso :

2.1.1 DFS-VISITA(G, v)

DFS-VISITA(G, v):

1 visto[v ]← Verdadero

2 para todo vecino w de v con visto[w ] == Falso:2.1 DFS-VISITA(G,w)

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 75: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Algoritmo DFS

Por la naturaleza del algoritmo, las implementaciones usuales delrecorrido DFS de un grafo son recursivas. A lo largo del algoritmoutilizaremos el arreglo auxiliar visto de manera similar.

DFS(G): (G es nuestro grafo en alguna representacion)

1 para todo vertice v :1.1 visto[v ]← Falso

2 para todo vertice v :2.1 Si visto[v ] == Falso :

2.1.1 DFS-VISITA(G, v)

DFS-VISITA(G, v):

1 visto[v ]← Verdadero

2 para todo vecino w de v con visto[w ] == Falso:2.1 DFS-VISITA(G,w)

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 76: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Algoritmo DFS

Por la naturaleza del algoritmo, las implementaciones usuales delrecorrido DFS de un grafo son recursivas. A lo largo del algoritmoutilizaremos el arreglo auxiliar visto de manera similar.

DFS(G): (G es nuestro grafo en alguna representacion)

1 para todo vertice v :1.1 visto[v ]← Falso

2 para todo vertice v :2.1 Si visto[v ] == Falso :

2.1.1 DFS-VISITA(G, v)

DFS-VISITA(G, v):

1 visto[v ]← Verdadero

2 para todo vecino w de v con visto[w ] == Falso:2.1 DFS-VISITA(G,w)

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 77: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 78: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 79: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 80: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 81: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 82: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 83: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 84: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 85: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 86: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 87: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 88: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 89: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 90: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 91: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 92: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 93: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 94: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 95: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 96: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 97: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 98: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 99: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 100: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 101: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 102: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 103: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 104: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 105: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 106: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 107: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 108: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 109: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 110: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 111: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 112: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 113: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 114: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 115: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 116: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 117: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 118: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 119: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 120: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 121: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 122: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 123: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 124: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 125: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 126: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 127: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 128: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 129: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 130: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 131: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 132: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 133: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 134: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 135: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 136: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 137: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 138: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 139: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 140: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 141: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 142: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 143: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 144: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 145: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 146: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 147: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 148: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Algunos usos del algoritmo DFS para obtener informacionestructural del grafo incluyen:

Componentes conexas

Puentes, puntos de articulacion, componentes biconexas

Componentes fuertemente conexas

Orden topologico (toposort) en DAGs.

Para mas informacion sobre BFS, DFS, recorrido de grafos engeneral y muchos temas mas, estan invitados a visitar:

http://wiki.oia.unsam.edu.arAdemas, siempre pueden hacer consultas sobre problemas (o

cualquier tema relacionado con la Olimpıada) en el Foro de la OIA:http://foro.oia.unsam.edu.ar

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 149: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

DFS

Recorrido de Grafos - DFS

Algunos usos del algoritmo DFS para obtener informacionestructural del grafo incluyen:

Componentes conexas

Puentes, puntos de articulacion, componentes biconexas

Componentes fuertemente conexas

Orden topologico (toposort) en DAGs.

Para mas informacion sobre BFS, DFS, recorrido de grafos engeneral y muchos temas mas, estan invitados a visitar:

http://wiki.oia.unsam.edu.arAdemas, siempre pueden hacer consultas sobre problemas (o

cualquier tema relacionado con la Olimpıada) en el Foro de la OIA:http://foro.oia.unsam.edu.ar

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 150: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

1 Nociones Basicas de Grafos¿Que es un grafo?Definiciones Varias

2 Breve Repaso de algunos AlgoritmosRepresentaciones de grafosBFSDFS

3 A Resolver Problemas¿Como modelar con grafos?Modelando ProblemasProblemas de Tarea

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 151: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

¿Como modelar con grafos?

En esta charla vamos a ver como utilizar grafos para modelar lasituacion de un problema. Una vez modelado nuestro problema,es de esperar que lo que nos pidan calcular en el problema setransforme en una pregunta puntual sobre el grafo resultante.

Por ejemplo, una vez modelada la situacion con un grafoconveniente, luego podrıamos tener que resolver . . .

Camino mınimo entre dos nodos

La cantidad de nodos en la componente conexa de algun nodoen particular

Saber si dos nodos estan conectados

Chequear si el grafo es bipartito

Alguna otra pregunta ad hoc que dependera del problema

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 152: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

¿Como modelar con grafos?

En esta charla vamos a ver como utilizar grafos para modelar lasituacion de un problema. Una vez modelado nuestro problema,es de esperar que lo que nos pidan calcular en el problema setransforme en una pregunta puntual sobre el grafo resultante.Por ejemplo, una vez modelada la situacion con un grafoconveniente, luego podrıamos tener que resolver . . .

Camino mınimo entre dos nodos

La cantidad de nodos en la componente conexa de algun nodoen particular

Saber si dos nodos estan conectados

Chequear si el grafo es bipartito

Alguna otra pregunta ad hoc que dependera del problema

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 153: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

¿Como modelar con grafos?

En esta charla vamos a ver como utilizar grafos para modelar lasituacion de un problema. Una vez modelado nuestro problema,es de esperar que lo que nos pidan calcular en el problema setransforme en una pregunta puntual sobre el grafo resultante.Por ejemplo, una vez modelada la situacion con un grafoconveniente, luego podrıamos tener que resolver . . .

Camino mınimo entre dos nodos

La cantidad de nodos en la componente conexa de algun nodoen particular

Saber si dos nodos estan conectados

Chequear si el grafo es bipartito

Alguna otra pregunta ad hoc que dependera del problema

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 154: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

¿Como modelar con grafos?

En esta charla vamos a ver como utilizar grafos para modelar lasituacion de un problema. Una vez modelado nuestro problema,es de esperar que lo que nos pidan calcular en el problema setransforme en una pregunta puntual sobre el grafo resultante.Por ejemplo, una vez modelada la situacion con un grafoconveniente, luego podrıamos tener que resolver . . .

Camino mınimo entre dos nodos

La cantidad de nodos en la componente conexa de algun nodoen particular

Saber si dos nodos estan conectados

Chequear si el grafo es bipartito

Alguna otra pregunta ad hoc que dependera del problema

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 155: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

¿Como modelar con grafos?

En esta charla vamos a ver como utilizar grafos para modelar lasituacion de un problema. Una vez modelado nuestro problema,es de esperar que lo que nos pidan calcular en el problema setransforme en una pregunta puntual sobre el grafo resultante.Por ejemplo, una vez modelada la situacion con un grafoconveniente, luego podrıamos tener que resolver . . .

Camino mınimo entre dos nodos

La cantidad de nodos en la componente conexa de algun nodoen particular

Saber si dos nodos estan conectados

Chequear si el grafo es bipartito

Alguna otra pregunta ad hoc que dependera del problema

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 156: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

¿Como modelar con grafos?

En esta charla vamos a ver como utilizar grafos para modelar lasituacion de un problema. Una vez modelado nuestro problema,es de esperar que lo que nos pidan calcular en el problema setransforme en una pregunta puntual sobre el grafo resultante.Por ejemplo, una vez modelada la situacion con un grafoconveniente, luego podrıamos tener que resolver . . .

Camino mınimo entre dos nodos

La cantidad de nodos en la componente conexa de algun nodoen particular

Saber si dos nodos estan conectados

Chequear si el grafo es bipartito

Alguna otra pregunta ad hoc que dependera del problema

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 157: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

¿Como modelar con grafos?

En muchas situaciones tendremos que tomar un vertice por cadaestado posible distinto que puede haber en el problema y luegotendremos una arista por cada transicion posible entre dosestados. En algunos casos estas aristas podrıan tener un peso queindica cuanto nos cuesta dicha transicion.

Veamos esto a traves de un ejemplo.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 158: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

¿Como modelar con grafos?

En muchas situaciones tendremos que tomar un vertice por cadaestado posible distinto que puede haber en el problema y luegotendremos una arista por cada transicion posible entre dosestados. En algunos casos estas aristas podrıan tener un peso queindica cuanto nos cuesta dicha transicion.Veamos esto a traves de un ejemplo.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 159: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Ahorrando gasolina

Problema:

Javier quiere viajar desde la ciudad A a la ciudad B. En total hayN ciudades y M rutas doble mano que conectan un par deciudades. El tanque del auto de Javier puede almacenar hasta Clitros de gasolina. Al comenzar el recorrido Javier lleno el tanque.Para recorrer una ruta que conecta dos ciudades (i , j) debemosgastar Wij litros de gasolina.Ademas, en cada ciudad podemos cargar el tanque al precio de Di

pesos por litro. ¿Cual es la menor cantidad de dinero que debemosgastar para llegar de A a B?

Lo primero que vamos a hacer es identificar los distintos estadosposibles por los que podemos transitar al viajar de A a B.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 160: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Ahorrando gasolina

Problema:

Javier quiere viajar desde la ciudad A a la ciudad B. En total hayN ciudades y M rutas doble mano que conectan un par deciudades. El tanque del auto de Javier puede almacenar hasta Clitros de gasolina. Al comenzar el recorrido Javier lleno el tanque.Para recorrer una ruta que conecta dos ciudades (i , j) debemosgastar Wij litros de gasolina.Ademas, en cada ciudad podemos cargar el tanque al precio de Di

pesos por litro. ¿Cual es la menor cantidad de dinero que debemosgastar para llegar de A a B?

Lo primero que vamos a hacer es identificar los distintos estadosposibles por los que podemos transitar al viajar de A a B.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 161: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Claramente en nuestro estado tendra que estar reflejado enque ciudad estamos actualmente.

La otra informacion que necesitamos saber es cuantagasolina nos queda en el tanque

¿Cuales son nuestras posibles transiciones si actualmente estamosen la ciudad i con l litros de gasolina en el tanque? ¿Quedecisiones podemos tomar?

Podemos movernos a otra ciudad (si es que nos da la gasolina

en el tanque): (i , l)0→ (j , l −Wij).

Podemos cargar un litro de gasolina en la ciudad actual (si el

tanque no esta lleno): (i , l)Ci→ (i , l + 1)

Luego, el problema se reduce a encontrar un camino mınimo de(A,C ) a algun nodo de la forma (B, l) para algun l .

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 162: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Claramente en nuestro estado tendra que estar reflejado enque ciudad estamos actualmente.

La otra informacion que necesitamos saber es cuantagasolina nos queda en el tanque

¿Cuales son nuestras posibles transiciones si actualmente estamosen la ciudad i con l litros de gasolina en el tanque? ¿Quedecisiones podemos tomar?

Podemos movernos a otra ciudad (si es que nos da la gasolina

en el tanque): (i , l)0→ (j , l −Wij).

Podemos cargar un litro de gasolina en la ciudad actual (si el

tanque no esta lleno): (i , l)Ci→ (i , l + 1)

Luego, el problema se reduce a encontrar un camino mınimo de(A,C ) a algun nodo de la forma (B, l) para algun l .

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 163: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Claramente en nuestro estado tendra que estar reflejado enque ciudad estamos actualmente.

La otra informacion que necesitamos saber es cuantagasolina nos queda en el tanque

¿Cuales son nuestras posibles transiciones si actualmente estamosen la ciudad i con l litros de gasolina en el tanque? ¿Quedecisiones podemos tomar?

Podemos movernos a otra ciudad (si es que nos da la gasolina

en el tanque): (i , l)0→ (j , l −Wij).

Podemos cargar un litro de gasolina en la ciudad actual (si el

tanque no esta lleno): (i , l)Ci→ (i , l + 1)

Luego, el problema se reduce a encontrar un camino mınimo de(A,C ) a algun nodo de la forma (B, l) para algun l .

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 164: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Claramente en nuestro estado tendra que estar reflejado enque ciudad estamos actualmente.

La otra informacion que necesitamos saber es cuantagasolina nos queda en el tanque

¿Cuales son nuestras posibles transiciones si actualmente estamosen la ciudad i con l litros de gasolina en el tanque? ¿Quedecisiones podemos tomar?

Podemos movernos a otra ciudad (si es que nos da la gasolina

en el tanque):

(i , l)0→ (j , l −Wij).

Podemos cargar un litro de gasolina en la ciudad actual (si el

tanque no esta lleno): (i , l)Ci→ (i , l + 1)

Luego, el problema se reduce a encontrar un camino mınimo de(A,C ) a algun nodo de la forma (B, l) para algun l .

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 165: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Claramente en nuestro estado tendra que estar reflejado enque ciudad estamos actualmente.

La otra informacion que necesitamos saber es cuantagasolina nos queda en el tanque

¿Cuales son nuestras posibles transiciones si actualmente estamosen la ciudad i con l litros de gasolina en el tanque? ¿Quedecisiones podemos tomar?

Podemos movernos a otra ciudad (si es que nos da la gasolina

en el tanque): (i , l)0→ (j , l −Wij).

Podemos cargar un litro de gasolina en la ciudad actual (si el

tanque no esta lleno):

(i , l)Ci→ (i , l + 1)

Luego, el problema se reduce a encontrar un camino mınimo de(A,C ) a algun nodo de la forma (B, l) para algun l .

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 166: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Claramente en nuestro estado tendra que estar reflejado enque ciudad estamos actualmente.

La otra informacion que necesitamos saber es cuantagasolina nos queda en el tanque

¿Cuales son nuestras posibles transiciones si actualmente estamosen la ciudad i con l litros de gasolina en el tanque? ¿Quedecisiones podemos tomar?

Podemos movernos a otra ciudad (si es que nos da la gasolina

en el tanque): (i , l)0→ (j , l −Wij).

Podemos cargar un litro de gasolina en la ciudad actual (si el

tanque no esta lleno): (i , l)Ci→ (i , l + 1)

Luego, el problema se reduce a encontrar un camino mınimo de(A,C ) a algun nodo de la forma (B, l) para algun l .

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 167: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Claramente en nuestro estado tendra que estar reflejado enque ciudad estamos actualmente.

La otra informacion que necesitamos saber es cuantagasolina nos queda en el tanque

¿Cuales son nuestras posibles transiciones si actualmente estamosen la ciudad i con l litros de gasolina en el tanque? ¿Quedecisiones podemos tomar?

Podemos movernos a otra ciudad (si es que nos da la gasolina

en el tanque): (i , l)0→ (j , l −Wij).

Podemos cargar un litro de gasolina en la ciudad actual (si el

tanque no esta lleno): (i , l)Ci→ (i , l + 1)

Luego, el problema se reduce a encontrar un camino mınimo de(A,C ) a algun nodo de la forma (B, l) para algun l .

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 168: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

¡La bici no dobla!

Problema:

Melanie vive en una ciudad que tiene forma de grilla, con H calleshorizontales y V calles verticales. Ademas, algunas esquinas estanobstaculizadas por diversos motivos, y no puede pasar por allı.Recientemente Melanie se compro una bicicleta y ya aprendio aandar sin rueditas, pero doblar todavıa le cuesta. Le gustarıa poderir en bici de su casa a la facultad minimizando la cantidad de vecesque tiene que doblar en una esquina. ¿Como la podemos ayudar?

Lo primero que vamos a hacer es identificar los distintos estadosposibles por los que podemos transitar al viajar de su casa (C ) a lafacultad (F ).

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 169: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

¡La bici no dobla!

Problema:

Melanie vive en una ciudad que tiene forma de grilla, con H calleshorizontales y V calles verticales. Ademas, algunas esquinas estanobstaculizadas por diversos motivos, y no puede pasar por allı.Recientemente Melanie se compro una bicicleta y ya aprendio aandar sin rueditas, pero doblar todavıa le cuesta. Le gustarıa poderir en bici de su casa a la facultad minimizando la cantidad de vecesque tiene que doblar en una esquina. ¿Como la podemos ayudar?

Lo primero que vamos a hacer es identificar los distintos estadosposibles por los que podemos transitar al viajar de su casa (C ) a lafacultad (F ).

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 170: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

En nuestro estado tendra que estar reflejado en que callesestamos actualmente.

La otra informacion que necesitamos saber es en quedireccion nos estamos moviendo (para saber en quedirecciones estarıamos doblando y en cual seguimos derecho).

¿Cuales son nuestras posibles transiciones si actualmente estamosen las calles (h, v) y nos estamos moviendo en la direccion d?¿Que decisiones podemos tomar?

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 171: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

En nuestro estado tendra que estar reflejado en que callesestamos actualmente.

La otra informacion que necesitamos saber es en quedireccion nos estamos moviendo (para saber en quedirecciones estarıamos doblando y en cual seguimos derecho).

¿Cuales son nuestras posibles transiciones si actualmente estamosen las calles (h, v) y nos estamos moviendo en la direccion d?¿Que decisiones podemos tomar?

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 172: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

En nuestro estado tendra que estar reflejado en que callesestamos actualmente.

La otra informacion que necesitamos saber es en quedireccion nos estamos moviendo (para saber en quedirecciones estarıamos doblando y en cual seguimos derecho).

¿Cuales son nuestras posibles transiciones si actualmente estamosen las calles (h, v) y nos estamos moviendo en la direccion d?¿Que decisiones podemos tomar?

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 173: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

A la hora de implementar las transiciones, puede sernos util tenerdos arreglos auxiliares de movimiento dx y dy de forma quedx[d ] nos diga como se modifican las calles horizontales almovernos en la direccion d . De la misma forma con dy[d ] para lascalles verticales.

Podemos seguir derecho: (h, v , d)0→ (h + dx[d ], v + dy[d ], d)

Podemos doblar : (h, v , d)1→ (h, v , d) (h, v , d)

1→ (h, v , d)

Finalmente ¿que debemos hacer en este grafo para resolver elproblema?Debemos encontrar el camino mas corto que va de algun nodo(C , d) para toda direccion d posible, y llega a algun nodo de laforma (F , d) para alguna direccion d

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 174: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

A la hora de implementar las transiciones, puede sernos util tenerdos arreglos auxiliares de movimiento dx y dy de forma quedx[d ] nos diga como se modifican las calles horizontales almovernos en la direccion d . De la misma forma con dy[d ] para lascalles verticales.

Podemos seguir derecho: (h, v , d)0→ (h + dx[d ], v + dy[d ], d)

Podemos doblar : (h, v , d)1→ (h, v , d) (h, v , d)

1→ (h, v , d)

Finalmente ¿que debemos hacer en este grafo para resolver elproblema?Debemos encontrar el camino mas corto que va de algun nodo(C , d) para toda direccion d posible, y llega a algun nodo de laforma (F , d) para alguna direccion d

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 175: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

A la hora de implementar las transiciones, puede sernos util tenerdos arreglos auxiliares de movimiento dx y dy de forma quedx[d ] nos diga como se modifican las calles horizontales almovernos en la direccion d . De la misma forma con dy[d ] para lascalles verticales.

Podemos seguir derecho: (h, v , d)0→ (h + dx[d ], v + dy[d ], d)

Podemos doblar : (h, v , d)1→ (h, v , d) (h, v , d)

1→ (h, v , d)

Finalmente ¿que debemos hacer en este grafo para resolver elproblema?Debemos encontrar el camino mas corto que va de algun nodo(C , d) para toda direccion d posible, y llega a algun nodo de laforma (F , d) para alguna direccion d

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 176: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

A la hora de implementar las transiciones, puede sernos util tenerdos arreglos auxiliares de movimiento dx y dy de forma quedx[d ] nos diga como se modifican las calles horizontales almovernos en la direccion d . De la misma forma con dy[d ] para lascalles verticales.

Podemos seguir derecho: (h, v , d)0→ (h + dx[d ], v + dy[d ], d)

Podemos doblar : (h, v , d)1→ (h, v , d) (h, v , d)

1→ (h, v , d)

Finalmente ¿que debemos hacer en este grafo para resolver elproblema?Debemos encontrar el camino mas corto que va de algun nodo(C , d) para toda direccion d posible, y llega a algun nodo de laforma (F , d) para alguna direccion d

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 177: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

A la hora de implementar las transiciones, puede sernos util tenerdos arreglos auxiliares de movimiento dx y dy de forma quedx[d ] nos diga como se modifican las calles horizontales almovernos en la direccion d . De la misma forma con dy[d ] para lascalles verticales.

Podemos seguir derecho: (h, v , d)0→ (h + dx[d ], v + dy[d ], d)

Podemos doblar : (h, v , d)1→ (h, v , d) (h, v , d)

1→ (h, v , d)

Finalmente ¿que debemos hacer en este grafo para resolver elproblema?

Debemos encontrar el camino mas corto que va de algun nodo(C , d) para toda direccion d posible, y llega a algun nodo de laforma (F , d) para alguna direccion d

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 178: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

A la hora de implementar las transiciones, puede sernos util tenerdos arreglos auxiliares de movimiento dx y dy de forma quedx[d ] nos diga como se modifican las calles horizontales almovernos en la direccion d . De la misma forma con dy[d ] para lascalles verticales.

Podemos seguir derecho: (h, v , d)0→ (h + dx[d ], v + dy[d ], d)

Podemos doblar : (h, v , d)1→ (h, v , d) (h, v , d)

1→ (h, v , d)

Finalmente ¿que debemos hacer en este grafo para resolver elproblema?Debemos encontrar el camino mas corto que va de algun nodo(C , d) para toda direccion d posible, y llega a algun nodo de laforma (F , d) para alguna direccion d

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 179: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Este problema es una joya

El proceso de manufactura de una joya comienza con un pedazo de plataen bruto. La plata se tiene que tallar, pulir, agujerear y marcar :

Hay que tallarla antes que agujerearla, y pulirla antes que marcarla

Ademas, cada proceso demora una cierta cantidad de tiempo.

El proceso de tallado y el de pulido demoran 1 unidad de tiempo.

El proceso de marcado requiere de 2 unidades de tiempo si la piezano esta tallada y 4 unidades de tiempo si la pieza esta tallada.

Agujerearla requiere de 3 unidades de tiempo si la pieza no estapulida. Si la pieza esta pulida, pero no marcada, entoncesagujerearla requiere de 5 unidades de tiempo. Por otro lado, si lapieza esta pulida y tambien marcada, se requieren 7 unidades detiempo para agujerearla.

¿Cual es el menor tiempo en el que podemos manufacturar la joya?

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 180: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Este problema es una joya

El proceso de manufactura de una joya comienza con un pedazo de plataen bruto. La plata se tiene que tallar, pulir, agujerear y marcar :

Hay que tallarla antes que agujerearla, y pulirla antes que marcarla

Ademas, cada proceso demora una cierta cantidad de tiempo.

El proceso de tallado y el de pulido demoran 1 unidad de tiempo.

El proceso de marcado requiere de 2 unidades de tiempo si la piezano esta tallada y 4 unidades de tiempo si la pieza esta tallada.

Agujerearla requiere de 3 unidades de tiempo si la pieza no estapulida. Si la pieza esta pulida, pero no marcada, entoncesagujerearla requiere de 5 unidades de tiempo. Por otro lado, si lapieza esta pulida y tambien marcada, se requieren 7 unidades detiempo para agujerearla.

¿Cual es el menor tiempo en el que podemos manufacturar la joya?Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 181: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Lo primero que vamos a hacer es identificar los distintos estadosposibles del problema.

En todo momento, cada uno de los 4 procesos puede haber sidorealizado en la joya o no. Por lo tanto, en total tenemos 24 estadosposibles. Vamos a identificar un estado de la joya con una tirabinaria de largo 4.Por ejemplo, si la joya en este momento esta tallada y agujereada,pero no pulida ni marcada, entonces el estado actual de la joya

sera: (T1,

P0,

A1,

M0).

En realidad, el enunciado nos asegura que algunos estados no sonposibles.

Hay que tallarla antes que agujerearla

Eso quiere decir que todas los estados de la forma (T0,

PF1,

A1,

MF2)

para cualquier valor de F1,F2 no son posibles.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 182: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Lo primero que vamos a hacer es identificar los distintos estadosposibles del problema.En todo momento, cada uno de los 4 procesos puede haber sidorealizado en la joya o no. Por lo tanto, en total tenemos 24 estadosposibles. Vamos a identificar un estado de la joya con una tirabinaria de largo 4.

Por ejemplo, si la joya en este momento esta tallada y agujereada,pero no pulida ni marcada, entonces el estado actual de la joya

sera: (T1,

P0,

A1,

M0).

En realidad, el enunciado nos asegura que algunos estados no sonposibles.

Hay que tallarla antes que agujerearla

Eso quiere decir que todas los estados de la forma (T0,

PF1,

A1,

MF2)

para cualquier valor de F1,F2 no son posibles.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 183: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Lo primero que vamos a hacer es identificar los distintos estadosposibles del problema.En todo momento, cada uno de los 4 procesos puede haber sidorealizado en la joya o no. Por lo tanto, en total tenemos 24 estadosposibles. Vamos a identificar un estado de la joya con una tirabinaria de largo 4.Por ejemplo, si la joya en este momento esta tallada y agujereada,pero no pulida ni marcada, entonces el estado actual de la joya

sera: (T1,

P0,

A1,

M0).

En realidad, el enunciado nos asegura que algunos estados no sonposibles.

Hay que tallarla antes que agujerearla

Eso quiere decir que todas los estados de la forma (T0,

PF1,

A1,

MF2)

para cualquier valor de F1,F2 no son posibles.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 184: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Lo primero que vamos a hacer es identificar los distintos estadosposibles del problema.En todo momento, cada uno de los 4 procesos puede haber sidorealizado en la joya o no. Por lo tanto, en total tenemos 24 estadosposibles. Vamos a identificar un estado de la joya con una tirabinaria de largo 4.Por ejemplo, si la joya en este momento esta tallada y agujereada,pero no pulida ni marcada, entonces el estado actual de la joya

sera: (T1,

P0,

A1,

M0).

En realidad, el enunciado nos asegura que algunos estados no sonposibles.

Hay que tallarla antes que agujerearla

Eso quiere decir que todas los estados de la forma (T0,

PF1,

A1,

MF2)

para cualquier valor de F1,F2 no son posibles.Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 185: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

¿Cuales son las transiciones? ¿Que problema debemos resolver?

Muchas veces, las operaciones de bits nos ayudan a implementarestas cosas de forma relativamente sencilla.

http://wiki.oia.unsam.edu.ar/cpp-avanzado/operaciones-de-bits

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 186: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

¿Cuales son las transiciones? ¿Que problema debemos resolver?

Muchas veces, las operaciones de bits nos ayudan a implementarestas cosas de forma relativamente sencilla.

http://wiki.oia.unsam.edu.ar/cpp-avanzado/operaciones-de-bits

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 187: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

¿Cuales son las transiciones? ¿Que problema debemos resolver?

Muchas veces, las operaciones de bits nos ayudan a implementarestas cosas de forma relativamente sencilla.

http://wiki.oia.unsam.edu.ar/cpp-avanzado/operaciones-de-bitsFacundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 188: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

La comunidad del anillo

Problema:

Se tienen n ciudades que forman el llamado “anillo de la plata”.Las ciudades i e i + 1 estan conectadas por un camino (para1 ≤ i < n) y de la ciudad n a la 1 tambien. El gobierno decidioconstruir M nuevos caminos que conectan un par de ciudades.Cada uno de estos caminos debe estar completamente dentro delanillo o completamente por fuera del anillo. ¿Es posible construirestas M rutas de forma que ninguna de estas se corten entre ellas(salvo en los extremos)?¿Que rutas deberıan estar por dentro ycuales por fuera?

Analicemos el grafo que nos viene dado . . .

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 189: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

La comunidad del anillo

Problema:

Se tienen n ciudades que forman el llamado “anillo de la plata”.Las ciudades i e i + 1 estan conectadas por un camino (para1 ≤ i < n) y de la ciudad n a la 1 tambien. El gobierno decidioconstruir M nuevos caminos que conectan un par de ciudades.Cada uno de estos caminos debe estar completamente dentro delanillo o completamente por fuera del anillo. ¿Es posible construirestas M rutas de forma que ninguna de estas se corten entre ellas(salvo en los extremos)?¿Que rutas deberıan estar por dentro ycuales por fuera?

Analicemos el grafo que nos viene dado . . .

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 190: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Imaginemos quetenemos que ubicarlas aristas:

1 (0,2)

2 (0,4)

3 (0,7)

4 (1,3)

5 (3,5)

6 (4,7)

7 (5,7)

Una formaposible serıa la siguiente

¿Que nos importa realmente a la hora de resolver el problema?¿Nos importa el grafo del anillo que nos dan?

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 191: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Imaginemos quetenemos que ubicarlas aristas:

1 (0,2)

2 (0,4)

3 (0,7)

4 (1,3)

5 (3,5)

6 (4,7)

7 (5,7)

Una forma posible serıa la siguiente

¿Que nos importa realmente a la hora de resolver el problema?¿Nos importa el grafo del anillo que nos dan?

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 192: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Imaginemos quetenemos que ubicarlas aristas:

1 (0,2)

2 (0,4)

3 (0,7)

4 (1,3)

5 (3,5)

6 (4,7)

7 (5,7)

Una forma posible serıa la siguiente

¿Que nos importa realmente a la hora de resolver el problema?¿Nos importa el grafo del anillo que nos dan?

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 193: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

¿Cuando podemos afirmar que dos aristas necesariamente van enlados distintos?

Cada arista nos define un intervalo (abierto, pues si se tocan en losnodos no hay problema), y dos aristas pueden ir del mismo lado,si los intervalos son disjuntos o un intervalo esta contenidoen el otro.Entonces, podemos generarnos el grafo que tiene un vertice porcada arista que nos dan, y en este nuevo grafo vamos a ubicar unaarista entre dos vertices si las aristas que corresponden no puedenir del mismo lado.¿Que problema debemos resolver en este nuevo grafo para resolverel problema original? Debemos ver si podemos pintarlo de doscolores sin que haya aristas con extremos del mismo color (osea, si es bipartito). Cada color, nos dice de que lado dibujamos acada arista. http://codeforces.com/contest/27/problem/D

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 194: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

¿Cuando podemos afirmar que dos aristas necesariamente van enlados distintos?Cada arista nos define un intervalo (abierto, pues si se tocan en losnodos no hay problema), y dos aristas pueden ir del mismo lado,si los intervalos son disjuntos o un intervalo esta contenidoen el otro.

Entonces, podemos generarnos el grafo que tiene un vertice porcada arista que nos dan, y en este nuevo grafo vamos a ubicar unaarista entre dos vertices si las aristas que corresponden no puedenir del mismo lado.¿Que problema debemos resolver en este nuevo grafo para resolverel problema original? Debemos ver si podemos pintarlo de doscolores sin que haya aristas con extremos del mismo color (osea, si es bipartito). Cada color, nos dice de que lado dibujamos acada arista. http://codeforces.com/contest/27/problem/D

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 195: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

¿Cuando podemos afirmar que dos aristas necesariamente van enlados distintos?Cada arista nos define un intervalo (abierto, pues si se tocan en losnodos no hay problema), y dos aristas pueden ir del mismo lado,si los intervalos son disjuntos o un intervalo esta contenidoen el otro.Entonces, podemos generarnos el grafo que tiene un vertice porcada arista que nos dan, y en este nuevo grafo vamos a ubicar unaarista entre dos vertices si las aristas que corresponden no puedenir del mismo lado.

¿Que problema debemos resolver en este nuevo grafo para resolverel problema original? Debemos ver si podemos pintarlo de doscolores sin que haya aristas con extremos del mismo color (osea, si es bipartito). Cada color, nos dice de que lado dibujamos acada arista. http://codeforces.com/contest/27/problem/D

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 196: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

¿Cuando podemos afirmar que dos aristas necesariamente van enlados distintos?Cada arista nos define un intervalo (abierto, pues si se tocan en losnodos no hay problema), y dos aristas pueden ir del mismo lado,si los intervalos son disjuntos o un intervalo esta contenidoen el otro.Entonces, podemos generarnos el grafo que tiene un vertice porcada arista que nos dan, y en este nuevo grafo vamos a ubicar unaarista entre dos vertices si las aristas que corresponden no puedenir del mismo lado.¿Que problema debemos resolver en este nuevo grafo para resolverel problema original?

Debemos ver si podemos pintarlo de doscolores sin que haya aristas con extremos del mismo color (osea, si es bipartito). Cada color, nos dice de que lado dibujamos acada arista. http://codeforces.com/contest/27/problem/D

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 197: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

¿Cuando podemos afirmar que dos aristas necesariamente van enlados distintos?Cada arista nos define un intervalo (abierto, pues si se tocan en losnodos no hay problema), y dos aristas pueden ir del mismo lado,si los intervalos son disjuntos o un intervalo esta contenidoen el otro.Entonces, podemos generarnos el grafo que tiene un vertice porcada arista que nos dan, y en este nuevo grafo vamos a ubicar unaarista entre dos vertices si las aristas que corresponden no puedenir del mismo lado.¿Que problema debemos resolver en este nuevo grafo para resolverel problema original? Debemos ver si podemos pintarlo de doscolores sin que haya aristas con extremos del mismo color (osea, si es bipartito). Cada color, nos dice de que lado dibujamos acada arista.

http://codeforces.com/contest/27/problem/D

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 198: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

¿Cuando podemos afirmar que dos aristas necesariamente van enlados distintos?Cada arista nos define un intervalo (abierto, pues si se tocan en losnodos no hay problema), y dos aristas pueden ir del mismo lado,si los intervalos son disjuntos o un intervalo esta contenidoen el otro.Entonces, podemos generarnos el grafo que tiene un vertice porcada arista que nos dan, y en este nuevo grafo vamos a ubicar unaarista entre dos vertices si las aristas que corresponden no puedenir del mismo lado.¿Que problema debemos resolver en este nuevo grafo para resolverel problema original? Debemos ver si podemos pintarlo de doscolores sin que haya aristas con extremos del mismo color (osea, si es bipartito). Cada color, nos dice de que lado dibujamos acada arista. http://codeforces.com/contest/27/problem/D

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 199: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Babel

Juan y Marıa son fanaticos de aprender idiomas nuevos, yultimamente se divierten con palabras que se escriben igual en dosidiomas distintos pero tienen distinto significado. Por ejemplo, encastellano una ”red” puede utilizarse para pescar, pero ”red” eningles hace referencia al color rojo.El juego que inventaron consiste en elegir dos idiomas: I1 e I2.Luego deben encontrar una secuencia de palabras de forma quela primera palabra tenga algun significado en I1, la ultima palabratenga algun significado en I2, y que las palabras adyacentes en lasecuencia tengan significado en algun idioma comun. De todas lassecuencias de palabras buscan la de menor cantidad de letras.Para hacerlo mas interesante, decidieron no permitir utilizar dospalabras consecutivas que comiencen con la misma letra.Solo utilizan palabras con significado en exactamente dos idiomas.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 200: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Si los idiomas que eligen son Portugues y Frances, entonces :“amigo actual date” serıa una secuencia posible(Portugues/Espanol, Espanol/Ingles, Ingles/Frances) de no serporque “amigo” y “actual” comienzan ambas con la letra a

“amigo red date” es una secuencia posible(Portugues/Espanol, Espanol/Ingles, Ingles/Frances)

Imaginemos que en la entrada nos dan una lista de M palabras,cada una de ellas de la forma I1, I2, pi , diciendo que la i-esimapalabra tiene significados distintos en los idiomas I1 e I2.¿Cuales son nuestros estados posibles? (Idioma, letraProhibida)¿Cuales son nuestras transiciones?

(I1, letraProhibida)largo(p)−→ (I2, p[0]), siempre que p tenga

significados distintos en I1 e I2 y p[0] 6= letraProhibidaNos queda un problema de camino mınimo en ese grafo.https://uva.onlinejudge.org/ (Problema 11492)

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 201: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Si los idiomas que eligen son Portugues y Frances, entonces :“amigo actual date” serıa una secuencia posible(Portugues/Espanol, Espanol/Ingles, Ingles/Frances) de no serporque “amigo” y “actual” comienzan ambas con la letra a

“amigo red date” es una secuencia posible(Portugues/Espanol, Espanol/Ingles, Ingles/Frances)

Imaginemos que en la entrada nos dan una lista de M palabras,cada una de ellas de la forma I1, I2, pi , diciendo que la i-esimapalabra tiene significados distintos en los idiomas I1 e I2.¿Cuales son nuestros estados posibles? (Idioma, letraProhibida)¿Cuales son nuestras transiciones?

(I1, letraProhibida)largo(p)−→ (I2, p[0]), siempre que p tenga

significados distintos en I1 e I2 y p[0] 6= letraProhibidaNos queda un problema de camino mınimo en ese grafo.https://uva.onlinejudge.org/ (Problema 11492)

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 202: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Si los idiomas que eligen son Portugues y Frances, entonces :“amigo actual date” serıa una secuencia posible(Portugues/Espanol, Espanol/Ingles, Ingles/Frances) de no serporque “amigo” y “actual” comienzan ambas con la letra a

“amigo red date” es una secuencia posible(Portugues/Espanol, Espanol/Ingles, Ingles/Frances)

Imaginemos que en la entrada nos dan una lista de M palabras,cada una de ellas de la forma I1, I2, pi , diciendo que la i-esimapalabra tiene significados distintos en los idiomas I1 e I2.

¿Cuales son nuestros estados posibles? (Idioma, letraProhibida)¿Cuales son nuestras transiciones?

(I1, letraProhibida)largo(p)−→ (I2, p[0]), siempre que p tenga

significados distintos en I1 e I2 y p[0] 6= letraProhibidaNos queda un problema de camino mınimo en ese grafo.https://uva.onlinejudge.org/ (Problema 11492)

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 203: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Si los idiomas que eligen son Portugues y Frances, entonces :“amigo actual date” serıa una secuencia posible(Portugues/Espanol, Espanol/Ingles, Ingles/Frances) de no serporque “amigo” y “actual” comienzan ambas con la letra a

“amigo red date” es una secuencia posible(Portugues/Espanol, Espanol/Ingles, Ingles/Frances)

Imaginemos que en la entrada nos dan una lista de M palabras,cada una de ellas de la forma I1, I2, pi , diciendo que la i-esimapalabra tiene significados distintos en los idiomas I1 e I2.¿Cuales son nuestros estados posibles?

(Idioma, letraProhibida)¿Cuales son nuestras transiciones?

(I1, letraProhibida)largo(p)−→ (I2, p[0]), siempre que p tenga

significados distintos en I1 e I2 y p[0] 6= letraProhibidaNos queda un problema de camino mınimo en ese grafo.https://uva.onlinejudge.org/ (Problema 11492)

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 204: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Si los idiomas que eligen son Portugues y Frances, entonces :“amigo actual date” serıa una secuencia posible(Portugues/Espanol, Espanol/Ingles, Ingles/Frances) de no serporque “amigo” y “actual” comienzan ambas con la letra a

“amigo red date” es una secuencia posible(Portugues/Espanol, Espanol/Ingles, Ingles/Frances)

Imaginemos que en la entrada nos dan una lista de M palabras,cada una de ellas de la forma I1, I2, pi , diciendo que la i-esimapalabra tiene significados distintos en los idiomas I1 e I2.¿Cuales son nuestros estados posibles? (Idioma, letraProhibida)

¿Cuales son nuestras transiciones?

(I1, letraProhibida)largo(p)−→ (I2, p[0]), siempre que p tenga

significados distintos en I1 e I2 y p[0] 6= letraProhibidaNos queda un problema de camino mınimo en ese grafo.https://uva.onlinejudge.org/ (Problema 11492)

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 205: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Si los idiomas que eligen son Portugues y Frances, entonces :“amigo actual date” serıa una secuencia posible(Portugues/Espanol, Espanol/Ingles, Ingles/Frances) de no serporque “amigo” y “actual” comienzan ambas con la letra a

“amigo red date” es una secuencia posible(Portugues/Espanol, Espanol/Ingles, Ingles/Frances)

Imaginemos que en la entrada nos dan una lista de M palabras,cada una de ellas de la forma I1, I2, pi , diciendo que la i-esimapalabra tiene significados distintos en los idiomas I1 e I2.¿Cuales son nuestros estados posibles? (Idioma, letraProhibida)¿Cuales son nuestras transiciones?

(I1, letraProhibida)largo(p)−→ (I2, p[0]), siempre que p tenga

significados distintos en I1 e I2 y p[0] 6= letraProhibidaNos queda un problema de camino mınimo en ese grafo.https://uva.onlinejudge.org/ (Problema 11492)

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 206: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Si los idiomas que eligen son Portugues y Frances, entonces :“amigo actual date” serıa una secuencia posible(Portugues/Espanol, Espanol/Ingles, Ingles/Frances) de no serporque “amigo” y “actual” comienzan ambas con la letra a

“amigo red date” es una secuencia posible(Portugues/Espanol, Espanol/Ingles, Ingles/Frances)

Imaginemos que en la entrada nos dan una lista de M palabras,cada una de ellas de la forma I1, I2, pi , diciendo que la i-esimapalabra tiene significados distintos en los idiomas I1 e I2.¿Cuales son nuestros estados posibles? (Idioma, letraProhibida)¿Cuales son nuestras transiciones?

(I1, letraProhibida)largo(p)−→ (I2, p[0]), siempre que p tenga

significados distintos en I1 e I2 y p[0] 6= letraProhibida

Nos queda un problema de camino mınimo en ese grafo.https://uva.onlinejudge.org/ (Problema 11492)

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 207: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Si los idiomas que eligen son Portugues y Frances, entonces :“amigo actual date” serıa una secuencia posible(Portugues/Espanol, Espanol/Ingles, Ingles/Frances) de no serporque “amigo” y “actual” comienzan ambas con la letra a

“amigo red date” es una secuencia posible(Portugues/Espanol, Espanol/Ingles, Ingles/Frances)

Imaginemos que en la entrada nos dan una lista de M palabras,cada una de ellas de la forma I1, I2, pi , diciendo que la i-esimapalabra tiene significados distintos en los idiomas I1 e I2.¿Cuales son nuestros estados posibles? (Idioma, letraProhibida)¿Cuales son nuestras transiciones?

(I1, letraProhibida)largo(p)−→ (I2, p[0]), siempre que p tenga

significados distintos en I1 e I2 y p[0] 6= letraProhibidaNos queda un problema de camino mınimo en ese grafo.https://uva.onlinejudge.org/ (Problema 11492)

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 208: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Camino mınimo de largo par

Problema:

Dado un grafo pesado y dos nodos distinguidos A y B. Se busca elmenor peso que tiene un camino de A a B que utiliza una cantidadpar de aristas.

¿Cuales son nuestros estados posibles? (i , paridad)¿Cuales son nuestras transiciones posibles?

(i , paridad)wij→ (j , 1− paridad)

Comenzamos en (A, par) o (A, 0) de cualquier forma que loquerramos representar.¿Como se modifica si queremos utilizar una cantidad de aristas quesea de la forma 3k + 1 para algun k? (i , r3(#aristasUtilizadas))

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 209: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Camino mınimo de largo par

Problema:

Dado un grafo pesado y dos nodos distinguidos A y B. Se busca elmenor peso que tiene un camino de A a B que utiliza una cantidadpar de aristas.

¿Cuales son nuestros estados posibles?

(i , paridad)¿Cuales son nuestras transiciones posibles?

(i , paridad)wij→ (j , 1− paridad)

Comenzamos en (A, par) o (A, 0) de cualquier forma que loquerramos representar.¿Como se modifica si queremos utilizar una cantidad de aristas quesea de la forma 3k + 1 para algun k? (i , r3(#aristasUtilizadas))

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 210: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Camino mınimo de largo par

Problema:

Dado un grafo pesado y dos nodos distinguidos A y B. Se busca elmenor peso que tiene un camino de A a B que utiliza una cantidadpar de aristas.

¿Cuales son nuestros estados posibles? (i , paridad)

¿Cuales son nuestras transiciones posibles?

(i , paridad)wij→ (j , 1− paridad)

Comenzamos en (A, par) o (A, 0) de cualquier forma que loquerramos representar.¿Como se modifica si queremos utilizar una cantidad de aristas quesea de la forma 3k + 1 para algun k? (i , r3(#aristasUtilizadas))

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 211: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Camino mınimo de largo par

Problema:

Dado un grafo pesado y dos nodos distinguidos A y B. Se busca elmenor peso que tiene un camino de A a B que utiliza una cantidadpar de aristas.

¿Cuales son nuestros estados posibles? (i , paridad)¿Cuales son nuestras transiciones posibles?

(i , paridad)wij→ (j , 1− paridad)

Comenzamos en (A, par) o (A, 0) de cualquier forma que loquerramos representar.¿Como se modifica si queremos utilizar una cantidad de aristas quesea de la forma 3k + 1 para algun k? (i , r3(#aristasUtilizadas))

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 212: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Camino mınimo de largo par

Problema:

Dado un grafo pesado y dos nodos distinguidos A y B. Se busca elmenor peso que tiene un camino de A a B que utiliza una cantidadpar de aristas.

¿Cuales son nuestros estados posibles? (i , paridad)¿Cuales son nuestras transiciones posibles?

(i , paridad)wij→ (j , 1− paridad)

Comenzamos en (A, par) o (A, 0) de cualquier forma que loquerramos representar.¿Como se modifica si queremos utilizar una cantidad de aristas quesea de la forma 3k + 1 para algun k? (i , r3(#aristasUtilizadas))

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 213: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Camino mınimo de largo par

Problema:

Dado un grafo pesado y dos nodos distinguidos A y B. Se busca elmenor peso que tiene un camino de A a B que utiliza una cantidadpar de aristas.

¿Cuales son nuestros estados posibles? (i , paridad)¿Cuales son nuestras transiciones posibles?

(i , paridad)wij→ (j , 1− paridad)

Comenzamos en (A, par) o (A, 0) de cualquier forma que loquerramos representar.

¿Como se modifica si queremos utilizar una cantidad de aristas quesea de la forma 3k + 1 para algun k? (i , r3(#aristasUtilizadas))

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 214: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Camino mınimo de largo par

Problema:

Dado un grafo pesado y dos nodos distinguidos A y B. Se busca elmenor peso que tiene un camino de A a B que utiliza una cantidadpar de aristas.

¿Cuales son nuestros estados posibles? (i , paridad)¿Cuales son nuestras transiciones posibles?

(i , paridad)wij→ (j , 1− paridad)

Comenzamos en (A, par) o (A, 0) de cualquier forma que loquerramos representar.¿Como se modifica si queremos utilizar una cantidad de aristas quesea de la forma 3k + 1 para algun k?

(i , r3(#aristasUtilizadas))

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 215: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Camino mınimo de largo par

Problema:

Dado un grafo pesado y dos nodos distinguidos A y B. Se busca elmenor peso que tiene un camino de A a B que utiliza una cantidadpar de aristas.

¿Cuales son nuestros estados posibles? (i , paridad)¿Cuales son nuestras transiciones posibles?

(i , paridad)wij→ (j , 1− paridad)

Comenzamos en (A, par) o (A, 0) de cualquier forma que loquerramos representar.¿Como se modifica si queremos utilizar una cantidad de aristas quesea de la forma 3k + 1 para algun k? (i , r3(#aristasUtilizadas))

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 216: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Escapando del Laberinto

Problema:

Estamos atrapados en un laberinto. Cada casilla esta vacıa, tieneuna llave de un color o tiene un puerta de un color. Si pasamossobre una llave, nos la quedamos y nos permitira abrir toda puertade ese color. ¿Podemos salir del laberinto?

Usando lo que vimos hasta ahora, ¿que estados posibles tenemos?En todo momento deberıamos tener en nuestro estado la posiciony el subconjunto de llaves que tenemos a disposicionactualmente. (i , j ,mask)Esta es una solucion posible, falta recorrer el grafo aumentado yver si llegamos a la salida con algun subconjunto de llaves.Aumentamos el grafo de forma exponencial en la cantidad de llavesdistintas. ¿Podemos hacer algo mejor?

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 217: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Escapando del Laberinto

Problema:

Estamos atrapados en un laberinto. Cada casilla esta vacıa, tieneuna llave de un color o tiene un puerta de un color. Si pasamossobre una llave, nos la quedamos y nos permitira abrir toda puertade ese color. ¿Podemos salir del laberinto?

Usando lo que vimos hasta ahora, ¿que estados posibles tenemos?

En todo momento deberıamos tener en nuestro estado la posiciony el subconjunto de llaves que tenemos a disposicionactualmente. (i , j ,mask)Esta es una solucion posible, falta recorrer el grafo aumentado yver si llegamos a la salida con algun subconjunto de llaves.Aumentamos el grafo de forma exponencial en la cantidad de llavesdistintas. ¿Podemos hacer algo mejor?

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 218: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Escapando del Laberinto

Problema:

Estamos atrapados en un laberinto. Cada casilla esta vacıa, tieneuna llave de un color o tiene un puerta de un color. Si pasamossobre una llave, nos la quedamos y nos permitira abrir toda puertade ese color. ¿Podemos salir del laberinto?

Usando lo que vimos hasta ahora, ¿que estados posibles tenemos?En todo momento deberıamos tener en nuestro estado la posiciony el subconjunto de llaves que tenemos a disposicionactualmente.

(i , j ,mask)Esta es una solucion posible, falta recorrer el grafo aumentado yver si llegamos a la salida con algun subconjunto de llaves.Aumentamos el grafo de forma exponencial en la cantidad de llavesdistintas. ¿Podemos hacer algo mejor?

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 219: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Escapando del Laberinto

Problema:

Estamos atrapados en un laberinto. Cada casilla esta vacıa, tieneuna llave de un color o tiene un puerta de un color. Si pasamossobre una llave, nos la quedamos y nos permitira abrir toda puertade ese color. ¿Podemos salir del laberinto?

Usando lo que vimos hasta ahora, ¿que estados posibles tenemos?En todo momento deberıamos tener en nuestro estado la posiciony el subconjunto de llaves que tenemos a disposicionactualmente. (i , j ,mask)

Esta es una solucion posible, falta recorrer el grafo aumentado yver si llegamos a la salida con algun subconjunto de llaves.Aumentamos el grafo de forma exponencial en la cantidad de llavesdistintas. ¿Podemos hacer algo mejor?

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 220: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Escapando del Laberinto

Problema:

Estamos atrapados en un laberinto. Cada casilla esta vacıa, tieneuna llave de un color o tiene un puerta de un color. Si pasamossobre una llave, nos la quedamos y nos permitira abrir toda puertade ese color. ¿Podemos salir del laberinto?

Usando lo que vimos hasta ahora, ¿que estados posibles tenemos?En todo momento deberıamos tener en nuestro estado la posiciony el subconjunto de llaves que tenemos a disposicionactualmente. (i , j ,mask)Esta es una solucion posible, falta recorrer el grafo aumentado yver si llegamos a la salida con algun subconjunto de llaves.Aumentamos el grafo de forma exponencial en la cantidad de llavesdistintas.

¿Podemos hacer algo mejor?

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 221: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Escapando del Laberinto

Problema:

Estamos atrapados en un laberinto. Cada casilla esta vacıa, tieneuna llave de un color o tiene un puerta de un color. Si pasamossobre una llave, nos la quedamos y nos permitira abrir toda puertade ese color. ¿Podemos salir del laberinto?

Usando lo que vimos hasta ahora, ¿que estados posibles tenemos?En todo momento deberıamos tener en nuestro estado la posiciony el subconjunto de llaves que tenemos a disposicionactualmente. (i , j ,mask)Esta es una solucion posible, falta recorrer el grafo aumentado yver si llegamos a la salida con algun subconjunto de llaves.Aumentamos el grafo de forma exponencial en la cantidad de llavesdistintas. ¿Podemos hacer algo mejor?

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 222: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Puede sernos utilnuevamente el arregloauxiliar de movimientos:

dx = {1,-1,0,0}dy = {0,0,1,-1}

↓, ↑,→,←Para cada k de 1 a 4:

new i = i + dx[k]

new j = j + dy[k]

Llaves: {}Puertas: {}

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 223: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Puede sernos utilnuevamente el arregloauxiliar de movimientos:

dx = {1,-1,0,0}dy = {0,0,1,-1}

↓, ↑,→,←Para cada k de 1 a 4:

new i = i + dx[k]

new j = j + dy[k]

Llaves: {Magenta}Puertas: {Magenta,Celeste}

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 224: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Puede sernos utilnuevamente el arregloauxiliar de movimientos:

dx = {1,-1,0,0}dy = {0,0,1,-1}

↓, ↑,→,←Para cada k de 1 a 4:

new i = i + dx[k]

new j = j + dy[k]

Llaves: {}Puertas: {Celeste}Las puertas color Magentase abren

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 225: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Puede sernos utilnuevamente el arregloauxiliar de movimientos:

dx = {1,-1,0,0}dy = {0,0,1,-1}

↓, ↑,→,←Para cada k de 1 a 4:

new i = i + dx[k]

new j = j + dy[k]

Llaves: {Celeste}Puertas: {Celeste,Rojo}

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 226: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Puede sernos utilnuevamente el arregloauxiliar de movimientos:

dx = {1,-1,0,0}dy = {0,0,1,-1}

↓, ↑,→,←Para cada k de 1 a 4:

new i = i + dx[k]

new j = j + dy[k]

Llaves: {}Puertas: {Rojo}Las puertas color Celeste seabren

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 227: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Puede sernos utilnuevamente el arregloauxiliar de movimientos:

dx = {1,-1,0,0}dy = {0,0,1,-1}

↓, ↑,→,←Para cada k de 1 a 4:

new i = i + dx[k]

new j = j + dy[k]

Llaves: {Rojo}Puertas: {Rojo}

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 228: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Puede sernos utilnuevamente el arregloauxiliar de movimientos:

dx = {1,-1,0,0}dy = {0,0,1,-1}

↓, ↑,→,←Para cada k de 1 a 4:

new i = i + dx[k]

new j = j + dy[k]

Llaves: {}Puertas: {}Las puertas color Rojo seabren

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 229: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Puede sernos utilnuevamente el arregloauxiliar de movimientos:

dx = {1,-1,0,0}dy = {0,0,1,-1}

↓, ↑,→,←Para cada k de 1 a 4:

new i = i + dx[k]

new j = j + dy[k]

Llaves: {Verde}Puertas: {Verde}

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 230: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Puede sernos utilnuevamente el arregloauxiliar de movimientos:

dx = {1,-1,0,0}dy = {0,0,1,-1}

↓, ↑,→,←Para cada k de 1 a 4:

new i = i + dx[k]

new j = j + dy[k]

Llaves: {}Puertas: {}Las puertas color Verde seabren

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 231: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Modelando Problemas

Puede sernos utilnuevamente el arregloauxiliar de movimientos:

dx = {1,-1,0,0}dy = {0,0,1,-1}

↓, ↑,→,←Para cada k de 1 a 4:

new i = i + dx[k]

new j = j + dy[k]

Llaves: {}Puertas: {}

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 232: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Problemas de Tarea

Problemas ordenados por dificultad (muy subjetivamente)

“Tesoro” (castellano)http://juez.oia.unsam.edu.ar/#/task/tesoro/statement“Indiana” (castellano)http://juez.oia.unsam.edu.ar/#/task/indiana/statement“Escape From Jail Again” (ingles)https://www.spoj.com/problems/ESCJAILA/“Protesta” (difıcil) (castellano)http://juez.oia.unsam.edu.ar/#/task/protesta/statement“Escape from Jail” (difıcil) (ingles)https://www.spoj.com/problems/ESJAIL/

Siempre pueden hacer consultas sobre problemas (o cualquier temarelacionado con la Olimpıada) en el Foro de la OIA:

http://foro.oia.unsam.edu.arEn particular, en el foro estara esta charla subida a disposicion

de todos.

Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos

Page 233: Modelado de Problemas con Grafos - Certamen Nacional de OIA

Nociones Basicas de Grafos Breve Repaso de algunos Algoritmos A Resolver Problemas

Problemas de Tarea

Problemas ordenados por dificultad (muy subjetivamente)

“Tesoro” (castellano)http://juez.oia.unsam.edu.ar/#/task/tesoro/statement“Indiana” (castellano)http://juez.oia.unsam.edu.ar/#/task/indiana/statement“Escape From Jail Again” (ingles)https://www.spoj.com/problems/ESCJAILA/“Protesta” (difıcil) (castellano)http://juez.oia.unsam.edu.ar/#/task/protesta/statement“Escape from Jail” (difıcil) (ingles)https://www.spoj.com/problems/ESJAIL/

Siempre pueden hacer consultas sobre problemas (o cualquier temarelacionado con la Olimpıada) en el Foro de la OIA:

http://foro.oia.unsam.edu.arEn particular, en el foro estara esta charla subida a disposicion

de todos.Facundo Gutierrez (Guty)

Modelado de Problemas con Grafos