Es gibt wirklich nicht viel, was Sie tun können, um einfache Definitionen dieser Problembereiche bereitzustellen. Denken Sie daran, dass Problemräume wie P und NP durch asymptotisches Verhalten definiert werden, wenn eine bestimmte Zahl n
ins Unendliche geht. Es gibt keine Laiensituationen, in denen es nützlich ist, ins Unendliche zu gehen, und die Präzision, die erforderlich ist, um es so zu definieren, ist brutal.
Als solches finde ich es am einfachsten, P und NP als "schnell" und "langsam" zu beschreiben und dann das praktische Beispiel der Kryptographie zu verwenden, weil es für Menschen interessant ist. Ich beginne mit NP (weil es schnelle und langsame P-Algorithmen gibt, möchte ich ihr Konzept von "langsam" mit dem der exponentiellen Zeit verankern, bevor ich P einbringe). Jeder hat sich irgendwo mit einer Art geometrischem Wachstum befasst, auch wenn es nur Zinseszins ist, also gibt es etwas, von dem man ausgehen kann.
Sobald ich denke, dass sie eine Vorstellung von der exponentiellen Zeit haben, stelle ich den Kryptographie-Link vor. Eines der Ziele der Kryptographie ist, dass das Hinzufügen von 1 Bit zu einem Schlüssel die Zeit verdoppelt, die jemand benötigt, um ihn zu brechen. Der wesentliche Teil besteht darin, die Idee zu verbinden, dass das Hinzufügen von Arbeit zum Sender / Empfänger den Arbeitsaufwand des Angreifers vervielfacht.
Damit kann ich dann Moores Gesetz ansprechen, das sehr grob besagt, dass sich die Rechenleistung alle 18 Monate verdoppelt. Das bedeutet, dass mein Angreifer doppelt so viel Arbeit leisten kann, wenn er darauf warten kann, dass die Hardware aufholt. Wenn sich seine Angriffsfähigkeit verdoppelt, muss ich etwas hinzufügen. Dann verdoppelt er sich wieder und ich füge ein bisschen hinzu. Dann kann ich zeigen, wie asymmetrisch ist dieses Spiel - jedes Mal , wenn sie eine tun massive Menge an zusätzlicher Arbeit, sie hat gerade eine wenig zusätzliche Arbeit zu tun habe , Dinge zu halten , auch.
Jetzt kann ich Polynomzeit als Algorithmen lehren, die schneller als die Exponentialzeit laufen. Dies ist eine kleine Vereinfachung, aber für einen Laien denke ich, dass es in Ordnung ist. Wenn mein Krypto-Algorithmus eine Polynomzeit wäre und die Rechengeschwindigkeit meines Angreifers besser würde, müsste ich immer schneller Bits hinzufügen und das System blockieren. Jeder weiß, was es bedeutet, wenn ein Computer langsam läuft!