Church, Turing et Sokoban

mercredi 3 février 2010
par  Alain BUSSER

En 1980, un concours de création de jeux vidéos a été lancé (sans doute pour des raisons commerciales). Le gagnant, Hiroyuki Imabayashi, a inventé l’un des jeux vidéos les plus simples qui soient : Sokoban, dont le nom original s’écrit ainsi :

La simplicité du jeu et de son univers en font un classique exercice de programmation : Le héros du jeu est un rubis rouge (dans la version ci-dessous) qui se déplace sur des points à coordonnées entières, sauf si un obstacle appelé mur (en vert ci-dessous), s’y oppose. Ce héros peut pousser une caisse à la fois (les caisses sont ci-dessous représentées par des saphirs) sauf si derrière cette caisse se trouve un mur. Des emplacements privilégiés sont destinés à accueillir les caisses, et lorsque chaque caisse est sur un de ces emplacements, le jeu est fini. C’est tout. Le succès de ce jeu est un peu mystérieux si l’on songe à cette simplicité...

Variations

Depuis 1980, le jeu a évolué, on peut citer

  • Hexoban, dont le damier est hexagonal ; une variante avec des triangles équilatéraux existe également ;
  • Multiban qui a plusieurs joueurs : Parfois l’un peut pousser lorsque l’autre aurait voulu tirer ;
  • Sokoban pousse 2 où le héros est un peu plus fort et peut pousser jusqu’à deux caisses. On rebaptise pousse 1 le Sokoban originel. Voici un exemple :

On voit que Sokoban pousse 2 est plus facile que Sokoban pousse 1.

  • Sokoban pousse 3 : On devine ce que c’est.
  • Sokoban pousse n dans lequel il n’y a pas de limite supérieure au nombre de caisses qui peuvent être poussées simultanément. À noter qu’aucune implémentation connue de ces variantes ne semble exister.
  • Pukoban est en quelque sorte un Sokoban « pousse +/-1 » puisqu’on peut aussi tirer la caisse.
  • et on a vu dans l’article sur Enigma que celui-ci contient beaucoup de Sokoban classiques ou de variantes (notamment Multiban).

Addition

Voici un niveau de Sokoban créé par David Skinner. Il ressemble à un manoir muni de quatre chambres, disposées ainsi :

ACC R1
SAS R2

La chambre « ACC » (pour « accumulateur ») est pour l’instant, vide, ainsi que le sas qui y mène. La chambre R1 contient une caisse, ce qu’on peut noter par R1=1. Et la chambre R2 contient deux caisses, ce qu’on peut noter par R2=2 :

Même si ça peut sembler ridicule, en utilisant la numération en base 1 des machines de Turing, la résolution de ce niveau de Sokoban revient à effectuer l’addition 1+2=3.

File d’attente

Dans cet autre niveau de David Skinner, le plan du manoir ressemble à ceci :

buffer M5
M1 M2 M3 M4

On constate que les chambres M1, M2, M3, M4 et M5 sont trop petites pour abriter plus d’une caisse à la fois sans créer une situation bloquante. Elles modélisent des mémoires binaires. Et pour transférer une caisse de la cellule M(i) à la cellule M(i+1), il faut d’abord vider celle-ci. Ce qui fait que les caisses ne peuvent être transférées que dans l’ordre M5-M4-M3-M2-M1 : La partie du bas du manoir simule le fonctionnement d’une file (structure de données), très utile en informatique, en particulier dans les serveurs et les systèmes multitâches.

La grande chambre qui sert à stocker provisoirement les premières caisses transférées joue alors le rôle d’une mémoire tampon comme celle qu’on trouve dans les imprimantes...

Mémoires

Memoire binaire

Ce niveau est extrait d’un article fondateur qui démontre que le jeu de Sokoban peut simuler une machine de Turing !

Le circuit ne peut être parcouru que dans un sens, et en le parcourant le héros change le sens de parcours autorisé. Le système existe donc dans deux états possibles, et il est possible de le faire basculer d’un état à l’autre : C’est une mémoire binaire, ou bascule simple.

Mémoire effaçable

Avec ces éléments, les auteurs de l’article suscité ont en quelque sorte joué au LEGO, assemblant des briques de ce genre pour fabriquer des sommets (très gros en Sokoban) d’un graphe implémentant une machine de Turing !

Ainsi, le jeu de Sokoban apporte une nouvelle pierre à l’édifice de la thèse de Church-Turing, en permettant une nouvelle définition d’une fonction calculable :

On dit qu’une fonction est calculable s’il existe un jeu de Sokoban dont la résolution représente les valeurs prises par cette fonction.

Machine de Turing

Voici un exemple (très simple mais d’une taille raisonnable : On reconnaît les quatre cases qui constituent un morceau de la bande de la machine de Turing) :

En fait cette machine de Turing a été obtenue en mettant bout à bout des structures de mémoire à sens unique vues dans l’onglet précédent. La tête de lecture peut être personnifiée par le héros du jeu. Et les cellules mémoires sont considérées comme étant sur « 0 » dans leur état gagnant (les deux caisses à leur place) et « 1 » dans leur état perdant (les deux caisses à côté de leurs pompes).

La machine de Turing émulée ne fait que remplacer des 0 par des 1 de gauche à droite, puis les annuler à nouveau de droite à gauche ; en bref, une sorte de LIFO simplifiée. Voici la machine de Turing émulée :

La construction

est laissée en exercice ;-)

Les niveaux de Sokoban de cet article ont été créés avec le logiciel YASC puis filmées avec wink.

Toute ressemblance avec des magasiniers japonais réels ou imaginaires est purement fortuite.

Aucun rubis ni aucun saphir n’a été blessé ou maltraité durant l’écriture de cet article.

Pour une idée de ce que serait un Sokoban en 3D, essayer kiki le nanorobot ou MentalIQ+.


Commentaires

Logo de Gwydyon
dimanche 14 mars 2010 à 16h40 - par  Gwydyon

Une autre version de Sokoban interessante dénommée « Mental IQ+ » :

Plusieurs plans superposés, interaction des pièces entre plans adjacents... etc

http://www.mentaliqplus.com

Annonces

Prochains rendez-vous de l’IREM

Séminaire EDIM-IREM

- Mercredi 3 mai 2017, 14h-18h, PTU, Saint-Denis, salle S23.6
- Mardi 13 juin 2017, 14h-18h, campus du Tampon
- Mercredi 14 juin 2017, 14h-18h, PTU, Saint-Denis, salle S23.6


Brèves

À travers les labyrinthes : algorithmes et fourmis

dimanche 1er septembre 2013

Quand les chercheurs mettent au point des modèles d’optimisation et de recherche de plus court chemin qui s’inspirent du comportement de masse de colonies de fourmis...
À écouter : Sur les Épaules de Darwin, émission diffusée sur France Inter samedi 31 août 2013.

Rencontres Mondiales du Logiciel Libre à St-Joseph

mardi 20 août 2013

Les RMLLd se dérouleront pour la 2e fois à Saint-Joseph du 22 au 25 août.
C’est une opportunité pour les élèves qui suivent la spécialité ISN et les passionnés d’informatique.

Voici pour le samedi et le dimanche quelques interventions choisies :
- http://2013.d.rmll.info/Raspberry-votre-ordinateur-au-format-carte-de-credit?lang=fr
- http://2013.d.rmll.info/Materiel-libre-et-DIY?lang=fr
- http://2013.d.rmll.info/Arduino-de-l-electronique-libre?lang=fr

Noter aussi les conférences Art et Culture du dimanche, ainsi qu’une conférence plus engagée.

Le programme complet se trouve ici. Une radio sera ouverte pour l’occasion.
Des plaquettes à distribuer se trouvent ici.

Hyper-vidéos pour l’algorithmique au lycée

dimanche 19 août 2012

Olivier Roizès, à la demande de l’ADIREM, a réalisé une collection d’hyper-vidéos de présentation de logiciels et environnements de programmation. Ces hyper-vidéos, c’est-à-dire des vidéos contenant des éléments clicables, devraient être utiles aux enseignants désireux de se familiariser avec Python, CaRMetal, R, Rurple, Scilab ou Xcas.

Ouverture du SILO

mardi 1er novembre 2011

Le SILO (Science Informatique au Lycée : Oui !) est un espace collaboratif documentaire de partage et de formation collégiale, à destination des professeurs appelés à enseigner l’informatique au lycée.

Une initiative du CNDP, de l’INRIA et de Pasc@line, à laquelle se sont associés SPECIF, fuscia, EPI et ePrep.

Sur le Web : Site du SILO

Introduction à la science informatique

lundi 12 septembre 2011

Le CRDP de Paris publie le premier ouvrage destiné aux professeurs chargés d’enseigner la nouvelle spécialité « Informatique et sciences du numérique » en Terminale S à la rentrée 2012. Cet ouvrage a été coordonné par Gilles Dowek, directeur de recherche à l’INRIA.

Sur la création de la spécialité ISN, on pourra également consulter l’interview donnée au Café pédagogique par l’inspecteur général Robert Cabanne.

Sur le Web : CRDP de Paris

Deux publications sur l’algorithmique

samedi 17 octobre 2009

L’IREM d’Aix-Marseille publie une brochure de 73 pages, téléchargeable librement, intitulée Algorithmes et logique au lycée. Ces notions sont illustrées et déclinées sur des exercices du programme de spécialité mathématique en série L, mais sont adaptables aux programmes à venir.

Le hors série thématique n° 37 du magazine Tangente, disponible actuellement en kiosque, s’intitule « Les algorithmes. Au cœur du raisonnement structuré ». Extrait de l’éditorial : « La rédaction de Tangente a conçu la quasi-totalité de ce hors série thématique pour qu’il puisse être lu par des élèves de Seconde ».

Une carte mentale pour l’algorithmique

jeudi 10 septembre 2009

Sur son site, Jean-Jacques Dhénin a publié une carte mentale géante qui renvoie vers plus de 30 documents en ligne sur l’algorithmique. Tout ce qu’il faut — et même davantage — pour faire face au nouveau programme de Seconde !

Un catalogue libre d’algorithmes pour le lycée

dimanche 30 août 2009

Guillaume Connan, de l’IREM de Nantes, publie un catalogue libre de 119 pages d’algorithmes pour le lycée. Sur son site très riche, on trouvera d’autres documents en rapport avec l’algorithmique, notamment sur l’utilisation des langages fonctionnels au lycée et sur la comparaison programmation fonctionnelle/programmation impérative.

L’algorithmique à l’IREM de Lille

vendredi 26 juin 2009

Le groupe AMECMI de l’IREM de Lille vient de mettre en ligne des ressources importantes au service des professeurs de Seconde :

- Algorithmique et programmation (Emmanuel Ostenne)
- Bibliographie amoureuse de l’algorithmique (Alain Juhel)

Statistiques

Dernière mise à jour

samedi 27 mai 2017

Publication

745 Articles
Aucun album photo
131 Brèves
11 Sites Web
127 Auteurs

Visites

515 aujourd'hui
593 hier
2025225 depuis le début
35 visiteurs actuellement connectés