Práctica 10: Coloreo (Algoritmos III)

De Cuba-Wiki
Revisión del 02:32 28 jun 2015 de Jake (discusión | contribs.) (Practica Coloreo de AED3 (separada de planaridad))
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)

Propiedades

(Para todo G: grafo)

  • (DEF) Numero cromatico X(G) = minimo # de colores para colorear los vertices de G
  • (OBS)
    • 1. Si G es Kn -> X(G) = n
    • 2. Si G es bipartito y m>0 -> X(G) = 2
    • 3. Si G es un circuito simple par -> X(G) = 2
    • 4. Si G es un circuito simple impar -> X(G) = 3
    • 5. Si G es arbol y n>1 -> X(G) = 2
  • (TEO) Si H es subgrafo de G -> X(H) <= X(G)
  • (DEF) w(G) = # de vertices de una clique maxima de G
  • (TEO) w(G) <= X(G) <= max d(v)+1
  • (TEO) Si G es conexo y no un circuito impar ni es completo, tq max d(v) >= 3 -> X(G) <= max d(v)
  • (TEO) Si G es planar -> X(G) <= 4
  • (DEF) Polinomio cromatico PG(c) = # de formas de colorear los vertices de G un c colores
  • (OBS)
    • 1. Si G no tiene ejes -> PG(c) = c^n
    • 2. Si G es Kn -> PG(c) = c(c-1)...(c-n+1)
    • 3. Si G es un camino simple de k vertices -> PG(c) = c(c-1)^(k-1)
    • 4. Si G esta formado por k comp. conexas -> PG(c) = PG1(c)*PG2(c)*...*PGk(c)
  • (DEF) Indice cromatico X'(G) = minimo # de colores para colorear los ejes de G
  • (TEO) X'(G) = max d(v) o X'(G) = max d(v)+1

Ejercicio 10.01:

Notas:

  • W(G) <= X(G) <= max d(G)+1
  • Si G es planar -> X(G) <= 4


a)
1. 3 <= X(G) <= 4; X(G) =
2. 3 <= X(G) <= 4; X(G) = 3
3. 3 <= X(G) <= 5; X(G) =
4. 3 <= X(G) <= 4; X(G) = 3
b)

Ejercicio 10.02:


a)
Vertices = Variables
Ejes = Relacion "depende de"
Colores = Posiciones de Memoria
b)

Ejercicio 10.03:


Vertices = Comisiones
Ejes = Relacion "comparte legisladores con"
Colores = Reuniones

Ejercicio 10.04:


a)
Vertices = Experimentos
Ejes = Relacion "se superpone con"
Colores = Observatorios
b)

Ejercicio 10.05:


Vertices = Matematicos
Ejes = Relacion "tiene conflicto con"
Colores = Hoteles

Ejercicio 10.06:


Vertices = Radios
Ejes = Relacion "esta a menos de 100 km de"
Colores = Frecuencias

Ejercicio 10.07:


a) Sup. que no es conexo. Sea G' = G-C1, es decir, G sin la comp. conexa C1.
Como es color critico -> X(G') < X(G) y X(C1) < X(G)
Sea f1 un coloreo para C1' / ese coloreo se realiza con X(C1') colores. Definamos analogamente f2 para C1. Podemos construir un coloreo valido para G haciendo f1∪f2 -> tenemos un coloreo de max{ X(G'), X(C1) } -> X(G) < k -> ABS (porque X(G) = k)


b) Sup. Ex. v є V / d(v) < k-1. Hacemos G' = G-v
Como es color critico -> X(G') < X(G) (Obs: para todo G, X(G-v)=X(G)-1)
Sea f' un coloreo para G' con X(G)-1 colores. Si coloreamos a v con el color menor no usado por sus vecinos -> f(v) <= k-1 -> tenemos un coloreo para G con menos de k colores -> ABS


c) Sea C1 una comp. conexa de G-v -> X(C1+v) < X(G) y X(G-C1) < X(G)
Coloreamos en forma optima C1+v1 con f1 y G-C1 con f2.

  • Si f1(v)=f2(v) -> tenemos un coloreo con menos de k colores -> ABS
  • Si f1(v)!=f2(v) -> reordenamos los colores de f2 de forma que la particion en conj. indep. sea la misma y volvemos al caso f1(v)=f2(v) -> ABS


d) Por abs. Supongamos que G tiene una clique de corte S. Sean Gi,...,Gs las componentes de sacar a S de G, pero ademas esas componentes tiene la clique S. Como el grafo es color critico, vale que cada componente es k-1 coloreable. En particular como S es una cloque cada vertice de esa clique usa colores distintos. Ahora tenemos que los Gi son k-1 coloreables y cada una tiene distintos colores en S. Si cada Gi usa los mismos colores en S, se puede generar un coloreo k-1 de G. (no fiarse de mi dem., pero quiza sirve de idea)

Ejercicio 10.08:

Por induccion:

  • CB n = 2 !
  • PI:

Sea G' = G-v (G sin el vertice v). Agregamos el vertice. Si X(G') < X(G), G era k-critico y listo. Si no, X(G') = X(G), con lo cual, si G' tenia un subgrafo k-critico, G tambien lo tiene -> OK


Otra forma: Ir borrando vértices, hasta que el subgrafo que queda al sacar cualquier vertice queda critico.

Ejercicio 10.09:


a)
=>)Sup. que G tiene un circuito C de long. impar -> X(C)= 3 -> no hay forma de usar solo 2 colores -> ABS
<=)Como G no tiene circuitos de long. impar -> G es bipartito -> X(G) = 2 (ya que se puede usar un color para la primer particion y otro para la segunda) -> G es 2-coloreable OK
b) Con BFS (si llego a un vertice marcado y se quiere pintar con el mismo color -> no es 2-coloreable)
c) O(n+m)

Ejercicio 10.10:

El grafo de Grotzsch. (Es el grafo de Mycielski 4, M_4.)

Ejercicio 10.11:


a) Por induccion en n:

  • CB: n = 1

X(G) = X(Gc) = 1 -> 2 <= 2 OK

  • PI:

Saco un vertice -> G' = G-v
X(G)+X(Gc) = X(G')+X(Gc')+k (k cte.). Separamos en casos:
1. X(G) = X(G') o X(Gc) = X(Gc') -> k <= 1 -> X(G)+X(Gc) <= X(G')+X(Gc')+1 <= (HI) n+1 OK
2. dG(v) >= X(G') y dGc(v) >= X(Gc') -> X(G') <= X(G) + 1 <= dG(v) + 1 y X(G'c) <= X(Gc) + 1 <= dGc(v) + 1 entonces
X(G') + X(G'c) <= dG(v) + dGc(v) + 2 (como dGc(v)=n-dG(v)-1) dG(v)+(n-dG(v)-1)+2 = n+1 OK


b) Probamos ambas desigualdades:

  • qvq n <= X(G)*X(Gc)

n <= X(G)*mayor particion del coloreo -> n <= X(G)*α(G) = X(G)*w(Gc)
X(G)*w(Gc) <= X(G)*X(Gc) -> n <= X(G)*X(Gc) OK

  • qvq X(G)*X(Gc) <= [(n+1)/2]^2

Como para todo a,b: √(a*b) <= (a+b)/2 -> X(G)*X(Gc) <= [(X(G)+X(Gc))/2]^2 <= [(n+1)/2]^2 (por a)


c) (X(G)+X(Gc))/2 >= (por b) √(X(G)*X(Gc)) >= √n -> X(G)+X(Gc) >= 2√n

Ejercicio 10.12:

Por absurdo. Supongamos que G no es ninguno de los que dice el enunciado, entonces se puede usar el teorema de brooks.
X(G) <= maximoGrado(G).
Como el grafo es regular, maximoGrado(G)= d(G).
Para el grafo complemento vale que X(Gc) <= maximoGrado(Gc)+1 = d(Gc)+1. (el complemento de un regular es regular).
d(Gc)+1 = n-d(G)+1-1
X(G) + X(Gc) <= d(G)+n-d(G) = n Absurdo, porque deberia ser n+1

Ejercicio 10.13:


a) Si toda region tiene un numero par de aristas frontera -> todos los circuitos de G tienen longitud par -> G es bipartito -> G es 2-coloreable
b) Sup. que G es 2-coloreable -> G es bipartito -> el caso con mas ejes seria el del bipartito completo, entonces tomando V1 como una de las particiones, la cant. de ejes seria |V1|(8-|V1|) = 13 -> -1|V1|^2 + 8|V1| - 13 = 0. Pero no hay un numero entero que cumpla esto -> ABS

Hay otra manera de resolver este punto. Suponemos que G es 2-Coloreable. Entonces G es bipartito. Como el enunciado dice que G es planar, y asumimos que es bipartito, G debe cumplir con m<=2n-4. (esta es una condiciòn de los grafos planares bipartitos). Como m=13 y n=8, m<=2n-4 <=> 13<=12, lo cual no es cierto. Luego nuestro supuesto de que G es bipartito es falso.



c)

Ejercicio 10.14:

En la clase se mostró la demo de que todo grafo planar puede ser coloreado con 5 colores. Esta demo usaba el hecho de que todo grafo planar tiene al menos un vertice de grado menor o igual a 5. Este ejercicio es similar a dicha demostración, salvo por el hecho de que aquí sabemos, por enunciado, que tenemos al menos un vertice de grado menor o igual a 4.

Ejercicio 10.15:


a)
1. k(k-1)
2. k(k-1)^2
3. k(k-1)(k-2)
4. k(k-1)^2(k-2) + k(k-1)^2 = (k-1)^4+(k-1)
Numerar los vertices de C4 v1,v2,v3,v4
v1---v2
|____|
v4---v3
En el circuito el primer termino de la suma corresponde a v2,v4 con distintos colores, lo que obliga a v3 tener k-2 elecciones. El segundo termino corresponde a v2 y v4 con los mismos colores.
5. k(k-1)(k-2)(k-3)
6. k(k-1)(k-2)(k-1)^2
7. k(k-1)(k-2)...(k-(n-1))


b) Vamos tomando k crecientes a partír de 0. Luego, el primer valor de k para el que PG(k)!=0 es el número cromático. Por ejemplo en el 2) PG(0)=0, PG(1)=0, PG(2)=2. Entonces X(G)=2.

Ejercicio 10.16:


a)
b)
c)

Ejercicio 10.17:


a)
b)
c)
d)
e)
f)

Ejercicio 10.18:


a)
b)
c)
d)

Ejercicio 10.19:


a)
b)
c)
d)
e)

Ejercicio 10.20:

Ejercicio 10.21:


a)
b)

Ejercicio 10.22:

Ejercicio 10.23:


a)
b)

Ejercicio 10.24:


1. X'(G) = 4
2. X'(G) = 3 (es bipartito)
3. X'(G) = 3 (n-1, es completo con n par)
4. X'(G) = 5 (n, es completo con n impar)

Ejercicio 10.25:

Se puede resolver coloreando los ejes de un multigrafo, asignando vertices a los profesores y los alumnos, y cada eje representa 1 hora, entonces por ej. si un profesor le da 3 horas a un grupo, hay 3 ejes entre los dos vertices.