Zufällige Algorithmen?

Haben Sie jemals Wiedergabelisten in iTunes oder Google Play gemischt und manchmal denselben Titel öfter gehört, als Sie sollten? Dies passiert mir die ganze Zeit bis zu dem Punkt, an dem ich alle meine Wiedergabelisten manuell neu bestellt habe, weil die Anwendung die Songs nicht ausreichend mischt.

Warum passiert das? Ausgerechnet Programme sollten in der Lage sein, Objekte zufällig zu produzieren, sei es ein Lied, ein Name oder eine Zahl. Wie könnten Tech-Giganten wie Apple und Google keine zuverlässige Shuffle-Funktion haben?

Pseudozufallszahlengeneratoren

Pseudo-Gene r Atoren sind nicht so zufällig, wie man es sich erhoffen würde. Pseudogeneratoren sind mathematisch basierte Algorithmen, die vorberechnet werden, um numerische Sequenzen zu erstellen. Während diese zufällig zu sein scheinen, sind sie nicht wirklich. Wenn der Startpunkt der Sequenz bekannt ist, können die Nummern neu erstellt werden. Diese Qualität klassifiziert den Algorithmus als deterministisch .

“Eine Sache, in der herkömmliche Computersysteme nicht gut sind, ist das Umwerfen von Münzen. Sie sind deterministisch, was bedeutet, dass Sie jedes Mal die gleiche Antwort erhalten, wenn Sie dieselbe Frage stellen. Tatsächlich sind solche Maschinen speziell und sorgfältig programmiert, um die Zufälligkeit der Ergebnisse zu eliminieren. Sie tun dies, indem sie Regeln befolgen und sich beim Berechnen auf Algorithmen verlassen. Sie können eine Maschine so programmieren, dass sie sogenannte Zufallszahlen generiert, aber die Maschine ist immer ihrer Programmierung ausgeliefert. Auf einer vollständig deterministischen Maschine können Sie nichts generieren, was Sie wirklich als zufällige Folge von Zahlen bezeichnen könnten, da die Maschine denselben Algorithmus verwendet, um sie zu generieren. In der Regel bedeutet dies, dass es mit einer gemeinsamen Startnummer beginnt und dann einem Muster folgt. “

Steve Ward, Professor für Informatik und Ingenieurwesen am MIT-Labor für Informatik und künstliche Intelligenz.

Die Vorteile von Pseudogeneratoren bestehen darin, dass sie schnell viele „Zufallszahlen“ erzeugen können und daher effizient sind. Effizienz ist nützlich, wenn eine Anwendung viele „zufällige“ Stichproben benötigt, und Determinismus ist nützlich, wenn Sie später dieselbe Zahlenreihe benötigen. Der Nachteil ist, dass sich Pseudogeneratoren irgendwann wiederholen und sie als periodisch klassifizieren. Simulation, Modellierung, Musikmischung und Zufallsauswahl großer Datenmengen sind die häufigsten Anwendungen für Pseudogeneratoren.

Echte Zufallszahlengeneratoren

Wahre Generatoren „ extrahieren Zufälligkeiten aus physikalischen Phänomenen und führen sie in einen Computer ein… Das physikalische Phänomen kann sehr einfach sein, wie die kleinen Abweichungen in den Mausbewegungen einer Person oder in der Zeitspanne zwischen den Tastenanschlägen.“

Während die obigen Beispiele schwierig zu messen sind, sind gute physikalische Phänomene radioaktive Quellen oder atmosphärisches Rauschen. Dies sind leistungsstarke Zufallsmodelle, da sie nicht vorhersehbar sind. Im Allgemeinen nimmt dieser Prozess mikroskopische Phänomene auf, wie zufällige und unvorhersehbare Rauschsignale (thermisches Rauschen, photoelektrischer Effekt, atmosphärisches Rauschen), und ein Gerät verwendet einen Wandler, um die physikalischen Phänomene in ein elektrisches Signal umzuwandeln. Ein Verstärker erhöht die Amplitude der eindeutigen Schwankungen, sodass ein Wandler den Ausgang messen und in Binärziffern von 0 und 1 umwandeln kann. Wenn Sie diesen Vorgang wiederholen, erhalten Sie eine Reihe wirklich zufälliger Zahlen.

Fourmilab in der Schweiz verwendet diese Methode für ihren Zufallszahlengenerator. Random.org verwendet typische Hintergrundgeräusche aus einem Büro oder Labor, ist jedoch vorsichtig, um Geräuschmuster (Deckenventilatoren, rotierende Maschinen) zu vermeiden. Datenverschlüsselung, Spiele, Drogenscreening und Glücksspiel sind Beispiele, bei denen True Generators geschätzt werden. Insbesondere das Glücksspiel nutzt diese Technologie mit Lotterien, Poker, Kartenmischen, Würfeln und Roulette-Rädern. Der Nachteil ist, dass echte Generatoren ineffizient sind.

Schlussbemerkungen – Qualität über Quantität

Zusammenfassend sind Pseudogeneratoren nützlich, um scheinbar zufällige Sequenzen schnell und effizient zu erzeugen. Die Zufälligkeit ist nicht wahr, da Computer deterministisch sind und auf vorhersehbare Weise dieselben Ergebnisse liefern. Modelle und Simulationen verwenden am häufigsten Pseudogeneratoren.

True-Generatoren sind zwar wirklich zufällig, aber langsamer und weniger effizient. Sie werden hauptsächlich für Glücksspiele und Datenverschlüsselung angewendet, bei denen Unvorhersehbarkeit von größter Bedeutung ist.