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.
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.
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.
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 :
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 : …
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
Bonjour,
Code envoyé
Jérôme (JG_ ou JG30340...)
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 !
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+
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
Bonjour à tous et meilleurs voeux pour cette nouvelle année
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
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.
Merci Emmanuel,
c'est plus clair ainsi, merci
Avec l'âge, j'ai parfois un peu de mal, mes neurones ont aussi souffert des dernières festivités à vrai dire
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).
Code envoyé
Bonne année à tous.
Code envoyé
Code envoyé
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.
Code prêt à être envoyé!
Il faut le nommer sous quel format ?
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
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é.
Bonjour,
Code envoyé!
Cordialement
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.
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 |
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,
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!
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 !
Bravo à lui et a tous les participants. Les défis continuent !
Ah super !
Je vais de ce pas remplir une grille de loto, on ne sait jamais...
Merci