Ein Zauberwürfel ist ein 3D-Puzzle mit 6 Gesichtern, jedes Gesicht hat normalerweise 9 Aufkleber in einem 3×3-Layout und das Ziel des Puzzles ist es, den gelösten Zustand zu erreichen, in dem jedes Gesicht nur eine einzigartige Farbe hat.

Die möglichen Zustände des zauberwürfel 3×3 Auswahl hier liegen in der Größenordnung einer Quintillion, und nur einer von ihnen gilt als „gelöster“ Zustand. Das bedeutet, dass der Eingabebereich jedes Reinforcement-Learning-Agenten, der versucht, den Würfel zu lösen, riesig ist.

Wir stellen einen Würfel mit der Python-Bibliothek pycuber dar und berücksichtigen nur Viertelrotationen (90°) Bewegungen. Hier werden keine annotierten Daten verwendet, alle Proben werden als eine Folge von Zuständen generiert, die vom gelösten Zustand ausgehen und dann invertiert werden (so dass sie in den gelösten Zustand übergehen), und dann werden diese Folgen für das Training verwendet. Man kann das Gehirn trainieren, seine Geduld trainieren oder andere Fähigkeiten. Der zauberwürfel 3×3 eignet sich auch für jedes Alter, vom Kindergartenkind bis hin zum Rentner und es gibt ihn in ganz verschiedenen Größen und Schwierigkeiten, je nach Ausführung.  Somit kann es für alle jetzt los gehen!

Problemeinstellung beim abgeflachten Würfel

Aus einem zufällig gemischten zauberwürfel 3×3 wie dem obigen Beispiel wollen wir ein Modell lernen, das in der Lage ist, eine Folge von Aktionen aus der Menge {‘F’: 0, ‘B’: 1, ‘U’: 2, ‘D’: 3, „L“: 4, „R“: 5, „F“: 6, „B“: 7, „U“: 8, „D“: 9, „L“: 10, „ R’”: 11} um zu einem gelösten Zustand wie dem folgenden zu gelangen:

Die hier umgesetzten Ideen stammen größtenteils aus dem Paper Solving the Rubik’s Cube Without Human Knowledge

Der implementierte RL-Ansatz wird als Autodidaktische Iteration oder ADI bezeichnet. Wie in der Abbildung oben (aus dem Papier) dargestellt. Wir konstruieren einen Pfad zum gelösten Zustand, indem wir vom gelösten Zustand rückwärts gehen, und verwenden dann ein vollständig verbundenes Netzwerk, um die „Richtlinie“ und den „Wert“ für jeden Zwischenzustand im Pfad zu lernen.

Hier ist „a“ eine Variable für alle 12 möglichen Aktionen, die in der Einleitung definiert sind, und R(A(x_i, a)) ist die Belohnung, die durch das Ausführen der Aktion a aus dem Zustand x_i erreicht wird. Wir definieren R = 0,4, wenn wir im gelösten Zustand landen, und -0,4 andernfalls. Die Belohnung ist das einzige Überwachungssignal, das das Netzwerk während des Trainings erhält, das durch mehrere „Aktions“-Entscheidungen verzögert werden kann, da der einzige Zustand mit einer positiven Belohnung der endgültig gelöste Zustand ist.

Zum Zeitpunkt der Inferenz verwenden wir das Werte-Policy-Netzwerk, um unsere Suche nach dem gelösten Zustand zu leiten, damit wir das Rätsel in so kurzer Zeit wie möglich lösen können, indem wir die Anzahl der Maßnahmen reduzieren, die es „wert“ sind, unternommen zu werden.

Ergebnisse

Die Ergebnisse, die ich mit dieser Implementierung hatte, waren nicht so spektakulär wie das, was in der Arbeit dargestellt wurde. Soweit mir aufgefallen ist, konnte diese Implementierung problemlos Würfel lösen, die 6, 7 oder 8 Mischschritte vom gelösten Zustand entfernt sind, aber darüber hinaus viel schwerer hatten.

Categories: Kultur