An Integer Linear Programming Model for the Evolomino Puzzle

Cet article présente un modèle de programmation linéaire en nombres entiers pour formaliser et résoudre le puzzle logique Evolomino, incluant un algorithme de génération d'instances garantissant une solution unique et démontrant l'efficacité d'un solveur CP-SAT sur des grilles allant jusqu'à 18x18.

Andrei V. Nikolaev, Yuri A. Myasnikov

Publié Wed, 11 Ma
📖 5 min de lecture🧠 Analyse approfondie

Each language version is independently generated for its own context, not a direct translation.

Voici une explication simple et imagée de ce papier de recherche, comme si on en discutait autour d'un café.

🧩 Le Jeu : L'Evolomino, un puzzle qui "grandit"

Imaginez un jeu de logique sur papier, un peu comme les Sudoku ou les Kakuro que vous connaissez peut-être. Ce jeu s'appelle Evolomino.

Le principe est fascinant :

  1. Vous avez une grille avec des cases blanches et des cases ombrées (interdites).
  2. Sur certaines cases blanches, il y a déjà des flèches dessinées.
  3. Votre mission : dessiner des carrés pour former des blocs (des formes géométriques).
  4. La règle d'or : Chaque flèche doit traverser au moins deux blocs. Le premier bloc est petit (un seul carré sur la flèche). Le deuxième bloc doit être une copie du premier, mais ajoutée d'un seul carré, sans jamais tourner ni retourner la forme. Le troisième bloc ajoute encore un carré, et ainsi de suite. C'est comme une chenille qui grandit à chaque étape, mais qui garde toujours la même forme de base.

Le défi ? Trouver où placer tous ces carrés pour que tout colle parfaitement, sans se chevaucher, et en respectant la direction des flèches.


🧠 Le Problème : Un casse-tête pour les ordinateurs

Pour les humains, c'est un jeu amusant. Pour un ordinateur, c'est un cauchemar mathématique. Pourquoi ? Parce qu'il y a des milliards de façons de placer ces carrés, et vérifier si une solution est bonne ou non demande de faire des millions de calculs.

Les chercheurs de l'article (Andrei et Yuri, de l'Université de Iaroslavl en Russie) se sont dit : "Comment on peut convaincre un ordinateur de résoudre ce jeu rapidement ?"

Ils ont décidé de traduire les règles du jeu en un langage que les super-ordinateurs adorent : la Programmation Linéaire Entière (ILP).


🏗️ La Solution : Construire un "Plan de Construction"

Au lieu de laisser l'ordinateur deviner au hasard, les auteurs ont créé un plan de construction mathématique très strict. Imaginez que vous donnez les instructions à un architecte robot :

  1. Les Variables (Les briques) : Ils ont dit à l'ordinateur : "Pour chaque case de la grille, tu as un interrupteur. Soit il est allumé (1 = il y a un carré), soit il est éteint (0 = rien)."
  2. Les Contraintes (Les règles du jeu) : Ils ont écrit des centaines de règles logiques, comme :
    • "Si une case est allumée, elle doit appartenir à exactement un bloc."
    • "Si le bloc 2 existe, le bloc 1 doit exister avant lui."
    • "La forme du bloc 2 doit être exactement celle du bloc 1, plus un carré, décalée d'un certain nombre de cases."
    • "Tout le bloc doit être connecté, comme une île, pas des îlots séparés."

C'est comme si on donnait à l'ordinateur un immense puzzle où chaque pièce a une seule place possible si on respecte toutes les lois de la physique du jeu.


🤖 Le Génie : Créer de nouveaux jeux

Une fois que l'ordinateur sait résoudre le jeu, les chercheurs ont eu une idée brillante : l'inverser.

Au lieu de donner un jeu à résoudre, ils ont demandé à l'ordinateur de créer un nouveau jeu.

  • Il dessine une grille.
  • Il place des flèches et des carrés au hasard.
  • Il utilise son modèle mathématique pour vérifier : "Est-ce qu'il n'y a qu'une seule façon de résoudre ce que je viens de dessiner ?"
  • Si oui : C'est gagné ! Il a créé un nouveau puzzle unique.
  • Si non (il y a deux solutions possibles) : Il efface tout et recommence.

C'est comme un chef cuisinier qui crée une nouvelle recette, la teste pour s'assurer qu'elle est parfaite, et la propose à ses clients.


🚀 Les Résultats : Vitesse de l'éclair

Ils ont testé leur méthode sur un ordinateur moderne. Les résultats sont impressionnants :

  • Pour des grilles de 11x11 (un peu plus grandes qu'un Sudoku classique), l'ordinateur trouve la solution en moins d'une seconde. C'est plus rapide que vous ne pouvez lire cette phrase !
  • Même pour des grilles géantes de 18x18, il trouve la solution en moins d'une minute.

C'est comme si un détective capable de résoudre un crime complexe en une fraction de seconde, alors que nous, humains, aurions besoin de plusieurs heures de réflexion.

🎯 En résumé

Ce papier nous dit essentiellement :

  1. Le jeu Evolomino est un nouveau défi de logique amusant.
  2. On peut le transformer en un problème mathématique que les ordinateurs adorent résoudre.
  3. Grâce à cette méthode, on peut générer automatiquement des milliers de nouveaux puzzles uniques.
  4. Les ordinateurs modernes sont si puissants qu'ils peuvent résoudre ces énigmes complexes presque instantanément.

C'est une belle démonstration de comment les mathématiques pures peuvent rendre les jeux de société plus accessibles et plus variés pour tout le monde !