Uno de mis amigos me pregunta el siguiente problema de programación en el árbol. Me parece muy limpio e interesante. ¿Hay alguna referencia para ello?
Problema: hay un árbol , cada borde tiene un costo de viaje simétrico de 1 . Para cada vértice , hay una tarea que debe realizarse antes de su fecha límite . La tarea también se denota como . Cada tarea tiene el valor uniforme 1. El tiempo de procesamiento es 0 para cada tarea , es decir, visitar una tarea antes de que su fecha límite sea igual a terminarla. Sin pérdida de generalidad, deje que denote la raíz y suponiendo que no hay ninguna tarea ubicada en . Hay un vehículo en en el momento 0. Además, suponemos que para cada vértice ,d i v iv 0 v 0 d i ≥ d e p i d e p irepresenta la profundidad de . Esto es evidente, el vértice con una fecha límite inferior a su profundidad debe considerarse como atípico. El problema pide encontrar una programación que finalice tantas tareas como sea posible.
Progreso:
- Si el árbol está restringido a una ruta, entonces está en mediante programación dinámica.
- Si el árbol se generaliza a un gráfico, entonces está en -completo.
- Tengo un algoritmo codicioso muy simple que se cree una aproximación de 3 factores. No lo he probado por completo. Ahora mismo, estoy más interesado en los resultados NP-hard. :-)
Gracias por su consejo.
fuente
Respuestas:
No estoy seguro de que esta sea su respuesta (ver más abajo), pero es demasiado larga para los comentarios.
Pensé que su problema era algo como:(P|tree;pi=1|ΣTi) , donde:
Si este es el caso, entonces su problema es NP-hard: puede verlo como una generalización de Minimizar la tardanza total en una sola máquina con restricciones de precedencia . De hecho, este documento afirma que para múltiples cadenas lineales, es NP-hard en un solo procesador. La transformación fácil es tomar los árboles de la forma una raíz, y las cadenas lineales a partir de la raíz.
Sin embargo, estoy sorprendido porque parece decir que para el caso de una sola cadena lineal, usaría la Programación dinámica. No veo por qué necesitaría DP, ya que me parece que al programar una sola cadena lineal no tiene muchas opciones debido a las restricciones de precedencia: solo una sola opción. Entonces tal vez entendí mal tu problema.
fuente
Para que esto sea cierto, tenemos que hacer algunas suposiciones. Ver comentarios a continuación
fuente
El problema de obtener una aproximación constante para este caso o probarlo NP-Hard todavía está abierto y cualquier resultado sería una buena publicación. Algunos casos especiales han sido resueltos. Yo, junto con otros, tengo algunos resultados parciales que resuelven casos especiales como arañas, árboles de altura constante. Pero, el problema general para los árboles no está resuelto.
fuente