Die Milleniumsprobleme sind sieben besonders haarige mathematische Probleme, deren Lösung mit einer Million Dollar belohnt wird, dies hat das Clay-Institute 2000 ausgelobt. Bislang ist eines davon, die Poincare-Vermutung, von Zotti dem Urviech Grigori Perelman gelöst worden, der die Million aus Protest gegen das Mathematik-Establishment abgelehnt hat. Äh ja.
Jetzt wirft ein Herausforderer seinen Hut in Form eines Papers in den Ring um das Problem der Komplexitätstheorie: Ist P = NP? Vinay Deolalikar ist ein bekannter Forscher, der allerdings für die HP Labs arbeitet. Und so ganz nebenher hat er wohl auch noch am P=NP-Problem gearbeitet, und jetzt einen möglichen Beweis geliefert, dass P ≠ NP ist (wie man es erwartet, aber eben noch nicht bewiesen hat).
Einfach ausgedrückt hieße das: Es gibt schwierige Probleme.

Natürlich gibt es mögliche Beweise zuhauf, die meisten davon sind das Papier nicht wert das man in den Mülleimer wirft; aber dieser Fall hier wird sehr ernst genommen. Auch wenn der Beweis sich als nicht vollständig herausstellen wird, scheint es eine bedeutende Arbeit zu sein. Scott Aaronson aber ist so skeptisch, dass der gleich 200000 $ zusätzlich auslobt, falls der Beweis richtig ist. Die Grundgeschichte erinnert ja schonmal an Andrew Wiles und Fermats Letzten Satz.

Worum geht es denn nun? P ≠ NP ist das große offene Problem der theoretischen Informatik. Es geht dabei um die Laufzeit von Algorithmen und darum, dass manche Probleme keine Lösung in polynomieller Ordnung haben. Einfache Beispiele für die Komplexität von Algorithmen kennt man aus Anfängervorlesungen in Informatik, z.B. von Sortieralgorithmen. Ein naiver Algorithmus vergleicht beispielsweise jedes Element mit jedem anderen, deswegen steigt die Zeit die man benötigt quadratisch an, man sagt die Laufzeit ist O(n²), oder “von der Ordnung n²”. Effizientere Algorithmen schaffen sowas wie O(n log n).
Es gibt aber Probleme die zwar einfach erscheinen aber nicht einfach lösbar sind. Ihre Laufzeit steigt exponentiell und schon bei vergleichsweise lächerlich wenigen Elementen sind sie nicht mehr optimal lösbar. Das klassische Beispiel ist das vom Handlungsreisenden, der eine Route sucht, um alle Orte abzuklappern an denen er Geschäfte betreiben will. Er sucht die kürzeste Route die alle Orte genau einmal besucht. Tatsächlich, das ist ein hartes Problem.
Man kann sich behelfen, und Näherungslösungen finden für die man sogar beweisen kann dass sie einen gewissen Höchstabstand vom Optimum haben. Aber wäre es nicht fein, das Problem in polynomieller Zeit lösen zu können?

Die Komplexitätsklasse P umfasst diejenigen Probleme, die sich in polynomieller Zeit lösen lassen. Das heißt die Laufzeit ist O(nc) für ein endliches positives c. Wenn c 12032902 ist hat man natürlich trotzdem verloren, aber es geht ums Prinzip.
Die Definition für NP ist leider deutlich technischer, es sind NICHT einfach die Probleme die sich nicht polynomiell lösen lassen. Das N steht für “nichtdeterministisch”. Probleme aus NP lassen sich vermutlich nicht polynomiell lösen, aber ihre Lösungen sind in polynomieller Zeit überprüfbar. Die genauere Definition braucht aber nichtdeterministische Turingmaschinen.

Turingmaschinen sind der Computer der theoretischen Informatik. Man stellt sich nur ein Band vor, das mit Feldern versehen ist die Zeichen tragen. Jedes Computerprogramm kann man jetzt theoretisch so darstellen, dass ein Lesekopf das Band abfährt und das aktuelle Zeichen liest. Je nach angetroffenem Zeichen und je nach Zustand der Maschine überschreibt der Lesekopf das Zeichen und fährt dann, wieder je Zeichen und Zustand, nach links oder rechts weiter. Die Zustände die man durchläuft und die Zeichen auf dem Band, das ist alles was man braucht um jedes Computerprogramm der Welt theoretisch auszudrücken. Jede Programmiersprache der Welt die dazu in der Lage ist eine solche einfache Maschine zu steuern ist Turing-vollständig, und dazu gehören wenige Voraussetzungen – im Vergleich dazu was Computer aus unserer Draufsicht leisten. Dies ist aber eine deterministische Turing-Maschine. Zustand und Zeichen beschreiben vollständig was passieren wird.
Es existiert eine (theoretische!) Erweiterung der Turingmaschine, die nichtdeterministische Turing-Maschine. Hier ist der nächste Schritt nicht mehr eindeutig durch Zeichen und Zustand festgelegt, stattdessen gibt es eine Menge an möglichen Übergängen. Wie diese entschieden werden, verstecken die theoretischen Informatiker leider im Symbol-Geröll…
Jedenfalls sind Probleme der Klasse NP diejenigen, die von der (theoretischen!) nichtdeterministischen Turingmaschine in polynomieller Zeit lösbar wären.
Außerdem sind die meisten NP-Probleme auch NP-vollständig. Sie fallen alle in einen Ring von Problemen, die sich alle lösen lassen wenn und wie man eines davon lösen kann. Das bedeutet (Trommelwirbel): wenn man eines davon in polynomieller Zeit lösen könnte, wären alle in polynomieller Zeit lösbar.
Und eben das ist der Heilige Gral der theoretischen Informatik. Natürlich vermutet man dass es wirklich eine Menge an Problemen gibt, die nicht polynomiell lösbar sind, aber man hat noch nicht (mathematisch) bewiesen, dass eben nicht doch P=NP ist.
Bis jetzt. Eventuell.


Kommentare (24)

  1. #1 Mathias Bank
    08/10/2010

    Es scheint auf jeden Fall einige Probleme in dem Beweis zu geben: https://rjlipton.wordpress.com/2010/08/09/issues-in-the-proof-that-p%E2%89%A0np/

  2. #2 Immanuel Scheerer
    08/10/2010

    Die Relevanz der Fragestellung für unsere Welt, ob P = NP ist, drückt sich am besten in den gängigen Verschlüsselungsmethoden aus: Verschlüsselungen wie SSL beruhen lediglich darauf, dass das Knacken eines Schlüssels NP-hart ist. Würde man P = NP beweisen können, so wären auf einen Schlag sämtliche auf diesem Prinzip basierenden Verschlüsselungsverfahren wertlos. Und das würde für ein ziemlich großes Chaos sorgen (ich denke nur an Online-Banking).

    Wer sich für Komplexitätstheorie interessiert, könnte auch eine kurze Einführung in abzählbare und unabzählbare Unendlichkeit interessant finden: https://www.sein-und-nicht-sein.de/bis-in-die-unendlichkeit/ . Ich muss noch ein bisschen darüber nachdenken, aber vielleicht gibt es einen Zusammenhang zwischen P und abzählbarer Unendlichkeit, und NP und der unabzählbaren Unendlichkeit. Ist nur ein spontaner Gedanke, vielleicht auch völlig abwegig. Falls mir mehr dazu einfällt, gebe ich Bescheid.

  3. #3 Andrea T.
    08/10/2010

    Schöner Beitrag!

    Kleine Anmerkung: Der Handlungsreisende muss am Ende der Reise wieder zum Ausgangsort zurück. Wenn er das nicht muss, ist das Problem leicht zu lösen, in P.

    Ausserdem: Es gibt ja Sachen, die laut Gödel nicht bewiesen werden können. Das heisst, solange man den Beweis nicht hat, weiss man nicht, ob es überhaupt jemals einen findet. Wollte ich jetzt nur der Vollständigkeit halber erwähnen 🙂

  4. #4 Marchantia
    08/10/2010

    Erik Demaine proves P=NP

  5. #5 derari
    08/10/2010

    Der Beweis ist doch trivial. Laut Wikipedia (https://en.wikipedia.org/wiki/PSPACE) ist PSPACE = NPSPACE. Kürzt man PS und ACE auf beiden Seiten raus, erhält man P = NP.

  6. #6 Arnd
    08/10/2010

    P = NP gilt für alle N, die 1 sind.

  7. #7 Sebastian
    08/10/2010

    Leider ist der Artikel fachlich sehr ungenau.

    Dass es schwierige Probleme in der Informatik gibt, es längst klar: Es gibt ja Probleme, von denen bewiesen ist, dass sie ausserhalb von NP liegen, z.B. weil sie exponentiell viel Platz zur Lösung benötigen.

    Die Krux an NP ist, dass dies die Probleme sind, bei denen eine gegebene Lösung sich schnell als tatsächliche Lösung verifizieren lässt.

    “Hier ist der nächste Schritt nicht mehr eindeutig durch Zeichen und Zustand festgelegt, stattdessen gibt es eine Menge an möglichen Übergängen. Wie diese entschieden werden, verstecken die theoretischen Informatiker leider im Symbol-Geröll…”

    So schwer ist das nun wirklich nicht. Eine nicht-deterministische TM akzeptiert ein Wort w, genau dann, wenn es (min.) einen Lauf auf w gibt, der in einen Akzeptanzzustand führt.

    “Außerdem sind die meisten NP-Probleme auch NP-vollständig.”

    Was auch immer hier mit “meistens” gemeint ist, NP ist immerhin eine unendlich große Menge. Außerdem ist P eine Teilmenge von NP.

  8. #8 Jörg
    08/10/2010

    So schwer ist das nun wirklich nicht. Eine nicht-deterministische TM akzeptiert ein Wort w, genau dann, wenn es (min.) einen Lauf auf w gibt, der in einen Akzeptanzzustand führt.

    Achsoooooooooo….ja dann!!

  9. #9 Redfox
    08/10/2010
  10. #10 Andrea T.
    08/10/2010

    @Sebastian: Auch wenn du recht hast, dein Beitrag hiflt dem nicht-Informatiker auch nicht weiter 🙂 Da muss mal einer einen richtigen Beitrag über TM schreiben und Nichtdeterminismus. Mit Bildchen bitteschön! :-))

  11. #11 Immanuel Scheerer
    08/10/2010

    Bei den Turingmaschinen kommt mir ein Vergleich mit Popper und Feyerabend in den Sinn: Nach Popper sollte die Wissenschaft wie eine deterministische Turingmaschine funktionieren, Feyerabend sieht in der Wissenschaft eine nicht-deterministische Turingmaschine. Beide Ansätze haben ihre Vor- und Nachteile, in den Möglichkeiten ist der Nicht-Determinismus sicherlich mächtiger. Insofern könnte man Feyerabend auch als schmeichelhaften, konstruktiven Beitrag zur Wissenschaftstheorie interpretieren ;-).

  12. #12 Sexybitch666
    08/10/2010

    Es existiert eine (theoretische!) Erweiterung der Turingmaschine, die nichtdeterministische Turing-Maschine. Hier ist der nächste Schritt nicht mehr eindeutig durch Zeichen und Zustand festgelegt, stattdessen gibt es eine Menge an möglichen Übergängen. Wie diese entschieden werden, verstecken die theoretischen Informatiker leider im Symbol-Geröll…

    Also, man kann sich das ungefähr so vorstellen:

    Bei einer deterministischen Turingmaschine ist fest vorgegeben, was eine Maschine in einem bestimmten Zustand zu tun hat, wenn sie ein bestimmtes Zeichen einliest.
    Beispiel: Eine Maschine ist in Zustand q und liest eine 1 – dann `schreibt sie nach Programm immer eine 0 aufs Band, geht einen Schritt nach rechts und wechselt in Zustand q’. Als Symbolgeröll sieht sowas dann im Programm (der Übergangsfunktion) z.B. so aus:

    (q,1)->(q’,0,R)

    (Oder wie auch immer man das im Einzelfall aufschreiben mag.)

    Jedenfalls ist der Übergang immer fest vorgegeben – deterministisch!

    Die Übergangsfunktion der nichtdeterministischen Turingmaschine sieht aber anders aus: Wenn sie in einem Zustand q ist und z.B. das Symbol 1 einliest, hat sie mehrere “Möglichkeiten”, die Berechnung fortzusetzen: Sie kann z.b.
    a) eine 0 aufs Band schreiben, in Zustand q’ wechseln und nach rechts gehen, oder
    b) die 1 stehen lassen, einen Schritt nach links gehen und im gleichen Zustand bleiben, oder
    c)… usw.
    Das sieht dann als Symbolgeröll z.B. so aus:

    (q,1)->{(q’,0,R),(q,1,L),…}

    Eine nichtdeterministische TM wählt nun nichtdeterministisch eine Konfiguration aus der Übergangsmenge aus, z.B. (q,1,L), und verfährt nach dieser Vorschrift. Sie hätte aber auch jede andere Konfiguration aus der Übergangsmenge auswählen können (z.B. (q’,0,R), …).

    OK, wie entscheidet eine Maschine nun, ob sie akzeptiert oder verwirft?

    Nun, dazu stellen wir uns vor, dass die Maschine – wenn möglich – immer den „korrekten“ Übergang „rät“, d.h. wenn sie mit Hilfe dieser nichtdeterministischen Wahlen zu einem Akzeptanzzustand gelangen kann, so tut sie dies auch und akzeptiert den Input!

    Wenn sie allerdings bei jeder nichtdeterministischen Wahl den Input verwerfen würde, so verwirft die Turingmaschine den Input.

    Wie so eine Maschine funktioniert, kann man vielleicht an einem Beispiel verdeutlichen:

    Wir stellen uns vor, wir haben eine aussagenlogische Formel und wollen wissen, ob sie erfüllbar ist, d.h. ob es eine Wahrheitswertbelegung gibt, unter der diese Formel wahr wird. Beispiel:

    (A oder B) und (A und B)

    Wir können hier ja natürlich recht schnell sehen, dass diese Aussage wahr sein kann: Nämlich wenn sowohl A als auch B wahr sind.

    Wie müsste eine deterministische Turingmaschine das prüfen (jetzt mal von technischen Feinheiten abgesehen)? Naja, sie müsste alle möglichen Wahrheitswertbelegungen durchgehen und gucken, ob die Formel dann wahr wird. Da gibt’s ja insgesamt vier: A und B können jeweils entweder wahr oder falsch sein. Insgesamt haben wir also 2^2 verschiedene Belegungen, die überprüft werden müssen, und ganz allgemein exponentiell viele Belegungen (in Abhängigkeit von der Anzahl der Aussagenvariablen).

    Die nichtdeterministischen Turingmaschinen hingegen haben’s gut: Sie „raten“ einfach eine der exponentiell vielen Belegungen, und prüfen ob die Formel dadurch wahr wird. Wenn sie bei einer Belegung wahr wird, „rät“ die Turingmaschine diese und akzeptiert den Input: Die Formel ist erfüllbar.

    Wenn sie hingegen bei keiner Belegung wahr wird, lehnt die Turingmaschine den Input ab: Die Formel ist nicht erfüllbar.

    Die Laufzeit bemisst sich übrigens nach dem längstmöglichen Berechnungsstrang, den die Turingmaschine theoretisch durchlaufen kann.

    Das Denkkonzept des „Ratens“ ist praktisch, um sich den Prozess des Akzeptierens zu merken.

    Wenn man aber mit der Laufzeit argumentieren will, könnte man sich vielleicht besser vorstellen, dass die Maschine „simultan“ alle möglichen Berechnungsmöglichkeiten durchgeht, also ein Berechnungsbaum entsteht. Die Länge der Berechnung bemisst sich dann nach dem längsten Ast des Berechnungsbaumes; akzeptieren tut sie, wenn sie in (mindestens) einem Ast des Baumes akzeptiert, und wenn sie in keinem Ast akzeptiert, verwirft sie.

    Ich hoffe, das konnte etwas Licht ins Dunkel bringen, eigentlich ist das Konzept gar nicht so arg schwierig (auch wenn die Symbolfluten in der theoretischen Informatik natürlich mitunter überfordern können… ^^).

    Zum eigentlichen Thema des Blogeintrags: Definitiv interessant, wobei ich das Prüfen des Beweises dann leider doch anderen überlassen muss… 😉 Aber wird spannend zu sehen sein, ob das Problem geknackt wurde oder nicht. So schnell hätte ich jetzt jedenfalls noch nicht damit gerechnet…

  13. #13 Christoph
    08/11/2010
  14. #14 Peter Müller
    08/11/2010

    “Turingmaschinen sind der Computer der technischen Informatik”.

    Da sollte wohl eher “die” und “theoretischen” stehen, oder? 🙂

    /edit Jörg: Japp, danke für den Hinweis! “Der” war gewollt weil es ja quasi ein einziges Konzept ist.

  15. #15 7tupel
    08/11/2010

    ein paar kleine Anmerkungen:

    SSL bzw. andere Verschlüsselungsverfahren werden nicht zwangsweise unsicher wenn P = NP gilt. Selbst wenn dies der Fall ist, dann gehen die meisten Informatiker davon aus, dass es sich um sehr hohe Potenzen handeln würde. Und ob ein Problem jetzt eine Laufzeit von 2^n hat oder n^237533 ist in der Praxis egal. Man könnte eine Zahl niemals in ausreichender Zeit faktorisieren. Interessant im Zuge von Faktorisierung sind vielmehr Quantencomputer (Shor-Algorithmus).

    TSP ist nicht definiert als der kürzeste Pfad (geringste Kosten) den ein Handlungsreisender zurücklegt und dabei alle Städte (Knoten) besucht und am Ende wieder beim Ursprungsknoten ist! Vielmehr geht es darum, eine Kostengrenze k nicht zu überschreiten. Ansonsten würde die Reduktion von HC auf TSP so nicht funktionieren. Allerdings ist anzumerken, dass der Blowup im Vergleich zur exponentiellen bei deterministische Lösung von TSP nur sehr gering ist (nur polynomiell), wenn man anschließend eine Breitensuche/Tiefensuche durchführt um den optimalen Pfad zu finden. Die Schwere des Problems bleibt gleich.

    Die Mächtigkeit von Mengen hat hiermit nur begrenzt etwas zu tun. Alle NP-Probleme (damit auch alle P-und NP-vollständigen Probleme) sind lösbar. Es gibt jedoch auch Probleme die man mit einem Computer einfach nicht lösen kann!
    Auf Grund der Church-Turing-These (die übrigens inhärent unbeweisbar ist) weiß man, dass jedes intuitiv lösbare Problem auch durch eine Turingmaschine gelöst werden kann (und damit von jedem anderen Computer, egal ob deterministisch oder nichtdeterministisch). Eine Turingmaschine ist hiermit also einer” Problemlösung” gleichzusetzen.
    Der Mathematiker Gödel hat gezeigt, dass man jeder Turingmaschine eine eindeutige Nummer zuordnen kann (Gödelisierung, Universelle Turingmaschine). Bei diesen Nummern handelt es sich um natürliche Zahlen.
    Die gesamte Menge der Gödelnummern ist unendlich. Da die Natürlichen Zahlen abzählbar unendlich sind (Aleph-0), ist auch jede unendliche Teilmenge davon abzählbar unendlich. Damit wissen wir also, dass es genau abzählbar viele Probleme gibt, die lösbar sind.
    Als nächstes schauen wir uns die formale Definition eines Problems an. Ein Problem ist als die Berechnung einer Funktion f:{0,1}* -> {0,1} definiert. (sehr sehr) grob gesagt bedeutet das, dass man ein Input bekommt und die Funktion gibt am Ende 1 (wahr) aus, wenn der Input zu dem Problem passt und ansonsten 0 (falsch).
    Umgekehrt bedeutet das, dass es genau so viele Probleme gibt, wie in der Menge {0,1}* vorhanden sind. Bei dieser Menge handelt es sich um die Potenzmenge der Natürlichen Zahlen. Da laut Cantors Zweitem Diagonalargument eine Potenzmenge einer unendlichen Menge immer mächtiger ist als die Ursrprungsmenge heißt dass, dass es überabzählbar viele Probleme (Aleph-1) gibt.
    Da es aber leider nur abzählbar unendlich viele Lösungen gibt, bleiben überabzählbar viele Probleme ungelöst. Dazu gehören z.B. das Halteproblem oder das Postsche Korrespondenzproblem. Hieraus folgt z.B. auch, dass man niemals in der Lage sein wird ein Programm zu schreiben, dass ein anderes beliebiges Programm auf korrekte Funktion hin überprüft. Wenn also der neue Mitarbeiter im nächsten Meeting meint er hätte ein Programm geschrieben mit dem alles testen und Debuggen von neuer Software durch Menschen überflüssig wird und das Programm garantiert auf allen Eingaben immer das richtige tut, dann ist das vollkommener Schwachsinn. Das geht einfach nicht!

  16. #16 Naria
    08/11/2010

    Die Menge {0,1}* ist nicht überabzählbar unendlich, sondern abzählbar unendlich, also in der Mächtigkeit identisch mit den Natürlichen Zahlen, da sie immerhin fast der Binärdarstellung einer natürlichen Zahl entspricht.

  17. #17 Thilo
    08/12/2010

    @ Naria: in der Binärdarstellung von natürlichen Zahlen kommen nur endlich viele Einsen vor. Deshalb ist {0,1}* größer als die Menge der natürlichen Zahlen.

  18. #18 7tupel
    08/12/2010

    @Naria @Jörg: Jaien, Naria hat nicht ganz unrecht. Ich hätte besser schreiben sollen “die Menge der Funktionen über {0,1}* ist überabzählbar”.
    Klar ist die Menge {0,1}* (->Kleenesche Hülle) nur abzählbar unendlich. Es handelt sich hier jedoch ganz streng genommen nicht um die Menge der Natürlichen Zahlen! Diese gehen von 1 bis + unendlich. {0,1}* enthält jedoch auch noch das leere Wort, das man im Bezug zu den Natürlichen Zahlen als 0 interpretiert. Gut, hier gibt es keine 100%ige Einigkeit unter den Zahlentheoretikern, aber die Mehrheit geht davon aus, dass die 0 keine Natürliche Zahl ist.

    Dennoch ist meine Aussage oben nicht falsch. Denn die Menge aller Sprachen über {0,1}* ist auch schon überabzählbar. Da zu jedem Problem auch eine Sprache gehört muss es damit auch überabzählbar viele Probleme geben

  19. #19 Immanuel Scheerer
    08/12/2010

    @7Tupel:

    SSL bzw. andere Verschlüsselungsverfahren werden nicht zwangsweise unsicher wenn P = NP gilt. Selbst wenn dies der Fall ist, dann gehen die meisten Informatiker davon aus, dass es sich um sehr hohe Potenzen handeln würde.

    Du hast recht, zwangsweise unsicher werden die Verfahren nicht. Aber die meisten Informatiker (einschließlich mir) gehen davon aus, dass P ≠ NP, trotzdem ist die Diskussion hier super spannend, weil es sich nur um Intuition und damit streng gesehen Spekulation handelt. Wenn P = NP bewiesen würde (und damit schon mal gezeigt wäre, dass sich die Mehrheit der Informatiker intuitiv getäuscht hat), würde ich zum jetzigen Zeitpunkt vorsichtig mit Vorhersagen über das momentan Undenkbare sein. Sich in falscher Sicherheit wiegen kann dann nur schaden.

    Die gesamte Menge der Gödelnummern ist unendlich. Da die Natürlichen Zahlen abzählbar unendlich sind (Aleph-0), ist auch jede unendliche Teilmenge davon abzählbar unendlich. Damit wissen wir also, dass es genau abzählbar viele Probleme gibt, die lösbar sind.

    Es wäre schön, wenn die Informatik nur mit abzählbar endlichen Problemen zu tun hätte. Aber es gibt das Phänomen “das Ganze ist mehr als die Summe seiner Teile”, was in die jetzige Diskussion übersetzt heißt: Wer mit abzählbarer Unendlichkeit arbeitet, bekommt überabzählbar viele Probleme.

    Das Geheimnis für den Zusammenhang zwischen abzählbarer und überabzählbarer Unendlichkeit liegt in der Potenzmenge: Sie konstruiert auf der Basis abzählbarer Mengen überabzählbare Mengen.

    Ich will versuchen, dass zu veranschaulichen, indem ich Programme als Zustandsautomaten ansehe, die ich nur anhand der Menge der prinzipiell erreichbaren Zustände unterscheide. Die Zustandsübergänge, ob nun deterministisch oder nicht, interessieren mich also überhaupt nicht. Wenn ich also dann eine maximale Anzahl von 10 Zuständen annehme, so erhalte ich 2^10 unterschiedliche Programme, nämlich genau die Potenzmenge der Zustände.

    Wende ich dieses Schema auf einen Rechner mit lächerlichen 640KB Arbeitsspeicher an, so habe ich 5242880 Bit und damit 2^5242880 mögliche Zustände. Das ist zwar gegenüber den ca. 2^265 Atomen im Weltall ( https://fma2.math.uni-magdeburg.de/~bessen/krypto/krypto8.htm ) zwar auch schon eine praktisch unendliche Menge, aber die Zahl der möglichen Programme (ohne Betrachtung der Zustandsübergänge!) ist 2^10485760. Die Rechnung für meine 8GB Entwicklungsmaschine spar ich mir, der Platz würde nicht ausreichen ;-).

    Jetzt wundern mich meine Probleme beim Programmieren überhaupt nicht mehr: Aus einer überabzählbaren Menge das richtige Programm auszuwählen, ist halt nicht ganz einfach.

    Das Thema Unendlichkeit scheint echt das Potential zu haben, unser Denken auf den Kopf zu stellen. Daher würde ich mich freuen, wie von Jörg weitere hilfreiche Anregungen bekommen zu meinem Versuch, etwas daraus zu lernen: https://www.sein-und-nicht-sein.de/das-scheinwiderspruchs-prinzip/

  20. #20 Niemand
    08/12/2010

    @tupel7: Das Ganze ist »nur« eine Definitionssache, aber TSP ist tatsächlich als Suchproblem definiert. Das, was du meinst (mit der Kostengrenze) ist das zu TSP-gehörende Entscheidungsproblem.

  21. #21 7tupel
    08/12/2010

    @Niemand hmm interessant, uns wurde immer eingetrichtert, dass es sich gerade nicht darum handelt. Aber ok, man lernt doch immer wieder etwas dazu 🙂

    @Scheerer
    Ja die Mehrzahl (ich gehöre auch dazu) geht davon aus, dass P ≠ NP gilt. Andererseits geht man aber auch davon aus, dass sollte man hiermit falsch liegen, dass es sich bei einer polynomiellen Lösung eines NP(-vollständigen) Problems wahrscheinlich um ein sehr großes Polynom handelt, was dann praktisch auch nicht mehr lösbar ist.

    Und danke für die schöne Veranschaulichung. Ich habe in einer Arbeit über NP-Vollständigkeit/SAT ein ähnliches Beispiel zum testen von Schaltkreisen gemacht, denn auch hier gilt, dass wenn z.B. ein Prozessor aus einer Milliarde Transistoren besteht, dass es 2^1 Milliarde Belegungsmöglichkeiten gibt, die man niemals alle ausprobieren könnte.
    Heute Nacht war ich wohl zu müde um daran zu denken ein schönes Beispiel zu bringen ^^

  22. #22 Immanuel Scheerer
    08/12/2010

    @7tupel: Man kann sich echt nicht vorstellen, dass 1KB Zustandsraum schon die Grenzen des Weltalls sprengt …

    Ich glaube ich konnte meine Skepsis bezüglich Aussagen für den Fall P = NP noch nicht ganz vermitteln. Wir haben zunächst zwei Aussagen a und b, die zur Debatte stehen:

    a: P ≠ NP
    b: Selbst wenn P = NP, dann handelt es sich noch immer um hohe Potenzen, so dass praktisch gesehen für die Verschlüsselung keinen großen Unterschied macht.

    Deiner Aussage nach sind die beiden Aussagen unabhängig voneinander: Wäre a widerlegt, ändert das an b überhaupt nichts.

    Meiner Meinung nach sind die beiden Aussagen in zweierlei Hinsicht nicht unabhängig voneinander:
    1. Sie basieren beide auf dem gleichen demokratischen Argument (die Intuition der Mehrheit). Irrt sich die Mehrheit einmal, warum sollte sie sich nicht ein zweites Mal irren?
    2. Würde a widerlegt werden, würden sich die Randbedingungen der Komplexitätstheorie empfindlich verändern, so dass dies auch auf die Randbedingungen von Aussage b Auswirkungen haben dürfte.

    Nimmt man das zusammen, so meine ich argumentieren zu können, dass die beiden Aussagen nicht unabhängig voneinander sind, und die Widerlegung von a auch eine Widerlegung von b zumindest in den Bereich des Denkbaren rückt.

    Aber meine Spitzfindigkeit kaschiert nur meine Unwissenheit: Ich habe einfach keine Ahnung, warum man annimmt, dass die Potenzen auch bei P = NP groß bleiben sollten.

  23. #23 7tupel
    08/12/2010

    @Scheerer:
    Ob dort eine Abhängigkeit besteht kann ich leider nicht sagen, Stochastik/Statistik war noch nie meine Stärke 😉

    Natürlich wäre es auch nur eine Vermutung, dass b gilt wenn a nicht gilt. Ob das tatsächlich so ist würde man vermutlich erst dann feststellen, wenn a wirklich falsch ist.
    Tatsächlich habe ich auch nur gesagt bekommen, dass es diese Meinung gibt. Wie diese Annahme zustande kommt weiß ich leider auch nicht. Aber die allgemeine Annahme der Informatiker war nach dem Satz von Cook 1971 auch, dass die P-NP Problematik sehr bald geklärt sein würde. Und das ist immerhin schon 40 Jahre her und es gibt immer noch keine Antwort.

  24. #24 Manuel Rodriguez
    08/18/2010

    Zuerst einmal Sorry, wenn mein Niveau nicht an das Original-Posting heranreicht. Aber ich war leider nicht auf den besten Schulen und musste mir das Informatik-Wissen aus russischen DDR-Büchern anlesen, wobei die Beleuchtung in der Bibliothek dermaßen schlecht war, dass heute meine Augen von der kleinen Schrift ruiniert sind. Aber jetzt zum Thema … Weil mich Turing-Maschinen und Gödelnummern sehr interessieren hab ich mir mal die Mühe gemacht in Excel eine Turing-Maschine zusammenzubauen. Einfach deshalb, weil mir die Formeln zur Laufzeitabschätzung von Algorithmen nie so recht verständlich waren. Auf dieser Excel-Turingmaschine hab ich dann alle möglichen Programme mit 5 Zuständen durchprobiert. Jetzt kann ich behaupten: ja, ich verstehe was von NP-harten Problemen. Es gibt sehr sehr viele Möglichkeiten, die Excel durchprobieren musste. Zu meiner Überraschung haben einige der Programme ein intelligentes Verhalten gezeigt. Sie produzierten Muster wie in dem Buch, Stephen Wolfram: A new kind of Science. Zumindest Wolfram ist davon überzeugt, dass so das Universum erschaffen wurde.

    P.S. Das Wolfram-Buch hab ich nicht selbst gekauft, sondern von einem serbokroatischen Freund zur Jugendweihe geschenkt bekommen. Der sitzt jetzt leider im Abschiebelager und bekommt pro Monat 150€ für Lebensmittel. Ist aber egal, wir sind erwachsen und gehen sowieso bald drauf.