METABYTE
Inapoi la articole

Aventură de cod: rezolvarea cubului Rubik cu algoritmi

Un dezvoltator a decis să nu mai învețe schemele de rezolvare, ci să scrie propriul solver – și a ieșit mai captivant decât se aștepta.

7 mai 20262 min de citit
Aventură de cod: rezolvarea cubului Rubik cu algoritmi

Dacă ai încercat vreodată să rezolvi un cub Rubik și ai renunțat pe la jumătate, acest material e pentru tine. Eroul videoclipului din seria "Coding Adventure" a ales o altă cale: în loc să învețe schemele de rezolvare, a scris un program care face asta pentru el. Și, cum era de așteptat, totul a mers altfel decât planul.

La început, autorul a încercat un simplu BFS (căutare în lățime), dar a realizat rapid că pentru 43 de cvintilioane de combinații nu e o opțiune – chiar și un supercomputer s-ar gândi de două ori. Așa că a trecut la algoritmi mai avansați, precum IDA* cu euristică, și a început magia. Programul găsea soluții în câteva secunde, deși uneori producea secvențe de mișcări pe care cu mâna ar fi greu de reprodus.

Amuzant era când solverul „rămânea blocat” în optime locale – exact ca un dezvoltator care încearcă să înțeleagă de ce CI-ul pică pentru a treia oară consecutiv. În final, totul a funcționat, iar cubul a fost rezolvat. Autorul a adăugat și o vizualizare 3D pentru a vedea fiecare mișcare – pentru cei care vor nu doar cod, ci și o prezentare plăcută.

Abordarea este universală: aceiași algoritmi pot fi aplicați oricărei probleme de căutare a drumului – de la navigarea roboților până la optimizarea rutelor de livrare. Așa că, dacă proiectul tău e blocat la etapa „cum să rezolv asta”, amintește-ți de IDA* și cubul Rubik. Iar dacă nu ajută, scrie-ți propriul solver – mai rău nu poate fi.

Comentariul studioului METABYTE: Și nouă ne place să rezolvăm probleme complexe, dar de obicei clienții noștri nu cer să rezolvăm cubul – au nevoie de un produs funcțional. Totuși, dacă e nevoie, putem programa și cubul, și repara CI-ul.

URMATORUL PAS

Ti-a placut abordarea?

Aplicam aceleasi principii in proiectele clientilor: AI, automatizari, produse care nu se sting dupa lansare.