(Ich bin mitten in meinem ersten theoretischen CSS-Kurs, also entschuldige ich mich im Voraus für die wahrscheinlich dumme Frage.)
Wir sagen also, dass eine Sprache L in P ist, was bedeutet, dass eine Turing-Maschine konstruiert werden kann, die eine 1 ausgibt, wenn x in L ist und andernfalls 0; Außerdem läuft die Maschine in Polynomzeit. Ich verstehe das.
Aber viele Leute sagen, dass es bestimmte Probleme in P gibt, die mir nicht als Entscheidungsprobleme erscheinen; Zum Beispiel das Maximieren einer Funktion, die linearen Einschränkungen unterliegt. Was bedeutet es, dass "lineare Programmierung" in P ist? Sicherlich ist "den Maximalwert finden" kein Entscheidungsproblem?
quelle
Formal wird die Klasse von Funktionen , die in Polynomzeit berechnet werden kann, FP genannt . Die Leute sagen oft "P" anstelle von "FP", da die Unterscheidung nur syntaktisch ist und keine wirkliche Verwirrung entsteht.
quelle
Eine sehr ähnliche Frage wurde bereits im Thema " FNP-Komplexitätsklasse " gestellt. Dort stellte der Fragesteller im Wesentlichen den Unterschied zwischen den NP- und FNP-Komplexitätsklassen. Sie fragen nach dem Unterschied zwischen den Komplexitätsklassen P und FP. Kurz gesagt, P und NP sind Entscheidungsklassen, während die "F" -Versionen (FP und FNP) Funktionsklassen sind. Weitere Informationen finden Sie im oben genannten Thema.
quelle
Probleme, die eine Lösung erfordern, können in Entscheidungsprobleme umgewandelt werden, wenn es eine Möglichkeit gibt, zu messen, wie gut eine Lösung ist. Die Entscheidungsversion gibt an, dass jede Lösung besser als ein Schwellenwert sein muss. Zum Beispiel wird die Entscheidungsversion von LINEAR PROGRAMMING erhalten, indem gefragt wird, ob das lineare Programm durchführbar ist.
quelle