You are on page 1of 12

GRAFOS & ÁRBOLES

Jesús Zamit- UOC


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.

n
0 ≤ m ≤  
2
Grado del vértice v: g(v) : como el número de aristas que son incidentes en él.

0 ≤ g ( v ) ≤ V − 1 , ∀v ∈ V

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 : ∑ g( v ) = 2 A


u∈V
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.

1 de 12
GRAFOS & ÁRBOLES
Jesús Zamit- UOC
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: G1 ∪ G 2 = (V1 ∪ V 2 , A1 ∪ A2 )

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: G1 × G 2 = ( V1 × V 2 , A ) 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

2 de 12
GRAFOS & ÁRBOLES
Jesús Zamit- UOC

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.

3 de 12
GRAFOS & ÁRBOLES
Jesús Zamit- UOC

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.

4 de 12
GRAFOS & ÁRBOLES
Jesús Zamit- UOC

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.

5 de 12
GRAFOS & ÁRBOLES
Jesús Zamit- UOC

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.

6 de 12
GRAFOS & ÁRBOLES
Jesús Zamit- UOC
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

7 de 12
GRAFOS & ÁRBOLES
Jesús Zamit- UOC
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.

8 de 12
GRAFOS & ÁRBOLES
Jesús Zamit- UOC
Á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)

9 de 12
GRAFOS & ÁRBOLES
Jesús Zamit- UOC
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.

10 de 12
GRAFOS & ÁRBOLES
Jesús Zamit- UOC
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.

11 de 12
GRAFOS & ÁRBOLES
Jesús Zamit- UOC

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.

12 de 12

You might also like