El documento define conceptos básicos sobre grafos como nodos, aristas, grafos dirigidos, multígrafos, grafos simples e isomorfismo de grafos. También explica las matrices de adyacencia e incidencia, así como conceptos de caminos, ciclos, grafos conexos, grafos eulerianos y hamiltonianos. Por último, introduce grafos etiquetados y describe el algoritmo de Dijkstra para encontrar el camino más corto en un grafo.
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
Definiciones y conceptos básicos de grafos
1. GRAFOS
REPÚBLICA BOLIVARIANA DE VENEZUELA
UNIVERSIDAD PEDAGÓGICA EXPERIMENTAL LIBERTADOR
INSTITUTO DE MEJORAMIENTO PROFESIONAL DEL MAGISTERIO
EXTENSIÓN ACARIGUA
Participantes:
Rivero Yohana
C.I: 15.691.118
Pineda Gisela
C.I: 12.088.861
Acarigua, Julio de 2017
2. DEFINICIONES BÁSICAS
Grafos: son estructuras que constan de vértices o nodos y de aristas o arcos que
conectan los vértices entre sí.
Un grafo G consiste en dos cosas:
1. Un conjunto V de elementos llamados nodos (o puntos o vértices)
2. Un conjunto E de aristas tales que cada arista e de E está identificada por un único
(desordenado) par de [u, v] de nodos de V, denotado por e = [u, v].
Por ejemplo, para el siguiente grafo el conjunto de nodos (o vértices) es {A, B, C, D, E,
F, G, H} y el conjunto de arcos (o aristas) es {(A, B), (A, C), (A, D), (C, D), (C, F), (E,
G), (A, A)}
3. DEFINICIONES BÁSICAS
Dígrafo: también llamado grafo dirigido G, A cada arista se le asigna un orden de sus
extremos (flechas).
V=V´={v1, v2, v3}. A={v1v2, v2v3, v3v1},
A´={v2v1, v3v1, v2v3}
Multígrafo: Es un grafo que puede contener más de una arista entre dos vértices.
V={v1, v2, v3}, A={v1v2,v1v2, v2v3, v1v3, v1v3}
Grafos Simples: Un grafo simple G = (V, A) costa de un conjunto no vacío de vértices V
y de un conjunto A de pares no ordenados de elementos distintos de V, a estos pares
se les llama aristas. En otras palabras un grafo simple es un grafo en los que existe a lo
más una arista que une dos vértices distintos.
4. ISOMORFISMO DE GRAFOS
Definición:
Dos grafos G1 y G2 son isomorfos si existe una función biyectiva f entre los vértices
de G1 y G2, y una función biyectiva g entre lados de G1 y G2 tales que un lado e es
incidente a v y w en G1 si solo si el lado g (e ) es incidente a los vértices f (v) y f (w)
en G2. Al par de funciones f y g se le denomina iso m o rfism o .
Ejemplo:
Sean los siguientes grafos G1 y G2
5. ISOMORFISMO DE GRAFOS
Un isomorfismo para los grafos anteriores G1 y G2 esta definido por:
f (a) = A f (b) = B f (c) = C f (d) = D f (e) = E
y g (Xi) = Yi, i = 1, ... , 5
Los grafos G1 y G2 son isomorfos si y solo si para alguna ordenación de vértices y lados
sus matrices de incidencia son iguales. Veamos las matrices de incidencia de los grafos
anteriores:
6. MATRIZ DE ADYACENCIA
Definición
Sea G un grafo con n vértices {vi}ni=1. Llamamos matriz de adyacencia a la matriz de orden
n×n, A = [aij] tal que aij es igual al número de aristas (arcos) del vértice vi al vj.
Propiedades:
1. Sea G un grafo no dirigido con matriz de adyacencia A. Entonces, la suma de los elementos
de la fila i (o columna i) es igual al grado del vértice vi.
2. Sea G un grafo dirigido con matriz de adyacencia A. Entonces, la suma de los elementos de la
fila i es igual al grado de salida del vértice vi y la suma de los elementos de la columna j es igual
al grado de entrada del vértice j.
3. Sea G un grafo con matriz de adyacencia A. Entonces, el elemento (i, j) de la matriz Ar, r ≥ 1,
es igual al número de cadenas de vi a vj de longitud r.
7. MATRIZ DE INCIDENCIA
Definición
Sea G = (V, A) un grafo no dirigido con n vértices y m aristas siendo V= {vi}ni =1 y A=
{ai}m i 1.
Llamamos matriz de incidencia de G a la matriz de orden n × m .
0 si vi no es incidente con aj
M= [m ij] / m ij = 1 si vi es incidente con aj
2 si aj es un bucle en vi
Sea G = (V, A) un grafo dirigido con n vértices y m arcos siendo V= {vi}ni =1 y A=
{ai}m i =1. Llamamos
matriz de incidencia de G a la matriz de orden n × m
0 si vi no es incidente con aj
B= [bij] / bij = 1 si vi es vértice inicial de aj
−1 si vi es vértice final de aj
2 si aj es un bucle en vi
8. MATRIZ DE INCIDENCIA
Propiedades:
1. Sea G un grafo no dirigido. La suma de los elementos de cada fila de la matriz de
incidencia es igual al grado del correspondiente vértice.
2. Sea G un grafo no dirigido. La suma de los elementos de cada columna de la matriz
de incidencia es igual a 2.
3. Sea G un grafo dirigido sin bucles. La suma de los elementos de cada columna de la
matriz de incidencia es igual a 0.
9. CAMINOS, CICLOS Y GRAFOS CONEXOS
Camino:
Un camino es una cadena con todos sus vértices distintos. Un camino P de
longitud n desde un nodo u se define como la secuencia de n+1 nodos.
P= (Voi, Vi, V2i,… Vm)
Tal que u= Voi, Vi es adyacente a Vi -1 para i=1,2,…, n; y Vn = V. El camino P se
dice que es cerrado si Vo = Vn. El camino P se dice que es simple se todos los
nodos son distintos a excepción de Vo que puede ser igual a Vn ; es decir, P es
simple si los nodos Vo, V1, …, Vn - 1 , son distintos y los nodos V1, V2,…, Vn son
también distintos. De acuerdo a lo anterior, definimos un ciclo como un camino
simple cerrado de longitud 3 o más. Un ciclo de longitud k se llama k-ciclo.
Ciclos:
Un ciclo es una cadena simple cerrada con todos sus vértices distintos.
10. CAMINOS, CICLOS Y GRAFOS CONEXOS
Grafos Conexos:
Un grafo G es conexo si y solo si existe un camino simple para cualesquiera dos
de sus nodos. Se dice que un grafo G es completo si cada nodo u de G es
adyacente a todos los demás nodos de G claramente, un grafo así es conexo, un
grafo completo de n nodos tendrá n (n-1)/2 aristas. Si un grafo no es conexo
entonces se dirá que es desconexo.
Ejemplo:
11. GRAFOS EULERIANOS Y HAMILTONIANOS
Existen todavía algunas familias de grafos que se derivan del concepto de grafos
conexos. Este es el caso de los grafos eulerianos y los grafos hamiltonianos.
Grafos Eulerianos: Un grafo euleriano es un grafo que tiene un circuito euleriano (o
multígrafo).
Teorema (Euler 1736): Un grafo (o multígrafo) conexo es euleriano si y sólo si todos
sus nodos tienen grado par.
A partir de la demostración del teorema de Euler se puede escribir un algoritmo
para construir un circuito euleriano para un grafo que tiene todos sus nodos de
grado par.
12. GRAFOS EULERIANOS Y HAMILTONIANOS
Entrada: G = (V;X) conexo con todos los nodos de grado par.
Comenzar por cualquier nodo v y construir un ciclo Z mientras exista e 2 X n Z hacer
elegir w tal que existe (w; u) 2 Z y (w; z) 2 X n Z desde w construir un ciclo D con D Z
= ;Z := unir Z y D por medio de w.
fin mientras
retornar Z
Cual es la complejidad de este algoritmo?
Un camino euleriano en un grafo (o multígrafo) G es un camino que pasa por cada
arista de G una y solo una vez. Un grafo orientado o digrafo, se dice euleriano si
tiene un circuito orientado que pasa por cada arco de G una y solo una vez.
Teorema: Un grafo (o multígrafo) conexo tiene un camino euleriano si y solo si tiene
exactamente dos nodos de grado impar.
Teorema: Un digrafo conexo es euleriano si y solo si para todo nodo v de G se verca
que din(v) = dout (v).
13. GRAFOS EULERIANOS Y HAMILTONIANOS
Problema del cartero chino (Guan, 1962)
Definición: Dado un grafo G = (V;X) con longitudes asignadas a sus aristas, l : X !
R0, el problema del cartero chino consiste en encontrar un circuito que pase por
cada arista de G al menos una vez de longitud mínima.
•Si G es euleriano, un circuito euleriano es la solución del problema del cartero
chino.
•Hay algoritmos polinomiales para el problema del cartero chino cuando G es
orientado o no orientado.
• Pero no se conocen algoritmos polinomiales (el problema no esta
computacionalmente resuelto) si el grafo es mixto (algunas aristas orientados y
otros no).
14. GRAFOS EULERIANOS Y HAMILTONIANOS
Grafos Hamiltonianos:
Un circuito en un grafo G es un circuito hamiltoniano si pasa por cada nodo de G una y solo
una vez. I Un grafo se dice hamiltoniano si tiene un circuito hamiltoniano. No se conocen
buenas caracterizaciones para grafos hamiltonianos.
Como intentar construir un circuito hamiltoniano?
No se conocen algoritmos polinomiales para decidir si un grafo es hamiltoniano o no.
Teorema (condición necesaria): Sea G un grafo conexo. Si existe W V tal que G nW tiene c
componentes conexas con c > jWj entonces G no es hamiltoniano.
Es cierta la recproca de este teorema?
Teorema (Dirac) (condición sucinte): Sea G un grafo con n 3 y tal que para todo v 2 V se
verica que d(v) n=2
entonces G es hamiltoniano.
Es cierta la recproca de este teorema?
15. GRAFOS EULERIANOS Y HAMILTONIANOS
Problema del viajante de comercio (TSP)
Definición: Dado un grafo G = (V;X) con longitudes asignadas a las aristas, l : X ! R0,
queremos determinar un circuito hamiltoniano de longitud mínima.
No se conocen algoritmos polinomiales para resolver el problema del viajante de
comercio.
Tampoco se conocen algoritmos -aproximados polinomiales para el TSP general (si
se conocen cuando las distancias son euclideanas).
Es el problema de optimización combinatoria mas estudiado.
16. GRAFOS ETIQUETADOS
Un grafo G se dice que esta etiquetado si sus aristas tienen datos asignados. En particular, se dice que
G tiene peso si cada arista e de G tiene asignado un valor numérico no negativo w (e ) llamado peso o
longitud de e . En este caso, a cada camino P de G se le asigna un peso o una longitud que es la suma
de los pesos de las aristas que constituyen el camino P. Si no se da información cobre pesos,
asumiremos que el grafo G tiene peso pero de forma tal que los pesos w (e ) de cada arista e de G es
igual a 1.
De acuerdo a la información anterior, se puede generalizar la definición de grafo si consideramos lo
siguiente:
Aristas múltiples.- Dos aristas e 0 y e 1 distintas se llaman aristas múltiples si ambas conectan los
mismos extremos, o sea, si e 0 = [u, v] y e 1 = [u, v].
Bucles.- Una arista e se llama bucle si tiene extremos idénticos, o sea, si e 1 = [u, u].
17. ALGORITMODE DIJKSTRA
También llamado algoritmo de caminos mínimos, es un algoritmo para la determinación del
camino más corto dado un vértice origen al resto de vértices en un grafo con pesos en cada
arista. Su nombre se refiere a Edsger Dijkstra, quien lo describió por primera vez en 1959.
Aplicaciones
En múltiples aplicaciones donde se aplican los grafos, es necesario conocer el camino de
menor costo entre dos vértices dados:
Distribución de productos a una red de establecimientos comerciales.
Distribución de correos postales.
Sea G = (V, A) un grafo dirigido ponderado.
El problema del camino más corto de un vértice a otro consiste en determinar el camino de
menor costo, desde un vértice u a otro vértice v. El costo de un camino es la suma de los
costos (pesos) de los arcos que lo conforman.
18. ALGORITMO DE DIJKSTRA
Características del algoritmo
•Es un algoritmo greddy.
•Trabaja por etapas, y toma en cada etapa la mejor solución sin considerar consecuencias
futuras.
•El óptimo encontrado en una etapa puede modificarse posteriormente si surge una solución
mejor.
Ejemplo:
El siguiente ejemplo se desarrollará con el fin de encontrar el camino más corto desde a hasta
z:
Leyenda::
Rojo: Aristas y vértices pertenecientes a la
solución momentánea.
Azul: Aristas y vértices candidatos.
19. ALGORITMO DE DIJKSTRA
Paso 1
En este primer paso, podemos apreciar que hay
tres candidatos: Los vértices b, c y d. En este caso,
hacemos el camino desde el vértice a, hasta el
vértice d, ya que es el camino más corto de los tres.
Soluciónmomentánea:
•Camino: AD
•Distancia:5
Paso 2
Ahora, vemos que se añade un nuevo
candidato, el vértice e, y el vértice c,
pero esta vez a través del d. Pero el
camino mínimo surge al añadir el vértice
c.
Soluciónmomentánea:
•Camino: ADC
•Distancia:9
20. ALGORITMO DE DIJKSTRA
Paso 3
En este paso no se añade ningún candidato
más puesto que el último vértice es el mismo
que en el paso anterior. En este caso el camino
mínimo hallado es el siguiente:
Soluciónmomentánea:
•Camino: ADCB
•Distancia:11
Paso 4
Como podemos comprobar, se han
añadido dos candidatos nuevos, los
vértices f y g, ambos a través del vértice b.
El mínimo camino hallado en todo el grafo
hasta ahora es el siguiente:
Soluciónmomentánea:
•Camino: ADCBF
•Distancia:15
21. ALGORITMO DE DIJKSTRA
Paso 5
En este antepenúltimo paso, se añaden tres
vértices candidatos, los vértices g, z y e. Este
último ya estaba pero en esta ocasión aparece a
través del vértice f. En este caso el camino
mínimo, que cambia un poco con respecto al
anterior, es:
Soluciónmomentánea:
•Camino: ADCBF
•Distancia:17Paso 6
En el penúltimo paso, vuelve a aparecer otro
candidato: el vértice z, pero esta vez a través
del vértice g. De todas formas, el camino
mínimo vuelve a cambiar para retomar el
camino que venía siguiendo en los pasos
anteriores:
Soluciónmomentánea:
Camino: ADCBFE
Distancia:18
22. ALGORITMO DE DIJKSTRA
Paso 7
Por fin, llegamos al último paso, en el que sólo
se añade un candidato, el vértice z a través del
e. El camino mínimo y final obtenido es:
SoluciónFinal:
Camino: ADCBFEZ
Distancia:23
Observaciones:
Los pesos de las aristas deben ser no negativos.
El algoritmo de Dijkstra NO proporciona un árbol
generador mínimo.
23. Árbol
Un grafo conexo T sin ciclos se llama grafo árbol, árbol libre o simplemente
árbol. Esto significa en particular, que existe un único camino simple P entre
cada par de nodos u y v de T. Más aún, si T es un árbol finito de m nodos,
entonces T tendrá m -1 aristas.
24. Arboles de Búsqueda Binaria
Los árboles de búsqueda son estructuras de datos que soportan las siguientes
operaciones de conjuntos dinámicos: Search (Búsqueda), Minimum (Mínimo),
Maximum (Máximo), Predecessor (Predecesor), Successor (Sicesor), Insert
(Inserción), y Delete (eliminación).
• Los árboles de búsqueda se pueden utilizar así como diccionarios y como colas de
prioridad.
• Estas operaciones toman tiempo proporcional a la altura del árbol.
• Para un árbol completo binario, esto es Θ(lg n) en el pero caso; sin embargo, si el
árbol es una cadena lineal de n nodos, las mismas operaciones toman Θ(n) en el
pero caso.
• Para árboles creados aleatoriamente, la altura es O(lg n), con lo cual los tiempos
son Θ(lg n).
25. Propiedad de un árbol búsqueda binaria
• Sea x un nodo en un árbol de búsqueda binaria. Si y es un nodo del sub-árbol
izquierdo de x, entonces la clave de y ≤ clave de x. Si y es un nodo del subárbol
dercho de x, entonces la clave de x ≤ clave de y.
• Por ejemplo, dos árboles de búsqueda binaria son:
• La propiedad del árbol de búsqueda nos permite imprimir o recorrer sus nodos en el
orden de sus claves haciendo uso de un simple algoritmo recursivo.
26. Árbol de Decisión
•Es una técnica útil para problemas en los que se presentan decisiones
secuenciales.
•Aunque esta técnica es de mayor utilidad para situaciones en que el riesgo
esta presente también es empleada en condiciones de certeza.
Símbolos a usaren Arboles de Decisiones
• Nodo de decisión del cual salen varias alternativas.
• Nodo de un estado de la naturaleza.
27. Pasos a seguirpara usarÁrbol de Decisiones
1.Definir el Problema
2.Dibujar el Árbol de Decisiones
3.Asignarles probabilidades a los diversos estados.
4.Estimar los resultados de cada una de las posibles combinaciones de alternativas y
estados de la naturaleza.
5.Resolver el problema calculando los valores monetarios esperados de cada nodo de los
estados de la naturaleza
NOTA: debehacersedeatrás paraadelante.
Finalidad del Árbol de Decisiones
•Mostrar gráficamente toda la información de un problema.
•Dibujar la representación esquemática del problema logrando así que la información se
entienda mas fácilmente.
•Simplificar los cálculos de probabilidades muy complejas.
28. Arboles Generadores:
Un árbol T es un árbol generador de un grafo G si T es un subgrafo de G que
contiene todos los vértices de G.
A esta característica general es posible agregar ciertos teoremas de modo de
detallar aún más el alcance de la definición. Es así como el Grafo que contiene a T
debe ser conexo, pues de lo contrario no existiría un subgrafo que contuviera todos
sus vértices.
En general un grafo G tendrá varios árboles generadores ,como el del ejemplo 1 el
cual tiene a lo menos dos arboles generadores T1 yT2.