Questo problema di viaggio ottimale è scaduto NP-duro sugli alberi?


13

Uno dei miei amici mi chiede il seguente problema di pianificazione sull'albero. Trovo che sia molto pulito e interessante. C'è qualche riferimento per questo?

Problema: esiste un albero , ogni bordo ha un costo di spostamento simmetrico di 1 . Per ogni vertice v i , v'è un compito che deve essere fatto prima della scadenza d i . L'attività è anche indicata come v i . Ogni attività ha il valore uniforme 1. Il tempo di elaborazione è 0 per ogni attività , vale a dire, visitando un'attività prima che la sua scadenza sia uguale a finirla. Senza perdita di generalità, lascia che v 0 denoti la radice e supponendo che non vi sia alcuna attività situata in v 0 . C'è un veicolo su v 0T(V,E)vidiviv0v0v0al tempo 0. Inoltre, assumiamo che didepi per ogni vertice , depi sta per la profondità di vi . Ciò è evidente, il vertice con scadenza inferiore alla sua profondità dovrebbe essere considerato come anomalo. Il problema richiede di trovare una pianificazione che completi il ​​maggior numero possibile di attività.

Progresso:

  1. Se l'albero è limitato a un percorso, allora è in P tramite la programmazione dinamica.
  2. Se l'albero è generalizzato in un grafico, allora è in NP completo.
  3. Ho un algoritmo avido molto semplice che si ritiene apporossimazione a 3 fattori. Non l'ho provato completamente. Bene, sono più interessato ai risultati NP-difficili. :-)

Grazie per il tuo consiglio.


Su un grafico completo, l'attività sarebbe facile, giusto? Usa un semplice algoritmo avido ...
Joe

@ Joe: Sì. Perché ogni bordo ha bisogno di 1 unità in viaggio, quindi non c'è preferenza tra "incroci". Sei ancora interessato a questo problema, se sì. forse possiamo parlare via e-mail. :-)
Peng Zhang,

Cosa succede se tutte le scadenze sono uguali e / o chiediamo solo se tutte le attività possono essere completate?
domotorp,

@domotorp: se chiede di completare tutte le attività con una scadenza, la risposta è SÌ se e solo se la scadenza uniforme . Solo approfondimento prima ricerca. Per quanto riguarda il problema ottimale sul caso d < | V | , Non so se sia facile. Esistono molte varianti di questo problema, come considerare cosa succede se le scadenze prendono valori da un insieme finito la cui cardinalità è una costante? Grazie mille per il tuo commento d|V|d<|V|
Peng Zhang,

Direi che NP-hard vede lo zoo di programmazione , tranne se ho frainteso il tuo problema.
Gopi,

Risposte:


1

Non sono sicuro che questa sia la tua risposta (vedi sotto) ma un po 'troppo a lungo per i commenti.

Ho pensato che il tuo problema fosse qualcosa del tipo: (P|tree;pi=1|ΣTi) , dove:

  • sta per processori omogenei identici,P
  • "albero" sta per vincolo di precedenza la forma di un albero,
  • significa che il peso delle attività è uguale a 1 epi=1
  • sta per ridurre al minimo la somma di ritardo (ad esempio, il numero di attività che terminano dopo la loro scadenza).ΣTi

In questo caso, il tuo problema è NP-difficile: puoi vederlo come una generalizzazione della riduzione al minimo del ritardo totale su una singola macchina con vincoli di precedenza . In effetti questo documento afferma che per più catene lineari, è NP-difficile su un singolo processore. La trasformazione facile è prendere gli alberi della forma una radice e catene lineari a partire dalla radice.

Tuttavia sono sorpreso perché sembra che tu abbia affermato che nel caso di una singola catena lineare, utilizzeresti la Programmazione dinamica. Non vedo perché avresti bisogno di DP, poiché mi sembra che quando si pianifica una singola catena lineare non si abbia molta scelta a causa dei vincoli di precedenza: solo una singola scelta. Quindi forse ho frainteso il tuo problema.


Il mio problema sembra diverso dal tuo. Il mio è "un albero radicato, il tempo unitario del costo del viaggio, ogni vertice con un'attività con la sua scadenza, l'attività non ha bisogno di tempo per la precessione. A partire dalla radice, quante attività possono essere completate?". Quindi non c'è precedenza, non c'è tempo necessario per elaborare un'attività. Grazie mille.
Peng Zhang,

@PengZhang, Se è un albero radicato, allora ci sono delle precedenza? Per quanto riguarda il costo sui bordi (precedenza?) O sui compiti, mi sembra la stessa cosa. Non vedo davvero la differenza tra entrambi. Infine, quante attività possono essere completate, se si minimizza il numero di attività che terminano dopo la scadenza, è equivalente a massimizzare il numero di attività che possono essere completate. Forse potresti disegnare un'immagine di ciò che ti aspetti?
Gopi,

Non vedo la chiara relazione tra due problemi. Nel problema originale, il costo per visitare un nodo successivo dipende da quale nodo è stato visitato nel passaggio precedente. Nella pianificazione vincolata dalla precedenza, il costo di un successivo lavoro da elaborare non dipende da quale lavoro è stato elaborato nel passaggio precedente, a condizione che il vincolo di precedenza sia soddisfatto.
Yoshio Okamoto,

@Gopi: il costo dei bordi non può essere "trasferito" sui nodi, per quanto penso. Se l'albero è limitato a un percorso (forse la catena che hai indicato), nel mio problema possiamo programmare in modo dinamico come segue. Lascia che i vertici siano numerati come da sinistra a destra. Lasciate che f ( t , l , r ) denoti i compiti massimi dall'intervallo di posizione [ l , r ] al tempo t e il veicolo si trovi su l . Lascia g ( t , l , r )1,2,,nf(t,l,r)[l,r]tlg(t,l,r)denota la stessa cosa di tranne per il fatto che il veicolo è r . Quindi abbiamo f ( t , l , r ) che può essere derivato da { f ( , l + 1 , r ) , g ( , l , r - 1 ) . Perché t , l , r sono polinomiali, quindi dp è polinomiale.f(t,l,r)rf(t,l,r){f(,l+1,r),g(,l,r1)t,l,r
Peng Zhang,

@PengZhang, ok, penso di avere una migliore comprensione di ciò che intendi. Credo ancora che si possa facilmente adattare la carta che ho dato, considerando alberi speciali in cui i rami sono percorsi (quindi percorsi radicati).
Gopi,

1

Perché ciò sia vero, dobbiamo fare alcune ipotesi. Vedi i commenti qui sotto

Per il caso dell'albero, credo che esista un algoritmo di programmazione dinamica ricorsiva temporale polinomiale parametrizzato dal tempo massimo di scadenza. I sotto-problemi sono: se entriamo in un sottoalbero entro il tempo e usciamo dall'albero secondario entro il tempo t b , qual è il numero massimo di attività che possiamo completare nel sottoalbero? I casi di base alle foglie sono facili e memorizziamo dal basso verso l'alto.tatb

Se avessimo veramente parametrizzato il tempo massimo di scadenza, l'algoritmo non sarebbe realmente polinomiale nelle dimensioni dell'albero. Tuttavia, la lunghezza del percorso più lungo che visita tutti i nodi dell'albero è solo polinomiale in e non abbiamo mai bisogno di controllare i termini entro tale termine.|V|


2
f[a,t,t]a[t,t]a

il punto (1) non costituisce un problema tanto quanto il punto (2). Affinché la mia idea funzioni come l'ho immaginata per la prima volta, è necessario non uscire e rientrare più volte in un sottoalbero. Non è ovvio che la soluzione migliore non salti tutto intorno all'albero: ottiene una foglia e qualcosa vicino alla radice e cammina verso una foglia, quindi su un'altra foglia lontana dalle altre 2, ecc. Potresti essere in grado per sfruttare il fatto che otterrai tutti i nodi su qualsiasi percorso percorri. In particolare se un bambino è stato visitato, allora il genitore è già visitato.
Joe,

: A mio avviso, il punto (1) è davvero un problema . Per il punto (2), ho chiamato il vincolo "no re-entry" come vincolo "Depth First Search". Il vincolo DFS è comunemente adottato nelle letterature. E sotto questo vincolo, il mio problema è davvero polinomiale, purché il massimo grado dell'albero sia una costante . Quindi mi chiedo che la mia domanda sia NP-difficile. Grazie mille.
Peng Zhang,

3
Per quanto riguarda il vincolo DFS, è facile costruire un esempio in cui la sequenza ottimale viola questo vincolo. Considera un albero binario completo ed equilibrato con 7 nodi. Lascia che le 2 foglie nella sottostruttura sinistra abbiano scadenze 2 e 12, le 2 foglie nella sottostruttura destra abbiano scadenze 8 e 6, e i nodi interni abbiano scadenze 100. Puoi visitare tutti i nodi visitando le foglie nell'ordine 2,6,8 , 12; qualsiasi altro ordine viola almeno una scadenza.
mum

0

Il problema di ottenere un'approssimazione costante per questo caso o dimostrarlo NP-Hard è ancora aperto e qualsiasi risultato farebbe una buona pubblicazione. Alcuni casi speciali sono stati risolti. Io, insieme ad altri, ho alcuni risultati parziali che risolvono casi speciali come ragni, alberi ad altezza costante. Ma il problema generale per gli alberi è irrisolto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.