Zauberwürfel Roboter in ca 1 Sekunde

Gast #4442097
Lesenswert?

Stefan U. schrieb:
> Schaut mal, worüber Heise heute berichtet:
> http://www.heise.de/newsticker/meldung/Roboter-loe...
>
> Das ist doch der Hammer, oder?
>
> Hat mit µC nicht sehr viel zu tun, aber ich finde es trotzdem
> interessant.

Stimmt. Daß die Berechnung der Lösung schnell genug ist, darüber wundere 
ich mich nicht. Aber die Drehungen so sauber hinzukriegen, daß sich 
nichts verkantet und alles sauber läuft, das ist das eigentliche 
Meisterwerk.

Aber trotzdem frage ich mich immer wieder, wer den Blödsinn mit dem 
"Zauberwürfel" in die Welt gesetzt hat. Was hat das mit Zauberei zu tun?
Gast #4442244
Lesenswert?

Stefan U. schrieb:
> Schaut mal, worüber Heise heute berichtet:
> 
http://www.heise.de/newsticker/meldung/Roboter-loest-Rubik-s-Cube-und-braucht-nur-gut-eine-Sekunde-3083732.html
>
> Das ist doch der Hammer, oder?

Kalter Kaffee, schau dir mal einen montage robotor in ner chinafab an. 
Oder einen SMD-Bestücker: da fliegen x-Mal mehr Teile pro sekunde an die 
richtige Stelle als bei so nem lumpigen Spielzeugwürfel.
Gast #4442305
Lesenswert?

Würde mich nicht wundern, wenn ein Mensch das genauso schnell könnte.

1. Man hat vorsichtshalber den Würfel Maschinengerecht gemacht.
   (Minuspunkte)
2. Man hat den Würfel - keine Ahnung wie lange das wirklich dauert -
   bereits eingespannt. (Sehr viele Minuspunkte, ungültiger Vorsprung)

Also solide Programmierung und saubere Konstruktion.
Gast #4442341
Lesenswert?

Michael K. schrieb:
> Wenn man mal bedenkt wie "lahm" der Arduino so ist (der µC kann ja bei
> weitem mehr) sieht man: Was besonderes ist das schnelle Lösen nicht.

Der Mikrocontroller löst aber den würfel nicht, sondern steuert nur die 
Motoren an. Lösen tut ein linux rechner der auch die Bildauswertung zur 
ermittlung der Anfangsposition übernimmt.
Wie lange das dauert steht nicht im text, da ist nur die Rede 
eigentlichen drehen das etwa eine sec dauert.
Wenn man bedenkt das in jedem fall 20 Züge zur Lösung genügen und 
darunter auch doppelzüge und Züge über unverbundene Ebenen fallen hat 
man eine Zugdauer (Vierteldrehung) von so 50 ms - die Motoren drehen 
sich also mit r rps - nicht sonderlich viel.
Gast #4442345
Lesenswert?

Über Links gedacht schrieb:
> Wenn man bedenkt das in jedem fall 20 Züge zur Lösung genügen und
> darunter auch doppelzüge und Züge über unverbundene Ebenen fallen hat
> man eine Zugdauer (Vierteldrehung) von so 50 ms - die Motoren drehen
> sich also mit r rps - nicht sonderlich viel.

nur würde man mehrere stunden brauchen um die schnellste Lösung zu 
finden.
Gast #4442356
Lesenswert?

Über Links gedacht schrieb:
> Wenn man bedenkt das in jedem fall 20 Züge zur Lösung genügen und
> darunter auch doppelzüge und Züge über unverbundene Ebenen fallen hat
> man eine Zugdauer (Vierteldrehung) von so 50 ms - die Motoren drehen
> sich also mit r rps - nicht sonderlich viel.

Der rechnet doch nicht bei jedem Zug. Der schaut sich einmal die 
Ausgangssituation an, berechnet die erforderlichen Bewegungsverläufe und 
dann gehts los mit maximal (mechanisch) möglicher Geschwindigkeit.
Gast #4442380
Lesenswert?

S. R. schrieb:
> Peter II schrieb:
>> nur würde man mehrere stunden brauchen um die schnellste Lösung zu
>> finden.
>
> Nein, der Algorithmus ist bekannt und relativ einfach. Sonst könnten
> Menschen den Würfel nicht blind lösen.

nein, sonst hätte man nicht Jahre gebraucht es zu beweisen.

Wenn man es nach "Handbuch" löst, dann ist das nicht die kürzeste weg.
Gast #4442387
Lesenswert?

?!? schrieb:
>> Wenn man bedenkt das in jedem fall 20 Züge zur Lösung genügen und
>> darunter auch doppelzüge und Züge über unverbundene Ebenen fallen hat
>> man eine Zugdauer (Vierteldrehung) von so 50 ms - die Motoren drehen
>> sich also mit r rps - nicht sonderlich viel.
>
> Der rechnet doch nicht bei jedem Zug. Der schaut sich einmal die
> Ausgangssituation an, berechnet die erforderlichen Bewegungsverläufe und
> dann gehts los mit maximal (mechanisch) möglicher Geschwindigkeit.

Nö, alles vor der bewegung zu berechnen ist dumm. Man spekuliert ein 
paar Züge und schaut ob die enstehende Situation näher am Ziel ist. 
Während man diese Züge ausführt spekuliert man parallel die nächste 
Sequenz und schaut wiederum bei welcher man dem Ziel näher gekommen 
wäre/wird.

Die Kunst ist wie beim Schach die Stellungsbewertung -> bin ich mit 
diesem Muster näher an der Ordnung oder entferne ich mich davon.
Gast #4442391
Lesenswert?

Über Links gedacht schrieb:
> Nö, alles vor der bewegung zu berechnen ist dumm. Man spekuliert ein
> paar Züge und schaut ob die enstehende Situation näher am Ziel ist.
> Während man diese Züge ausführt spekuliert man parallel die nächste
> Sequenz und schaut wiederum bei welcher man dem Ziel näher gekommen
> wäre/wird.

nein, das geht nicht. Die Bewertung ist fast nicht möglich.

Ich denke sie Lösen es nach dem typischen Anleitungen im Netz. Also erst 
die 1.Ebende dann die nächste usw. Am ende gibt es gewisse Zugfolgen um 
die Ecken oder Seiten zu tauschen.
#4442398
Lesenswert?

Über Links gedacht schrieb:
> Nö, alles vor der bewegung zu berechnen ist dumm. Man spekuliert ein
> paar Züge und schaut ob die enstehende Situation näher am Ziel ist.
> Während man diese Züge ausführt spekuliert man parallel die nächste
> Sequenz und schaut wiederum bei welcher man dem Ziel näher gekommen
> wäre/wird.
> Die Kunst ist wie beim Schach die Stellungsbewertung -> bin ich mit
> diesem Muster näher an der Ordnung oder entferne ich mich davon.

In einem vollständig vorhersagbaren System (und ein solches ist der 
Würfel) ist dieses Vorgehen für einen Computer einfach nur dämlich.
Gast #4442409
Lesenswert?

Peter II schrieb:
> Über Links gedacht schrieb:
>> Nö, alles vor der bewegung zu berechnen ist dumm. Man spekuliert ein
>> paar Züge und schaut ob die enstehende Situation näher am Ziel ist.
>> Während man diese Züge ausführt spekuliert man parallel die nächste
>> Sequenz und schaut wiederum bei welcher man dem Ziel näher gekommen
>> wäre/wird.
>
> nein, das geht nicht. Die Bewertung ist fast nicht möglich.

Warum sollte sie unmöglich sein? Der Computer muss einfach nur schauen 
wie viel Cubies schon richtig liegen. nach dem vorletzten Zug sind zwei 
gegenüberliegenden Flächen und alle Ebenen korrekt, nach den 
vorvorletzten Zug ist mindestens eine 2x2x2 Ecke korrekt und so weiter.

das ganze ist nur eine variante des Pfannkuchenproblems:
https://de.wikipedia.org/wiki/Pfannkuchen-Sortierproblem
Gast #4442413
Lesenswert?

Über Links gedacht schrieb:
> Warum sollte sie unmöglich sein? Der Computer muss einfach nur schauen
> wie viel Cubies schon richtig liegen. nach dem vorletzten Zug sind zwei
> gegenüberliegenden Flächen und alle Ebenen korrekt, nach den
> vorvorletzten Zug ist mindestens eine 2x2x2 Ecke korrekt und so weiter.

genau das ist aber nicht der Fall. Die Anzahl der richtige Cubies sagt 
wenig über die Anzahl der verbleibenden schritte aus.

Da mit einen Zug sich sehr viel ändert, kann es schnell sein wenn mehre 
ecke nicht stimmen als wenn nur eine Ecke nicht stimmt.
#4442428
Lesenswert?

Ich sehe grade, ich hab deinen ersten Beitrag falsch verstanden. Ich 
dachte du willst am Würfel drehen und dabei dann kucken ob's besser oder 
schlechter wird. Was ziemlich langsam wird.

Was du in der digitalen Welt machst, bis du anfängst den Würfel zu 
drehen, dabei dürften

Über Links gedacht schrieb:
> Nööhh heutistische Optimierungsalgos sind clever, bspw:
>
> https://de.wikipedia.org/wiki/Simulated_Annealing
> https://de.wikipedia.org/wiki/Monte-Carlo-Algorithmus

auch gerne mal kürzere Lösungen geben als das “Handbuch“.
#4442436
Lesenswert?

Jan H. schrieb:

> In einem vollständig vorhersagbaren System (und ein solches ist der
> Würfel) ist dieses Vorgehen für einen Computer einfach nur dämlich.

Aso.

Vielleicht kommt es ja auch drauf an, was man will. Was wenn die Suche 
nach der optimalen Lösung länger dauert als nach einer nicht-optimalen 
Lösung?

Hier kommt noch hinzu: Selbst wenn die optimale Lösung relativ schnell 
gefunden werden kann, steht in dieser Zeit der Würfel still. Könnte man 
in dieser Zeit nicht vielleicht schon ein paar sinnvolle Züge machen, 
die auf einer suboptimalen Lösung basieren?
Gast #4442437
Lesenswert?

Peter II schrieb:
> genau das ist aber nicht der Fall. Die Anzahl der richtige Cubies sagt
> wenig über die Anzahl der verbleibenden schritte aus.
>
> Da mit einen Zug sich sehr viel ändert, kann es schnell sein wenn mehre
> ecke nicht stimmen als wenn nur eine Ecke nicht stimmt.

Naja es ist eine Frage wie man richtig liegen definiert. Richtig in 
bezug auf seine nachbarn beispielsweise.

Denk einfach rückwärts, je mehr du einen Würfel verdrehst desto weniger 
"Päärchen aus richtigen" nachbarn gibt es.
Natürlich kann es zugfolgen geben bei denen es zwischendurch 
unordentlicher wird. deshalb permutiert man ja auch meherer Züge und 
bewertet alle entsandenen Möglichkeit bevor man sich für eine sequenz 
entscheidet. halt wie das Gambit beim Schach.
Gast #4442439
Lesenswert?

S. J. schrieb:
> Vielleicht kommt es ja auch drauf an, was man will. Was wenn die Suche
> nach der optimalen Lösung länger dauert als nach einer nicht-optimalen
> Lösung?
richtig, dazwischen muss man Abwegen.


> Könnte man
> in dieser Zeit nicht vielleicht schon ein paar sinnvolle Züge machen,
> die auf einer suboptimalen Lösung basieren?

genau das ist das Problem. Wenn dann die schnellste Lösung gefunden 
wurden ist, steht der Würfel dann nicht mehr so und man muss im 
Zweifelsfall zurückdrehen.
Gast #4442447
Lesenswert?

Über Links gedacht schrieb:
> Denk einfach rückwärts, je mehr du einen Würfel verdrehst desto weniger
> "Päärchen aus richtigen" nachbarn gibt es.

warum haben sich wohl jahrelang Leute und Computer damit beschäftig 
rauszufinden wie viele schritte man minimal braucht, wenn man es einfach 
bewerten könnte?

Die Bewertung ist - wie viele schritte braucht man zum Lösen. Dafür 
braucht man seeeehr viel Rechenleistung.
Gast #4442448
Lesenswert?

Jan H. schrieb:
> Ich sehe grade, ich hab deinen ersten Beitrag falsch verstanden. Ich
> dachte du willst am Würfel drehen und dabei dann kucken ob's besser oder
> schlechter wird. Was ziemlich langsam wird.
>
> Was du in der digitalen Welt machst, bis du anfängst den Würfel zu
> drehen, dabei dürften

Genau, züge vorausberechnen und stellung bewerten und dann drehen. Kann 
natürlich ein Computer wunderbar, während ein mensch sich eher mit 
bekannten zugfolgen von bekannter Verbesserung zu bekannten Verbesserung 
hangelt.

So machen es auch die Schachcomputer, Permutation der Ausgangsstellung 
durch durchspielen legaler Zugfolgen und bewertung der so erzielten 
stellungen.
Gast #4442453
Lesenswert?

Peter II schrieb:
> Die Bewertung ist - wie viele schritte braucht man zum Lösen. Dafür
> braucht man seeeehr viel Rechenleistung.

Nö, die Bertung ist nur um man weniger schritte von der neuen position 
braucht als von der Ausgangsposition, wieviel ist wurscht. wie im Wald, 
hauptsache es wird heller, wie heller ist wurscht.
Gast #4442457
Lesenswert?

S. J. schrieb:
> Hier kommt noch hinzu: Selbst wenn die optimale Lösung relativ schnell
> gefunden werden kann, steht in dieser Zeit der Würfel still. Könnte man
> in dieser Zeit nicht vielleicht schon ein paar sinnvolle Züge machen,
> die auf einer suboptimalen Lösung basieren?

Wieviele Züge wird der Linux-Rechner in einer Millisekunde berechnen 
können? Da fällt die "Stillstandszeit" des Würfels nicht ins Gewicht. Um 
einen einzigen Zug zu machen, brauchen die Schrittmotoren auf jeden Fall 
länger als die Lösung des gesamten Problems dauert.
#4442536
Lesenswert?

Die grundsätzliche Frage ist: Wie schnell kann die Mechanik Züge 
ausführen. Daraus leitet sich dann der Algorithmus ab. Ist die Mechanik 
sehr schnell, kann man irgendeinen der suboptimalen 100-Züge Algorithmen 
verwenden. Ist die Mechanik langsam, lohnt sich der zusätzliche 
Rechenaufwand für eine optimalere Lösung (man hat ja die Zeit während 
die Mechanik noch arbeitet).

Peter II schrieb:
>> Könnte man
>> in dieser Zeit nicht vielleicht schon ein paar sinnvolle Züge machen,
>> die auf einer suboptimalen Lösung basieren?
>
> genau das ist das Problem. Wenn dann die schnellste Lösung gefunden
> wurden ist, steht der Würfel dann nicht mehr so und man muss im
> Zweifelsfall zurückdrehen.

Müßte man ihn dann nicht immer(!) zurückdrehen? lach Natürlich müßte 
die optimale Lösung die entstehende Zwischenstellung als Ausgangsbasis 
nehmen.

Über Links gedacht schrieb:
> So machen es auch die Schachcomputer...

Jo. Und jetzt überlege Mal was hier der Unterschied ist...

?!? schrieb:
> Wieviele Züge wird der Linux-Rechner in einer Millisekunde berechnen
> können? Da fällt die "Stillstandszeit" des Würfels nicht ins Gewicht.

Dann erzähl mal wieviel Züge er in einer Millisekunde berechnen kann. 
Und wie kommst du jetzt gleich auf deine Schlußfolgerung? Aus deiner 
Frage??
Gast #4442545
Lesenswert?

S. J. schrieb:
> Dann erzähl mal wieviel Züge er in einer Millisekunde berechnen kann.
> Und wie kommst du jetzt gleich auf deine Schlußfolgerung? Aus deiner
> Frage??

Schau dir mal das verlinkte Video im obigen Beitrag an. So viel kann der 
Linuxrechner allemal. Es geht hier nicht um das sture Durchprobieren 
aller möglichen Züge, sondern um einen Algorithmus, der alle Züge im 
Voraus berechnet. Und wenn das ein Mensch durch einfaches Anschauen des 
Ausgangszustandes kann, dann kann das eine Software allemal.
Gast #4442607
Lesenswert?

?!? schrieb:
> Schau dir mal das verlinkte Video im obigen Beitrag an. So viel kann der
> Linuxrechner allemal. Es geht hier nicht um das sture Durchprobieren
> aller möglichen Züge, sondern um einen Algorithmus, der alle Züge im
> Voraus berechnet. Und wenn das ein Mensch durch einfaches Anschauen des
> Ausgangszustandes kann, dann kann das eine Software allemal.

ein Mensch kann das nicht!

Der Mensch und die meisten Computer lösen stück für stück den Würfel. 
Das ist nicht der optimale weg. Für den Optimalen weg braucht man ein 
Rechencluster und viel zeit - das ist nicht mit einen kleinen Linux PC 
zu machen.

https://de.wikipedia.org/wiki/Zauberw%C3%BCrfel#Optimale_L.C3.B6sungen

https://de.wikipedia.org/wiki/Gottes_Algorithmus
Gast #4442621
Lesenswert?

Peter II schrieb:
> ein Mensch kann das nicht!
>
> Der Mensch und die meisten Computer lösen stück für stück den Würfel.
> Das ist nicht der optimale weg. Für den Optimalen weg braucht man ein
> Rechencluster und viel zeit - das ist nicht mit einen kleinen Linux PC
> zu machen.

Selbst in dem von dir verlinkten Wikipedia-Beitrag ist beschrieben, daß 
ein Mensch das DOCH kann. Der Rekord liegt bei 21 Sekunden.
https://de.wikipedia.org/wiki/Zauberw%C3%BCrfel#Blindfold_Cubing

Behauptest du immer noch, daß ein Mensch das nicht kann?
Gast #4442630
Lesenswert?

J.-u. G. schrieb:
> Möglicherweise ist dann der Weg, der auf einem kleinen PC in ein paar
> Millisekunden ermittelt werden kann, optimaler als der "Optimale Weg"?

was willst du jetzt damit sagen?

Ja es macht sinn nicht den schnellsten weg zu suchen, dafür aber sehr 
schnell EINEN weg zu finden. Genau das wird ja vermutlich dort gemacht.
Gast #4442631
Lesenswert?

Peter II schrieb:
> ?!? schrieb:
>> Ich habs selber schon gesehen, aber wenn ein Mensch das nicht kann, dann
>> hab ich eben phantasiert.
>
> was hast du gesehen? Das ein Mensch jeden Würfel in 20 Zügen lösen kann?
> Oder das ein Mensch den Würfen sehr schnell lösen kann?

Daß ein Mensch einen von mir persönlich beliebig verdrehten Würfel in 
kurzer Zeit BLIND lösen kann, nachdem er sich den verdrehten 
Ausgangszustand angesehen hatte und dann die Augen verbunden bekam. Und 
das mehrmals, also nachvollziehbar. Auch das Verdrehen wurde nicht nur 
von mir gemacht, sondern von verschiedenen Personen. So wie es im Video 
zu sehen ist...
Gast #4442634
Lesenswert?

?!? schrieb:
> Daß ein Mensch einen von mir persönlich beliebig verdrehten Würfel in
> kurzer Zeit BLIND lösen kann, nachdem er sich den verdrehten
> Ausgangszustand angesehen hatte und dann die Augen verbunden bekam. Und
> das mehrmals, also nachvollziehbar. Auch das Verdrehen wurde nicht nur
> von mir gemacht, sondern von verschiedenen Personen. So wie es im Video
> zu sehen ist...

das bezweifelt auch niemand. Ich habe nur geschrieben, das ein Mensch 
nicht den optimalen weg zu Lösung findet und mehr Drehungen braucht als 
notwendig. Genauso wie ein Computer wenn er nicht viel zeit hat.
Gast #4442645
Lesenswert?

Peter II schrieb:
> das bezweifelt auch niemand. Ich habe nur geschrieben, das ein Mensch
> nicht den optimalen weg zu Lösung findet und mehr Drehungen braucht als
> notwendig. Genauso wie ein Computer wenn er nicht viel zeit hat.

Ich habe nirgends was vom optimales Weg geschrieben, sondern daß ein 
Mensch das in kurzer Zeit blind lösen kann. Daraufhin hast du 
geschrieben: "Ein Mensch kann das nicht!"

Fazit: Wenn das schon ein Mensch nach einmaligem Anschauen der 
Ausgangsposition in 21s blind lösen kann, dann kann das doch eine 
Software auf einem heutigen Rechner allemal im Millisekunden-Bereich.
Gast #4442649
Lesenswert?

J.-u. G. schrieb:
> Die Diskrepanz besteht im unterschiedlichen Verständnis von "optimal"
> (z.B. geringste Anzahl von Zügen, schnellste Zeit, usw., usf.).

die "geringste Anzahl von Zügen" ist übliche Frage bei dem Würfel.

Man könnte auch jede Lösung speichern - leider reicht dafür nicht mal 
die Google und Amazon cloud aus.
Gast #4442651
Lesenswert?

?!? schrieb:
> Habe ich auch niemals behauptet, siehe meinen obigen Beitrag.

du hast geschrieben

> Wieviele Züge wird der Linux-Rechner in einer Millisekunde berechnen
> können? Da fällt die "Stillstandszeit" des Würfels nicht ins Gewicht. Um
> einen einzigen Zug zu machen, brauchen die Schrittmotoren auf jeden Fall
> länger als die Lösung des gesamten Problems dauert.

wenn er den Optimalen weg berechnet, dann braucht er länger als die 
Motoren.
Gast #4442654
Lesenswert?

Johann L. schrieb:
> @Über Links gedacht
>
> Was du da über Lösen des Cubes erzählst ist kompletter Unsinn.  Offenbar
> hast du vom Cube(n) absolut keine Ahnung.

Naja, mit ein bißchen guten Willen lassen sich schon Lösungsansätze für 
den Zauberwürfel auf basis heuristischer Suche finden:
http://www.aaai.org/Papers/AAAI/1997/AAAI97-109.pdf

Hier würde die Manhattan Distanz als Metrik benutzt um die Position zu 
bewerten.

Auch die IDA* Suche als weiter informierte Suche wird auf den 
Zauberwürfel angewandt:
http://kth.diva-portal.org/smash/get/diva2:816583/FULLTEXT01.pdf

Die engl. WP kennt noch etliche andere Computer-Lösungsverfahren:
https://en.wikipedia.org/wiki/Optimal_solutions_for_Rubik's_Cube

Mit der Aussage "kompletter Unsinn" wäre ich äußerst vorsichtig.

MfG,
#4442658
Lesenswert?

Peter II schrieb:
> die "geringste Anzahl von Zügen" ist übliche Frage bei dem Würfel.

Mindestens genauso üblich ist die Lösung in der geringsten Zeit (darum 
geht es doch bei den ganzen "Weltrekorden"). Ich stimme Dir zu, dass das 
Finden der geringsten Anzahl von Zügen erheblichen Rechenaufwand 
erfordert. Es zeigt sich mal wieder: Ohne Angabe von Randbedingungen ist 
die ganze Streiterei über eine "optimale Lösung" fruchtlos.
Gast #4442685
Lesenswert?

Um 2010 hat wohl ein PC ("a good desktop PC") gut 3s für die optimale 
Lösung gebraucht. Für eine gute Lösung (<= 20 Züge) weniger als eine 
Millisekunde.
Daß das relativ schnell geht liegt einfach daran, daß nachgewiesen ist, 
daß sich jede beliebige Stellung in maximal 20 Zügen lösen läßt.
Gast #4442699
Lesenswert?

guest schrieb:
> Um 2010 hat wohl ein PC ("a good desktop PC") gut 3s für die optimale
> Lösung gebraucht. Für eine gute Lösung (<= 20 Züge) weniger als eine
> Millisekunde.
> Daß das relativ schnell geht liegt einfach daran, daß nachgewiesen ist,
> daß sich jede beliebige Stellung in maximal 20 Zügen lösen läßt.

Kannst Du bitte den Link hirfür schreiben? Ich such auch nach der Dauer 
für eine Lösung, werd aber aus den Kociemba nicht ganz schlau, was er 
für hardware verwendet hat. Jedenfalls nicht in 5 Minuten: 
http://kociemba.org/cube.htm
Persönliche Seite #4442720
Lesenswert?

schlussendlich sollte man sagen:
Problem gelöst, nächstes.

Oder wer hält es für sinnvoll, weiter Maschinen zu entwicklen und zu 
bauen, die genau dieses Problem in 0,8 oder 0,7 oder gar 0,5 sec. lösen 
können?

Vielleicht kann man diese vorhandene Maschine noch auf 
Energieverbrauch/Größe/Kosten optimieren. Aber jedwede Bemühung der 
zeitlichen Optimierung halte ich für reine Resourcenverschwendung.
Gast #4442727
Lesenswert?

Mike B. schrieb:
> schlussendlich sollte man sagen:
> Problem gelöst, nächstes.
>
> Oder wer hält es für sinnvoll, weiter Maschinen zu entwicklen und zu
> bauen, die genau dieses Problem in 0,8 oder 0,7 oder gar 0,5 sec. lösen
> können?
>
> Vielleicht kann man diese vorhandene Maschine noch auf
> Energieverbrauch/Größe/Kosten optimieren. Aber jedwede Bemühung der
> zeitlichen Optimierung halte ich für reine Resourcenverschwendung.

oder größer Würfel

https://de.wikipedia.org/wiki/Professor%E2%80%99s_Cube
Gast #4442751
Lesenswert?

Mike B. schrieb:

> Vielleicht kann man diese vorhandene Maschine noch auf
> Energieverbrauch/Größe/Kosten optimieren. Aber jedwede Bemühung der
> zeitlichen Optimierung halte ich für reine Resourcenverschwendung.

Ja, eigentlich ist das Problem seit 2010 gelöst, seit nachgewiesen ist 
das die optimale Lösung max. 20 hat.

Ein sich selbst lösender Würfel wäre vielleicht noch spannend. 
Beispielsweise mit Motoren in den Zentralsteinen.
Gast #4442791
Lesenswert?

Dass das System nur aus dem Anfangszustand einmal die nötigen Züge 
berechnet, wird im Video gesagt, ebenso, welcher Algorithmus verwendet 
wird. Und dass die Berechnung nicht schon im Vorfeld stattfindet, wird 
durch das Abdecken einer der Kameras illustriert.

Übrigens glaube ich, dass der Würfel auch leichtgängiger gemacht wurde. 
Er verdreht sich einmal in der Hand bei geringster Kraft.

Cooles Teil, vor allem wegen der simplen, billigen Hardware.
Gast #4442942
Lesenswert?

butsu schrieb:
> Dass das System nur aus dem Anfangszustand einmal die nötigen Züge
> berechnet, wird im Video gesagt, ebenso, welcher Algorithmus verwendet
> wird.

Etwa 01:40, "Kociemba algorithm"

Damit ist wohl das gemeint:
http://kociemba.org/math/imptwophase.htm

produziert eine Lösung mit etwa 30 moves. Ob wirklich alle Züge vor dem 
Start des Motors berechnet werden, wird nicht gesagt. Im Video läuft die 
PC-Anzeige und Motoren gleichzeitig. Es kann gut sein, das nach Phase 1 
(12 moves) die Motoren anlaufen und parallel Phase 2 (18 moves) 
berechnet wird. Und die 30 Züge Variante von 1992 hat Kociemba 
inzwischen auch verbessern können.


> Und dass die Berechnung nicht schon im Vorfeld stattfindet, wird
> durch das Abdecken einer der Kameras illustriert.

Ja illustriert, bewiesen ist durch das Ab-/Auf-Decken einer von vier 
Kameras nichts. Gut möglich das Kamera 4 nur das Startsignal liefert. 
Bei den anderen Läufen startet die Maschienerei auf Knopfdruck.

Peter II schrieb:
> Für den Optimalen weg braucht man ein
> Rechencluster und viel zeit - das ist nicht mit einen kleinen Linux PC
> zu machen.

Die Berechnung (Kociemba) selber ist wohl grösstenteils Table-Lookup, 
also keine Hexerei und wurde vor über 20 Jahren auf einen Homecomputer 
implementiert. Also nix mit SuperDuper Rechencluster.
http://kociemba.org/math/imptwophase.htm


MfG,
Gast #4442948
Lesenswert?

Angeblich kann man durch genügend langes Ansehen des Würfels eine Lösung 
finden, die maximal 24 Züge dauert und nur auf Rotationen von 5 Seiten 
beruhen. Bei allen 6 Seiten sind es maximal 21 Züge, die man 
deterministisch ermitteln kann.

Optimiert waren es sogar unter 20 aber nicht mehr deterministisch.

Ganz gute Arbeit trotzdem.
Gast #4442973
Lesenswert?

Fpga K. schrieb:
> Peter II schrieb:
>> Für den Optimalen weg braucht man ein
>> Rechencluster und viel zeit - das ist nicht mit einen kleinen Linux PC
>> zu machen.
>
> Die Berechnung (Kociemba) selber ist wohl grösstenteils Table-Lookup,
> also keine Hexerei und wurde vor über 20 Jahren auf einen Homecomputer
> implementiert. Also nix mit SuperDuper Rechencluster.
> http://kociemba.org/math/imptwophase.htm

das ist aber nicht der weg mit den wenigsten (optimale) schritten.
Gast #4442998
Lesenswert?

Peter II schrieb:
> Fpga K. schrieb:
>> Peter II schrieb:
>>> Für den Optimalen weg braucht man ein
>>> Rechencluster und viel zeit - das ist nicht mit einen kleinen Linux PC
>>> zu machen.
>>
>> Die Berechnung (Kociemba) selber ist wohl grösstenteils Table-Lookup,
>> also keine Hexerei und wurde vor über 20 Jahren auf einen Homecomputer
>> implementiert. Also nix mit SuperDuper Rechencluster.
>> http://kociemba.org/math/imptwophase.htm
>
> das ist aber nicht der weg mit den wenigsten (optimale) schritten.

Den hat er dann später auf einem PC implementiert, der mehr Speicher 
hatte als das eine MB des Atari ST. Die Rechendauer blieb weiterhin im 
Sekundenbereich. Wobei die Tabellen fürs lookUp (sicher) vorher 
berechnet wurden.

Das steht alles unter den genannten Links,auch die Quelltexte, für die 
Berechnung der optimalen Lösung einer Konfiguration brauchts wirklich 
nicht mehr.

Für den Nachweis das der algo für jeden Verdreher nicht mehr als x Züge 
braucht, muss man aber alle (signifikanten) Verdrehmöglichkeiten 
austesten. Da addieren sich die Sekunden zu (ca. 90) Rechenjahren auf 
und da macht sich der google cluster nicht schlecht. Aber für einen 
einzelnen verdrehten Cube reicht der Linux-PC völlig.

MfG,
Gast #4443029
Lesenswert?

Tiefbohrer schrieb:
> Das steht alles unter den genannten Links

steht da wirklich das er immer die Optimale Lösung findet? Ich konnte 
davon auf der Übersicht Seite nichts find.

Kannst du mal bitte zeigen, wo steht das das Verfahren immer die kleinst 
mögliche Anzahl von Schritten ermittelt?
Gast #4443075
Lesenswert?

Fpga K. schrieb:
> Ob wirklich alle Züge vor dem Start des Motors berechnet werden, wird
> nicht gesagt. Im Video läuft die PC-Anzeige und Motoren gleichzeitig. Es
> kann gut sein, das nach Phase 1 (12 moves) die Motoren anlaufen und
> parallel Phase 2 (18 moves) berechnet wird.

Das kann natürlich sein und wäre je nach Rechenzeit auch sinnvoll, 
ändert aber nichts daran, dass zwischendurch nicht mehr evaluiert wird, 
ob der Lösung näher gekommen wurde, womöglich gar durch weitere 
Auswertung der Kameras, wie weiter oben spekuliert wurde.


>> Und dass die Berechnung nicht schon im Vorfeld stattfindet, wird durch
>> das Abdecken einer der Kameras illustriert.
>
> Ja illustriert, bewiesen ist durch das Ab-/Auf-Decken einer von vier
> Kameras nichts. Gut möglich das Kamera 4 nur das Startsignal liefert.
> Bei den anderen Läufen startet die Maschienerei auf Knopfdruck.

Ein Video beweist prinzipiell nichts. Die Jungs sagen explizit, dass es 
so ist. Muss man natürlich nicht glauben, dann kann man aber auch alles 
andere bezweifeln...Und der Lauf mit abgedeckter Kamera wird ebenfalls 
per Tastendruck gestartet.
Gast #4443081
Lesenswert?

Auf Lego Mindstorms NXT 2.0 wurde mal ein Algorithmus implementiert, der 
den Würfel in maximal ca 30 Zügen löst (die exakte Zahl weiss ich nicht 
mehr). Zur Berechnung brauchte das Script maximal eine Minute.

Wobei man bedenken muss, dass der Script-Interpreter super lahm ist. In 
einer einfachen Schleife addiert er eine Integer Konstante zu einer 
Variable mit ca 10.000 Wiederholkungen pro Sekunde.

Wenn man nun berücksichtigt, dass ein PC mit jeder gängigen 
Programmiersprache mindestens 10.000 mal schneller ist, erübrigt sich 
die ganze Diskussion, wie schnell der Algorithmus ist. Wir reden hier 
von einem kleinen Bruchteil einer Sekunde.

Die Berechnung ist absolut kein Hexenwerk. Wirklich nicht.
Gast #4443140
Lesenswert?

Peter II schrieb:
> Tiefbohrer schrieb:
>> Das steht alles unter den genannten Links
>
> steht da wirklich das er immer die Optimale Lösung findet? Ich konnte
> davon auf der Übersicht Seite nichts find.

Da steht das in der verbesserten vVriante bei suboptimalen Lösungen 
nicht abgebrochen wird:

"As already mentioned above, the algorithm does not stop when a first 
solution is found but continues to search for shorter solutions by 
carrying out phase 2 from suboptimal solutions of phase 1."

http://kociemba.org/math/imptwophase.htm


Für Korf's algorithmus wird ausdrücklich gesagt, das er immer die 
optimale Lösung findet:
"Although this algorithm will always find optimal solutions, there is no 
worst case analysis."

https://en.wikipedia.org/wiki/Optimal_solutions_for_Rubik's_Cube#Korf.27s_algorithm

Und er nutzt IDA* nutzt also die skizierte Vorgehensweise von Abschätzen 
des Abstands zur Lösung und verfolgt nur die Abfolgen die näher ans Ziel 
führen:

"Da nur die Länge des Weges vom Startknoten bis zum aktuell untersuchten 
Knoten exakt bekannt ist, wird die Weglänge vom aktuell untersuchten 
Knoten bis zum Zielknoten mittels einer Heuristik geschätzt."

https://de.wikipedia.org/wiki/IDA*

Also so wie ich es gestern beschrieb:

Über Links gedacht schrieb:
> Genau, züge vorausberechnen und stellung bewerten und dann drehen.
>
> So machen es auch die Schachcomputer, Permutation der Ausgangsstellung
> durch durchspielen legaler Zugfolgen und bewertung der so erzielten
> stellungen.

Der Trick dabei ist das Problem in die Graphentheorie zu überführen 
(über das Erstellen des Zustandsgraph) und dann den kürzesten Pfad zum 
Ursprungszustand zu finden. Dass ohne Brute-Force zu erreichen gibt es 
mehrere Ansätze. Folgend ein deutscher Artikel der mal in das Problem 
der "Kürzester Weg-Algos" einführt: 
http://www.gm.fh-koeln.de/~hk/lehre/ala/ws0506/Praktikum/Projekt/E_gelb/ALA-HeuristischeAlgorithmen-Jena-Liebelt.pdf

Johann L. schrieb:
> @Über Links gedacht
>
> Was du da über Lösen des Cubes erzählst ist kompletter Unsinn.  Offenbar
> hast du vom Cube(n) absolut keine Ahnung.

Ich betrachte diese Aussage als komplett wiederlegt.
Gast #4443141
Lesenswert?

Peter II schrieb:
> Stefan U. schrieb:
>> Die Berechnung ist absolut kein Hexenwerk. Wirklich nicht.
>
> wie schon mehrfach geschrieben - wenn man den schnellsten weg haben will
> ist es ein Hexenwerk.

Sorry, aber dein Beharren auf deine mehrfach wiederlegte Privatmeinung 
wirkt langsam kindisch.
#4443318
Lesenswert?

Über Links gedacht schrieb:

> Für Korf's algorithmus wird ausdrücklich gesagt, das er immer die
> optimale Lösung findet:...

Und da steht auch:

> Although this algorithm will always find optimal solutions, there is no
> worst case analysis. It is not known how many moves this algorithm might
> need.

> For random positions, it seems to average about 2.5 hours for a complete
> search through 17 face turns, 31 hours for a complete search through 18
> face turns on my hardware

Wie hast du herausgefunden dass man mit Korf's Algorithm auf einen Linux 
PC eine mechanische Lösung in gut einer Sekunde herbeiführt?

> Der Trick dabei ist das...

Genau. Deine Aneinanderreihung von Zitaten und Referenzen ohne konkreten 
Bezug auf das Thema. Den Cube mit seinen 4E19 Zuständen in einen Graph 
zu zerlegen auf einen Linux PC und dann eine Wegfindung starten... 
Schöner Trick. ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren