Curriculum and Labs for Engineering Education

cancel
Showing results for 
Search instead for 
Did you mean: 

Challenge mathématique #47 : des mollusques au Big Bang

 

Ce mois-ci nous allons explorer l’étrangeté des automates cellulaires dont l’intérêt est qu’à partir de très peu de règles initiales (et de plus très simples), une richesse infinie de variations de combinaisons peut apparaitre du néant comme pour le Big Bang. Le plus connu est le jeu de la vie proposé John Horton Conway dans les années 1970.

 

Nous n’allons pas relever le défi de reprogrammer le jeu de la vie (pas tout de suite 😊) mais essayer de percevoir comment le chaos déterministe peut émerger d’une règle ultra simple.

 

capture_2017-11-30_a_18.43.12.png

 

 

 

 

 

 

 

 

 

 

 

Les automates cellulaires sont apparemment utilisés dans la nature pour le camouflage d’animaux comme le Conus textile qui utilise surement déjà LabVIEW...

 

L'automate cellulaire suggéré par celui-ci est le plus simple que l'on puisse concevoir. Il consiste en une ligne unidimensionnelle de cellules ne pouvant prendre que deux états (« 0 » ou « 1 »). Nous allons regarder l’état de la cellule et des deux qui l’entourent, puis en déduire un nouvel état et le positionner sur une ligne juste en dessous de cette cellule.

 

Il y a 8 combinaisons de motifs possible car il y a trois cellules (2^3) et il y a 256 règles pour les états car il y a 8 motifs (2^8).

Le fonctionnement est simple. En fonction du motif de la cellule « scannée », la case centrale du dessous sera dans l’un des états choisis par les règles.

 

 

mot initial.png

 

 

 

 

Prenons la règle numéro 30 (dans l’incrément binaire en partant de la droite). Cette règle est célèbre. Elle va donner une grille d’évolution particulière car chaotique et afficher un motif particulièrement riche à partir d’une seule case noire de départ.

 

regle 30.png

 

 

 

 

En plaçant un seul état 1 au milieu de la première ligne, voici la grille résultante en parcourant de haut en bas :

 

grille cellulaire.png

 

 

 

 

 

 

 

 

 

 

 

 

Règles :

Le défi sera de réaliser en LabVIEW une vue graphique de la grille telle que ci-dessus dans un tableau 2D d’indicateurs booléens. Le graphique sera dépendant en entrée d’une commande numérique pour saisir le numéro de la règle (entre 0 et 255), ici dans l’exemple la règle 30. Afin d’être vérifié et validé il faudra retourner dans un tableau d’indicateur numérique au moins les 10 valeurs booléennes en dessous de la ligne centrale (en dessous de la première case) groupées en 8 bits. Ici l’on voit 00111011 = 59 puis 10100011 = 163…

Exemple du tableau à retourner : …

 

chaos.png

 

 

Les valeurs chaotiques se retrouvent donc dans ce tableau (désordonnées et difficile à prédire mais ne dépendent pas du hasard, juste des valeurs initiales)

 

Aparté : pour son aspect particulier reconnaissable essayez le 90 ! et il y en a d'autres !

 

Cela vous dit de relever le défi ?

Pour participer envoyez simplement votre code LabVIEW (peu importe la version) nommé CH47_Automate_cellulaire_Votre pseudo.vi avant le 1er février 2018 à emmanuel.roset@ni.com

Le gagnant sera tiré au sort (avec un jeu de hasard) parmi les bonnes réponses avec un code validé. Ce mois-ci, je ferai parvenir des goodies au gagnant.

Les codes et réflexions de chacun seront publiés et surtout partagés à la fin du mois

 

En pièce jointe le code qui peut servir d'exemple de départ (fait en LabVIEW 2012)

 

Février 2017 : codes réponses publiés en pièce jointe

 

 

Comments
JG30100
Member
Member
on

Bonjour,

Code envoyé

Jérôme (JG_ ou JG30340...)

Loysse
Member
Member
on

Bonjour, 

 

J'obtient la même grille automate cellulaire que celle donné et la même table chaos à la  différence près que j'ai 116 au lieu de 117...

 

Afin de comparer j'ai les 5 premières valeurs suivantes pour la règle 45:

- 102

- 187

- 92 

- 62

- 229

 

Si quelqu'un veut s'y essayer !

JG30340
Member
Member
on

Bonjour Loysse.

Pour 30 j'ai bien 117 en 4ième position et pas 116

Et pour 45 J'obtiens: 103 186 93 62 228

Après c'est peut-être le miens qui ne fonctionne pas bien....

A+

emmanuel-fr
Member
Member
on

Idem, je pense qu'il faut tester avec un résultat simple comme la règle 201 qui ne donne que des 85 vérifiables à la main

PhilB58
Active Participant
Active Participant
on

Bonjour à tous et meilleurs voeux pour cette nouvelle année Smiley Wink
Je viens vers vous car j'ai un peu de mal à comprendre:
"Afin d’être vérifié et validé il faudra retourner dans un tableau d’indicateur numérique au moins les 10 valeurs booléennes en dessous de la ligne centrale (en dessous de la première case) groupées en 8 bits. Ici l’on voit 00111011 = 59 puis 10100011 = 163…"
Quelqu'un peut éclairer ma lanterne?
Merci Smiley Happy

emmanuel-fr
Member
Member
on

Bonjour et meilleurs vœux PhilB58. La colonne centrale en partant du haut débute par le 1 de la première ligne (valeur de départ) et celle-ci représente le bit de poids faible du premier octet à retourner en valeur décimale. Pour lire les octets ensuite, on regroupe par 8 les valeurs en dessous de la valeur de départ. Il s'agit juste d'une mise en forme histoire de jongler avec les fonctions numériques et tableaux.

PhilB58
Active Participant
Active Participant
on

Merci Emmanuel,

c'est plus clair ainsi, merci Smiley Wink
Avec l'âge, j'ai parfois un peu de mal, mes neurones ont aussi souffert des dernières festivités à vrai dire Smiley Very Happy

Kaythul_PK
Member
Member
on

Bonne année à tous,

 

Code envoyé!

J'avais des soucis de rapidité d'affichage du tableau de booléens au dessus de 100 lignes donc je l'ai caché pour le remplacer par un graphe d'intensité. Les motifs sont quand même beaucoup plus jolis quand on arrive à 1000 lignes

Par contre comment est ce que vous avez géré les conditions limites pour les calculs? Pour ma part je compte les cellules externent comme étant à FAUX, mais ça donne parfois des comportements aux limites qui sont assez étranges, mais plutôt sympas (par exemple la règle 129).

PhilB58
Active Participant
Active Participant
on

Code envoyé Smiley Wink

beno72
Member
Member
on

Bonne année à tous.

 

Code envoyé

yopYyop
Member
Member
on

Code envoyé

HuntSeeker
Member
Member
on

Bonjour a tous et bonne année !

 

Code envoyé,

Je gère les cellules externent de la même manière que Kaythul_PK, et effectivement la règle 129 est assez sympa, similaire à la règle 90, mais en noir.

Loysse
Member
Member
on

Code prêt à être envoyé!

 

Il faut le nommer sous quel format ?

PhilB58
Active Participant
Active Participant
on

Ch47_automate cellulaire_Loysse.vi
Ainsi, Emmanuel ne devra pas chercher de qui il vient 😉
Version LV que tu as, pas de soucis avec ça, il a des moyens que nous n'avons pas Smiley Very Happy

emmanuel-fr
Member
Member
on

Ah oui en effet sinon j'ai du mal a rattacher le pseudo avec le code, merci PhilB58. La routine sans doute. Du coup j'ai ajouté le format dans l'énoncé.

Julien_V.
Active Participant
Active Participant
on

Bonjour,

 

Code envoyé.

 

Bonne journée.

Cordialement,

Julien V.

[FIRST]

[LabVIEW Programming]


[FIRST]

Loysse
Member
Member
on

Bonjour,

 

Code envoyé!

 

Cordialement

PhilB58
Active Participant
Active Participant
on

J'avais oublier une petite précision:
Ayant gagné le challenge 46, et que le prix de celui-ci est identique, je ne participerai donc pas au tirage du gagnant.Smiley Happy

Micael_
Active Participant
Active Participant
on

Bonjour,

Code envoyé !

Micaël

Cordialement,


Micaël DA SILVA
emmanuel-fr
Member
Member
on

Comme pour l'aventure de l'escargot, les mollusques et automates ont été pas mal suivis. A croire que les aventures animales touchent plus le cœur des utilisateurs de LabVIEW.

Les codes viennent d'être publiés pour partage des idées et méthodes.

Il est temps d'envoyer des Goodies au codeur le plus chanceux . Pour information PhilB58 souhaite laisser sa place.

 

Pouvez vous vérifier que votre nom est bien dans le tableau et que personne n'a été oublié. Le tirage sera dans la semaine.

 

Ch47_AutomateCellulaire_jg30340   OK
CH47_automate_cellulaire_1D_Kaythul_PK   OK
Ch47_Automate cellulaire_beno72   OK
Ch47_Automate_cellulaire_yopYyop   OK
Ch47_Automate cellulaire_HuntSeeker   OK
Ch47_Automate cellulaire_philcot   OK
Ch47_Mollusques_Julien_V   OK
Ch47_Automate cellulaire_Loysse   OK
CH47_Automate_cellulaire_Micael   OK
     
Ch47_Automate cellulaire_PhilB58   OK
emmanuel-fr
Member
Member
on

Bonjour,

Merci encore pour votre participation.

Voici la liste des participants et les attributions pour le tirage au sort. Chacun à un numéro de boule du loto de fjd.fr (tirage Samedi soir 17 Février), la première boule qui sort désignera le gagnant. Si c'est une boule non attribuée alors la deuxième etc... Ce mois ci vous avez 5 boules du loto chaque. Bonne chance !!!

 

Ch47_AutomateCellulaire_jg30340    =>   1,2,3,4,5,
CH47_automate_cellulaire_1D_Kaythul_PK    =>   6,7,8,9,10,
Ch47_Automate cellulaire_beno72    =>   11,12,13,14,15,
Ch47_Automate_cellulaire_yopYyop    =>   16,17,18,19,20,
Ch47_Automate cellulaire_HuntSeeker    =>   21,22,23,24,25,
Ch47_Automate cellulaire_philcot    =>   26,27,28,29,30,
Ch47_Mollusques_Julien_V    =>   31,32,33,34,35,
Ch47_Automate cellulaire_Loysse    =>   36,37,38,39,40,
CH47_Automate_cellulaire_Micael    =>   41,42,43,44,45,

PhilB58
Active Participant
Active Participant
on

Tirage du Loto:

49 - 48 - 14 ......  le Loto ne voulait pas de gagnant pour ce challenge semble-t-il 🙂
Le gagnant devrait être beno72, à confirmer par Emmanuel 😉
bravo à lui!

emmanuel-fr
Member
Member
on

Bonjour,

Oui il y a eu du suspense samedi

SAMEDI   17/02/2018 19/04/2018 49 48 14 22 38

 

Donc effectivement le gagnant pour Janvier est Beno72 !

 

Smiley Happy

Bravo à lui et a tous les participants. Les défis continuent !

beno72
Member
Member
on

Ah super !

Je vais de ce pas remplir une grille de loto, on ne sait jamais...

Merci

Contributors