Ho un compito a casa contro il quale mi sto scontrando da un po 'di tempo, e apprezzerei qualsiasi suggerimento. Si tratta di scegliere un problema noto, la cui completezza NP è dimostrata, e di costruire una riduzione da quel problema al seguente problema che chiamerò DGD (diagnosi diretta del grafico).
Problema
Un esempio di DGD consiste di vertici V = I . ∪ O . ∪ B , bordi diretti E e un intero positivo k . Ci sono tre tipi di vertici: vertici con soli archi entranti I , vertici con solo bordi uscita O e vertici sia in entrata e in uscita bordi B . Lasciate inoltre D = O × io .
Ora, il problema è se possiamo coprire tutti i nodi con al massimo elementi di D , cioè
dove significa che esiste un percorso diretto da a a b .
Penso che il problema di Dominating Set sia quello da cui dovrei ridurre, perché anche questo è preoccupato di coprire un sottoinsieme di nodi con un altro sottoinsieme. Ho provato a creare un'istanza DGD creando prima due nodi per ciascun elemento dell'insieme dominante, copiando tutti i bordi e quindi impostando la dell'istanza DGD uguale a quella dell'istanza DS.
Supponiamo una semplice istanza DS con nodi , 2 e 3 e bordi ( 1 , 2 ) e ( 1 , 3 ) . Questa è un'istanza yes con k = 1 ; l'insieme dominante in questo caso è costituito solo dal nodo 1 . Riducendo con il metodo appena descritto, ciò porterebbe a un'istanza DGD con due percorsi ( 1 → 2 → 1 ′ ) e ( 1 → 3 → 1 ′ ); per coprire tutti i nodi, sarebbe sufficiente una sola coppia . Ciò avrebbe funzionato perfettamente, se non fosse per il fatto che l'insieme dominante dell'istanza di DS non può, ovviamente, essere determinato in tempo polinomiale, che è un requisito qui.
Ho scoperto che ci sono molti modi belli di trasformare i bordi e i vertici durante la riduzione, ma il mio problema è in qualche modo esprimere la di DGD in termini di k di DS . Dominare Set sembrava un problema adeguato da ridurre, ma per questo penso che forse dovrei provare a ridurre da un problema che non ha tale k ?