GRAFOS-Mate Discreta Con Video2
September 19, 2022 | Author: Anonymous | Category: N/A
Short Description
Download GRAFOS-Mate Discreta Con Video2...
Description
GRAFOS Esta formado por vértices y aristas: G=(V,E) V = { v 1, v 2, v 3……..v n } E = { e1, e2, e3……..en } e1
V1 e4
V2
V3 e3
V4
e2
TIPOS DE GRAFOS 1) Grafo no dirigido:
e=(v,w)=(w,v)
e1 w
v e2
Es decir la arista del de l nodo n odo o vértice de v a w o de w a v son iguales, igual es, dado que no hay un sentido o dirección
2) Grafo dirigido:
e1 v
e=(v,w)≠(w,v) w
e2
Es decir, la arista e1 con e2 no necesariamente son iguales
3) Grafo no simple: Es un grafo no dirigido que tiene lazos y lados paralelos pa ralelos e1 V1
e3 V2
e2
e5 V3
e4
Lazo converg convergee en el mismo vértice
e1 e2: Aristas paralelas e5:yLazo 4) Grafo Ponderado: Se presentan pesos de cada arista, y en base a ello, se puede obtener la longitud de la ruta que es la suma total de todos los l os pesos de las aris aristas tas de la ruta
5) Grafo Simple: No contiene lazos, aristas paralelas, ni aristas dirigidas.
6) Grafo Completo: Es aquel grafo con n vértices en los que existe una arista entre cada cad a par de vértices(no vértic es(no hay hay aristas paralelas). paralelas).
7) Grafo de Similitud: Son aquellos grafos de los que se pueden derivar subgrafos. V1
V1 V2
V2
V3 V4 G(V,E)
V4 G’(V’,E’) es un subgrafo de G(V,E)
Grado de un Vértice a b
c
d
e f
δ(a)=2 (dado que hay 2 aristas en a) δ(b)=2 δ(f)=2 (todo lazo es de grado 2) δ(g)=0
g
(por estar aislado y no tener conexión ni lazo)
Camino o Trayectoria a b
c
d
e f
La ruta o trayectoria para ir ir de a hasta f puede ser: a,b,c,d,e,f a,c,b,d,e,f a,b,e,c,d,f
Ciclo de Euler Recorrer todas las aristas sin repetirse a a,b,c,d,b,e,d,f,e,c,a b
c
d
e
Obser ve que parte del vértice a y llega al vértice Observe a barriendo todas las aristas en este caso, se dice que es un ciclo o circuito de euler(observe euler(obs erve que pueden repetirse los vértices)
f
Ciclo de Hamilton Recorre todos los vértices sin repetirse excepto el vértice inicial y el vértice nal que son el mismo a d
c
b e
g
i j
a,e,b,g,c,h,j,i,d,a h
Es un circuito hamiltoniano, barre todos los vertices, vertic es, comienza comienza en a y termina termina en a.
e1
a
Matriz de Incidencias, vértices respecto A las aristas e1 e2 e3 e4 e5
e3
b
e4 e2
c
e5
a
1
1
1
0
0
b
0
0
1
1
1
c
0
1
0
1
1
δ(a)=4
No olvide que los lazos y aristas paralelas tienen valor 2. Otro ejemplo La incidencia de las aristas con los vértices. a b
e1 e4
e2 e3 c e5
e1
e2
e3
e4
e5
a
1
1
1
0
0
b
1
0
0
1
0
c 0 1 1 1 1 Hay que observar que el vertice que tenga una arista arist a o mas y que converga en dicho vertice. vertic e.
Producto de Grafos Sea el grafo G(x,b) y el grafo G’(y,a), G’(y,a), el producto pro ducto de grafos es otro grafo G’’=(z,c). G’’=(z, c). n(arcos)=n(b) * n(a) n(nodos)=n(x) * n(y) Ejemplo: Sea G: Y G’: X2
X1
Y1
Y2
X3 Hallar G(x,b) * G(y,a) n(arcos)=4*3=12 n(nodos)=3*2=6 G’’(z,c): A
X1Y1 X2Y2
X3Y1
X3Y2 X1Y2
X2Y1
D
F B
E
C
Teorema En una graca no dirigida conexa(vertices unidos), una graca tiene circuito o ciclo euleriano, si todos los vertices son de grado par. Demostracion: Es claro que si tiene 2 vertices, cada arista ari sta que los une les da un grado impar a la graca, si se agrega otra arista, ello le da el grado par. Y la gr graca aca tendra 2 trayectorias, una de ida(parte ida(pa rte de un vertice) vertice) y otra de llegada al vertice inicia inicial. l. k
Gra(V 1) i 1 Suponiendo por de hipotesis se tiene circuito ci rcuito Euler. inductiva, que la sumatoria
i es par entonces
Para un V k+1 es decir n=k+1 vertices y dado que todos los l os vertices son conexos y de grado par (al menos 2 aristas). Entonces: V 1
V 2
V 3
V 4
V k
Vk+1
Se puede tener una trayectoria de V k+1 a V k y de de ahí ahí a V 1. Por lo cual la graca Euler. de V 1 a V k+1 constituye una graca de Euler.
El Teorema de Handshaking En una graca no dirigida: Si G=(V,E) entonces:
Gra( X 1 ) 2e Donde e es la cantidad de aristas
V1 δ(v1)=1 δ(v2)=1
V2 2
(V ) 2e i
= 2(1)
i 1
1 arista contribuye a la graca en 2. Hipotesis Inductiva K aristas contribuyen en 2e aristas Para k+1 aristas -> 2e+2=2(e+1) ... N aristas contribuyen en 2e V 1
V 2
V 3 V 4 2e+2=2(e+1)
V n
1
n+1 V n+1
Teorema El numero de nodos nod os de grado impar en una graca no dirigida es par. Demostracion Sea G(V,E) G(V,E) no dirigida di rigida Sea V1 y V2 los conjuntos de vertices de grado par e impar, respectivame respectivamente nte entonces por el teorema teo rema anterior.
2e
grad (V i ) grad (V 1) V iV 1
V 1V 2
grad ad (V ) es par Puesto que cada grad(V i) que pertenece pertene ce a V 1 gr 1
V 1V 2
Puesto que cada vi є v1 es par
2e
2i
2e 2i
i
grad (V ) grad (V i )
V 1V 2
V 1V 2
2(e i )
grad (V i) V 1V 2
(V ) es par. grad par. i
Ejercicio: Dado el graco dirigido
salen
X1
X2
X3
X4
δ+(X ) i δ+(X1)=3 δ+(X2)=3 δ+(X3)=2 δ+(X4)=1
entran
δ-(X ) i δ-(X1)=2 δ-(X2)=3 δ-(X3)=1 δ-(X4)=3 (V i ) 18
El dado:
δ(X ) i δ(X1)=5 δ(X2)=6 δ(X3)=3 δ(X4)=4
2 e 2(9)
a b c d b
a
Grados internos d
c
Aristas que entran
2 3 1 1 7
Grados externos Aristas que salen
1 1 3 2 7
Observar Obser var que la sumatoria de grados es 14 y se cumple que es igual a 2e=2(7)=14 2e=2(7)=1 1 4 4
Coloración de Gráfcos
Si G=(V,A) G=(V,A) es un grafo, una coloración propia p ropia de G ocurre oc urre cuando coloreamos los vértices vértic es de G de modo que si {a,b} es una aplicación donde el color color puede ttener ener cualquier signicado. Los vértices adyacentes deben tener colores diferentes. Ejemplo: Se tiene el siguiente dibujo dibuj o de un mapa ¿cómo puede distinguir lo loss colores de las regiones para que no se confundan? RB(2)
RB RA
RC
RD RE
RD(3)
(1)
RF
RF (2)
RA RC (3)
Se necesita 3 colores para distinguir la coloración del mapa.
RE (1)
Teorema Si A es la matriz de adyacencia de una grafica G (con aristas multiples y lazos permitidos) entonces el numero de trayectorias diferentes de longitud r de Vi a V j es igual a la entrada (i-j)-esima de Ar A B
C D
A
0
1
1
1
AG B
1
0
0
0
C
1
0
0
1
D
1
0
1
0
Considere la graca: A
B
D
C
Si la matriz de adyacencia es:
Encontrar el numero de trayectorias entre B y D que son de longitud 4 mediante la determinación de A G4
2 G
A
A B
C D
A 4 AG B
1 2
2 3
6 4
6 4
1
C
6
4
7
6
2
D
6
4
6
7
A B
C D
A B
0 0
0 1
1 1
1 1
C
1
1
2
D
1
1
1
Y
En consecuencia, hay 4 trayectorias de longitud de B a D en la graca G. Las 4 trayectorias pueden verse como: B-A-B-A-D, B-A-C-A-D, B-A-D-A-D, B-A-D-C-D
Con una graca dirigida: A
B
A
A B
C D
0
0
1
0
Por multiplicación
A
D
C
B C
0 1
0 1
1 0
1 1
D
1
0
0
0
A B 1 2
C D 1 1
A B
2
2
3
3
C
3
3
2
3
D
2
1
0
1
A
De nuevo por multiplicación de matrices se obtiene:
de matrices se obtiene:
4
A B
C D
A
0
0
1
1
A B
2
1
0
1
C
1
1
1
1
D
0
1
0
0
2
La entrada en la posición BD de A 4 es 3 en consecuencia hay 3 trayectorias cada una de longitud 4 de BAD B-C-B-C-D, B-C-A-B-D, B-D-A-B-D
PROXIMA CLASE UD. DEBE SABER OPERACIONES MATEMATICAS CON MATRICES Y AL MENOS UN ALGORITMO CON MATRICES
Algoritmo de Prim Inicio: G(V,A) Dado G(V,A) Se trabaja con un conjunto de Vp de vértices agregados al árbol y con p un conjunto de aristas A de aristas agregados vacios. al árbol (grafo con una raíz). Al inicio ambos conjuntos se encuentran
1) Se elig elige eu un n vert vertice ice V0 y se agrega quedando q uedando Vp={V0} y Ap={ } 2) Se elige la arista minima (V i,V j) que une a cualquier miembro de V p con uno de V-Vp tal que no se produce un ciclo entre los mismos y se agrega la arista a A P y el vértice incluido a V p. 3) Se repite 2 hasta que V-V p={ }
Funcionalidad del Algoritmo de Prim Consiste en visitar un vértice con arista mínima y estando en el vértice correspondiente se recalcula las distancias mínimas de los vértices; hasta cubrir todos los vértices. Ejemplo: Hallar el árbol de expansión mínima del siguiente grafo. B
B 3
9
3
9
2
2
Partiendo de A Vp={A}
4 1
A
C
4
F
5
6
8 E
B
A
3
F
5
6
8 E
C
7
B
D
Vértices “A” Vértices más cercanos a “A
3 2
1
A
D
7
9
4
C 5
E
2 1
F 6
8
D
7
9
1
A
4
F
5
6
8 E
C
7
D
Distancia mas corta
1º Iteracion Vp={A,F}
B
B 3
9
3
9
2
2 1
A
4
F
5
6
8
C
E
1
A
Distancia mas corta
3
3
9
2
2 4
1 A
D
7
B
B 9
5
E
Vértices cercanos a “A “A” y “F” Vértices más cercanos
C
1
A
4
F
F 5
6
8 E
2º Iteración Vp={A,F,B} Vp={A,F,B}
C
6
8
D
7
4
F
7
D
Vértices V értices más cercanos cercanos a “A “A”, “B” y “F”
5
6
8 E
C
7
Distancia mas corta
D
3º Iteración Vp={A,F,B,C} Vp={A,F ,B,C}
B
B 9
9
4
F
C
6
8 E
7
1
A
5
F
B
9
3
9 2
2 4
F
C 5
6 E
D
7
Distancia mas corta
3
8
C
4º Iteración Vp={A,F,B,C,D Vp={A,F ,B,C,D}}
5
E
D
B
A
4
6
8
Vértices “A”, “B”, “B”, “F” y “C” Vértices más cercanos a “A
1
3 2
2 1
A
3
7
1
A
F
E
Vértices V értices más cercanos cercanos a “A “A”, “B”, “B”, “F” , “C” y “D”
C 5
6
8
D
4
7
D
Distancia mas corta
B
3 2
ARBOL DE DE EXPANSION MINIMA:
A
1
C
F 6
E
5 D
5º Iteración Vp={A,F,B,C, Vp={A,F ,B,C,D D,E}
Recorridos mínimos o arboles de expansión mínima Denición: Sean grafos conexos (unidos los vértices), que parten de un vértice inicial, ajustándose a trayectorias mínimas, una aplicación de arboles por expansión mínima podría ser lo siguiente:
Una pequeña ciudad esta est a distinguida por puntos y la unión entre estos puntos (arista) representa el costo de tender cableado entre dichos puntos.
5
B
2
D
H
3 5 A 1
4 5
C
6 E
5 F
4
3 G
Algoritmo de Kruskall Sea R una relacion simetrica conexa con n vertices y sea: S={e1,e2,e3,…,en} Paso 1: Se elige una arista e1 en S de peso minimo. Paso 2: Se continua seleccionando aristas de menor peso hasta cubrir todos los puntos. Al igual que que en el algoritmo algoritmo de Prim hay hay que tener tener cuidado de no formar ciclos(en este caso de aristas) Funcionalidad Funcional idad Kruskall Unir aristas de menor peso, sin formar ciclos para encontrar el árbol de expansión mínima. B
6
15 4
A
C
7 5
D
3
2
4 6 F E
6
6
6
15 4
A
5
C
7
A
4
4
E
6
4 D
2
4
2
4 E
F
6
B
A
D
3
4
C
7
5
2
4
5 3
C
D
2
4
6
6 E
3
F
4 A
D
15
C
7
C
7
6
6
15
3
4
B
6
5
2
6
B
A
A
6 F
15
5 4
6 E
C
7
D
3
2
6
15
5
D
3
B
B
B
6
F
E
6
F
E
F
Peso mínimo=18
Algoritmo de Warshall El algoritmo de Warshall Warshall determina de termina la distancia distan cia mas corta entre todos los lo s pares de vértices vértic es en una graca. Primero se forma la matriz de pesos: W={w1} de la graca dada donde: wk
arista ista en V i a V j W(j) ; Si no hay una ar 0 ; Si no hay arista
Considerar que existen n vertices v1,v2,v3…vn en la graca. graca . En este caso se forman una secuencia de matrices L0,L1,L2,….Ln. Donde Li={Lr(i,j)} L(i,j) la entrada j-esima de L1 se calcula mediante la regla:(para gracas no dirigidas) Donde k=1,2…n; en la primera,segunda,…n-esima iteracion.
Lr(i,j) = min{Lr-1(i,j);Lr-1(i,k)+Lr-1(k,j)} 3
A(v1) 2 D(v4)
B(v2) 5
4 1
C(v5)
A B
C D
A
0
3
4
2
W B
3
0
0
C
4
0
D
2
5
A B
C D
A
0
3
4
2
5
L0 B
3
0
5
0
1
C
4
0
1
1
0
D
2
5
1
0
Por Warshall: L(1,2)=min{L0(1,2);L0(1,1)+L0(1, L(1,2)=min{L0( 1,2);L0(1,1)+L0(1,2)}=min{3;0+3 2)}=min{3;0+3}=3 }=3 L(1,3)=min{L0(1,3);L0(1,1)+ L(1,3)=min{L 0(1,3);L0(1,1)+L0(1,3)}=min{4;0 L0(1,3)}=min{4;0+4}=4 +4}=4 L(1,4)=min{L0(1,4 L(1,4)=min{L0(1,4);L0(1,1)+L0(1,4) );L0(1,1)+L0(1,4)}=min{2;0+2}=2 }=min{2;0+2}=2 L(2,3)=min{L0(2,3);L0(2, L(2,3)=min{L 0(2,3);L0(2,1)+L0(1,3)}=min 1)+L0(1,3)}=min{∞;3+4}=7 {∞;3+4}=7 L(2,4)=min{L0(2,4);L0(2,1)+L L(2,4)=min{L0( 2,4);L0(2,1)+L0(1,4)}=min{5;3 0(1,4)}=min{5;3+2}=5 +2}=5 L(3,4)=min{L0(3,4);L0(3, L(3,4)=min{L 0(3,4);L0(3,1)+L0(1,4)}=min 1)+L0(1,4)}=min{1;4+2}=1 {1;4+2}=1 Puesto que L0 es una matriz simétrica, L1 y las matrices subsecuentes L2, L3 y L4 también serán simétricas. Empleando la simetría se obtiene:
L1
0
3
4
2
3
0
7
5
4
7
0
1
2
5
1
0
Ahora: L2(1,2)=min{L1(1,2);L1(1,2) L2(1,2)=min{L1(1,2);L1(1,2)+L1(2,2)}=min{3 +L1(2,2)}=min{3;3+0}=3 ;3+0}=3 Procediendo de manera similar, L2(1,3)=4; L2(1,4)=2; L2(2,3)=7; L2(2,4)=5; L2(3,4)=1 En consecuencia:
L 2
0
3
4
2
3
0
7
5
4
7
0
1
2
5
1
0
Al proceder proceder de la misma misma forma se llega a:
L 3
0
3
4
2
3
0
7
5
4
7
0
1
2
5
1
0
y
L 4
0
3
3
2
3
0
6
5
3
6
0
1
2
5
1
0
L4 proporciona las distancias mas cortas entre todos los pares de vértices. Las correspondientes trayectorias mas cortas se indican mediante la siguiente matriz: A
B
C
D
A
AB
ADC
AD
B
BA
BADC BAD C
BD
C
CDA
CDAB
CD
D
DA
DB
DC
Algoritmo de Dijkstra Inicio: Armar unaSe matriz adyacenci ten iendo en cuenta cuen ta q que ue se opone donde hay arista. tomade el adyacencia vértice delanodo nteniendo odo designado como inici inicio y lo innito agregamos al no subconjunto S de nodos estudiados. S={V 0} Se arma un vector vector D con la la de la matriz correspondiente corresp ondiente a las arista aristass que parten de V 0. Para cada j desde 1 hasta has ta n-1 sacar sac ar de V-S V-S el vértice tal que la arista arist a entre V0 y dicho vérticee sea la de menor peso en D. vértic D. incorporado incorporado a S y llamarlo Ve. Para cada i desde 1 hasta n d[i]=min(d[Ve]+c[Ve]) Fin_para_i Fin_para_j Funcionalidad: Partir de un vértice inicial etiquetándolo como 0 y todas las demás etiquetas con ∞ y S es el conjunto conj unto vacio inicialmente en la medida que se va realizando las iteraciones se va llenando el conjunto S, así hasta barrer todos los vértices. vértic es.
iteración) procedencia, Distancia Acumulada) Acumulada) (nº iteración) Etiquetas: (Nodo de procedencia,
Dado el grafo: (A,∞) B
3
1 (A, ∞) C
2
A (A,0)(0)
8
9
D
3
E (A, ∞)
4
8 20
(A, ∞)
Iteración 0 ó paso inicial se elige el vértice:
F (A, ∞)
S={A}
(A,1) (1) B
3 1
Se calculan todas las etiquetas de los nodos adyacentes a “A”
(A, 2) (1) C
2
A (A,0) (0)
8
9
D
3
(A, ∞)
4
8 20
(A, 8)(1)
(A,1)(1)
E
F (A, ∞)
B
3
1 (A, 2)(1) C
2
A (A,0)(0)
8
9
D
3
E (A, ∞)
4
8 20
F
De todas las etiquetas etiqueta s calculada calculadass hasta ahora, se elige la que tiene menor distancia acumulada (A,1)=B Iteración 1: S={A, B}
(A, 8)(1)
(A, ∞)
(A,1)(1) B
3 1
Se calculan todas las etiquetas de los nodos adyacentes a “B”
(A, 2)(1) C
2
A (A,0)(0)
8
9
D
3
(B, 4)(2)
4
8 20
(A, 8)(1)
(A,1)(1)
E
F (A, ∞)
B
3
1 (A, 2)(1) C
2
A (A,0)(0)
8
9
D
3
E (B, 4)(2)
4
8 20
F
De todas las etiquetas etiqueta s calculada calculadass hasta ahora, se elige la que tiene menor distancia acumulada (A,2)=C Iteración 2: S={A, B, C}
(A, 8)(1)
(A, ∞)
(A,1)(1) B
3
1
Se calculan todas las etiquetas de los nodos adyacentes a “C” si quedan dos etiquetas etiqueta s para un mismo nodo, nos quedamos con el que tenga la menor distancia acumulada.
(A,0)(0)
8
9
D (A,1)(1)
3
E (B, 4)(2) (C, 5)(3)
4
8 20
(A, 8)(1) (C, 11)(3)
B
F (C, 10)(3)
3
1 (A, 2)(1) C
2
A
(A, 2)(1) C
2
A
(A,0)(0)
8
9
D (A, 8)
3
E (B, 4)(2)
4
8 20
De todas las etiquetas etiqueta s calculad calculadas as hasta ahora, se elige la que tiene menor distancia acumulada (B,4)=E Iteración 3:
F (C, 10)
S={A, B, C,E}
(1)
(3)
(A,1)(1) B
3 1
Se calculan todas las etiquetas de los nodos adyacentes a “E” si quedan dos etiquetas etiqueta s para un mismo nodo, nos quedamos con el que tenga la
(A, 2)(1) C
2
A (A,0)(0)
8
9
menor distancia acumulada.
4
8
(A, 8)(1)
B
F (C, 10)(3) (E, 8)(4)
3
1 (A, 2)(1) C
2
A
E (B, 4)(2)
20
D (A,1)(1)
3
(A,0)(0)
8
9
D (A, 8)(1)
3
(B, 4)(2)
8
20
E
4
F (E, 8)(4)
De todas las etiquetas etiqueta s calculadas hasta ahora, se elige la que tiene menor distancia acumulada, si hay iguales se elige cualquiera: (E,8)=F Iteración 4: S={A, B, C,E,F}
(A,1)(1) B
3
1
Se calculan todas las etiquetas de los nodos adyacentes a “F” si quedan dos etiquetas etiqueta s para un mismo nodo, nos quedamos con el que tenga la
(A, 2)(1) C
2
A (A,0)(0)
8
9
3
E (B, 4)(2)
4
8
menor distancia acumulada. 20
D (A, 8)(1) (F, 28)(5)
(A,1)(1)
F (E, 8)(4)
B
3 1 (A, 2)(1) C
2
A (A,0)(0)
8
9
D
3
E (B, 4)(2)
4
8 20
De todas las etiquetas etiqueta s calculadas hasta ahora, se elige la que tiene menor distancia acumulada: (A,8)=D
F
Iteración 5: S={A, B, C,E,F,D}
(A, 8)(1)
(E, 8)(4)
Hemos hallado los recorridos mínimos de A hacia cualquier vértice. (A,1)(1) B
3
1 2
A (A,0)(0)
(A, 2)(1) C
E (B, 4)(2)
8
4
D (A, 8)(1)
F (E, 8)(4)
Por ejemplo: De A hacia F: A -> B -> E -> F=1+3+4=8
View more...
Comments