Problemi NP completi

I problemi NP-completi sono sia problemi NP che NP-difficili (NP-hard).

I problemi NP-completi sono una categoria di problemi di decisione che soddisfano due condizioni principali:

  • Sono problemi NP perché una soluzione proposta può essere verificata come corretta o meno in tempo polinomiale rispetto alla dimensione dell'input.
  • Sono problemi NP-difficili perché sono almeno tanto difficili quanto il problema più difficile in NP.

Questo vuol dire che se si trovasse un modo per risolvere un problema NP-completo in tempo polinomiale, allora tutti i problemi in NP potrebbero essere risolti in tempo polinomiale.

Per questa ragione sono particolarmente importanti nella teoria computazionale.

Esempio

Un altro classico esempio di problema NP-completo è il problema del commesso viaggiatore (Travelling Salesman Problem, TSP).

Nel TSP, ci viene dato un insieme di città e la distanza tra ogni coppia di città, e dobbiamo trovare il percorso più breve che visita ogni città esattamente una volta e ritorna alla città di partenza.

La sfida sta nel fatto che il numero di percorsi possibili cresce in modo fattoriale all'aumentare del numero delle città, rendendo impraticabile l'esplorazione esaustiva di tutte le possibilità per insiemi grandi di città.

Nonostante ciò, se ci viene fornito un percorso specifico, possiamo facilmente calcolare la sua lunghezza totale e verificare se visita tutte le città una volta sola, soddisfacendo così il criterio di appartenenza a NP.

Trovare il percorso ottimale (o dimostrare che un percorso dato è il migliore possibile) è estremamente difficile, ma la verifica di un percorso candidato è relativamente semplice, caratteristiche che lo definiscono come NP-completo.

 

 
 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

Domande/Risposte

  • E' più difficile un problema NP difficile o NP completo?
    In termini di difficoltà nel trovare una soluzione, i problemi NP-difficili e NP-completi sono paragonabili, perché entrambi includono problemi per i quali non esiste al momento un algoritmo noto che li risolva efficacemente (in tempo polinomiale) per ogni possibile istanza. Tuttavia, i problemi NP-difficili possono essere considerati "più difficili" in un senso più ampio perché questa categoria può includere anche i problemi che non necessitano di una soluzione verificabile in tempo polinomiale, espandendo la loro portata oltre i confini delle classi NP e NP-completo. In breve, tutti i problemi NP-completi sono anche NP-difficili. Tuttavia, esistono problemi NP-difficili che sono ancora più "difficili" dei problemi NP-completi.

 

 

FacebookTwitterLinkedinLinkedin

Teoria della complessità