Peut-on écrire un programme informatique pour résoudre un Rubik’s cube ?


Je dois être honnête - ce genre de question me frustre et m'inquiète.

Tout d'abord - chapeau aux personnes qui ont répondu avec du code réel qu'ils ont écrit eux-mêmes - c'est une preuve objective que c'est possible.


La principale raison pour laquelle ce genre de question m'inquiète et me frustre est le simple manque de logique qu'elle démontre.

Je comprends bien que le Rubik's cube est difficile pour beaucoup de gens ; ce n'est pas nécessairement la chose la plus facile à résoudre, à moins d'avoir un incroyable cerveau 3D ou d'avoir réussi à mémoriser les différents mouvements pour résoudre les petits sous-problèmes ; mais (et voici la chose critique) - vous n'avez pas besoin de savoir comment le résoudre pour reconnaître quelques caractéristiques clés :

  • Ce n'est pas magique - c'est clairement une machine " simple "
  • C'est réversible - si vous déplacez un côté un [math]90^circ[/math] dans le sens des aiguilles d'une montre, cela peut être inversé en déplaçant le même côté [math]90^circ[/math] dans le sens inverse des aiguilles d'une montre.
  • C'est clairement soluble - il y a des gens qui le résolvent, des robots qui le résolvent.

Ce qui m'inquiète donc, c'est que quelqu'un pense qu'il n'est pas possible pour un programme informatique avec les bonnes entrées de résoudre cela.

Ma nièce de 9 ans m'a dit catégoriquement qu'une fois brouillé le Rubik's cube est impossible à résoudre (je dois admettre que j'ai eu une certaine satisfaction en le résolvant en quelques minutes devant elle) ; mais c'est la logique que j'attends d'un enfant de 9 ans - pas d'un adulte assez âgé pour se connecter réellement à Quora et poster une question.