Anda di halaman 1dari 14

Grafos

Jos Luis Allende Reiher

Definiciones

Implementaciones

Recorridos

Definiciones

Es un par ordenado G(N,A) de conjuntos.


N: Conjunto de nodos o vrtices no vaco.
A: Conjunto de arcos o aristas que conectan los nodos
pertenecientes a N.
Si los arcos son un conjunto n,m se dice que el grafo es no
dirigido. En el caso en que los arcos sean pares ordenados
(n,m) el grafo es dirigido.

Algoritmos

Definiciones

Implementaciones

Recorridos

Algoritmos

Definiciones
Adyacencia Un nodo se dice adyacente de n si (n,m) A (o bien
n, m en el caso de un grafo no dirigido).
Grado El grado de un nodo se define como el nmero de
adyacentes a l.
Camino Secuencia de nodos n1 , . . . , nk tal que(n1 , n2 ),
. . . ,(nk1 , nk2 ) son arcos del grafo, entonces se dice
que el camino desde n1 a nk .
Longitud del camino es el nmero de arcos (k-1). El camino es
simple si todos los nodos del camino son distintos con
la posible excepcin del primero y ltimo.
Se dice que 2 nodos estn conectados si existe
un camino de largo 1, a lo menos, entre ellos.

Definiciones

Implementaciones

Recorridos

Algoritmos

Definiciones

Ciclo o circuito es un camino simple que termina en el mismo nodo


que empieza.
Subgrafo es un grafo que forma parte o est incluido en otro
grafo. El par G=(N,A) es un subgrafo del grafo
G=(N,A) si y slo si:
(N,A) es un grafo y,
N subconjunto de N y A subconjunto de A
Ambas condiciones son necesarias y no suficientes por
separado.

Definiciones

Implementaciones

Recorridos

Lista de adyacencia

Se genera una lista de los nodos.


Cada elemento de la lista contiene una lista de los nodos
adyacentes.
Cuando es un grafo no dirigido, se deben colocar en ambos
nodos sus adyacentes.

Algoritmos

Definiciones

Implementaciones

Recorridos

Algoritmos

Matriz de adyacencia

En la columna y en las filas se coloca el nmero del nodo


correspondiente.
En la interseccin va 1 o verdadero si existe conexin o 0 o
falso si no existe conexin. Si tiene peso la arista, puede ir el
peso de sta.
Para grafos no dirigidos, se puede trabajar con la mitad de la
matriz.

Definiciones

Implementaciones

Recorridos

Matriz de incidencia

Las columnas de la matriz representan las aristas del grafo.


Las filas representan a los distintos nodos.
Por cada nodo unido por una arista, ponemos un uno en el
lugar correspondiente, y llenamos el resto de las ubicaciones
con ceros (0).

Algoritmos

Definiciones

Implementaciones

Recorridos

Bsqueda en anchura
BEA(v)
Sea T un conjunto
Sea C una Cola
Marcar[v] = visitado
C=Enqueue(v,C)
mientras(!EsVacio(C)){
x=Frente(C)
C=Dequeue(C)
para cada vrtice y adyacente a x{
si (marca[y] = = no visitado){
marca[y] = visitado
C=Enqueue(y,C);
insertar((x,y),T)
}
}
}

O(|A|): Suma de los arcos

Algoritmos

Definiciones

Implementaciones

Recorridos

Bsqueda en profundidad
Profundidad(nodo n)
{
visitado[n] = verdadero
Para cada vrtice adyacente m de n
{
si(!visitado[m])
{
Profundidad(m);
}
}
}

O(|A|): Suma de los arcos

Algoritmos

Definiciones

Implementaciones

Recorridos

Algoritmos

Dijkstra

Encontrar el camino mnimo entre un nodo y el resto de los


nodos.
El algoritmo a continuacin obtiene los costos mnimos desde
un origen a todos los destinos.

Definiciones

Implementaciones

Recorridos

Algoritmo de Dijkstra
Require: nodo_origen, costos, Nodos
S nodo_origen
for i 2 n do
D[i] = costos[nodo_origen, i)//inicializa
end for
for i 1to n 1 do
elegirwS N odos StqD[w]mnimo
SS w
for cada vertice v N odos S do
D[v] min(D[v], D[w] + costos[w, v])
end for
end for
O(|V 2 |)

Algoritmos

Definiciones

Implementaciones

Recorridos

Algoritmos

Problema
Se desea instalar un sistema de vigilancia de circuito cerrado
no centralizado.
Se conocen los lugares donde se encontrarn las cmaras.
Se conocen diversas alternativas para conectar las cmaras
entre si y sus costos asociados.
Se requiere encontrar la alternativa de conexin ms econmica
y que cumpla con tener todas las cmaras conectadas entre si.
Debe cumplir que las conexiones no deben generar ciclos pues
estos generar problemas.
Lo que se pide entonces es encontrar el rbol de cobertura de
costo mnimo.

Definiciones

Implementaciones

Recorridos

Algoritmos

Algoritmo de Kruskal
entrada: grafo conexo con costos
salida: rbol de cobertura de costo mnimo
i=1
N=nmero de vrtices
mientras(i<N)
{
escoger la arista de peso mnimo A entre las no escogidas
Si (A no forma ciclo con Salida)
{
Salida = Salida U {A}
i=i+1
}
}

Definiciones

Implementaciones

Recorridos

Algoritmos

Algoritmo de Prim

entrada: grafo conexo con costos


salida: rbol de cobertura de costo mnimo
i=1
N=nmero de vrtices
mientras(i<N)
{
escoger la arista (r,s) tal que r pertenezca a Salida y
s no pertenezca a Salida y de peso mnimo
Salida = Salida U {s}
i=i+1
}

Anda mungkin juga menyukai