teoría de grafos en sage
TRANSCRIPT
![Page 1: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/1.jpg)
1
Algorithmic Graph TheoryDavid Joyner, Minh Van Nguyen, Nathann Cohen
Version 0.3
RESUMEN DEL CAPÍTULO 1 Y 2 PREPARADO POR:KENNETH ROBLES RAMOS
OSVALDO MEDINA IRIZARRYHÉCTOR L. RODRÍGUEZ TORO
PARA LA CLASE: MATH-5500 MATEMÁTICAS DISCRETAS AVANZADAS
![Page 2: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/2.jpg)
• Dado el mapa de Königsberg, con el río Pregolya dividiendo el plano en cuatro regiones distintas, que están unidas a través de los siete puentes, ¿es posible dar un paseo comenzando desde cualquiera de estas regiones, de modo de recorrerlas todas pasando sólo una vez por cada puente, y regresando al mismo punto de origen?
![Page 3: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/3.jpg)
INTRODUCCIÓN A LA TEORÍA DE GRAFOS
• El trabajo de Leonhard Euler, en 1736, sobre el problema de los puentes de Königsberg es considerado el primer resultado de la teoría de grafos. También se considera uno de los primeros resultados topológicos en geometría (que no depende de ninguna medida). Este ejemplo ilustra la profunda relación entre la teoría de grafos y la topología.
![Page 4: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/4.jpg)
¿QUÉ ES UN GRAFO?
• Un grafo G es un conjunto de objetos o par ordenado G = (V,E), donde: V es un conjunto de vértices o nodos, y E es un conjunto de arcos o aristas, que relacionan estos nodos.
![Page 5: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/5.jpg)
• Desde un punto de vista práctico, los grafos permiten estudiar las interrelaciones entre unidades que interactúan unas con otras. Por ejemplo, una res de computadoras puede representarse y estudiarse mediante un grafo, en el cual los vértices representan terminales y las aristas representan conexiones (las cuales, a su vez, pueden ser cable o conexiones inalámbricas).
![Page 6: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/6.jpg)
• Prácticamente cualquier problema puede representarse mediante un grafo, y su estudio trasciende a las diversas áreas de las ciencias exactas y las ciencias sociales.
![Page 7: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/7.jpg)
• G=(V,E)• V={v1, v2, v3, v4, v5,… vn}• E={e1, e2, e3, e4, e5, e6,… en}
![Page 8: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/8.jpg)
TIPOS DE GRAFOS
• Grafos simple - Un grafo es simple si sólo1 arista une dos vértices cualesquiera. Esto es equivalente a decir que una arista cualquiera es la única que une dos vértices específicos.
![Page 9: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/9.jpg)
GRAFO DIRIGIDO
• En un grafo dirigido las aristas están formadas por flechas que indican la dirección de la arista.
![Page 10: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/10.jpg)
GRAFOS NO DIRIGIDO
• Grafos no dirigido- e = (v,w) o (w,v)
![Page 11: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/11.jpg)
GRAFOS NO SIMPLE
• Este es un grafo no dirigido que tiene lazos y aristas paralelas. Un grafo que no es simple se denomina Multigráfica o Grafo múltiple.
![Page 12: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/12.jpg)
GRAFO PONDERADO
• Se presentan los pesos de cada arista y se puede determinar la longitud de una ruta, que es la suma de todos los pesos de las aristas.
![Page 13: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/13.jpg)
GRAFOS COMPLETO
![Page 14: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/14.jpg)
GRAFOS DE SIMILITUD
• Son aquellos grafos de los cuales se derivan otros grafos
![Page 15: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/15.jpg)
GRADO DE UN VÉRTICE
• Comprende el número de aristas que inciden en el vértice.
þa = 2þb = 3þc = 4þd = 3þe = 2þf = 2 lazoþg = 0
![Page 16: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/16.jpg)
CAMINO O TRAYECTORIA• Es el recorrido desde un vértice inicial hasta
un vértice final.
þa,b,c,d,e,fþa,c,b,d,e,fþa,b,e,c,d,fþa,c,d,b,e,fþ…þ…
![Page 17: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/17.jpg)
MATRIZ DE ADYACENCIA• Se colocan en las filas y en las columnas los
vértices del grafo para determinar si los vértices son adyacentes
![Page 18: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/18.jpg)
MATRIZ DE INCIDENCIA• Se determina la incidencia de las aristas con los
vértices
![Page 19: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/19.jpg)
Isomorfismo de Grafos
Dos grafos G y H son isomorfos si existe unafunción f uno a uno, sobre los vértices de G alos vértices de H y una función g uno a unosobre las aristas de G a las aristas de H, demanera que si una arista e incide en v y w enG, si y sólo si la arista g(e) es incidente enf(v) y f(w) en H.
![Page 20: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/20.jpg)
Continuación
En otras palabras, un grafo G es isomorfo aun grafo H si puede ser etiquetado de maneratal que si u y v son adyacentes en G,entonces su contraparte en V(H) son tambiénadyacentes en H. Para verificar si dos grafosson isomorfos hay que verificar si sonestructuralmente equivalentes.
![Page 21: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/21.jpg)
Ejemplo:
![Page 22: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/22.jpg)
Propiedad de Invariante
Un concepto importante en la teoría degrafos es la propiedad de invariante. Unapropiedad P es invariante siempre que G y Hsean grafos isomorfos.
Si G tiene una propiedad P, entonces Htambién tiene la propiedad P.
![Page 23: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/23.jpg)
Continuación
Así que si G y H son isomorfos tienen elmismo número de vértices y aristas, por loque los vértices y las aristas son un ejemplode la propiedad invariante.
![Page 24: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/24.jpg)
Ejemplo:
¿Son isomorfos los siguientes grafos?
No son isomorfos porque G tiene 7 aristasy H tiene 6 aristas
G H
![Page 25: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/25.jpg)
Matrices de adyacencia
Los grafos G y H son isomorfos si y sólo sipara algún orden de su vértices sus matricesde adyacencia son iguales.
Esto implica que la clase de permutación dela matriz de adyacencia es un ejemplo deinvariante.
![Page 26: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/26.jpg)
Ejemplo de la matriz de adyacencia
![Page 27: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/27.jpg)
Invariantes Revisados
La siguiente lista contiene algunos elementospara comprobar que dos grafos no sonisomorfos.
• Ambos grafos deben tener el mismonúmero de aristas.• Ambos grafos deben tener el mismonúmero de vértices.• El grado de los vértices.
![Page 28: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/28.jpg)
Unión e intersección de grafos
Para dos grafos G = (V1, E1) y H = (V2, E2),su unión está definida de la siguientemanera:
1, 2 1 2( , )G H V V E E=U U U
Unión de grafos
![Page 29: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/29.jpg)
La intersección de dos grafos está definidade la siguiente manera:Para dos grafos G = (V1, E1) yH = (V2, E2),
1, 2 1 2( , )G H V V E E=I I I
Intersección de grafos
![Page 30: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/30.jpg)
Ejemplo:
![Page 31: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/31.jpg)
En un grafo la diferencia simétrica esdefinida de la siguiente forma:Si G = (V1, E1) y H = (V2, E2), entonces
( , )G H V E∆ =
Diferencia simétrica
donde y1 2V V V= ∆
1 2 1 2 1 2\ { \ }E E E uv u V V o v V V= ∆ ∈ ∈I I
![Page 32: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/32.jpg)
Cuando entonces es simplemente el gráfico vacío.
G H∆Continuación
1 2V V=
Ejemplos
![Page 33: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/33.jpg)
El subgrafo de supresión de vértices de G sedenota como G - {v}. Éste se obtienesuprimiendo de G un vértice v y toda lasaristas que incidan en el mismo.
Supresión de vértices
![Page 34: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/34.jpg)
Ejemplo:
![Page 35: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/35.jpg)
Si G = (V, E) con al menos una arista,entonces la supresión de arista de subgrafoobtenida de G se denota G – {e}. Donde seelimina la arista e ,pero no los vérticesincidentes en ella.
Supresión de aristas
![Page 36: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/36.jpg)
Ejemplo:
![Page 37: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/37.jpg)
37
Capítulo 2 – Algorítmos para Grafos
• Los algorítmos de grafos se pueden usar en aplicaciones para encontrar la ruta máscorta entre dos ciudades o la más barata, donde el vértice representa la ciudad y la línea la distancia más corta o el costo de viajar de una ciudad a otra.
• Los algorítmos para encontrar la ruta máscorta son de los más importantes en la teoría de algorítmos de grafos.
![Page 38: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/38.jpg)
38
Sección 2.1 – Búsqueda de Grafos“Breadth-First search”
• “Breadth-First search” (BFS) es una estrategiapara recorrer un grafo a través de los nodos.
• Supongamos que queremos contar elnúmero de vertices (o edges) quesatisfacen una propiedad P. (por ejemplo:contar todo vértice cuya distancia hacia unvértice ‘a’ sea de dos o más edges.)
• El siguiente algoritmo nos muestra un ejemplopara encontrar la distancia desde un vértice “v0’’ acualquier otro vértice.
![Page 39: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/39.jpg)
39
Sección 2.1 – Búsqueda de Grafos“Breadth-First search”
![Page 40: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/40.jpg)
40
#============================================================================# Breadth-first search algorithm to find the distance from a fixed vertex “v0” to any other vertex. =# INPUT: =# G - a connected graph =# v0 - a vertex =# OUTPUT: =# D - a list of distances to every other vertex =#============================================================================def graph_distance(G, v0):
V = G.vertices()Q = [v0]T = [ ]D = [ ]while Q<>[ ] and T< >V:
for v in Q:if not(v in T):
D.append([v,G.distance(v0,v)])if v in Q:
Q.remove(v)T.append(v)T = list(Set(T))Q = Q+[x for x in G.neighbors(v) if not(x in T+Q)]if T == V:
breakD.sort()print Q, Treturn D
![Page 41: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/41.jpg)
41
![Page 42: Teoría de Grafos en sage](https://reader034.vdocuments.pub/reader034/viewer/2022050706/5588f76ad8b42ab4418b46b1/html5/thumbnails/42.jpg)
Referencia:Joiner, D., Nguyen, M., & Cohen, N. (2010). Algorithmic graph theory
Johnsonbaugh, R., (2005). Matemáticas discretas. (6ta ed.). México: Pearson Prentice Hall.