Robot Sub1 lost Rubiks kubus in 887 milliseconden op

Kort nadat twee hobbyisten een robot maakten die een Rubiks kubus op wist te lossen in 1,019 seconden, is er een nieuw snelheidsrecord gevestigd. De Sub1-robot is de eerste machine die de puzzel in minder dan een seconde wist te klaren.

De Duitse ingenieur Albert Beer is de maker van Sub1. Voor het oplossen gebruikt de robot twee webcams, die een foto van de kubus maken, waarbij op iedere foto drie zijden zichtbaar zijn. De webcams zijn voor de start van de oplosprocedure afgedekt, zodat het berekenen van de oplossing niet vooraf plaats kan vinden.

Om de oplossing te berekenen gebruikt Beer het algoritme van Herbert Kociemba. De oplossing wordt vervolgens naar een Arduino-compatibel computerbordje gestuurd, dat de zes stappenmotoren de instructies geeft om de twintig benodigde stappen uit te voeren. De Sub1-robot slaagde erin om de befaamde kubus in 887 milliseconden seconden op te lossen. Eind januari werd de tijd door een andere robot op 1,019 seconden gezet.

Volgens Beer zat er honderden uren tijd in het bouwen, programmeren en afstemmen van Sub1 en is het de eerste robot die zelfstandig een Rubiks kubus kan oplossen in minder dan één seconde. Hij heeft een recordclaim ingediend bij Guiness World Records en is in afwachting van een bevestiging.

De recordpoging is volgens de maker gedaan met een door de World Cube Association geverifieerde speed cube, in de Cubikon-winkel in München. Het officiële wereldrecord staat nog altijd op naam van een machine van Lego die in 2014 met behulp van een Samsung Galaxy S4 een Rubiks kubus wist op te lossen in 3,253 seconden. Het 'handmatige' wereldrecord staat op naam van Lucas Etter, die in november 2015 op veertienjarige leeftijd een Rubiks kubus oploste in 4,904 seconden.

Door Julian Huijbregts

Nieuwsredacteur

10-02-2016 • 17:02

47

Reacties (47)

47
47
33
3
0
8
Wijzig sortering
Ik neem aan dat op het moment dat de camera's 'mogen kijken' dat al binnen een hele korte, misschien zelfs wel verwaarloosbare tijd de zetten al bekend zijn voor het systeem. Denk dan ook dat deze 'wedstrijd' zich vooral richt op hoe zo snel mogelijk die zetten uit te voeren.
En maximaal 20 zetten zal dan ook maximaal zo lang duren. Misschien dat dit pas echt een leuke wedstrijd wordt als er AI wordt gebruikt ipv het algortime.
Er zijn er trouwens wel meerdere die hier mee bezig zijn: https://youtu.be/ixTddQQ2Hs4 0.9 seconden, 11 Januari dit jaar. Numberphile heeft een paar leuke filmpjes over de rubick's cube, bijv https://youtu.be/BTyzE-NDga8
Ah, dat is goede info. Het filmpje van 0,9 seconden is dezelfde robot als waar wij eerder over schreven (1.019 sec), maar ze hebben die tijd dus verbeterd intussen. Ik zal het artikel daar nog even op aanpassen.
dat ander filmpje waar jullie over schreven, die werd dacht ik niet goedgekeurd omdat de cube wordt aangepast; het is dus geen officieel rubiks cube record...

deze robot (van huidige pagina) gebruikt wél de originele cube én bovendien wordt ook de camera automatisch bediend waardoor er geen discussies meer kunnen zijn over de tijd..

ik vind deze solving bot dan ook een pak beter; gen modded cube nodig en eerlijker werken
Zo te zien is het dezelfde koppeling tussen de kubus en de motoren, dus ik denk dat het wel dezelfde kubus is, ofwel een drop in replacement.
ja, het is dezelfde kubus, maar hij wordt niet aangepast bij deze mensen... die van het andere filmpje boren hoekjes in de middelste steen bij, dus dat valt onder een aangepaste kubus
In dit filmpje zijn er ook sleufjes in de middelste steentjes geboord.
AI ipv een algoritme? Maar AI is toch ook een algoritme?
Ik had inderdaad moeten zeggen een "zelflerend algortime" waar ik het had over AI om aan te geven dat het iets anders is dan een if-then-else-end (bij wijze van spreken). Even snel kijkend naar de wikipagina over het onderwerp blijkt ook wel dat de verschillende algortihmen een evolutie zijn. https://en.wikipedia.org/...Cube#Further_improvements

De 20 stappen is dan ook een 'worst case scenario" als ik het goed begrijp. Wat gebeurt er dan als een systeem de bronnen en vrijheid heeft om zelf te bepalen wat het meest efficient is? Een vraag die ik hardop stel hier. Van 'AI' wordt men filosofisch ;) Een paar leuke filmpjes van te vinden op het yt kanaal computerphile https://www.youtube.com/channel/UC9-y-6csu5WGm29I7JiwpnA
Als het systeem de bronnen en vrijheid heeft om zelf te bepalen wat het meest efficiënt is, dan zal hij dus ook op 20 uit moeten komen :)

Voor wiskundig berekenbare problemen zou ik geen AI willen gebruiken.
Staat dat vast voor jou na het lezen van de wikipagina?
Ik lees het zo dat het tot nu toe iteratief vastgesteld is dat het -tenminste- mogelijk is om binnen 21 (en dus met 20) zetten de cube op te lossen. En dat is met de bekende methoden/algoritmen. Wie zegt dat dat het meest optimaal is, is daar een 'wiskundig' bewijs voor? Zo las ik het niet.

En los daarvan, wat bedoel je met "Voor wiskundig berekenbare problemen zou ik geen AI willen gebruiken." Zowiezo is "berekenbaar" een heel relatief begrip, maar als ik begrijp wat je wil zeggen, ga je ervan uit dat wiskunde alles kan beschrijven, in de leer zoals het nu is? Dat is natuurlijk niet waar. Wetenschap is een kennis in evolutie en beweert nooit een ultiem antwoord te hebben maar streeft dat wel na. En wiskunde/mathematica/algebra/etc is daar maar een onderdeel van. Ik kan me niet voorstellen dat wanneer machines verteld kunnen worden hoe te denken maar niet wat (AI), dat we enge dingen gaan meemaken. In beide zinnen van die uitspraak. Maar goed we mogen van mening verschillen, wees dan wel een beetje duidelijk in wat je bedoeld of hebt geinterpreteerd.
Oké, misschien ben ik wat skeptisch, ik heb gezocht naar de complexiteit/berekentijd voor het oplossen van een rubics cube, maar kon het jammer genoeg niet vinden.

Hier stond ook een ander commentaar over een wiskundig model van een rubics cube. Ervaring leert mij dat een wiskundig model ,oké, vaak beter is.

Bij aI kun je namelijk niet zeggen of je de meest optimale oplossing hebt. Je kan zou er vanuit kunnen gaan, dat het na lang "trainen" in principe ook dichter bij de beste oplossing komt.

Maarja, zonder de exacte tijden, blijft het woord tegen woord. Daar geef ik je wel gelijk in.
ik had vermoed dat het ook wiskundig wel te bewijzen was hoeveel stappen je 'worst case' nodig zou hebben.. maar volgens deze reactie heb je gelijk: sirdupre in 'nieuws: Kubus van Rubik oplosbaar in 20 stappen'
Wat gebeurt er dan als een systeem de bronnen en vrijheid heeft om zelf te bepalen wat het meest efficient is?
Dan schroeft 'ie 'm wss gewoon uit elkaar en assembleert hem weer in de juiste stand,
net zoals ik, en wellicht anderen, vroeger.
Machine learning is in dat geval misschien een betere benaming. Dan laat je de machine zelf het algoritme uitvinden en als het goed is dan ontwikkelt deze volledig zelfstandig een vrij efficient algoritme voor het oplossen van de uitdaging gegeven probleemstelling.

Voor zover ik kan nagaan gebruikt deze robot door de mens voorgebakken algoritmes en heeft deze dus niet zelf uitgevonden.
Ik gok dat deze het wiskundige model interpreteerd wat hiervoor van toepassing is. Een RC is namelijk wiskundig benaderbaar volgens de formule die iedere cubist gebruikt om het op te lossen. Als een machine met AI de patronen kan herkennen dan kan hij daarmee dit model zelf uitrekenen in theorie.
Deze heeft dezelfde basis als die net over 1 seconde machine, maar zit toch met klein punt, dit werkt uitsluitend met een gemodificeerde rubiks kubus, die speciale puntjes erin. Kan je dan 'in de geest van het spel' nog wel praten over het oplossen hiervan?

Alsof je een auto maakt die X seconde naar 100 gaat, maar wel met gemodificeerde wielen en wegdek (geen idee, met haakjes ofzo voor 100% supergrip), praat je dan nog wel over hetzelfde record?

Al blijf ik het originele record van een mens nog steeds bizar vinden, hoever de evolutie is gegaan van een PC, een mens kan dit bizar genoeg aardig bijbenen, al neem ik aan dat het record van de mens misschien een gelukje is geweest (of je moet echt alle combinaties *poef* uit je hoofd kennen), want zover ik weet is dacht ik de regel dat elke rubix kubus kan worden opgelost in 20 stappen _of minder_.

Wat wel mooi is dat in de jaren van 'positie X en Y moeten via algoritme Z gefixed worden' naar een compleet fixed-oplossing database zijn gegaan, dat het nu slechts een pattern-match en uitvoer principe is geworden.

[Reactie gewijzigd door SinergyX op 25 juli 2024 16:27]

Het record van de mens is zeker geen gelukje, alhoewel je wel kunt spreken van geluk als je de kubus in minder dan 20 permutaties kunt oplossen. Het algoritme dan men gebruikt is geen enkel algoritme maar een methode die bestaat uit meerdere algoritmes. De oplosser gebruikt reductie om te bepalen welk algoritme gebruikt kan worden om het deel van de kubus op te lossen waar hij/zij op dat moment mee bezig is.

Echt alle combinaties uit het hoofd kennen lijkt mij onmogelijk. Dat zijn er namelijk nogal wat: 43,252,003,274,489,856,000.

Het minimale aantal permutaties waarmee ELKE willekeurige kubus opgelost kan worden is 20 en noemt men Gods Number. Dit getal is gevonden dankzij talloze bijdragen uit de Rubiks communities waaronder Herbert Kociemba. Google heeft CPU tijd (~35 jaar maarliefst) gedoneerd zodat men ook daadwerkelijk kan spreken bewijs in wetenschappelijke zin.

Meer info: http://www.cube20.org/
Het minimale aantal permutaties waarmee ELKE willekeurige kubus opgelost kan worden is 20
Je bedoelt het maximale? Als de meest ingewikkelde cube zonder fouten in 20 stappen opgelost kan worden, en de meest simpele in 1 stap.. dan spreek je toch over maximaal 20 stappen?

Dat alle kubussen in maximaal 20 stappen opgelost kunnen worden?
Als je minimaal zegt, zou het betekenen dat een kubus die 1 zet nodig heeft, ook 20 zetten nodig zou hebben.
Wat ik bedoelde te zeggen was dat je een willekeurige combinatie altijd in 20 stappen kunt oplossen. Ik noem dit een minimum omdat is bewezen dat er combinaties zijn die niet in minder stappen op te lossen zijn. Het klopt dat een handje vol minder-ingewikkelde kubussen in minder dan 20 stappen zijn op te lossen.
Volgens mij mag een mens er eerst even naar kijken om hem vervolgens in zo kort mogelijke tijd op te lossen.
Die tijd zit er dan in geval een robot hem oplost al bij en dat is het verschil tussen een computer en de mens.
Het snelheids record voor "autos" is zo'n 1200km/h, maar er boodschappen mee doen wordt hem niet.
Jammer dat de video een beetje onduidelijk is. Je ziet nu wel dat er een uitkomst is, maar je ziet niet hoe de invoer is. Het kan dus goed zo zijn dat er van tevoren een bepaalde volgorde is ingesteld.
Hij gebruikt een algoritme, een (wiskundige) eindige reeks instructies die naar een beoogd doel leiden. Het maakt hier niet uit hoe je het instelt omdat het doel altijd gelijk zal zijn, een volmaakte Rubiks kubus.

Als je het filmpje goed bekijkt zie je ook dat een bepaalde stappenmotor 2 x in de film een andere kleur heeft en toch gewoon oplost!

[Reactie gewijzigd door Tourmaline op 25 juli 2024 16:27]

De invoer maakt wel degelijk uit. Voor een officiële Rubik's cube solving poging is er een bepaalde manier om de kubus te randomizen. Je zou een robot anders heel snel de kubus kunnen laten oplossen omdat de startpositie bekend is.
Ik zie in het filmpje toch 2 verschillende startposities. Als je kijkt naar een en dezelfde stappenmotor hebben ze 2 x verschillende kleuren als start positie.
Maar dan nog kunnen er een aantal voorgeprogrammeerde oplossingen zijn.
Ja, op het filmpje zie je wel dat er een klepje voor een camera wegschuift. Maar dat kan ook een gimmick zijn ja. Ik heb er echter wel vertrouwen in dat het bewegen van de kubus langer duurt dan het algorithme. Em misschien zelfs enigszins synchroon kan.
dat ding maakt een foto rekent het uit en lost het op. kan je makkelijk uit het filmpje opmaken.
Klopt, ook dat de instellingen 2 x willekeurig zijn. Dus niet altijd dezelfde uitgangspositie!

Hij ziet op de 2 foto's het uitgangspunt, berekend via het algoritme hoe het opgelost kan worden en uiteindelijk zetten de zes stappenmotoren de blokjes weer in de juiste positie.

En dat onder een seconde! _/-\o_
Ik denk dat het grootste verlies voor een 3x3x3 vandaag gewoon de rotatie van de kubus is. Je hebt een kubus nodig die je vlot genoeg kan draaien en motoren die je snel en precies genoeg kunt aansturen.
Je kan die kubus een heel stuk sneller draaien, ik ben bang dat ze nu heel dicht in de buurt komen van dat die kubus sneller gewoon niet trekt en gewoon "Pats!" zegt.
Ik vraag me af waar de limiet gaat liggen, dat zal voornamelijk mechanisch bepaald zijn? Snelheid van de servo's, maar ik denk ook van het mechaniek van de kubus zelf wat wellicht niet veel sneller meer kan draaien zonder uit elkaar te spatten?
was ook het eerste waar ik aan dacht: "je zal maar een brakke kubus hebben die niet soepel draait!"
Maar zeer indrukwekkend dat zeer zeker.
En wat is de toepasbaarheid? Of is dit een gevalletje: "Omdat het kan!!!!"
Net als die andere robot heeft deze robot dus ook een speciaal geprepareerde Rubik's kubus nodig.

[Reactie gewijzigd door Jaap-Jan op 25 juli 2024 16:27]

Lijkt er niet op, deze lijkt klemmetjes te hebben, die andere had echt gaten nodig.
Okee, maar nu spelen we vals door twee blokjes om te wisselen. Hoeveel tijd heet die robot nodig voordat ie stuk gaat of aangeeft dat het niet kan?
Okee, maar nu spelen we vals door twee blokjes om te wisselen. Hoeveel tijd heet die robot nodig voordat ie stuk gaat of aangeeft dat het niet kan?
Onmiddellijk, nog voor hij begint te draaien. Het algoritme ziet direct of een positie mogelijk is of niet kan bestaan. Heeft alles met pariteit te maken. Waarschijnlijk geeft het programma dan netjes een foutmelding.
Zo, dat gaat snel!
Mooie ontwikkeling.
Er zijn bepaalde algoritmes voor die ervoor zorgen dat de kubus altijd uitkomt, ik zelf ken de algoritmes, alleen ben ik er wel wat langer mee bezig (laten we zeggen een paar minuten). Er zijn zelfs verschillende algoritmes die allemaal tot hetzelfde doel leiden zoals hierboven me genoemd is. Leuke ontwikkeling, zou alleen niet weten wat je er verder mee kunt.
Mooi staaltje techniek. Veel sneller zal lastig worden denk ik, de kubus zal het dan waarschijnlijk begeven.
Mijn record in de jaren 80 was iets van 24 seconden ofzo :)
Maanden geoefend met formules vanaf een papiertje...
Herbert Kociemba gebruikt zijn algoritme ook in zijn zelf geschreven Cube Explorer, voor wie er zelf mee aan de slag wil gaan. Dit programma bestaat al bijna twintig jaar, ik draaide het al op Windows 98. :)

Op dit item kan niet meer gereageerd worden.