Exploration of the Rubik's Cube: Implementation and Visualization in Matlab/Python
Page content
Context
The context of this seminar work is the Rubik’s cube. The topic is about algebra applied to computer science. We deal with algebraic structures (groups) and implement them in an application written in Matlab (optionally in Python).
Motivation
We want to study the group underlying the Rubik’s cube and implement it in a computer program.
Goal
- The student should read some article(s) about the Rubik’s cube’s group.
- The student should implement the cube moves in an interactive application.
- The cube should get visualized so that the effect of a move can be fed back visually.
- The program should be able to test if a configuration of cube facelets is a valid Rubik’s cube configuration and if so deliver an algorithm to solve it.
- The program should be able to generate a random valid shuffled cube configuration to be solved afterwards.
- Optionally, an algorithm can be implemented that can solve a cube given by some photos of the cube faces, as input data.
Requirements
- The student must bring some basic knowledge about group theory (algebra).
- Familiarity with Matlab (or Python as an option) is necessary.
- Further the student should be familiar with OOP.
Pointers
- Algebra lecture: https://www.ksl.unibe.ch/KSL/kurzansicht?1&stammNr=8734&semester=HS2024&lfdNr=0
- Paper about Rubik’s cube: https://commons.emich.edu/honors/136/
- Orientation of last layer: https://cubefreak.net/speed/cfop/oll.php
- Permutation of last layer: https://cubefreak.net/speed/cfop/pll.php
Contact
Jan-Andrea Bard, jan-andrea.bard@unibe.ch