Rechenproblem

Im Theoretische Informatik, a Rechenproblem ist ein Problem, das von einem gelöst werden kann Algorithmus. Zum Beispiel das Problem von Factoring

"Angesichts einer positiven Ganzzahl n, finden Sie einen nicht trivialen Primfaktor von n. "

ist ein Computerproblem. Ein Rechenproblem kann als als angesehen werden einstellen von Instanzen oder Fälle zusammen mit einem, möglicherweise leeren, set von Lösungen für jeden Fall/Fall. Zum Beispiel in der FaktorproblemDie Instanzen sind die ganzen Zahlen nund Lösungen sind Primzahlen p das sind die nicht trivialen Primfaktoren von n.

Computerprobleme sind eines der wichtigsten Studienobjekte in der theoretischen Informatik. Das Feld von Computerkomplexitätstheorie Versuche, die Menge an Ressourcen zu bestimmen (Rechenkomplexität) Das Lösen eines bestimmten Problems erfordert und erklären, warum einige Probleme sind unlösbar oder unentscheidbar. Computerprobleme gehören zu Komplexitätsklassen Dadurch definieren die Ressourcen (z. B. Zeit, Raum/Speicher, Energie, Schalttiefe), die zur Berechnung (lösen) Abstrakte Maschinen. Zum Beispiel die Komplexitätsklasse P für klassische Maschinen und BQP für Quantenmaschinen.

Es ist typisch für viele Probleme, sowohl Instanzen als auch Lösungen durch binäre darzustellen Saiten, nämlich Elemente von {0, 1}*.[a] Beispielsweise können Zahlen als binäre Zeichenfolgen unter Verwendung von Binärcodierung dargestellt werden.

Typen

Entscheidungsproblem

A Entscheidungsproblem ist ein Computerproblem, bei dem die Antwort für jede Instanz entweder Ja oder Nein ist. Ein Beispiel für ein Entscheidungsproblem ist Primalitätstest:

"Angesichts einer positiven Ganzzahl n, bestimmen Sie, ob n ist Prime. "

Ein Entscheidungsproblem wird in der Regel als Satz aller Fälle dargestellt, für die die Antwort ist Jawohl. Zum Beispiel können Primalitätstests als unendlicher Satz dargestellt werden

L = {2, 3, 5, 7, 11, ...}

Suchproblem

In einem SuchproblemDie Antworten können willkürliche Saiten sein. Zum Beispiel ist Factoring ein Suchproblem, bei dem die Instanzen (String -Darstellungen) positive Ganzzahlen und die Lösungen (String -Darstellungen) Sammlungen von Primzahlen sind.

Ein Suchproblem wird als Beziehung bestehend aus allen Instanzlösungspaaren, die als a genannt werden Suchbeziehung. Zum Beispiel kann Factoring als Beziehung dargestellt werden

R = {(4, 2), (6, 2), (6, 3), (8, 2), (9, 3), (10, 2), (10, 5) ...}

die aus allen Zahlenpaaren bestehen (n, p), wo p ist ein nicht trivialer Primemfaktor von n.

Zählproblem

A Zählproblem fragt nach der Anzahl der Lösungen für ein bestimmtes Suchproblem. Zum Beispiel ist ein mit Factoring verbundenes Zählproblem

"Angesichts einer positiven Ganzzahl n, zählen Sie die Anzahl der nicht trivialen Primfaktoren von n. "

Ein Zählproblem kann durch eine Funktion dargestellt werden f von {0, 1}* zu den nichtnegativen Ganzzahlen. Für eine Suchbeziehung Rdas Zählproblem, das mit dem zugeordnet ist R ist die Funktion

fR(x) = | {y: R(x, y)} |.

Optimierungsproblem

Ein Optimierungsproblem fragt, um eine "bestmögliche" Lösung unter den Satz aller möglichen Lösungen für ein Suchproblem zu finden. Ein Beispiel ist das Maximal unabhängiger Satz Problem:

"Bei einer Grafik G, finde eine unabhängiger Satz von G maximaler Größe. "

Optimierungsprobleme können durch ihre Suchbeziehungen dargestellt werden.

Funktionsproblem

In einem Funktionsproblem ein einzelner Ausgang (von a Gesamtfunktion) wird für jeden Eingang erwartet, aber der Ausgang ist komplexer als der von a EntscheidungsproblemDas heißt, es ist nicht nur "Ja" oder "Nein". Eines der berühmtesten Beispiele ist die reisender Verkäufer Problem:

"Wenn Sie eine Liste von Städten und die Entfernungen zwischen jedem Städtepaar finden, finden Sie die kürzeste Route, die jede Stadt genau einmal besucht und in die Ursprungsstadt zurückkehrt."

Es ist ein Np-harte Problem in Kombinatorische Optimierung, wichtig in Unternehmensforschung und Theoretische Informatik.

Problem versprechen

Im ComputerkomplexitätstheorieEs wird normalerweise implizit angenommen, dass jede Zeichenfolge in {0, 1}* repräsentiert eine Instanz des fraglichen rechnerischen Problems. Manchmal jedoch nicht alle Strings {0, 1}* Stellen Sie gültige Instanzen dar, und man gibt eine ordnungsgemäße Teilmenge von {0, 1} an* als Satz von "gültigen Instanzen". Computerprobleme dieses Typs werden genannt Probleme versprechen.

Das Folgende ist ein Beispiel für ein (Entscheidung) Versprechenproblem:

"Bei einer Grafik Gfeststellen, ob jeder unabhängiger Satz in G hat die Größe höchstens 5, oder G hat eine unabhängige Größe von mindestens 10. "

Hier sind die gültigen Instanzen die Grafiken, deren maximale unabhängige festgelegte Größe entweder höchstens 5 oder mindestens 10 beträgt.

Probleme mit Entscheidungsversprechen werden normalerweise als Paar disjunkte Untergruppen dargestellt (LJawohl, Lnein) von {0, 1}*. Die gültigen Fälle sind diejenigen in LJawohlLnein.LJawohl und Lnein die Fälle darstellen, deren Antwort ist Jawohl und nein, beziehungsweise.

Versprechenprobleme spielen eine wichtige Rolle in mehreren Bereichen von Rechenkomplexität, einschließlich Annäherungshärte, Immobilientests, und Interaktive Proof -Systeme.

Siehe auch

Anmerkungen

  1. ^ Sehen Reguläre Ausdrücke Für die verwendete Notation

Verweise

  • Sogar Shimon; Selman, Alan L.; Yacobi, Yacov (1984), "Die Komplexität von Versprechensproblemen mit Anwendungen für Kryptographie im öffentlichen Schlüssel", Informationen und Kontrolle, 61 (2): 159–173, doi:10.1016/s0019-9958 (84) 80056-x.
  • Goldreich, Oded (2008), Computerkomplexität: Eine konzeptionelle Perspektive, Cambridge University Press, ISBN 978-0-521-88473-0.
  • Goldreich, Oded; Wigderson, Avi (2008), "IV.20 Computational Complexity", in Gowers, Timothy; Barrow-Green, Juni; Anführer, Imre (Hrsg.), Der Princeton -Begleiter der Mathematik, Princeton University Press, S. 575–604, ISBN 978-0-691-11880-2.