Fundamentos de la teoría de grafos

Anuncio
Fundamentos de la teoría de grafos
3º I.T.I. de Sistemas
Mª Teresa Cáceres Sansaloni
1
Tema 1: Nociones básicas
• Conceptos básicos sobre grafos.
• Representación de grafos.
• Multigrafos, grafos dirigidos y no dirigidos.
• Bucles. Pseudografos.
• Valencias de entrada y salida. Propiedades.
• Isomorfismos de grafos.
• Conectividad.
2
¾ Problemas de recorrido.
• camión de la basura ö por aristas
• autobús escolar ö por vértices
¾ Problemas de coloreado.
• calendario de exámenes
• acuario
• reactivos químicos
¾ Problemas de emparejamiento:
• comisiones de ayuntamiento
• claustro
• junta de facultad
• asignación eficiente de tareas en empresas
3
Un grafo G(V,E) es un conjunto V(G) finito no
vacío de objetos llamados vértices y un conjunto E(G)
(posiblemente vacio), de parejas de vértices, llamadas aristas.
V(G) es el conjunto de vértices del grafo G (vertex set)
E(G) es el conjunto de aristas del grafo G (edge set).
Sea G un grafo, y e = {a,b} una arista. Si no
importa la dirección se denota indistintamente {a,b} o
{b,a}, siendo a y b los vértices que une.
A los vértices a y b se les llama sus extremos,
se dice que son adyacentes en G, y se dice que la
arista e es incidente con los vértices a, b.
4
Las aristas que unen el mismo par de vértices se
llaman aristas múltiples.(parallel edges)
Si en el grafo se permite que hayan aristas
múltiples, obtenemos un multigrafo (multigraph).
Las aristas {a,a} cuyos extremos son el mismo
vértice se llaman lazos o bucles (loop).
Si en el grafo se permite que hayan aristas
múltiples, y bucles obtenemos un pseudografo
(pseudograph).
5
Tipo
Aristas
¿Permite
Aristas multiples?
¿ Permite
Bucles?
Grafo simple
No dirigidas
NO
NO
Multigrafo
No dirigidas
SI
NO
Pseudografo
No dirigidas
SI
SI
• Cualquier grafo simple es multigrafo, pero no el
reciproco.
• Cualquier grafo o multigrafo es pseudografo, pero
no el reciproco.
6
Llamamos orden (order) de un grafo a su número de
vértices, |V|, y tamaño (size) de un grafo al número de
sus aristas, |E|.
Un grafo de orden p, y tamaño q lo denotaremos por
(p,q)-grafo.
Vértices
Llamaremos grado o valencia de un vértice (degree of a
vertex) , al número de aristas de las que es extremo.
Se dice que un vértice es par (even) o impar (odd) según
lo sea su grado. Vértice aislado es el que tiene grado 0.
d(v) =grado de v
v œV(G), el conjunto de sus vecinos (neighborhood) se define por
N(v)= {u Œ V: (v u) Œ E} ⇒ d(v)= |N(v)|
7
PRIMER RESULTADO SOBRE GRAFOS
Proposición.- La suma de los grados de los vértices
de un grafo G(V,E) es igual al doble del número de aristas.
ÂvŒV d(v) =2 |E|
Consecuencia:
El número de vértices impares de un grafo es siempre
par.
8
Ejemplos de Grafos
1.- Grafo regular: Aquel con el mismo grado en
todos los vértices. Si ese grado es k lo llamaremos kregular.
Por ejemplo, el primero de los siguientes grafos
es 3-regular, el segundo es 2-regular y el tercero no es
regular
9
Si G es un grafo r-regular de orden p, entonces 0≤ r≤ p-1
¿ Es cierto el reciproco? ¿Puede haber un grafo 1-regular o
3-regular de orden 5?
Si r y p no son ambos impares y 0≤ r≤ p-1, entonces
siempre existe un grafo r-regular de orden p
10
2.- Grafo bipartito (bipartite): Es aquel con cuyos
vértices pueden formarse dos conjuntos disjuntos de
modo que no haya adyacencias entre vértices
pertenecientes al mismo conjunto
Ejemplo.- de los dos grafos siguientes el primero
es bipartito y el segundo no lo es.
11
3.- Grafo completo (complete graph): Aquel con una arista
entre cada par de vértices. Un grafo completo con n vértices
se denota Kn.
Todo grafo completo es regular porque cada vértice tiene
grado |V|-1 al estar conectado con todos los otros vértices.
Un grafo regular no tiene por qué ser completo.
K4
K3
K5
K6
12
4.- Un grafo bipartido completo se denota Km,n
donde m, n es el grado de cada conjunto disjunto de
vértices.
K1,2
K3,3
K2,5
13
Dado un grafo G=(V,E) se define el complementario de
G y se denota por G (V,Ē) como el grafo con el mismo
conjunto de vértices y cuyas aristas son todos los
pares de vértices que no pertenecen a E.
Se verifica que si |V| = p, (V, E « Ē) = Kp
Sea G un grafo de orden p, si v es un vértice de G de
grado n, d(v) = n, entonces d(v) = p-n-1 en el grafo
complementario.
14
Consecuencia:
G es regular si y solo si G es regular
Ejercicio
Los vértices de un grafo G de orden 14 y tamaño 25
tienen grado 3 o 5. ¿Cuántos vértices tiene de grado 3?
¿Puede un grafo de orden 4 tener tres vértices de grado 3 y
uno de grado 1?
15
Grafos isomorfos (Isomorphic graphs)
Dos grafos G=(V,E) y G´=(V´,E´), son isomorfos entre G y G´ si
existe una función biyectiva (one-to-one function) entre los
conjuntos de vértices f:V → V’ tal que si
{a,b}∈E ⇔ {f(a),f(b)}∈E´.
Si G y G’ son isomorfos se denota por G@G’
Dos grafos G1 y G2 son iguales (equal) si lo son sus conjuntos
de vértices y de aristas.
Los grafos iguales son isomorfos, pero no al contrario.
16
Si G1 y G2 son grafos isomorfos, entonces tienen el mismo
orden y el mismo tamaño.
Además, para cada vértice v de G1 , d 1 (v) = d 2 ( f(v) )
Son invariantes: el nº de vértices, el nº de aristas, el grado de
cada vértice, las adyacencias, la estructura, los caminos, ciclos,
etc.
Teorema:
G1, G2 son grafos isomorfos si y sólo si sus complementarios son
isomorfos
17
Subgrafos (Subgraphs)
Dados dos grafos G=(V,E) y G’=(V’,E’) se dice que G’ es un
subgrafo de G si se verifica que V’ es un subconjunto de V y
E’ lo es de E.
Ejemplos:
K3 es subgrafo de K4
y ambos son subgrafos de K5
Sea G un grafo y φ≠SÕV(G). El subgrafo inducido (induced
subgraph) por S, ·SÒ, es el subgrafo máximal de G con conjunto
de vértices S, contiene las aristas de G que unen vértices de S.
Un subgrafo H de un grafo G es subgrafo inducido por vértices
(vertex-induced subgraph) , si H = ·SÒ para algún SÕV(G).
18
G
J
H
F
¿J, H, F son subgrafos de G? ¿Son subgrafos inducidos?
El subgrafo G-S se obtiene por la eliminación de los vértices de
S Ã V y todas las aristas que inciden en los vértices de S.
Observar que G-S = ·V(G) - SÒ
Cualquier subgrafo inducido de G se obtiene por eliminación de
un subconjunto de vértices de G
19
u
x
u
x
w
y
z
v
x
y
w
z
G
y
G-v
w
z
G-{u,v}
¿Son subgrafos inducidos?
Sea X un subconjunto no vacío de aristas de un grafo G. El
subgrafo inducido (induced subgraph) por X, que se denota ·XÒ,
es el subgrafo minimal de G con conjunto de aristas X.
·XÒ contiene aquellos vértices de G incidentes con al menos una
arista de X.
Un subgrafo H de un grafo G es subgrafo inducido por aristas
(edge-induced subgraph) , si H = ·XÒ para algún XÕV(G).
H es un subgrafo recubridor o soporte (spanning subgraph) de
un grafo G si V(H) =V(G)
20
Si X⊂E(G), entonces G-X , es el subgrafo recubridor de G
obtenido por eliminación de las aristas de X.
H es un subgrafo recubridor de un grafo G si y solo si H = G-X,
donde X = E(G) – E(H)
u
u
v
w
x
y
G
v
x
F
u
w
v
y
x
w
y
H
Sea G un grafo, con uivi (i = 1,2,…, n) pares de vértices no
adyacentes de G. G+{u1v1, u2v2 ,…, unvn } es el grafo obtenido
al añadir a G las aristas del conjunto {u1v1, u2v2 ,…, unvn }
21
Dos grafos G y H descritos mediante diagramas.
Diremos que H es subgrafo de G si es posible etiquetar
los vértices de H y G de modo que H es subgrafo de G.
Secuencias de grados (Degree sequences)
Para cada grafo G, con V(G)={v1, v2 ,…, vp } asociamos la
secuencia de grados de sus vértices d(v1), d(v2), …, d(vp),
que son valores enteros no negativos y con el convenio de
mantener el orden
d(v1)¥d(v2) ¥ … ¥ d(vp)
El mínimo grado de G, min d(G) = d(vp), es el término más
pequeño. El máximo grado de G, D(G) = d(v1), es el término
mayor.
22
Sea s: d1, d2, …, dp la secuencia de grados de un grafo G.
Ejemplo: 5,5,3,2,1,0
Una secuencia de enteros no negativos es gráfica (graphical) si
es la secuencia de grados de algún grafo.
Teorema
Una secuencia s : d1, d2, …, dp
de enteros no negativos, con
d1 ¥ d2 ¥ … ¥ dp , donde p>1 y d1 ¥ 1 es gráfica, si y solo si
la secuencia s1 : d2 -1, d3-1, …, dd +1 -1, dd +2 , dd +3 , …, dp es
1
1
1
gáfica.
23
Demostración:
(›) s1 es gáfica. Entonces hay un grafo G1 de orden p-1, con
s1 como su secuencia de grados.
Sus vértices son v2, v3,…, vp con
d(vi) = di-1 para 2 § i § di +1
d(vi) = di para di + 2 § i § p
Construimos un nuevo grafo G, añadiendo un vértice v1 y
uniendolo a los d1 vértices vi , con 2 § i § di +1 .
Así, d(vi) = di , " vi œ G y s es secuencia gráfica.
(fl) s es secuencia gráfica.
Hay uno o más grafos de orden p con secuencia de grados s.
Sea G uno de ellos, con d(vi) = di para 1 § i § p y la suma de
los grados de los vértices adyacentes a v1 máxima. Estamos
exigiendo que v1 sea adyacente a d1 vértices con grados d2 , d3,
…, dd +1 . El grafo G – v1 tiene secuencia de grados s1 así que s1
1
es gráfica.
24
Para determinar si una secuencia de p enteros no negativos es
gráfica.
• No puede contener valores mayores que p-1
•Actuamos del siguiente modo.
P1. Si todos los valores son 0, la secuencia es gráfica.
Si tiene valores negativos , no es gráfica;
Si no tiene valores negativos seguir.
P2.
Reordenar los números de la secuencia, si es
necesario, para que sea no creciente.
P3.
Eliminar el primer valor n, y restar 1, de los
siguientes n valores de la secuencia.
Volver al paso 1.
25
Camino (walk) en un grafo G, es una secuencia alternada
P : v0, e1, v1, e2, v2, …, vn-1, en , vn (n ¥ 0)
de vértices y aristas, empezando y terminando por vértices, y tal
que ei = vi-1 vi para i = 1,2,…, n
P tiene longitud (length) n porque contiene n aristas.
Como los vértices, determinan las aristas, éstas pueden ser
omitidas. P : v0, v1, v2, …, vn-1 , vn, es un v0-vn camino
• un v0-vn camino es cerrado (closed), si empieza y termina en el
mismo vértice, v0=vn. Es abierto (open), si v0 π vn.
• recorrido (trail), un camino donde no se repiten aristas,
pudiendose repetir los vértices.
• camino simple (path), un camino donde no se repiten ni aristas
ni vértices.
Un camino simple es un recorrido, pero no todo recorrido es
camino simple.
26
Teorema
Cualquier
simple.
x-y camino en un grafo G, contiene un
x-y camino
Demostración
Si x=y, entonces el x-y camino trivial da la solución.
Supongamos x∫y . Hay dos casos a considerar:
• el camino que conecta x e y no contiene vértices repetidos,
entonces ya es simple.
• el camino que conecta x e y tiene vértices repetidos
x, v1, v2, ..., w, w1,w2, ..., wk, w, ...vp-1, vp, y
donde el vértice w se repite.
eliminamos todos los vértices comprendidos entre los w, y uno
de ellos, resultando x, v1, v2, ..., w, ...vp-1, vp, y
Procedemos de igual modo con cada vértice repetido, hasta
conseguir un camino simple.
27
Nombre
Tipo
Camino
Sí
Sí
Sí
Sí
abierto
No
Sí
cerrado
No
Sí
abierto
No
No
cerrado
No
No
walk
Camino
cerrado
cerrado
Recorrido
trail
Circuito
circuit
Camino
simple
¿Admite aristas ¿Admite vértices
repetidas?
repetidas?
path
Ciclo
cycle
28
• circuito (circuit), como un camino cerrado donde no se
repiten aristas.
• ciclo (cycle), un circuito donde no se repiten vértices.
u,v œV(G), u está conectado a v si G contiene un u-v camino.
Un grafo G se dice conexo (connected) si cada par de vértices
están unidos al menos por un camino. Un grafo no conexo tiene
al menos dos vértices sin camino que los una.
Un subgrafo H de G es una componente de G si H es un subgrafo
conexo maximal de G.
29
La relación v está conectado con w, es una relación de equivalencia
entre vértices de G. Establece una partición V1, V2, …, Vk de los
vértices de G. Los subgrafos ·ViÒ , 1 § i § k, son las componentes
conexas del grafo G.
k(G)=número de componentes conexas de G
G es conexo si y solo si K(G) = 1
Dar un ejemplo de k(G) = min d(G) = D(G) =2
30
Un vértice v de un grafo G es un
(cut-vertex) si k(G-v) > k(G) .
vértice de corte
Una arista e de un grafo G es una arista puente (bridge)
si k(G-e) > k(G)
Teorema
Una arista e de un grafo conexo G es un puente de G si y solo
si e no pertenece a ningún ciclo de G
Ejercicio: Demostrarlo.
31
Los grafos que no tienen puentes son aquellos en los que cualquier
arista pertenece a un ciclo.
Un grafo conexo, no trivial, sin vértices de corte es llamado no
separable (non-separable graph).
Un bloque (block) B de un grafo G es un subgrafo de G, no
separable y maximal. Es necesariamente un subgrafo inducido.
Un grafo no separable tiene sólo un bloque.
32
Un bloque de un grafo G que contiene exactamente un vértice de
corte de G se le llama bloque final (end-block) de G.
Teorema
Sea G un grafo conexo con al menos un vértice de corte,
entonces G tiene al menos dos bloques finales.
Un grafo de orden n ¥ 1 que es un camino se le llama camino de
orden n y se denote por Pn
Un grafo de orden n ¥ 3 que es un ciclo se le llama n-ciclo y se
denote por Cn
33
Teorema
Un grafo es bipartito (bipartite) si y solo si no tiene ciclos de
longitud impar.
Demostración
(fl) Sea G bipartito.
V=V1» V2 de modo que las aristas unen
vertices de distintos subconjuntos.
Sea C un ciclo en G.
C: v1, v2, v3, ... , vn, v1
Suponemos que v1œ V1 , entonces v2 œ V2 , v3, œ V1 , y así se
continúa alternando. Como el último vértice v1 œ V1 resulta que vn
œ V2 , y en consecuencia n es par.
34
(›) Si G es conexo. Sea u un vértice de G. Para cualquier
vértice v del grafo hay un (u-v camino) en G.
Seleccionamos uno de los caminos más cortos para cada u-v
camino.
Consideramos V1 como el conjunto de vértices que contiene a u y
a todos los que su u-v camino más corto tiene longitud par. En
consecuencia V2 = V - V1
Con esta partición de vértices las aristas unen siempre vértices
de los dos subconjuntos disjuntos V1 y V2 lo cual garantiza que
G es bipartito.
Si G no es conexo, sean G1 , ... , Gn sus componentes conexas. Por
el resultado anterior cada componente es bipartito y por tanto
también G es bipartito.
35
Digrafos (Digraphs)
D(V,E)
es un grafo dirigido (directed graph) o digrafo
(digraph), donde V es un conjunto finito no vacío de vértices y E
(posiblemente vacio), es el conjunto de pares ordenados de
vértices, llamadas arcos (arcs).
Como (u,v) es distinto a (v,u) , dos vértices pueden estar unidos
por dos arcos si estos tienen direcciones opuestas
Orden (order) de un digrafo es el número de vértices. El número
de sus arcos su tamaño (size).
El grafo subyacente (underlying graph) de un digrafo D es el
grafo obtenido al reemplazar los arcos (u,v) o (v,u) por la arista
uv
36
Si (v,u) œE(D), v es adyacente hacia (adjacent to) u,
adyacente desde v.
y
u es
El arco (v,u) es incidente desde (adjacent from) v y es incidente a
u
Grado de entrada (indegree) de v es el número de vértices
adyacentes hacia v , y se denota d+(v)
Grado de salida (outdegree) de v es el número de vértices
adyacentes desde v , y se denota d-(v)
Grado del vértice v es la suma d (v) = d-(v) + d+(v)
vértice gr. salida gr. entrada
u
v
w
x
grado
u
1
1
2
v
2
0
2
w
1
3
4
x
1
1
2
37
Teorema
Sea D un digrafo de orden p
V = {v1, v2, v3, ... , vp} . Entonces
p
p
i =1
i =1
y tamaño q, con
+
−
δ
(
v
)
=
δ
∑ i ∑ (vi ) = q
Dos digrafos D (V,E) y D’(V’,E’), son isomorfos si existe una
función biyectiva entre los conjuntos de vértices
f : V(D) → V’(D’) tal que si
{u,v} es un arco de D ⇔ {f(u),f(v)}es un arco de D’
Los conceptos de subdigrafos, subdigrafos inducidos se definen
del mismo modo que en el caso de grafos.
38
Camino (walk) en un digrafo D, es una secuencia alternada
P : v0, e1, v1, e2, v2, …, vn-1, en , vn (n ¥ 0)
de vértices y arcos, empezando y terminando por vértices, y
tal que ei = vi-1 vi para i = 1,2,…, n
P es un v0-vn camino de longitud n porque contiene n arcos.
Como los vértices, determinan los arcos, éstos pueden ser
omitidas. P : v0, v1, v2, …, vn-1 , vn,
Los conceptos de recorrido, camino simple, circuito, ciclo en
digrafos son análogos a los de grafos, pero actuando en la
dirección de los arcos.
Un ciclo de longitud 2 es posible en digrafos.
39
Semicamino (semiwalk) en un digrafo es una secuencia
alternada
P : v0, e1, v1, e2, v2, …, vn-1, en , vn (n ¥ 0)
de vértices y arcos, tal que ei = (vi-1, vi) o ei =( vi , vi-1) para
cada i = 1,2,…, n.
P es un v0-vn semicamino de longitud n
u
D
v
w
y
x
P :
v, (vw), w, (uw) u, (x,u), x
es un
v-x semicamino que no es
v-x camino
D no tiene ningún v-x camino
40
Dos vértices u, v de un digrafo D están conectados si D contiene un u-v
semicamino.
Un digrafo D es débilmente conexo (weakly connected) si cualesquiera
dos vértices de D están conectados, es decir, D es conexo si su grafo
subyacente es conexo.
Un digrafo D es unilateralmente conexo (unilaterally
connected) si para cualesquiera dos vértices u y v de D hay un
u-v camino, o un v-u camino, o ambos.
D es fuertemente conexo (strongly connected) si para
cualesquiera dos vértices u y v de D hay ambos, un u-v camino
así como un v-u camino.
conexión fuerte fi conexión unilateral
conexión unilateral fi conexión débil
41
Un digrafo D es r-regular si d-(v) = d+(v) = r para todos los
vértices v de D
Un digrafo D es simétrico (symmetric) si siempre que (u,v) es
un arco en D, entonces también (v,u) es arco en D.
Si D es un digrafo simétrico , entonces D = G* , donde G es
el grafo en el que cada arista uv reemplaza a los dos arcos
(u,v) y (v,u) de D
K1*, 4
42
Un digrafo D es asimétrico (asymmetric) si siempre que exista
un arco (u,v) en D, entonces (v,u) no está en D.
Tipo
Arcos
¿Permite
arcos
múltiples?
Digrafo
dirigidas
No
No
Multidigrafo
dirigidas
Sí
No
Pseudodigrafo
dirigidas
Sí
Sí
¿Permite
bucles?
43
Matriz de Adyacencia de un grafo
Sea G un grafo de orden p. La matriz de adyacencia
de G es una matriz cuadrada pxp que denotaremos por A.
Sea (aij) el elemento de la fila i columna j de A, donde
aij = 1 si hay arista entre los vértices i, j
aij = 0 en otro caso.
En grafos no dirigidos la matriz de adyacencia siempre
es simétrica porque aij = aji
Listas de adyacencia. Ocupan menor espacio en memoria,
son recomendables especialmente en grafos con pocas
aristas.
44
Matriz de Adyacencia de un digrafo
Sea D un digrafo de orden p. La matriz de adyacencia
de D es una matriz cuadrada pxp que denotaremos por A.
Sea (aij) el elemento de la fila i columna j de A, donde
aij = 1 si hay arco desde el vértices i al j
aij = 0 en otro caso.
En digrafos la matriz de adyacencia es en general no
simétrica.
45
Conectividad y arista conectividad
Definición: Sea G una grafo conexo. Un conjunto U de aristas
de G es un conjunto de aristas de corte del grafo si G-U no es
conexo.
Definición: Sea G una grafo conexo. Un conjunto S de vértices
de G es un conjunto de vértices de corte del grafo si G-S no
es conexo.
v5
v1
v2
v4
v6
v3
46
Definición: Arista conectividad de un grafo, l(G), es el mínimo
cardinal de un conjunto E de aristas de G tal que G-E es un
grafo no conexo o trivial. Si un grafo G es no trivial, entonces
l(G) es el menor cardinal de un conjunto de corte de aristas
de G.
l(G)=0 ⇔ G es no conexo o trivial
Definición: Vértice conectividad o conectividad de un grafo,
K(G), es el mínimo número de vértices tales que si se eliminan
de G producen un grafo no conexo o trivial. Si G no es
completo K(G) es el mínimo cardinal de un conjunto de corte
de vértices de G.
47
Descargar