24.02.2016, 16:05
(24.02.2016, 15:01)AKOM schrieb: Die Vorgehensweise deines Algorithmus ist der eines Menschen ja recht ähnlich, nur das man als Mensch natürlich meisten nicht so Optimal ist, da man z.B. kein Table mit allen Möglichkeiten im Kopf hat und auch häuifig nicht unbeding alle Möglichkeiten für den nächsten Schritt duchpropieren kann.
Genau das ist ja Sinn, Zweck und Ziel des Ganzen. Grad bei Scrambles, die am Anfang besonders viele oder besonders wenige Möglichkeiten bieten, kann man so interessante Ansätze finden.
(24.02.2016, 15:01)AKOM schrieb: Falls du deinen Code und die DB herausgeben magst, kann ich gerne mal schauen, ob/wo ich Potential für Geschwindigkeitsverbesserungen sehe. (Auf die Empfehlung, kein PHP zu verwenden, würde ich verzichten :-))
Aktuell gehen 50-70% der Laufzeit für die Insertions drauf, da ich diesen Lösungsschritt noch nicht vernünftig implementiert habe. Mit ein paar kleinen Änderungen sollten durchschnittliche Zeiten von unter 2 Minuten kein Problem sein.
Im Rhamen der Bachelorarbeit wird sich an anderen Stellen wohl nicht mehr viel grundlegendes ändern aber für spätere Änderungen, z.B. NISS und andere Skeletons als L3C und L5C wäre es sicher interessant und vernünftig, über Wege nachzudenken, um die Laufzeit weiter zu verringern.
(24.02.2016, 15:25)Linus F schrieb: Was mich am meisten stört (und worüber sich auch schon Leute auf Reddit aufgeregt haben ) sind immer wieder so Dinge wie L5C in 21, die dann zu einer 23 führen
Noch schlimmer: L3C in 22 und am Ende ne 21 :/
Mit der Erkennung andere Skeletons als L3C und L5C sollte die Hääufigkeit solcher Solutions stark abnehmen. Von den 100 Scrambles, die Linus mir geschickt hat, waren Lösungen, bei denen wirklich unwahrscheinlich viele Moves gecancelt worden, in vermutlich 20-30 Fällen dabei.
(24.02.2016, 15:36)AKOM schrieb: Gut, das ist die Heuristik, die ein Mensch benutzt, weil er nicht alles ausprobieren kann. Man könnte ja in das Programm einbauen (ggf. per Option-Flag), dass nur die kürzeste Solution in jedem Schritt verwendet werden soll
Das könnte man machen. Allerdings kann es durchaus Sinnvoll sein, in einen Schritt zusätzliche Moves einzubauen, um damit z.B. Edges zu orientieren oder ein Pair zu lösen. Ein Beispiel dafür ist die 22 auf invers vom 2. Scramble letzter Woche. Vielleicht wäre es sinnvoller, eine Obergrenze für Cancellations vorzugeben.
R' U' B U' L' B L B' U B' R' U R2