Le jeu du baseball multicolore

Cette activité est inspirée du jeu de l'orange dans le recueil d'activités «Computer Science Unplugged». Elle a cependant été profondément réarrangée depuis, d'abord pour SMN (mon recueil d'activités libres pour introduire la science informatique, disponible depuis http://www.loria.fr/~quinson/Mediation/SMN/), et maintenant pour PLM.

Dans la littérature scientifique, la forme généralisée de ce problème se nomme «le problème du déplacement des galets» (Pebble motion problem). Les bases peuvent être connectées par un graphe quelconque, et les affinités entre les galets et les bases peuvent être différentes. La plus connue des variantes de ce problème est le jeu du taquin, avec un seul joueur par base et une grille carrée à deux dimensions. On trouve énormément d'informations sur ces problèmes sur les pages wikipédia anglophones, comme d'habitude.

Comment pouvez vous être sûr que l'algorithme naïf ne boucle pas sur cette situation initiale?

Et bien, nous avons testé toutes les situations initiales possibles pour étudier les cas où l'algorithme boucle et ceux où l'algorithme termine correctement. Nous avons trouvé qu'il fonctionne pour toutes les situations où aucun joueur ne se trouve dans sa base (il y a 84 situations de ce genre pour 4 bases, si on élimine les symétries). Bien entendu, l'algorithme fonctionne correctement pour de nombreuses situations ne respectant pas ce critère (telles que toutes les situations rencontrées quand on commence de l'une de ces 84 situations), mais c'est une autre histoire. Avoir un tel critère nous permet de générer des situations initiales pour ce premier exercice de manière pseudo-aléatoire tout en étant sûrs que l'algorithme proposé se comportera correctement.

Nous avons également exploré des instances plus grande de ce problème, et malheureusement, nous ne connaissons pas de critère sûr dans ce cas. Avec 5 bases, l'algorithme part en boucle infinie pour 24 des 1824 plateaux possibles où aucun joueur n'est à la maison (cela représente 1,31%). Avec 6 bases, il boucle pour 1251 des 58860 plateaux respectant ce critère (2,12%). Avec 7 bases, il boucle dans 84444 cas sur 2633940 (càd 3,2%). Nous cherchons encore un critère permettant de garantir que l'algorithme ne bouclera pas. Si vous en découvrez un, merci de nous l'indiquer. Ce serait encore mieux s'il était possible de vérifier le critère de tête afin que les animateurs puissent s'en servir pendant les activités débranchées.

Que puis-je faire pour améliorer cet univers de PLM?

Comme souvent, plusieurs points pourraient être améliorés dans le code de cet univers pour l'améliorer :