Академический Документы
Профессиональный Документы
Культура Документы
10
11
12
13
Grafo
• Los árboles no pueden resolver cierto tipo de
problemas (situaciones en las que cada nodo tiene
mas de un padre).
• Los grafos (gráficas) son estructuras de datos no
lineales donde cada componente puede tener uno o
más predecesores y sucesores.
• Se distinguen dos elementos:
– Vértices: nodos
– Aristas: arcos, que conectan un vértice con otro
Grafos
• Los grafos se utilizan para representar redes,
dentro de las cuales se pueden mencionar:
– Transporte
– Redes de Comunicación
– Mapas
– Asignación de tareas
– Redes sociales, etc…
Vértices y Aristas
• ¿Cuántos vértices?
–7
• ¿Cuántas aristas?
– 11
Conceptos básicos de Grafos
• Un grafo está representado por los conjuntos
– G = (V, A)
• Una arista se identifica por un par de nodos del conjunto de
vértices, que puede o no estar ordenado.
• Una arista que va del vértice u al vértice v se representa
mediante la expresión a = (u,v)
• Para esta arista, u y v están conectados por a; a es incidente
en u y v.
• Grado de un vértice: grado(v) es el número de aristas que
contiene al nodo v. Si grado(v) = 0, se trata de un nodo
aislado.
Conceptos básicos de Grafos
• Lazo, ciclo o bucle: una arista que conecta a un vértice consigo
mismo, a = (u,u)
• Camino: un camino C de longitud n se define como la
secuencia de vertices que se deben seguir para llegar del
vértice origen v1 al vértice destino vn. P = (v1, …., vn)
• Camino cerrado: camino donde el primer y último nodo son el
mismo.
• Camino simple: camino donde todos los nodos son distintos a
excepción del primero y último que si pueden ser el mismo.
• Ciclo: un camino simple cerrado de longitud 3 o mayor.
Conceptos básicos de Grafos
• Grafo conexo: si existe un camino simple entre
cualesquiera dos nodos.
• Grafo árbol: un grafo conexo sin ciclos.
• Grafo completo: si cada vértice es adyacente a todos
los demás vértices. Un grafo completo de n vértices
tiene n(n-1)/2 aristas.
• Multigrafo: cuando al menos dos nodos de un grafo
se conectan mediante dos aristas (aristas múltiples o
paralelas).
Ejemplo
• Grado de los vértices:
• Caminos para llegar de a a e:
• Camino cerrado: ¿Longitud del camino?
• Camino simple: ¿Longitud del camino?
• Ciclo:
• ¿Es conexo?
• ¿Es completo?
Grafos dirigidos
• Se conocen también como digrafo.
• Se caracteriza porque cada arista a tiene una dirección
asignada.
• Una arista dirigida a = (u,v) se llama arco, y generalmente se
expresa como u v
• Terminología:
– a empieza en u y termina en v. u v
– u es el origen o punto inicial de a.
– v es el destino o punto final de a.
– U es predecesor de v, v es sucesor o vecino de u.
– u es adyacente hacia v y v es adyacente desde u.
Representación
• Matriz de adyacencia M(i,j) = j
– Una matriz booleana, de orden n, donde n indica
la cantidad de vértices de G. Las filas y columnas
son los V, y el contenido la existencia o no de
arcos o aristas que se representan normalmente
media 1 o 0. a e i o u
a 0 1 1 0 0
e 0 0 0 1 0
i 0 0 0 0 1
o 0 0 1 0 0
u 1 0 0 1 0
Representación
• Matrices de costos o de distancias
– Es una matriz con costo asociado a cada arco
a b c d e f
a 0 5 0 0 8 0
b 0 0 0 3 5 4
c 2 0 0 3 0 0
d 0 0 0 0 5 7
e 0 0 6 0 0 0
f 0 0 0 0 0 0
Representación - Matrices
• Ventajas
– Mas fácil de implementar
– Remover una arista se puede hacer en un tiempo O(1)
– Buscar si un vértice existe también puede realizarse en
O(1)
• Desventajas
– Mas espacio (v2)
– Aunque el grafo esté disperso siempre consumirá la misma
cantidad de espacio.
– Agregar un vértice siempre toma un
tiempo de O(v2)
Representación
• Lista de adyacencia
– Una lista de adyacencia para un vértice a es una lista
ordenada de todos los vértices adyacentes a a
– Recomendable utilizarse cuando la cantidad de aristas es
menor a v2
a a b
b c
c d
d
Representación - Lista
• Ventajas:
– Ahorra espacio, máximo espacio O(V + A)
– Agregar un vértice se hace de manera rápido
• Desventajas:
– Consultas sobre la existencia de una arista de un
vértice u a un vértice v no son eficientes. Se
realizan en un tiempo O(v)
Ejercicio
• Represente el siguiente grafo mediante una matriz de
adyacencia.
1 0 ∞ 6 3 ∞
2 3 0 ∞ ∞ ∞
3 ∞ ∞ 0 2 ∞
4 ∞ 1 1 0 ∞
5 ∞ 4 ∞ 2 0
1 2 3 4 5
1
2
3
4
5
Ejercicio
• Determine el camino mas corto entre todos
los vértices del siguiente grafo
a 1 b
4 2
3
c d
Simulación de Floyd
• https://www.cs.usfca.edu/~galles/visualizatio
n/Floyd.html
Actividades Pendientes
• Próxima clase
– Participación en clase Foro Caso de Éxito
• 09/03 11 p.m.
– Tarea 6.2 Ejercicios árboles
• 15/03 11 p.m.
– Publicación Foro Caso de Éxito
• 16/03 11 p.m.
– Tarea 7.2 Ejercicios Grafos
• 22/03 11 p.m.
– Tareas 5.3, 6.3 Opcional
– Publicación y respuesta Foro 2 (Semana 6)
• 23/03 10 a.m.
– Entrega proyecto final
Conclusiones
• Un grafo puede resolver algunos problemas que no pueden ser analizados
utilizando un árbol, debido a las restricciones de relaciones de este último.
• Un grafo consta de vértices y aristas.
• Un grafo puede ser conexo, completo, tener caminos simples, caminos
cerrados, poseer ciclos.
• Un grafo puede ser representado por medio de:
– Matriz de adyacencia / Matriz de costos
– Lista de adyacencia
• Algunos algoritmos para encontrar caminos mas cortos son:
– Dijkstra, que encuentra el camino mas corto en un vértice origen y el resto de los nodos
– Floyd, que encuentra el camino mas corto entre todos los pares de nodos.