árbol de coloración con suma mínima de colores

El problema es colorear los vértices del árbol con números naturales de modo que la suma de los números (colores) asignados a los vértices sea mínima.

¿El número de colores para hacer eso está limitado?

preguntado el 03 de mayo de 12 a las 13:05

¿Te estás perdiendo algo de tus requisitos aquí? ¿Todos los vértices necesitan un número único, o quizás los vértices adyacentes no tengan el mismo número? -

Los vértices adyacentes deben colorearse con números diferentes. -

¿Cómo saber qué vértices (¿nodos?) son adyacentes entre sí? ¿Es solo que los padres están junto a sus hijos? -

Mmm. Al principio pensé que este era el famoso problema de los 4 colores [en.wikipedia.org/wiki/Four_color_theorem]. Sin embargo, eso se aplica a los gráficos generales. Si tienes un árbol, ¿no serán suficientes 2 colores, simplemente alternas cada "capa" en el árbol? -

@Kevin: en un árbol, los nodos con borde entre ellos se consideran adyacentes, por lo que en un árbol enraizado, un padre y su hijo son adyacentes entre sí. -

5 Respuestas

Creo que 3 colores son suficientes para hacer eso. ¿Cómo demostrarlo?

Que no es. Describa un árbol con raíz algebraicamente de la siguiente manera. V es un árbol de un nodo. E(t1, t2) es un árbol formado por t1 y t2 y un borde de t1la raíz de t2raíz de , enraizada en t2raíz de . el siguiente arbol t3 requiere cuatro colores para alcanzar el mínimo, 156.

t3 = E(t2, E(t2, E(t2, E(t2, t2))))
t2 = E(t1, E(t1, E(t1, E(t1, t1))))
t1 = E(t0, E(t0, E(t0, E(t0, t0))))
t0 = V

Basado en algunos experimentos, yo conjeturaría puede probar que esta construcción se generaliza y, por lo tanto, que ningún número fijo de colores es suficiente para alcanzar el mínimo para todos los árboles.

Teorema Para todo d ≥ k ≥ 3, el siguiente árbol T(d, k) construido inductivamente requiere al menos k colores. T(d, 1) es el árbol de un vértice. Para i > 1, T(d, i) es el árbol con d hojas unidas a cada vértice de T(d, i - 1).

Pruebas Por inducción sobre k. El caso base k = 3 es esencialmente su ejemplo donde se necesitan 3 colores para la optimización. Para k > 3, considere una coloración de T(d, k) que use solo k - 1 colores. Mostramos cómo usar el color k para mejorarlo. Si algún vértice interno tiene color 1, entonces mejoramos cambiando su color a k y cambiando los colores de sus hojas adyacentes d > k - 1 a 1. Si ningún vértice de intervalo tiene color 1, y alguna hoja tiene color diferente a 1, cambie la hoja a 1. Si aún no hemos mejorado, todas las hojas tienen color 1 y todos los vértices de intervalo tienen color > 1. Eliminando todas las hojas y decrementando las etiquetas, tenemos una coloración de T(d, k - 1) , que podemos mejorar por hipótesis inductivas.


data Tree = V | E Tree Tree
    deriving (Eq, Show)

otherMinimums [x, y] = [y, x]
otherMinimums (x:xs) = minimum xs : map (min x) (otherMinimums xs)

color m V = [1..m]
color m (E t1 t2) = let
    c1 = color m t1
    c2 = color m t2 in
    zipWith (+) (otherMinimums c1) c2

t3 = E t2 $ E t2 $ E t2 $ E t2 $ t2
t2 = E t1 $ E t1 $ E t1 $ E t1 $ t1
t1 = E t0 $ E t0 $ E t0 $ E t0 $ t0
t0 = V

Resultados:

> color 3 t3
[157,158,163]
> color 4 t3
[157,158,159,156]

contestado el 03 de mayo de 12 a las 16:05

Definitivamente es como máximo 156 para 4 colores. Construya la coloración de la siguiente manera: la etiqueta del vértice único en t0 es 1, las etiquetas en ti son, para cada una de las cinco copias de ti-1, los mismos colores, excepto que la raíz debe incrementarse en uno. La recurrencia es T(0) = 1; T(i) = 5 * T(i-1) + 1; entonces T(0) = 1, T(1) = 6, T(2) = 31, T(3) = 156. - tambalearse

Primero, 2 colores son suficientes para cualquier árbol. Para probar eso, puedes simplemente colorear el árbol nivel por nivel en colores alternos.

En segundo lugar, colorear nivel por nivel es el único método válido de 2 colores. Se puede demostrar por inducción sobre los niveles. Corrija el color del nodo raíz. Entonces todos sus hijos deberían tener el color diferente, hijos de los hijos — primer color, y así sucesivamente.

En tercer lugar, para elegir el color óptimo, simplemente verifique los dos diseños posibles: cuando el nodo raíz tiene el color 0, y cuando tiene el color 1, respectivamente.

contestado el 03 de mayo de 12 a las 16:05

a veces, agregar un tercer color reduce la suma. - Arizona

Para un árbol, puede usar solo 2 colores: uno para nodos con profundidad impar y un segundo color para nodos con profundidad uniforme.

EDITAR: La respuesta anterior fue incorrecta porque no entendí el problema.

Como muestra Wobble, el número de colores necesarios no está limitado.

contestado el 04 de mayo de 12 a las 13:05

a veces, agregar un tercer color reduce la suma. - Arizona

@az ¿Puede proporcionar un ejemplo de tal caso? - Skiminok

lista de aristas{1-2, 1-3, 1-4, 1-5, 5-6, 5-7, 5-8}, colorea el vértice 1 con 3, el vértice 5 con 2 y los demás con 1. - Arizona

El problema es encontrar un conjunto máximo independiente para el color 1, luego un conjunto máximo independiente para el color 2, … - Tomas

El número de colores para minimizar la suma de un árbol con n nodos está acotado como O(logn)

Esto fue cubierto por E. Kubicka en su artículo de 1989. http://dl.acm.org/citation.cfm?id=75430

Respondido el 24 de enero de 15 a las 08:01

Colorear cualquier Árbol con 2 Colores {0,1} es suficiente pero la complejidad será O(n).

Colorear cualquier árbol con 3 colores {0,1,2} es suficiente pero la complejidad será O(log* (n))

ahora la pregunta es qué es log*(n)

registro * (n) - "log Star n" tan conocido como "Logaritmo iterado"

En palabras simples, puede asumir log * (n) = log (log (log (..... (log * (n))))

log * (n) es muy poderoso.

Ejemplo:

1) Log * (n) = 5 donde n = Número de átomos en el universo

2) Encontrar la triangulación de Delaunay de un conjunto de puntos conociendo el árbol de expansión mínimo euclidiano: tiempo O (n log * n) aleatorio.

Respondido el 25 de junio de 15 a las 15:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.