Tutti i problemi di Programmazione lineare integer sono NP-Hard?


11

A quanto ho capito, il problema di assegnazione è in P poiché l'algoritmo ungherese può risolverlo in tempo polinomiale - O (n 3 ). Capisco anche che il problema di assegnazione è un problema di programmazione lineare intera , ma la pagina di Wikipedia afferma che questo è NP-Hard. Per me, questo implica che il problema di assegnazione è in NP-Hard.

Ma sicuramente il problema di assegnazione non può essere in P e NP-Hard, altrimenti P sarebbe uguale a NP? La pagina di Wikipedia significa semplicemente che l'algoritmo generale per risolvere tutti i problemi ILP è NP-Hard? Alcune altre fonti affermano che ILP è NP-Hard, quindi questo mi sta davvero confondendo la mia comprensione delle classi di complessità in generale.


4
NP-hard significa che (a meno che P = NP) ogni algoritmo deterministico polifunzionale fallisce in alcuni (infiniti) set di istanze. Di solito ci sono anche insiemi di semplici istanze.
Sasho Nikolov,

1
Si noti che l'affermazione non è "ogni IP è NP-difficile" ma "risolvere ogni IP è NP-difficile".
Raffaello

1
Come nota, IP per dimensione fissa è in P.
A. Schulz il

Risposte:


20

Se un problema è NP-Hard significa che esiste una classe di istanze di quel problema che sono NP-Hard. È perfettamente possibile che altre classi specifiche di istanze siano risolvibili in tempi polinomiali.

Si consideri ad esempio il problema di trovare una 3 colorazione di un grafico . È un noto problema NP-Hard. Ora immagina che le sue istanze siano limitate ai grafici che sono, ad esempio, alberi. Chiaramente puoi facilmente trovare una 3 colorazione di un albero in tempo polinomiale (in effetti puoi anche trovare una 2 colorazione).

Considera i problemi di decisione per un secondo. Un metodo per dimostrare la durezza di un problema decisionale è escogitare una riduzione polinomiale (Karp) da un altro problema Q che è noto per essere NP-Hard. In questa riduzione si mostra che esiste una funzione f che associa ciascuna istanza q del problema Q a un'istanza del problema P tale che: q è un'istanza sì per QPQfqQPq è un esempio sì per P . Ciò implica che risolvere f ( q ) deve essere "almeno altrettanto difficile" come risolvere q stesso.Qf(q)Pf(q)q

fPP

Per tornare alla domanda originale:

  • Il problema di assegnazione può essere risolto in tempo polinomiale, ovvero una soluzione a ciascuna istanza del problema di assegnazione può essere calcolata in tempo polinomiale.
  • ILP è NP-Hard: in generale potrebbe essere difficile calcolare una soluzione a un problema ILP, cioè ci sono casi di ILP che sono difficili.
  • Alcuni casi specifici di ILP possono essere risolti in tempi polinomiali.

fQQfQ

fQQP

14

No, casi speciali possono essere più facili.

ai0i[1..n]

mini=1nxiai

st e per .i=1nxi1xiNi[1 ..n]
 xiNi[1..n]

Trova il minimo tra (quello per cui, inevitabilmente, in una soluzione ottimale). Trovare il minimo di numeri è chiaramente un problema polinomiale.a1,,anxi=1n


0

È possibile modellare un problema risolvibile polinomialmente come un IP. Ciò non significa che il problema sia NP-difficile. Significa semplicemente che non esiste un algoritmo polinomiale noto per risolvere il modello IP del problema (a meno che P = NP).

Quindi, come hai suggerito, il problema di assegnazione è in P ma il tuo modello IP è NP-difficile.


3
L'IP nella risposta di Raffaello può essere risolto in tempi polinomiali. In altre parole, in generale non conosciamo un algoritmo veloce per risolvere gli IP, ma ci sono casi speciali di problemi IP per i quali abbiamo algoritmi veloci.
Juho,

0

No, esiste un tipo speciale di programma intero, se la matrice del vincolo è TUM (matrice totalmente unimodulare), allora può essere rilassata nel programma lineare, che può essere risolto in tempo polinomiale.


-4

Il problema di assegnazione non è un ILP, ma un problema LP e quindi non NP-difficile.


4
Non sono sicuro del motivo per cui pensi che il problema di assegnazione non sia un ILP. Accade così che, in questo caso, la soluzione ottimale al programma lineare sia anche la soluzione ottimale al programma lineare intero ... ma ciò non significa che non sia un'istanza di ILP.
DW

Inoltre, i singoli casi da soli non sono mai NP-difficili. Volete dire "questa è in realtà un'istanza facile", ma questa è un'affermazione molto più complicata (definire "facile").
Raffaello
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.