9
06/04/2015 1 Análisis y Diseño de Algoritmos II COLOREO DE UN GRAFO ING. TOMMASEL ANTONELA Coloreo de Grafo Definición Gráfica 1 2 3 4 Coloreo de Grafo Definición Formal Un coloreo de un grafo ܩ=(, ܣ) es una transformación ܥ: donde es un conjunto finito de colores tal que si (ݒ, ݓ) pertenece a ܣ, luego: ܥ(ݒ) ! = ܥ(ݓ). Es decir, vértices adyacentes no pueden tener el mismo color. El número cromático de ܩes el número más bajo de colores necesarios para colorearlo. Propiedades del Coloreo de Grafos Todo Grafo Bipartito puede ser coloreado con 2 colores. Teorema de los Cuatro Colores (Appel & Haken, 1976) Todo grafo planar puede ser coloreado con 4 colores. Teorema (Grötzsch, 1959) Todo grafo planar que no contiene triángulos (ciclos de longitud 3) puede ser coloreado con 3 colores. Teorema (Vizing, 1964) Para todo grafo la cantidad de colores necesarios es menor o igual al máximo grado del grafo + 1. Vizing, Vadim G. "On an estimate of the chromatic class of a p-graph." Diskret. Analiz 3.7 (1964): 25-30. Appel, Kenneth, and Wolfgang Haken. "Every planar map is four colorable."Mathematical Solitaires & Games (1980): 145. Grötzsch, H. "Zur Theorie der diskreten Gebilde. VII. Ein Dreifarbensatz far dreikreisfreie Netze auf der Kugel." Wiss. Z. Martin-Luther-Univ. Halle-Wittenberg. Math. Nat. Reihe8 (1958/59): 109-120.

Graph Colouring

Embed Size (px)

DESCRIPTION

Different alternatives for performing graph colouring

Citation preview

06/04/2015

1

Análisis y Diseño de Algoritmos IICOLOREO DE UN GRAFO

ING. TOMMASEL ANTONEL A

Coloreo de GrafoDefinición Gráfica

1

2

3 4

Coloreo de GrafoDefinición Formal

• Un coloreo de un grafo 퐺 = (푉,퐴) es una transformación 퐶: 푉 → 푆 donde 푆 es un conjunto finito de colores tal que si (푣,푤) pertenece a 퐴, luego: 퐶(푣) ! = 퐶(푤). Es decir, vértices adyacentes no pueden tener el mismo color.

• El número cromático de 퐺 es el número más bajo de colores necesarios para colorearlo.

Propiedades del Coloreo de Grafos

• Todo Grafo Bipartito puede ser coloreado con 2 colores.

• Teorema de los Cuatro Colores (Appel & Haken, 1976)

• Todo grafo planar puede ser coloreado con 4 colores.

• Teorema (Grötzsch, 1959)

• Todo grafo planar que no contiene triángulos (ciclos de longitud 3) puede sercoloreado con 3 colores.

• Teorema (Vizing, 1964)

• Para todo grafo la cantidad de colores necesarios es menor o igual al máximogrado del grafo + 1.

Vizing, Vadim G. "On an estimate of the chromatic class of a p-graph." Diskret. Analiz 3.7 (1964): 25-30.Appel, Kenneth, and Wolfgang Haken. "Every planar map is four colorable."Mathematical Solitaires & Games (1980): 145.Grötzsch, H. "Zur Theorie der diskreten Gebilde. VII. Ein Dreifarbensatz far dreikreisfreie Netze auf der Kugel." Wiss. Z. Martin-Luther-Univ. Halle-Wittenberg. Math. Nat. Reihe8 (1958/59): 109-120.

06/04/2015

2

Alternativas de Solución

Backtracking TransformacionesLocales

Aproximación de Horowitz

Greedy Combinación de Técnicas

Alternativas de Solución

Backtracking TransformacionesLocales

Aproximación de Horowitz

Greedy Combinación de Técnicas

for (cada vertice v){color := 1;while (g.adyacenteColoreado(v,color)color++;

g.colorear(v,color)}

Alternativas de Solución

Backtracking TransformacionesLocales

Aproximación de Horowitz

Greedy Combinación de Técnicas

if (|G| = 0 )0 colores;

elseif (|G| = 1 )1 color;

elseif (G es bipartito)2 colores;

else4 colores;

Coloreo de GrafoTransformaciones Parciales

1 2

3

4

5

6

7

8

06/04/2015

3

Coloreo de GrafoTransformaciones Parciales – 1. Coloreo con otra técnica

1 2

3

4

5

6

7

8

COLORES 1 2 1 1 3 2 1 2

1 2 3 4 5 6 7 8Se aplicó un Coloreo Secuencial tomando los vértices de menor a mayor respecto de su valor.

Coloreo de GrafoTransformaciones Parciales – 2. Analizar vértices a re-colorear

1 2

3

4

5

6

7

8

COLORES 1 2 1 1 3 2 1 2

1 2 3 4 5 6 7 8

Coloreo de GrafoTransformaciones Parciales – 3. Analizar Pares de Colores

1 2

3

4

5

6

7

8

UN ÚNICO PAR PARA ANALIZAR

1 2COLORES 1 2 1 1 3 2 1 2

1 2 3 4 5 6 7 8

Coloreo de GrafoTransformaciones Parciales – 3. Analizar Pares de Colores

a) Construir sub-grafos con los vertices coloreados con ese par de colores.

UN ÚNICO PAR PARA ANALIZAR

1 2

1 2

3

4

5

6

7

8

COLORES 1 2 1 1 3 2 1 2

1 2 3 4 5 6 7 8

06/04/2015

4

Coloreo de GrafoTransformaciones Parciales – 3. Analizar Pares de Colores

1 2

3

4

6

7

8

b) Identificar Componentes Conectadas

Componente1

Componente2

Componente3

COLORES 1 2 1 1 3 2 1 2

1 2 3 4 5 6 7 8

Coloreo de GrafoTransformaciones Parciales – 3.c. Por cada Componente Conectada

1 2

3

4

6

7

8

3.c.1) Analizar si el vértice a colorear está conectado a vertices de distintos colores

Componente1

Componente2

Componente3

COLORES 1 2 1 1 3 2 1 2

1 2 3 4 5 6 7 8

Coloreo de GrafoTransformaciones Parciales – 3.c. Por cada Componente Conectada

36

7

8

3.c.1) Analizar si el vértice a colorear está conectado a vertices de distintos colores

Componente1

Análisis Componente1

5

Está conectado a vértices de un único color.

COLORES 1 2 1 1 3 2 1 2

1 2 3 4 5 6 7 8

Coloreo de GrafoTransformaciones Parciales – 3.c. Por cada Componente Conectada

36

7

8

3.c.2) Intercambiar Colores de la Componente

Componente1

Análisis Componente1

5

COLORES 1 2 1 1 3 2 1 2

1 2 3 4 5 6 7 8

06/04/2015

5

Coloreo de GrafoTransformaciones Parciales – 3.c. Por cada Componente Conectada

36

7

8

COLORES 1 2 2 1 3 1 2 1

1 2 3 4 5 6 7 8

3.c.2) Intercambiar Colores de la Componente

Componente2

Análisis Componente1

5

Coloreo de GrafoTransformaciones Parciales – 3.c. Por cada Componente Conectada

1 2

3

4

6

7

8

3.c.3) Analizar si el posible colorear con un color ya usado

Componente1

Componente2Componente3

5

COLOREAR CON

NO ES POSIBLE

NO ES POSIBLE

COLORES 1 2 2 1 3 1 2 1

1 2 3 4 5 6 7 8

Coloreo de GrafoTransformaciones Parciales – 3.c. Por cada Componente Conectada

4

3.c.1) Analizar si el vértice a colorear está conectado a vertices de distintos colores

Componente2

Análisis Componente2

Está conectado a vértices de un único color.

5

COLORES 1 2 2 1 3 1 2 1

1 2 3 4 5 6 7 8

Coloreo de GrafoTransformaciones Parciales – 3.c. Por cada Componente Conectada

4

3.c.2) Intercambiar Colores de la Componente

Componente2

Análisis Componente2

5

COLORES 1 2 2 1 3 1 2 1

1 2 3 4 5 6 7 8

06/04/2015

6

Coloreo de GrafoTransformaciones Parciales – 3.c. Por cada Componente Conectada

4

3.c.2) Intercambiar Colores de la Componente

Componente2

Análisis Componente2

5

COLORES 1 2 2 2 3 1 2 1

1 2 3 4 5 6 7 8

Coloreo de GrafoTransformaciones Parciales – 3.c. Por cada Componente Conectada

1 2

3

4

6

7

8

COLORES 1 2 2 2 3 1 2 1

1 2 3 4 5 6 7 8

3.c.3) Analizar si el posible colorear con un color ya usado

Componente1

Componente2Componente3

5

COLOREAR CON

ES POSIBLE

Coloreo de GrafoTransformaciones Parciales – 3.c. Por cada Componente Conectada

1 2

3

4

6

7

8

COLORES 1 2 2 2 1 1 2 1

1 2 3 4 5 6 7 8

3.c.3) Analizar si el posible colorear con un color ya usado

Componente1

Componente2Componente3

5

COLOREAR CON

ES POSIBLE

Coloreo de GrafoTransformaciones Parciales – Grafo Modificado

1 2

3

4

6

7

8

5COLORES 1 2 2 2 1 1 2 1

1 2 3 4 5 6 7 8

06/04/2015

7

Coloreo de GrafoTransformaciones Parciales – Consideraciones

36

7

8

COLORES 1 2 1 1 3 2 1 2

1 2 3 4 5 6 7 8

Qué hubiese pasado si el vértice se encontraba conectado a vertices de más de un color?

Componente1

Análisis Componente1

5

Al estar conectado a vertices de más de un color, el intercambio no hubiese solucionado el problema.

Es decir, no es possible colorear el vértice 5 con algunode los colores ya usados.

Coloreo de GrafoTransformaciones Parciales – Consideraciones

COLORES 1 2 1 1 3 2 1 2

1 2 3 4 5 6 7 8

El coloreo es sensible al orden en el que se consideran las componentes.

1 2

3

4

6

7

8

Componente1

Componente2

Componente3

Coloreo de GrafoTransformaciones Parciales – Consideraciones

COLORES 2 1 1 1 3 2 1 2

1 2 3 4 5 6 7 8

El coloreo es sensible al orden en el que se consideran las componentes.

1 2

3

4

6

7

8

Componente1

Componente2

Componente3

5

Se podría aplicaralguna estrategia para elegir el orden de lascomponentes.

Coloreo de GrafoTransformaciones Parciales - Resumiendo

1.Colorear el grafo mediante alguna técnica (por ejemplo: Secuencial).2.Analizar vértices con colores superiores a 2.3.Por cada par de colores asignados:

3.a Construir sub-grafos con los vértices coloreados con ese par de colores.3.b Identificar componentes conectadas.3.c Por cada componente conectada

3.c.1 Analizar si el vértice a colorear está conectado a vértices de distintos colores.3.c.2 Si no, intercambiar colores.3.c.3 Analizar factibilidad del coloreo.

06/04/2015

8

Coloreo de GrafoTransformaciones Parciales - Pseudocódigo

void coloreo_trans( Grafo<int> g, int*colores ){Grafo<int> h;int* componentes;for (vértice v en g que se deba cambiar el color){

for (cada par de colores (i,j)){h:=getSubgraph(g,i,j);componentes:=getComponentes(h);for (cada componente c){if (v conectado a vertices de un unico color){

intercambiarColoresComponente(colores,c)if (esFactibleColorear(g,v,colores))

cambiar color de v;}

}}

}

Coloreo de GrafoTransformaciones Parciales - Pseudocódigo

void coloreo_trans( Grafo<int> g, int*colores ){Grafo<int> h;int* componentes;bool coloreado := false;for (vértice v en g que se deba cambiar el color){for (cada par de colores (i,j) && !coloreado){h:=getSubgraph(g,i,j);componentes:=getComponentes(h);for (cada componente c && !coloreado){

if (v conectado a vertices de un unico color){intercambiarColoresComponente(colores,c)if (esFactibleColorear(g,v,colores)){

cambiar color de v;coloreado := true;

}}else

coloreado := true; //No porque haya podido cambiar el color, sino porque no va a ser possible hacerlo.

}}

}}

Coloreo de GrafoCombinación de Técnicas

• Un algoritmo para un problema complejo puede construirse combinando algoritmos para problemas simples.

• Los algoritmos simples pueden operar sobre las mismas entradas o sobre entradas calculadas como resultados intermedios de otros problemas simples.

• La complejidad del algoritmo puede ser acotada por suma, multiplicación y composición de complejidades de otros algoritmos.

Coloreo de GrafoCombinación de Técnicas

• Desde el punto de vista práctico hay que resolver los problemas NP eficientemente.

• Si las entradas son “pequeñas” Usar algoritmos basados en backtracking que realicen una búsqueda exhaustiva

• Si las entradas “no son pequeñas” Construir soluciones aproximadas,“cercanas” a la mejor solución, a partir de algoritmos polinomiales.

if ( |G| <= MAX_VERTICES )colores := coloreoBacktracking(G)

else{colores := coloreoGreedy(G);colores := coloreoTransfParciales(G,colores);

}

06/04/2015

9

Coloreo de GrafoCombinación de Técnicas

• Las transformaciones parciales también pueden aplicarse en conjunto con el algoritmo de coloreo secuencial.

for (cada vertice v){color := 1;

while (g.adyacenteColoreado(v,color)color++;

if ( color ya había sido usado)g.colorear(v,color)

elseaplicar transformaciones parciales

}

for (cada vertice v){color := 1;

while (g.adyacenteColoreado(v,color)color++;

g.colorear(v,color)

}

Evaluación Experimental de Soluciones Aproximadas

• Un algoritmo de aproximación está acotado por ρ(n) si para cualquier entrada de tamaño n, el costo de la solución del algoritmo de aproximación, para un costo de una solución factible c y un costo c* de una solución óptima, es:

max ( c/c* , c*/c) ≤ ρ(n)

• Supongamos problemas de optimización, en los que cada solución factible tiene un costo positivo y se pretende obtener una solución cercana a la óptima.

Evaluación Experimental de Soluciones Aproximadas

• No se conocen algoritmos de aproximación para el coloreo de un grafo que estén acotados por un factor constante.

• Se demostró que si se descubriese un algoritmo de aproximación que en el peor de los casos duplicara la cantidad de colores de la solución óptima, sería posible obtener un coloreo óptimo en tiempo polinomial.

Esto implicaría: tiempo = NP-tiempo !!!!

• Obtener una “buena” solución, no necesariamente la óptima, para el coloreo puede ser en sí mismo un problema NP-HARD!!!

Análisis y Diseño de Algoritmos IICOLOREO DE UN GRAFO

ING. TOMMASEL ANTONEL A