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

Contact

Jan-Andrea Bard, jan-andrea.bard@unibe.ch