Este es un seguimiento de la reciente pregunta de David Eppstein y está motivado por los mismos problemas.
Supongamos que tengo un dag con pesos de números reales en sus vértices. Inicialmente, todos los vértices no están marcados. Puedo cambiar el conjunto de vértices marcados marcando (1) un vértice sin predecesores sin marcar, o (2) marcando un vértice sin sucesores marcados. (Por lo tanto, el conjunto de vértices marcados es siempre un prefijo del orden parcial). Quiero encontrar una secuencia de operaciones de marcado / desmarcado que finalice con todos los vértices marcados, de modo que el peso total de los vértices marcados sea siempre no negativo. .
¿Qué tan difícil es encontrar tal secuencia de operaciones? A diferencia del problema de David , ni siquiera está claro que este problema esté en NP; en principio (aunque no tengo ningún ejemplo) cada secuencia de movimiento legal podría tener una longitud exponencial. Lo mejor que puedo demostrar es que el problema está en PSPACE.
¿La operación de desmarcado es realmente innecesaria? Si hay una secuencia de movimiento válida, ¿debe haber una secuencia de movimiento válida que nunca desmarque un vértice? Una respuesta afirmativa haría este problema idéntico al de David . Por otro lado, si a veces es necesario desmarcar, debe haber un pequeño ejemplo (tamaño constante) que lo demuestre.
Respuestas:
En nuestro seminario regular de investigación 666 encontramos la siguiente prueba.
Comenzamos con algunas definiciones. Que P sea nuestro poset. Para simplificar, suponga que ninguno de los pesos suma cero. Denote el peso de un vértice por w (x) y la suma de los pesos de un conjunto por w (X). Decimos que un conjunto X es Y-arriba (cerrado) si está contenido en Y y cada elemento de Y que es más grande que un elemento de X también está en X. Del mismo modo, digamos que un conjunto X es Y-abajo si está contenido en Y y cada elemento de Y que es más pequeño que un elemento de X también está en X. En este lenguaje, el conjunto de elementos marcados debe estar siempre P-down.
Probamos por contradicción. Tome la secuencia más corta de marcar / desmarcar que marca cada elemento. Llamamos a tales secuencias completas. En cualquier punto dado, considere el conjunto de elementos que se marcaron antes pero que ahora no están marcados. Denota este conjunto de U.
Reclamación: w (U)> 0.
Prueba: demostramos que el peso de cualquier conjunto de U, X, es positivo. La prueba es por inducción en el tamaño de X. Si hay un conjunto X-down, Y, tal que w (Y)> 0, entonces ya que por inducción sabemos que w (X \ Y)> 0 (ya que es X-up), también tenemos w (X)> 0. Si para cada conjunto de X-down, Y, tenemos w (Y) <0, entonces al eliminar hasta este punto todas las marcas y desmarques de los elementos de X de nuestra secuencia, obtenemos una secuencia completa más corta. Hemos terminado con la prueba del reclamo.
Ahora suponga que tenemos una secuencia completa donde w (U)> 0 en cualquier punto para el conjunto U de elementos actualmente sin marcar. Tome la secuencia que obtenemos de esto al tomar la primera marca de cada elemento y nunca desmarcar nada. Está claro que esta también será una secuencia completa que satisface que el conjunto de elementos marcados esté siempre P-down. Además, la suma de los pesos será siempre al menos tanto como en la secuencia original ya que en cualquier momento dado la diferencia es w (U). Hemos terminado.
Con este método, incluso se puede demostrar que si en lugar de marcar la totalidad de P, solo queremos marcar un subconjunto de P, entonces se puede hacer con una secuencia de marcas seguida de una secuencia de desmarques. La prueba es la misma, excepto que al final algunos elementos, U, permanecen sin marcar, pero estos se pueden mover al final de la secuencia ya que el peso de cualquier conjunto U-up es positivo.
fuente