Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
FMC-Bot
#20
Die Zugfolgen werden jedes mal aus der DB gelesen. Grad zum Lösen der 2x2x2 erscheint mir das sinnvoll, da es dort immer nur genau 8 einzelne Abfragen sind und die Pruning Tables mit jeweils ca. 1 million Einträgen noch recht groß sind. Für den Schritt F2L-1 zu L5C ist allerdings geplant, die nur noch 316 möglichen Zugfolgen zu Beginn des Schritts in einem Array zu definieren.

Wenn ich einen bestimmten Schritt lösen will, gelten jedes mal ein paar Enschränkungen: Bei 2x2x2 sind nur genau 4 Pieces zu lösen. Ausgehend vom gegebenen Zustand des Cubes berechne ich, wie sich die Position dieser 4 Pieces ändern muss, damit sie gelöst werden. Darauf basiernd wird dann eine SQL-Abfrage erstellt, die genau die Zugfolgen liefert, die diese 4 Pieces lösen. Für spätere Schritte gilt dann noch die Einschränkung, dass bereits gelöste Pieces nicht mehr verändert werden. Deshalb gibt es für jeden Lösungsschritt eigene Pruning Tables, die nur die Zugfolgen enthalten, die die ab diesem Schritt bereits gelösten Pieces nicht mehr ändert. Um nicht für jeden einzelnen möglichen 2x2x2, 2x2x3 und F2L-1-Block extra Pruning Tables anlegen zu müssen, macht der Solver zwischen den Schritten ein paar Cube Rotations, so dass immer nur Blöcke an ein und der selben Position gelöst werden müssen.

Die einzelnen Lösungsschritte werden immer jeweils als Ganzes ausgeführt. Es werden erst alle 8 2x2x2-Blöcke gelöst. Dabei wird für jeden der 8 2x2x2 alle Zugfolgen gesucht, die ihn lösen. Für jede Zugfolge wird ermittelt, wie das ergebnis danach aussieht und welche Daten geschrieben werden sollen. Am Ende werden alle gefundenen 2x2x2 auf ein mal geschrieben.

Für 2x2x3 werden alle 2x2x2 gelesen und für jeden Einzelnen wird ermittelt, welche Zugfolgen aus dem 2x2x2 ein 2x2x3 machen. Für jede gefundene Zugfolge wird das Ergebnis am Cube ermittelt und die bisherige Lösung wird auf Cancellations geprüft. Für F2L-1 und L5C geht es ähnlich weiter.

Zur Zeit ist noch nichts mit inversen Scrambles oder NISS implementiert. Für die Lösungen auf inversen Scrambles habe ich den Scramble selbst invertiert und als neuen Scramble lösen lassen.

Zur letzten Frage: Es kann durchaus passieren, dass es sehr viele Möglichkeiten gibt, einen 2x2x2-Block zu einem 2x2x3 zu erweitern. Auf dem zuletzt getesteten Scramble gab es 108 2x2x2, darauf 3974 2x2x3, darauf 19516 F2L-1 und darauf 2258 L3C/L5C/Skips. Dem starken Anstieg von 2x2x3 zu F2L-1 könnte ich jetzt schon begegnen, indem ich vom Solver fordere, nur 2x2x3 zu finden, die höchsten s0, 2, 4 oder 6 bad Edges haben.
R' U' B U' L' B L B' U B' R' U R2
Zitieren


Nachrichten in diesem Thema
FMC-Bot - von Fritz - 24.02.2016, 14:40
RE: FMC-Bot - von AKOM - 24.02.2016, 15:01
RE: FMC-Bot - von Linus F - 24.02.2016, 15:25
RE: FMC-Bot - von AKOM - 24.02.2016, 15:36
RE: FMC-Bot - von FMC-Bot - 24.02.2016, 15:42
RE: FMC-Bot - von Fritz - 24.02.2016, 16:05
RE: FMC-Bot - von AlexICG - 24.02.2016, 16:56
RE: FMC-Bot - von Laura - 24.02.2016, 17:08
RE: FMC-Bot - von AKOM - 24.02.2016, 17:39
RE: FMC-Bot - von Fritz - 24.02.2016, 18:41
RE: FMC-Bot - von Laura - 24.02.2016, 19:39
RE: FMC-Bot - von FMC-Bot - 24.02.2016, 19:24
RE: FMC-Bot - von AKOM - 24.02.2016, 19:35
RE: FMC-Bot - von Linus F - 24.02.2016, 19:39
RE: FMC-Bot - von AKOM - 24.02.2016, 19:59
RE: FMC-Bot - von Fritz - 24.02.2016, 19:45
RE: FMC-Bot - von AKOM - 24.02.2016, 19:54
RE: FMC-Bot - von Fritz - 24.02.2016, 19:56
RE: FMC-Bot - von AKOM - 24.02.2016, 22:33
RE: FMC-Bot - von Fritz - 24.02.2016, 23:54
RE: FMC-Bot - von AKOM - 25.02.2016, 00:24
RE: FMC-Bot - von Fritz - 25.02.2016, 00:49
RE: FMC-Bot - von AKOM - 25.02.2016, 00:56
RE: FMC-Bot - von FMC-Bot - 26.02.2016, 13:12

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste