Ugrás a tartalomhoz

NP-complete problem

A Wikiszótárból, a nyitott szótárból


Főnév

NP-complete problem (tsz. NP-complete problems)

  1. (informatika)

NP‐teljes (NP‐complete) problémák azok a döntési feladatok, melyek egyszerre NP‐ben vannak (azaz egy adott megoldás – „igen”‐válasz – polinomiális idő alatt ellenőrizhető) és NP‐nehézek (NP‐hard), vagyis bármely más NP‐probléma polinomiális időben visszavezethető rá (reduktálható).



1. Formális definíció

Egy döntési probléma NP‐teljes, ha

  1. NP: létezik polinomiális idő alatt futó Turing‐gép, amely igazolja, hogy egy „igen”‐példa valóban megoldható (például bemutat egy hitelesítő bizonyítékot, „certificate”-et).

  2. NP‐nehéz: minden NP esetén van olyan polinomiális időben számítható függvény , hogy

    Ez a Karp‐redukció, amely azt mondja, hogy legalább olyan nehéz, mint bármely más NP‐probléma.



2. Miért fontosak az NP‐teljesek?

  • „Príma” NP‐nehéz feladatok: Ha találunk polinomiális algoritmust egyetlen NP‐teljes problémára, akkor minden NP‐probléma polinomiálisan megoldhatóvá válik, azaz .
  • Hard-tartomány: az NP‐teljes problémák valóságos rendszerekben gyakran előfordulnak (ütemezés, hálózatok, optimalizálás), és általában csak közelítő vagy heurisztikus eljárásokkal kezelhetők nagy méretekben.



3. Klasszikus NP‐teljes példák

  1. Satisfiability (SAT) – Van‐e igazságérték‐-beállítás, amelyre egy Boole‐kifejezés igaz?
  2. 3‐SAT – A SAT speciális esete, ahol a kifejezés konjunktív normálalakú, és minden diszjunkción pontosan három literál szerepel.
  3. Vertex Cover – Adott gráfban létezik‐e csúcs, amelyek érintik az összes élt?
  4. Clique – Létezik‐e csúcs, amelyek mind páronként összekötöttek?
  5. Hamilton‐kör döntés – Létezik‐e zárt út egy gráfban, amely minden csúcsot pontosan egyszer érint?
  6. Subset Sum – Megvan‐e olyan részhalmaz, amely összege egy adott ?
  7. Partition – Feloszthatók‐e a számok két csoportba, hogy az összegek egyenlők legyenek?
  8. Travelling Salesman Problem (TSP) döntés – Van‐e Hamilton‐kör összköltsége ≤?

Ezek a problémák Karp (1972) által publikált 21 NP‐teljes feladat közül csak néhány.



4. Redukciók és bizonyítások

  • Karp‐redukció: polinomiális időben számítható leképezés , ami „megőrzi” a döntést.
  • A legtöbb NP‐teljes probléma bizonyítása úgy történik, hogy megmutatjuk, hogyan lehet egy már ismert NP‐teljest (például 3-SAT) redukálni rá.



5. Közelítő algoritmusok és heurisztikák

Mivel NP‐teljes problémák nagyméretű példányait valós időben nem oldjuk meg pontosan, gyakran alkalmazunk:

  1. Greedy és lokális keresés
  2. Metaheurisztikák: genetikus algoritmus, szimulált hőkezelés
  3. Approximation schemes
    • PTAS (Polynomial‐Time Approximation Scheme): minden mellett $ (1+)$-közelítő polinomiális időben.
    • FPTAS (Fully PTAS): polinomiális mind a bemeneti méretben, mind függvényében.
  4. Paraméterezett algoritmusok – Hatékonyak, ha a probléma egy bizonyos paramétere (pl. mérete) kicsi.



6. Összefoglalás

  • NP‐teljes problémák: NP‐beli és NP‐nehéz feladatok, melyekről feltételezik, hogy nem oldhatók meg polinomiálisan.
  • A P vs. NP kérdés központi: ha egy NP‐teljeset polinomiálisan megoldunk, akkor .
  • Számtalan gyakorlati alkalmazásnál bukkan fel: tervezés, ütemezés, optimalizálás, titkosítás, hálózatok.
  • Megközelítések: heurisztikák, közelítő séma és paraméterezett módszerek nélkülözhetetlenek a nagy példányokhoz.