resumen_grafo_jein

12
GRAFOS & ÁRBOLES Jesús Zamit- UOC 1 de 12 Grafo: par ordenado ( V, A) donde V es un conjunto no vacío, cuyos elementos son los vértices, y A es un subconjunto del conjunto de parejas no ordenadas. Adyacencia: dos vértices u, v son adyacentes si y solo si existe una arista uv , de decir si {u,v} A , se denota por u u. a = uv une o conecta los vértices en sus extremos, - Vértices u, v y la arista uv son incidentes - Vértices u y v son vértices vecinos. Orden del grafo: cardinal del conjunto, es decir, número de vértices del grafo n = |V | ≥ 1. Medida del grafo: cardinal del conjunto de aristas, es decir, el número de aristas. m = |A| ≥ 0. 2 n m 0 Grado del vértice v: g(v) : como el número de aristas que son incidentes en él. V v , V ) v ( g - 1 0 Grafo regular: si todos los vértices son del mismo grado, si el grado es r entonces es r- regular Subgrafo: Grafo H = (V’,A’) donde V’ V y A’ A - Subgrafo generado o inducido: - Subgrafo generador o de expansión: si el conjunto de vértices es igual V= V’ y A’A - Grado de un subgrafo g H (u) Fórmula de los grados : A ) v ( g V u 2 = La suma de los grados de un grafo es el doble del número de aristas El número de vértices de grado impar es par. Grafo nulo: N n de orden n ≥ 1 es un grafo de n vértices y 0 aristas. N 1 es un grafo trivial. Grafo ciclo: C n de orden n ≥ 3 Grafo trayecto: T n de orden n ≥ 2 Grafo completo::K n de orden n es el grafo con todas las aristas posibles. Grafo bipartido: partición del conjunto de vértices. Aristas solo conectan vértices de V1 con vértices de V2. Grafo bipartido completo:K n,m con todas las aristas posibles conectando vértices de V1 con vértices de V2. Estos grafos son m-regulares.

Upload: belcedub

Post on 11-Jun-2015

959 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Resumen_Grafo_jein

GRAFOS & ÁRBOLES Jesús Zamit- UOC

1 de 12

Grafo: par ordenado ( V, A) donde V es un conjunto no vacío, cuyos elementos son los vértices, y A es un subconjunto del conjunto de parejas no ordenadas. Adyacencia: dos vértices u, v son adyacentes si y solo si existe una arista uv , de decir si {u,v} ∈ A , se denota por u ≈ u. a = uv une o conecta los vértices en sus extremos,

- Vértices u, v y la arista uv son incidentes - Vértices u y v son vértices vecinos.

Orden del grafo: cardinal del conjunto, es decir, número de vértices del grafo n = |V | ≥ 1.

Medida del grafo: cardinal del conjunto de aristas, es decir, el número de aristas.

m = |A| ≥ 0.

≤≤≤≤≤≤≤≤

2

nm0

Grado del vértice v: g(v) : como el número de aristas que son incidentes en él. Vv,V)v(g ∈∈∈∈∀∀∀∀−−−−≤≤≤≤≤≤≤≤ 10

Grafo regular: si todos los vértices son del mismo grado, si el grado es r entonces es r-

regular

Subgrafo: Grafo H = (V’,A’) donde V’ ⊂ V y A’ ⊂ A - Subgrafo generado o inducido: - Subgrafo generador o de expansión: si el conjunto

de vértices es igual V= V’ y A’⊂ A - Grado de un subgrafo gH(u)

Fórmula de los grados : A)v(gVu

2====∑∑∑∑∈∈∈∈

La suma de los grados de un grafo es el doble del número de aristas El número de vértices de grado impar es par.

Grafo nulo: Nn de orden n ≥ 1 es un grafo de n vértices y 0 aristas. N1 es un grafo

trivial. Grafo ciclo: Cn de orden n ≥ 3

Grafo trayecto: Tn de orden n ≥ 2

Grafo completo::Kn de orden n es el grafo con todas las aristas posibles. Grafo bipartido: partición del conjunto de vértices. Aristas solo conectan vértices de V1 con vértices de V2. Grafo bipartido completo:Kn,m con todas las aristas posibles conectando vértices de V1 con vértices de V2. Estos grafos son m-regulares.

Page 2: Resumen_Grafo_jein

GRAFOS & ÁRBOLES Jesús Zamit- UOC

2 de 12

Grafo estrella: En de orden n(n ≥ 3) es un caso particular del garfo bipartido completo En = K1,n-1 . Orden n y medida n-1 Grafo rueda: Rn de orden n(n ≥ 4) tiene un único vértice de grado n-1. Orden n y medida 2(n-1).

Secuencia gráfica: si existe un grafo de orden n tal que s es la secuencia de grados de G.

Algoritmo de Havel-Hakimi: permite de manera recursiva saber si una secuencia es gráfica. En cada iteración la longitud disminuye una unidad. La secuencia es gráfica si tras n-1 iteraciones se obtiene un 0. Complejidad O(n2).

Pasos: • Ordenar los vértices de forma descendente. • Se quita el primero y se resta uno a los que quedan tantos

como el número quitado. • Si queda desordenado se ordena de nuevo. • Hasta que lleguemos a 0.

Manipulación de grafos : Eliminar un vértice. : Eliminar una arista. : Añadir los vértices un conjunto W tal que W ∩ V = Ø : Añadir una arista {u,v} siendo u y v no adyacentes. : Contracción de arista : Subdivisión elemental de la arista Complementario: Gc grafo que se construye sobre el mismo conjunto de vértices de tal modo que dos vértices son adyacentes en Gc si y solo si No lo son en G. El complementario del complementario es el original. Union de grafos: (((( ))))212121 AA,VVGG ∪∪∪∪∪∪∪∪====∪∪∪∪ Suma de grafos: grafo con los vértices y las aristas de los grafos originales más las aristas que conecten todos los vértices del primero con el segundo.

Producto de grafos: )A,VV(GG 2121 ××××====×××× de manera que los vértices de G1, G2 son adyacentes si y solo si se cumple alguna de las condiciones

Grafos idénticos:si y solo si V1 = V2, A1 =A2

Grafos isomorfos si y solo si existe una biyección φ: V1:V2 (si cada vértice de V1 tiene uno en V2) que conserva las adyacencias y las no adyacencias, es decir u ≈ v es equivalente a ⇔ φ(u) ≈ φ(v). G1 ≅ G2

Page 3: Resumen_Grafo_jein

GRAFOS & ÁRBOLES Jesús Zamit- UOC

3 de 12

Condiciones de isomorfismo: Dos grafos son isomorfos si:

- tienen el mismo orden - tienen la misma medida - sus secuencias de grados coinciden - conservan la misma estructura

Autocomplementario: si es isomorfo a su complementario. Multigrafo: grafo con aristas múltiples. Pseudografo: admite aristas del tipo {u,u} conectando un vértice consigo mismo (bucles o lazos), de forma múltiple y aristas múltiples en pares de vértices. Grafo dirigido o Dígrafo:par ordenado en que V es un conjunto finito y A subconjunto del producto V x V. Arco:arista orientada, es un par ordenado (u,v) ∈ V x V Bucle orientado:u = v Origen del arco a=(u,v) es el vértice u. Final o extremo es el vértice v Orden del dígrafo:número de vértices. Medida del dígrafo:número de arcos.

Grado de salida:g+(v):número de arcos que tienen el vértice v como origen Grado de entrada:g-(v):número de arcos cuyo extremo es el vértice v . Grafo subyacente:(V,A’) de manera que {u,v} ∈ A’ si, y solo si, (u,v) ∈ A o (v,u) ∈ A.

Almacenamiento

Matriz de adyacencia: matriz B = (bi,j) dada por (bi,j) = 1 si los vértices vi y vj son adyacentes, 0 en caso contrario. Características:

- se almacena en una tabla (array) bidimensional - estructura fácil de manipular - espacio necesario de un grafo con orden n es

proporcional a n2 - si no es dirigido, matriz adyacencia triangular. - Matriz de adyacencias para grafos densos con muchas

aristas Lista de adyacencia: lista de vértices adyacentes a un vértice dado. Características:

- espacio necesario de un grafo con orden n y medida m es proporcional a n + 2m

- estructura difícil de manipular - poco espacio de almacenamiento.

Page 4: Resumen_Grafo_jein

GRAFOS & ÁRBOLES Jesús Zamit- UOC

4 de 12

RECORRIDOS Y CONECTIVIDAD Recorrido: secuencia de vértices con la propiedad de que dos vértices consecutivos en la secuencia deben ser los extremos de una arista v1 ─ v2

Recorrido cerrado: si los extremos coinciden, empieza y acaba en el mismo vértice. Longitud de un recorrido R:ℓ (R): número de aristas que lo componen. Recorrido trivial:o de longitud 0 es el formado por un único vértice. Itinerario: recorrido con todas las aristas diferentes. Camino: itinerario que no se repiten vértices. Circuito: camino cerrado que no se repiten aristas.

Ciclo: camino cerrado que solo se repite el primer-ultimo vértice (el mismo). Si en un G hay dos recorridos diferentes que conectan un par de vértices, entonces el G contiene algún ciclo. Si todos los vértices de un G son de grado ≥ 2, entonces el G contiene algún ciclo. Grafo sin ciclos: acíclico.

Algoritmo de búsqueda primeramente en profundidad (DFS) (Depth First Search) Número total de operaciones será proporcional a 2n + 2m Complejidad O(n+m) Se aplica a: buscar componentes conexas y si es un grafo acíclico. No sirve para grafos dirigidos.

Page 5: Resumen_Grafo_jein

GRAFOS & ÁRBOLES Jesús Zamit- UOC

5 de 12

Algoritmo de búsqueda primeramente en anchura (BFS) (Breadth First Search) Número total de operaciones será proporcional a n + 2m Complejidad O(n+m) Se aplica a: coloración, búsqueda ciclo más corto o cálculo distancias. Árbol generador de un grafo conexo.

Page 6: Resumen_Grafo_jein

GRAFOS & ÁRBOLES Jesús Zamit- UOC

6 de 12

Conectividad: posibilidad de establecer un recorrido entre dos vértices cualesquiera Grafo conexo: si para cada par de vértices existe un camino. Componente conexa: esta formada por todos los vértices que se pueden unir entre si mediante caminos de cualquier longitud. Un grafo es conexo si y solo si tiene una componente conexa. Si un grafo es conexo: m ≥ n – 1 (medida es igual o mayor que el orden menos 1)

m ≥n – k (medida es igual o mayor que el orden menos componentes conexas)

Test de conexión: se utiliza el algoritmo DFS para comprobar si G es conexo, devuelve la lista R con todos los vértices accesibles a partir de uno fijado. Si R tiene todos los vértices es conexo. Comprobar si un G es conexo, complejidad O(n+m) igual que DFS.

Page 7: Resumen_Grafo_jein

GRAFOS & ÁRBOLES Jesús Zamit- UOC

7 de 12

Distancia: es la mínima de las longitudes de los caminos que conectan los vértices. dG (u,v) = min {ℓ(C) |C es un camino u─v} ∝∝∝∝ = inaccesible d(u,v) = distancia entre dos vértices. Diámetro:D(G) = max {dG (u,v) |u,v ∈∈∈∈ V} Grafo bipartido, si y solo si todos los ciclos son de longitud par Grafo ponderado:pesos en las aristas del grafo.

Camino mínimo en un grafo ponderado. Algoritmo de Dijkstra:se aplica sobre un grafo ponderado y calcula la distancia desde un vértice inicial al resto de vértices. Complejidad máxima O(n2)

Camino mínimo en un grafo ponderado. Se utiliza el algoritmo de exploración en anchura BFS

Page 8: Resumen_Grafo_jein

GRAFOS & ÁRBOLES Jesús Zamit- UOC

8 de 12

Caminos mínimos entre todos los vértices. Aplicando n veces el algoritmo de Dijkstra con complejidad O(n3) o Algoritmo de Floyd: comportamiento mejor para grafos densos. Complejidad O(n3) = igual que el de Dijkstra.

Page 9: Resumen_Grafo_jein

GRAFOS & ÁRBOLES Jesús Zamit- UOC

9 de 12

ÁRBOLES Árbol: grafo conexo sin ciclos. Bosque: grafo acíclico sin la condición de conectividad. T = (V,A) es una árbol, propiedades: - entre cada pareja de vértices hay un camino - T es conexo y m = n-1 - T es acíclico y m = n-1 Hoja: es un vértice de grado 1.

Todo árbol con un mínimo de dos vértices tiene un mínimo de dos hojas Árbol generador o de expansión: es un subgrafo generador que tiene estructura de árbol y por tanto tiene todos los vértices del grafo. G = (V,A) , propiedades: - G es conexo - G contiene un arbol generador Si G es conexo de orden n entonces contiene un árbol generador de orden n y medida m = n-1 Si G no es conexo entonces cada componente conexa contiene un árbol generador, cuya reunión es un bosque, el bosque generador de G. Determinación de un árbol generador: mediante el algoritmo BFS. Árboles generadores: Un árbol generador de un grafo es un subgrafo generador que tiene estructura de árbol; en consecuencia, un árbol generador contiene todos los vértices del grafo. También se denomina árbol de expansión.

Árbol generador minimal: Un árbol generador minimal de G es un árbol generador de G, de peso ω(G) mínimo. Pudiendo existir más de uno.

Un árbol generador maximal de G es un árbol generador de G, de peso ω(G) máximo.

Los algoritmos de Kruskal y Prim son dos algoritmos de obtención de árboles generadores minimales.

Algoritmo de Kruskal: - lista con las aristas de menos a más peso, en caso de

igualdad la de vértice menor. - se escogen las aristas, tantas como vértices menos 1 y

se marcan, descartando las aristas del árbol que formen ciclo con las anteriores.

- las marcadas forman el árbol generador minimal, se suman los pesos.

Complejidad: O(m log m)

Page 10: Resumen_Grafo_jein

GRAFOS & ÁRBOLES Jesús Zamit- UOC

10 de 12

Algoritmo de Prim:

Complejidad: O(n2) como el algoritmo de Dijkstra. Árbol con raíz:

• T es un dígrafo asimétrico (si no tiene ciclos de longitud 2). • El grafo subyacente es un árbol. • Para todo vértice v ∈ V existe un r v camino.

Si T = (V,A) es un grafo asimetrico, entonces:

• T es un arbol con raiz • T tiene una raiz r con g-r=0 y g-v=1 para todo vértice v

diferente de la raiz. Hoja o vértice terminal: vértice que no tiene hijos, grado 0. el resto de vértices internos o no terminales Nivel: de un vértice es la longitud del único r v camino. Altura o profundidad: h(T) : es el máximo de los niveles del G. Árbol equilibrado: nivel = a h(T) o a h(T)-1.

Page 11: Resumen_Grafo_jein

GRAFOS & ÁRBOLES Jesús Zamit- UOC

11 de 12

Exploración de árbol con raíz:

GRAFOS EULERIANOS & HAMILTONIANOS

Recorrido euleriano: recorrido abierto que contiene todas las aristas del grafo sin repetición. Circuito euleriano: circuito que pasa por todas las aristas del grafo. Grafo euleriano: grafo que admite un circuito euleriano. Si G es un grafo conexo:

• G es euleriano • Los grados de los vértices son pares • Conjunto de las aristas admite una partición en circuitos

que no tienen aristas en común. Un grafo conexo contiene un circuito euleriano si y solo si tiene exactamente dos vértices de grafo impar. Construcción de un circuito euleriano Algoritmo de Hierholzer: concatena circuitos sin aristas en común.

Page 12: Resumen_Grafo_jein

GRAFOS & ÁRBOLES Jesús Zamit- UOC

12 de 12

Complejidad: O(m) Camino hamiltoniano: si pasa por todos los vértices sin repetición. Ciclo hamiltoniano: pasa por todos los vértices del G. Grafo hamiltoniano: grafo que admite un ciclo hamiltoniano. Grafo 2-conexo: si cada pareja de vértices u y v de G esta conectada por un mínimo de 2 caminos disjuntos, es decir, dos caminos que los únicos vértices que tienen en común son los extremos u y v. Si G es hamiltoniano:

• G es conexo y sus vértices son de grado ≥ 0 • G es 2-conexo • Si G es (V1,V2)-bipartido entonces |V1| = |V2|

Complejidad: NP – intratable TSP (problema del viajante de comercio) Buscar un ciclo hamiltoniano en un grafo.