Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. NP-difficile - Teknopedia
NP-difficile - Teknopedia
Nessuna nota a piè di pagina
Questa voce o sezione sull'argomento informatica è priva o carente di note e riferimenti bibliografici puntuali.

Sebbene vi siano una bibliografia e/o dei collegamenti esterni, manca la contestualizzazione delle fonti con note a piè di pagina o altri riferimenti precisi che indichino puntualmente la provenienza delle informazioni. Puoi migliorare questa voce citando le fonti più precisamente. Segui i suggerimenti del progetto di riferimento.
Diagramma di Eulero-Venn per le classi di complessità P, NP, NP-Completo e NP-hard

In teoria della complessità, i problemi NP-difficili o NP-ardui (in inglese NP-hard, da nondetermistic polynomial-time hard problem, "problema difficile non deterministico in tempo polinomiale") sono una classe di problemi che può essere definita informalmente come la classe dei problemi almeno difficili come i più difficili problemi delle classi di complessità P e NP. Più formalmente, un problema H {\displaystyle H} {\displaystyle H} è NP-difficile se e solo se ogni problema NP L {\displaystyle L} {\displaystyle L} è polinomialmente riducibile ad H {\displaystyle H} {\displaystyle H}, ovvero tale che L ≤ T H ∀ L ∈ NP {\displaystyle L\leq _{T}H\;\;\forall L\in {\text{NP}}} {\displaystyle L\leq _{T}H\;\;\forall L\in {\text{NP}}}. In altre parole, L {\displaystyle L} {\displaystyle L} deve poter essere risolto in tempo polinomiale da una macchina di Turing dotata di un oracolo per H {\displaystyle H} {\displaystyle H}.[1] Da questa definizione si ricava che i problemi NP-difficili sono non meno difficili dei problemi NP-completi, che a loro volta sono per definizione i più difficili delle classi P/NP.

La categoria dei problemi NP-difficili, a differenza delle classi P, NP e degli NP-completi, non è limitata per definizione ai soli problemi di decisione; vi appartengono infatti anche problemi di ottimizzazione e di altri generi.

La classe dei problemi NP-difficili ha una grande rilevanza sia teorica che pratica. In pratica, dimostrare che un problema di calcolo è equivalente a un problema notoriamente NP-difficile significa dimostrare che è praticamente impossibile[2] trovare un modo efficiente di risolverlo, cosa che ha molte implicazioni in informatica. Da un punto di vista teorico, lo studio dei problemi NP-difficili è un elemento essenziale della ricerca su alcuni dei principali problemi aperti della complessità.

Osservazioni

[modifica | modifica wikitesto]
  • Dato che i problemi NP-completi sono riducibili l'uno all'altro in tempo polinomiale, e tutti i problemi in NP sono riducibili in tempo polinomiale a problemi NP-completi, si ricava che dato un qualunque problema NP-difficile H {\displaystyle H} {\displaystyle H}, tutti i problemi in NP sono riducibili in tempo polinomiale a esso. Di conseguenza, se si trovasse una soluzione in tempo polinomiale a un qualunque problema NP-difficile, questa potrebbe essere utilizzata per risolvere tutti i problemi in NP. Questo dimostrerebbe che P = N P {\displaystyle P=NP} {\displaystyle P=NP}. Sebbene non sia ancora stata trovata una dimostrazione, la comunità scientifica ritiene in generale che P ed NP non coincidano.[3]
  • Più precisamente: se P ≠ N P {\displaystyle P\neq NP} {\displaystyle P\neq NP}, allora i problemi NP-difficili non hanno soluzione polinomiale. Viceversa, se fosse vero che P = N P {\displaystyle P=NP} {\displaystyle P=NP}, da questo non si dedurrebbe la risolubilità polinomiale dei problemi NP-difficili.
  • Se un problema di ottimizzazione H ha una versione L, dove L è NP-completo, allora H è NP-difficile;
  • Se H appartiene ad NP, allora H è anche NP-completo perché in tal caso la riduzione polinomiale rispetta i criteri di una riduzione tra problemi NP-completi.

Esempi

[modifica | modifica wikitesto]
Un tipico problema NP-hard, il calcolo del minimo cammino completo in un grafo

Un esempio di problema NP-difficile è il problema di decisione noto come problema delle somme parziali o "SUBSET-SUM", e che corrisponde alla domanda: dato un insieme di interi, c'è almeno un suo sottoinsieme che ha come somma algebrica zero? Un celebre problema di ottimizzazione NP-difficile, che ha anche una fortissima valenza pratica, è quello di trovare il cammino hamiltoniano che unisce due punti su un grafo.

Ci sono problemi decisionali che sono NP-difficili ma non NP-completi, in questa classe rientrano i problemi che sono in EXPTIME, cioè tutti quei problemi decisionali risolvibili da una macchina deterministica di Turing nel tempo O( 2 f ( n ) {\displaystyle 2^{f(n)}} {\displaystyle 2^{f(n)}}), dove f(n) è una funzione polinomiale. Un problema è NP-hard se tutti i problemi in NP sono riducibili polinomialmente ad esso. Un esempio di problema NP-hard è il problema delle formule booleane soddisfacibili SAT). Si può dimostrare che i problemi NP-completi sono polinomialmente riducibili a questo problema (una dimostrazione è nota per esempio per 3sat). Ci sono tuttavia anche esempi di problemi che sono NP-difficili, decidibili, ma non NP-completi; un esempio è il problema del riconoscimento del linguaggio TQBF (True Quantified Boolean Formulas).

Definizione alternativa

[modifica | modifica wikitesto]

Una definizione alternativa di NP-hard che è spesso usata restringe NP-Hard a problemi decisionali e quindi usa la riduzione polinomiale al posto della riduzione di Turing. Così, formalmente un linguaggio L è NP-hard se ∀ L ′ ∈ N P , L ′ ≤ p L {\displaystyle \forall L^{\prime }\in \mathbf {NP} ,L^{\prime }\leq _{p}L} {\displaystyle \forall L^{\prime }\in \mathbf {NP} ,L^{\prime }\leq _{p}L}.

Convenzioni sulla nomenclatura della famiglia NP

[modifica | modifica wikitesto]

La nomenclatura dei problemi NP è confusa: i problemi NP-ardui non sono in NP, nonostante vengano etichettati con tale nome. Nonostante questa contraddizione verbale, tale nome è ormai di uso comune. D'altro canto, il sistema di nomenclatura NP- ha un senso più profondo, che fa interesse alla sua classe di complessità generica, denominata anch'essa NP.

  • NP-completo - identifica problemi che sono completi dentro NP.
  • NP-difficile - identifica problemi che sono almeno complessi quanto quelli in NP (ma non appartengono necessariamente ad NP);
  • NP-semplici - identifica problemi che sono al massimo complessi quanto quelli in NP (ma non appartengono necessariamente ad NP);
  • NP-equivalenti - identifica problemi che sono esattamente equivalenti ad NP, (ma non appartengono necessariamente ad NP);

Note

[modifica | modifica wikitesto]
  1. ^ Ovvero dotata di un meccanismo ipotetico che le consente di avere istantaneamente la soluzione del problema H {\displaystyle H} {\displaystyle H}. Se avendo la soluzione di H {\displaystyle H} {\displaystyle H} "gratis" la soluzione di L {\displaystyle L} {\displaystyle L} risulta "poco costosa" (vedi la definizione di tempo polinomiale), se ne ricava che H {\displaystyle H} {\displaystyle H} non può essere significativamente più semplice di L {\displaystyle L} {\displaystyle L}.
  2. ^ Uno dei problemi aperti della teoria della complessità è se sia possibile trovare un algoritmo efficiente (formalmente: in tempo polinomiale) per i problemi NP-completi. Di conseguenza, non è teoricamente impossibile che un algoritmo efficiente possa essere trovato per risolvere un problema NP-difficile. Tuttavia, nessun algoritmo del genere è mai stato identificato dalla comunità scientifica, e in generale (pur in assenza di una dimostrazione matematica) si propende per ritenere che un risultato del genere sia impossibile.
  3. ^ La domanda "P=NP?" appartiene ai cosiddetti problemi del millennio. Sebbene la tendenza generale della comunità scientifica è a ritenere che la risposta sia "no", l'ipotesi contraria è stata formulata anche da matematici illustri come Kurt Gödel.

Bibliografia

[modifica | modifica wikitesto]
  • Michael R. Garey e David S. Johnson, Computers and Intractability: A Guide to the Theory of NP-Completeness, W.H. Freeman, 1979, ISBN 0-7167-1045-5.

Collegamenti esterni

[modifica | modifica wikitesto]
  • (EN) NP-hard problem, su Enciclopedia Britannica, Encyclopædia Britannica, Inc. Modifica su Wikidata
  • (EN) Eric W. Weisstein, NP-Hard Problem, su MathWorld, Wolfram Research. Modifica su Wikidata
  • (EN) Denis Howe, NP-hard, in Free On-line Dictionary of Computing. Disponibile con licenza GFDL
V · D · M
Classi di complessità (elenco)
P · NP · co-NP · NP-C · co-NP-C · NP-hard · UP · #P · #P-C · L · NL · NC · P-C · PSPACE · PSPACE-C · EXPTIME · EXPSPACE · PR · RE · Co-RE · RE-C · Co-RE-C · R · BQP · BPP · RP · ZPP · PCP · IP · PH
  Portale Informatica
  Portale Matematica
Estratto da "https://it.wikipedia.org/w/index.php?title=NP-difficile&oldid=146244170"

  • Indonesia
  • English
  • Français
  • 日本語
  • Deutsch
  • Italiano
  • Español
  • Русский
  • فارسی
  • Polski
  • 中文
  • Nederlands
  • Português
  • العربية
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022