Sei sulla pagina 1di 62

Coloreo de Grafos

Algoritmos y Estructuras de Datos III

Coloreo de vrtices e
Deniciones: Un coloreo (vlido) de los vrtices de un grafo G = (V , X ) a e es una asignacin f : V C , tal que o f (v ) = f (u) (u, v ) E . Los elementos de C son llamados colores. Muchas veces los colores son enteros positivos. Para todo entero positvo k, un k-coloreo de G es un coloreo de los vrtices de G que usa exactamente k colores. e Un grafo G se dice k-coloreable si existe un k-coloreo de G . El nmero cromtico de G , (G ), es el menor nmero de u a u colores necesarios para colorear los nodos de G . Un grafo G se dice k-cromtico si (G ) = k. a

Coloreo de nodos

Ejemplos: (Kn ) =

Coloreo de nodos

Ejemplos: (Kn ) = n. Si G es un grafo bipartito con m > 0, entonces (G ) =

Coloreo de nodos

Ejemplos: (Kn ) = n. Si G es un grafo bipartito con m > 0, entonces (G ) = 2. Si H2k es un circuito simple par, entonces (H2k ) =

Coloreo de nodos

Ejemplos: (Kn ) = n. Si G es un grafo bipartito con m > 0, entonces (G ) = 2. Si H2k es un circuito simple par, entonces (H2k ) = 2. Si H2k+1 es un circuito simple impar, entonces (H2k+1 ) =

Coloreo de nodos

Ejemplos: (Kn ) = n. Si G es un grafo bipartito con m > 0, entonces (G ) = 2. Si H2k es un circuito simple par, entonces (H2k ) = 2. Si H2k+1 es un circuito simple impar, entonces (H2k+1 ) = 3.

Cotas para
Proposicin: Si H es un subgrafo de G entonces (H) (G ). o

Cotas para
Proposicin: Si H es un subgrafo de G entonces (H) (G ). o Denicin: Una clique en un grafo es un subgrafo completo o maximal. El nmero clique (G ) de un grafo es el nmero de u u nodos de una clique mxima de G . a

Cotas para
Proposicin: Si H es un subgrafo de G entonces (H) (G ). o Denicin: Una clique en un grafo es un subgrafo completo o maximal. El nmero clique (G ) de un grafo es el nmero de u u nodos de una clique mxima de G . a Proposicin: Para cualquier grafo G , (G ) (G ). o

Cotas para
Proposicin: Si H es un subgrafo de G entonces (H) (G ). o Denicin: Una clique en un grafo es un subgrafo completo o maximal. El nmero clique (G ) de un grafo es el nmero de u u nodos de una clique mxima de G . a Proposicin: Para cualquier grafo G , (G ) (G ). o Existen grafos para los cuales (G ) > (G )?

Cotas para
Proposicin: Si H es un subgrafo de G entonces (H) (G ). o Denicin: Una clique en un grafo es un subgrafo completo o maximal. El nmero clique (G ) de un grafo es el nmero de u u nodos de una clique mxima de G . a Proposicin: Para cualquier grafo G , (G ) (G ). o Existen grafos para los cuales (G ) > (G )? Qu pasa si (G ) = (G )? e
u2 (G ) 3 u1 u3 (G ) 3 u5 u4 (G ) = 3

Cotas para
Proposicin: Si H es un subgrafo de G entonces (H) (G ). o Denicin: Una clique en un grafo es un subgrafo completo o maximal. El nmero clique (G ) de un grafo es el nmero de u u nodos de una clique mxima de G . a Proposicin: Para cualquier grafo G , (G ) (G ). o Existen grafos para los cuales (G ) > (G )? Qu pasa si (G ) = (G )? e
u2 (G ) 3 u1 u3 (G ) 3 u5 u4 (G ) = 3

Cun grande puede ser la diferencia entre estos dos a parmetros? a

Grafos de Mycielski
Denicin (por induccin): o o 1. M1 = K1 2. M2 = K2 3. Para i 2, Mi+1 se construye a partir de Mi de la siguiente forma:
Si Mi tiene p nodos, v1 , . . . , vp , Mi+1 tendr 2p + 1 nodos, a v1 , . . . , vp , u1 , . . . , up , w , donde ui es copia de vi . El conjunto de aristas de Mi+1 tendr todas las aristas de Mi , a las aristas uniendo ui con los vecinos de vi en Mi y las aristas uniendo w con cada ui .

Grafos de Mycielski

M2 v1 v2

Grafos de Mycielski
M3 M2 v1 v2 v1 u1 v2

u2

Grafos de Mycielski
M3 M2 v1 v2 v1 u1 v2

u2

Grafos de Mycielski
M3 M2 v1 v2 v1 u1 v2

u2

Grafos de Mycielski
v2 M4 M3 M2 v1 v2 v1 u1 v2 v1 u1 w u2 w v5 u5 u4 v4 u2 u3 v3

Grafos de Mycielski
v2 M4 M3 M2 v1 v2 v1 u1 v2 v1 u1 w u2 w v5 u5 u4 v4 u2 u3 v3

Grafos de Mycielski
v2 M4 M3 M2 v1 v2 v1 u1 v2 v1 u1 w u2 w v5 u5 u4 v4 u2 u3 v3

Grafos de Mycielski
v2 M4 M3 M2 v1 v2 v1 u1 v2 v1 u1 w u2 w v5 u5 u4 v4 u2 u3 v3

Grafos de Mycielski
v2 M4 M3 M2 v1 v2 v1 u1 v2 v1 u1 w u2 w v5 Cul es el nmero cromtico de Mi ? a u a u5 u4 v4 u2 u3 v3

Grafos de Mycielski
v2 M4 M3 M2 v1 v2 v1 u1 v2 v1 u1 w u2 w v5 Cul es el nmero cromtico de Mi ? a u a u5 u4 v4 u2 u3 v3

Grafos de Mycielski
v2 M4 M3 M2 v1 v2 v1 u1 v2 v1 u1 w u2 w v5 Cul es el nmero cromtico de Mi ? a u a u5 u4 v4 u2 u3 v3

Grafos de Mycielski
v2 M4 M3 M2 v1 v2 v1 u1 v2 v1 u1 w u2 w v5 Cul es el nmero cromtico de Mi ? a u a u5 u4 v4 u2 u3 v3

Grafos de Mycielski
v2 M4 M3 M2 v1 v2 v1 u1 v2 v1 u1 w u2 w v5 Cul es el nmero cromtico de Mi ? a u a u5 u4 v4 u2 u3 v3

Grafos de Mycielski
v2 M4 M3 M2 v1 v2 v1 u1 v2 v1 u1 w u2 w v5 Cul es el nmero cromtico de Mi ? a u a u5 u4 v4 u2 u3 v3

Grafos de Mycielski
v2 M4 M3 M2 v1 v2 v1 u1 v2 v1 u1 w u2 w v5 Cul es el nmero cromtico de Mi ? a u a u5 u4 v4 u2 u3 v3

Grafos de Mycielski
v2 M4 M3 M2 v1 v2 v1 u1 v2 v1 u1 w u2 w v5 Cul es el nmero cromtico de Mi ? a u a u5 u4 v4 u2 u3 v3

Grafos de Mycielski
v2 M4 M3 M2 v1 v2 v1 u1 v2 v1 u1 w u2 w v5 Cul es el nmero cromtico de Mi ? a u a (Mi ) = i u5 u4 v4 u2 u3 v3

Grafos de Mycielski
v2 M4 M3 M2 v1 v2 v1 u1 v2 v1 u1 w u2 w v5 Cul es el nmero cromtico de Mi ? a u a Cul es la clique mxima de Mi ? a a (Mi ) = i u5 u4 v4 u2 u3 v3

Grafos de Mycielski
v2 M4 M3 M2 v1 v2 v1 u1 v2 v1 u1 w u2 w v5 Cul es el nmero cromtico de Mi ? a u a Cul es la clique mxima de Mi ? a a (Mi ) = i (Mi ) = 2 u5 u4 v4 u2 u3 v3

Cotas para
Proposicin: Si (G ) es el grado mximo de G entonces o a (G ) (G ) + 1.

Cotas para
Proposicin: Si (G ) es el grado mximo de G entonces o a (G ) (G ) + 1. Teorema (Brooks): Sea G un grafo conexo que no es un circuito impar ni un grafo completo. Entonces (G ) (G ).

Cotas para
Proposicin: Si (G ) es el grado mximo de G entonces o a (G ) (G ) + 1. Teorema (Brooks): Sea G un grafo conexo que no es un circuito impar ni un grafo completo. Entonces (G ) (G ). Existen grafos para los cuales (G ) = (G )? Existen grafos para los cuales (G ) < (G )? Cun grande puede ser la diferencia entre estos dos a parmetros? a

Cotas para
Proposicin: Si (G ) es el grado mximo de G entonces o a (G ) (G ) + 1. Teorema (Brooks): Sea G un grafo conexo que no es un circuito impar ni un grafo completo. Entonces (G ) (G ). Existen grafos para los cuales (G ) = (G )? Existen grafos para los cuales (G ) < (G )? Cun grande puede ser la diferencia entre estos dos a parmetros? a
K1,5 u1 u u5 u4 u2 u3

Cotas para
Proposicin: Si (G ) es el grado mximo de G entonces o a (G ) (G ) + 1. Teorema (Brooks): Sea G un grafo conexo que no es un circuito impar ni un grafo completo. Entonces (G ) (G ). Existen grafos para los cuales (G ) = (G )? Existen grafos para los cuales (G ) < (G )? Cun grande puede ser la diferencia entre estos dos a parmetros? a
K1,5 u1 u u5 u4 u2 u3 (K1,n ) = 2 (K1,n ) = n

Cotas para
Lema 1: En todo (G )-coloreo de G v , los vecinos de v en G usan todos los colores y dG (v ) = (G ) v V .

Cotas para
Lema 1: En todo (G )-coloreo de G v , los vecinos de v en G usan todos los colores y dG (v ) = (G ) v V . Sean N(v ) = {v1 , . . . , v(G ) } los vecinos de v y consideremos un (G )-coloreo de G v donde el nodo vi es pintado con color i. Para i = j, sea Hij el subgrafo inducido por los nodos de G v pintados con colores i o j en ese (G )-coloreo.

Cotas para
Lema 1: En todo (G )-coloreo de G v , los vecinos de v en G usan todos los colores y dG (v ) = (G ) v V . Sean N(v ) = {v1 , . . . , v(G ) } los vecinos de v y consideremos un (G )-coloreo de G v donde el nodo vi es pintado con color i. Para i = j, sea Hij el subgrafo inducido por los nodos de G v pintados con colores i o j en ese (G )-coloreo. Lema 2: vi y vj pertenecen a la misma componente conexa de Hij

Cotas para
Lema 1: En todo (G )-coloreo de G v , los vecinos de v en G usan todos los colores y dG (v ) = (G ) v V . Sean N(v ) = {v1 , . . . , v(G ) } los vecinos de v y consideremos un (G )-coloreo de G v donde el nodo vi es pintado con color i. Para i = j, sea Hij el subgrafo inducido por los nodos de G v pintados con colores i o j en ese (G )-coloreo. Lema 2: vi y vj pertenecen a la misma componente conexa de Hij Lema 3: Si Pij es la componente conexa de Hij que contiene a vi y a vj , entonces Pij es un camino en Hij .

Cotas para
Lema 1: En todo (G )-coloreo de G v , los vecinos de v en G usan todos los colores y dG (v ) = (G ) v V . Sean N(v ) = {v1 , . . . , v(G ) } los vecinos de v y consideremos un (G )-coloreo de G v donde el nodo vi es pintado con color i. Para i = j, sea Hij el subgrafo inducido por los nodos de G v pintados con colores i o j en ese (G )-coloreo. Lema 2: vi y vj pertenecen a la misma componente conexa de Hij Lema 3: Si Pij es la componente conexa de Hij que contiene a vi y a vj , entonces Pij es un camino en Hij . Lema 4: Pij Pik = {vi }, para colores i = j = k.

Problema de los cuatro colores

Teorema de los 4 colores (Appel, Haken, 1976): Si G es un grafo planar, entonces (G ) 4.

Teorema (Heawood, 1890): Si G es un grafo planar, entonces (G ) 5.

Algoritmos para coloreo de grafos

Problema dif cil, computacionalmente no resuelto. No se conocen algoritmos polinomiales para calcular (G ) dado un grafo general G . Existen muchos enfoques algor tmicos para este problema:
Heur sticas y metaheur sticas. Algoritmos basados en backtracking (por ejemplo: DSATUR, Brelaz, 1979). Algoritmos exactos basados en programacin lineal entera. o

Algoritmo (heur stica) secuencial (S)

Entrada: Un grafo G con un orden en los nodos v1 , . . . , vn .

f (v1 ) := 1 para i = 2, 3, . . . , n hacer f (vi ) = m n{h / h 1 y f (vj ) = h (vj , vi ) E , 1 j i 1} retornar coloreo definido por f

Algoritmo secuencial (S)


Denimos uS (G , v1 , v2 , . . . , vn ) = mx m a n{i, d(vi ) + 1}.
1in

Proposicin: Si S (G ) es el nmero de colores usado por el o u algoritmo secuencial para colorear G cuando los nodos son considerados en el orden v1 , . . . , vn , entonces (G ) S (G ) uS (G , v1 , v2 , . . . , vn ).

Importa el orden de los vrtices? e

Algoritmo secuencial (LFS)

Orden Largest First (LF): los nodos son ordenados de mayor grado a menor grado, d(u1 ) d(u2 ) . . . d(un ). Proposicin: Si uLF (G ) = uS (G , u1 , u2 , . . . , un ) donde o u1 , u2 , . . . , un estn ordenados segn LF. Entonces a u uLF (G ) m uS (G , v1 , v2 , . . . , vn ) n donde el m nimo est tomado sobre todos los ordenes posibles, a v1 , . . . , vn . Esto implica que siempre el algoritmo secuencial da un resultado mejor si se usa LF?

Algoritmo secuencial

Denicin: Si Gi es el sugrafo inducido por v1 , v2 , . . . , vi , entonces o uS (G , v1 , v2 , . . . , vn ) = 1 + mx {dGi (vi )} a


1in

donde dGi (vi ) es el grado del nodo vi en Gi . Ejercicio: Para cualquier orden de los vrtices e uS (G , v1 , v2 , . . . , vn ) uS (G , v1 , v2 , . . . , vn ) y cota para el nmero de colores usados por el algoritmo secuencial u con orden v1 , v2 , . . . , vn .

Algoritmo secuencial (SLS)

Orden Smallest Last (SL): 1. poner como vn el nodo de m nimo grado de G . 2. para i = n 1, . . . , 1 poner como vi el nodo de grado m nimo en el subgrafo de G inducido por V \ {vn , vn1 , . . . , vi+1 }. Denimos uSL (G ) = 1 + mx m {dGi (vj )} a n
1in 1ji

donde dGi (vj ) es el grado del nodo vj en el grafo inducido por V \ {vn , vn1 , . . . , vi+1 }.

Algoritmo secuencial - Cotas

Se puede demostrar (ejercicio) que: SL (G ) uSL (G ). uSL (G ) uLF (G ). SLS colorea un grafo planar con 6 colores o menos.

Algoritmo secuencial con intercambio (SI)


Supongamos que tenemos un coloreo parcial de G , donde los vrtices v1 , . . . , vi1 ya han sido coloredos y es el turno de e colorear a vi . Si todos los colores ya utilizados estn en la a vecindad de vi , ser necesario utilizar un nuevo color. a

Algoritmo secuencial con intercambio (SI)


Supongamos que tenemos un coloreo parcial de G , donde los vrtices v1 , . . . , vi1 ya han sido coloredos y es el turno de e colorear a vi . Si todos los colores ya utilizados estn en la a vecindad de vi , ser necesario utilizar un nuevo color. a Si existen p y q dos colores utilizados en el coloreo parcial, tal que en todas las componenetes conexas de Hpq los vrtices e adyacentes a vi tienen el mismo color, podemos intercambiar los colores p y q en las componentes de Hpq con vrtices e adyacentes a vi con color p. De esta manera, obtendremos un coloreo parcial de G con el color p no utilizado en la vecindad de vi .

Algoritmo secuencial con intercambio (SI)


Supongamos que tenemos un coloreo parcial de G , donde los vrtices v1 , . . . , vi1 ya han sido coloredos y es el turno de e colorear a vi . Si todos los colores ya utilizados estn en la a vecindad de vi , ser necesario utilizar un nuevo color. a Si existen p y q dos colores utilizados en el coloreo parcial, tal que en todas las componenetes conexas de Hpq los vrtices e adyacentes a vi tienen el mismo color, podemos intercambiar los colores p y q en las componentes de Hpq con vrtices e adyacentes a vi con color p. De esta manera, obtendremos un coloreo parcial de G con el color p no utilizado en la vecindad de vi . Este procedimiento se llama p, q-intercambio.

Algoritmo secuencial con intercambio (SI)


f (v1 ) := 1, k := 1 para i = 2, 3, . . . , n hacer g := m n{h/h 1 y f (vj ) = h (vj , vi ) E , 1 j i 1} si g k entonces f (vi ) := g sino si existen 1 p < q k, tales que un p, q-intercambio libera p entonces realizar el p, q-intercambio f (vi ) := p sino f (vi ) := g , k := k + 1

Algoritmo secuencial con intercambio (SI)

Es siempre mejor el algoritmo SI que el algoritmo S?

Algoritmo secuencial con intercambio (SI)

Es siempre mejor el algoritmo SI que el algoritmo S? No, generando grafos al azar se han encontrado algunos ejemplos complicados donde SI usa ms colores que S. a Se puede demostrar que: SI colorea un grafo bipartito con 2 colores (ejercicio). SI con el ordenamiento SL colorea un grafo planar con 5 colores como mximo. a

Algoritmo secuencial con bracktracking (exacto)


v1 , v2 , . . . , vn ordenamiento de los vrtices de G . e Ui = conjunto de colores posibles para el vrtice vi , una vez e que han sido coloreados v1 , v2 .......vi1 . Si li1 es el mximo color usado para v1 , . . . , vi1 y slo a o buscamos coloreos ptimos, evitando coloreos equivalentes, o j Ui se verica que:
j no es color asignado a un vecino de vi ya coloreado j m n{i, d(vi ) + 1} 1 j li1 + 1 si ya se encontr un coloreo del grafo con q colores entonces o j q1

Algoritmo secuencial con bracktracking (exacto)


Con estas restricciones se hace una bsqueda completa. En el u rbol de bsqueda se abre una rama a partir de cada vrtice a u e (correspondiente a un coloreo de v1 , . . . , vi1 ), para cada elemento de Ui . Se avanza por las ramas coloreando los siguientes vrtices e hasta que ocurre alguna de las siguientes situaciones:
1. se lleg a un vrtice con Ui = : a partir de esta situacin se o e o hace backtracking a partir de vi1 . 2. se colore vn : se encontr un nuevo coloreo del grafo, hay que o o actualizar q y hacer backtracking.

Algoritmo secuencial con bracktracking (exacto)

q: cantidad de colores usados en la mejor solucin encontrada o hasta el momento. k: vrtice siendo considerado. e l: cantidad de colores utilizados en la solucin parcial actual. o lk : l para el vrtice vk . e cotaInf : cota inferior para el nmero cromtico del grafo. u a

Algoritmo secuencial con bracktracking (exacto)


f (v1 ) := 1, q := n + 1, k := 1, l := 1 avanzar := VERDADERO repetir si avanzar k := k + 1, lk := l, determinar Uk si Uk = avanzar := FALSO, k := k 1, l := lk sino j := m Uk , Uk := Uk \ {j}, f (vk ) := j n si j > l entonces l := l + 1 si k < n entonces avanzar := VERDADERO sino almacenar la nueva solucin o encontrar el menor i tal que f (vi ) = l borrar l, l + 1, . . . , q 1 de U1 , . . . , Ui1 q := l, l := q 1, k := i 1 avanzar := FALSO hasta k = 1 o q = cotaInf

Coloreo de aristas
Deniciones: Un coloreo vlido de las aristas de un grafo G es un a asignacin de colores a las mismas en la cual dos aristas que o tienen un vrtice en comn no tengan el mismo color. e u El ndice cromtico (G ) de un grafo G es el menor nmero a u de colores con que se pueden colorear las aristas de un grafo. Teorema de Vizing: Para todo grafo G se verica que (G ) (G ) (G ) + 1.

Potrebbero piacerti anche