Jeu de la vie de Conway est un type de 2D automate cellulaire qui utilise un ensemble de règles simples pour décrire le comportement des cellules au cours des étapes de temps discret. Étonnamment, vous pouvez générer le comportement très complexe d’automates cellulaires même si les règles habituellement peuvent se résumer en une phrase. Dans les automates cellulaires 2D, comportement de la cellule à l’étape suivante de temps est dicté par son état actuel et l’état actuel de ses huit voisins. Les règles de jeu de Conway de vie sont reproduits ci-dessous :
- N’importe quelle cellule vivent avec moins de deux voisins direct meurt, comme si causés par les enfants de moins de la population.
- Les cellules vivantes avec deux ou trois voisins vivants se nourrit à la prochaine génération.
- N’importe quelle cellule direct avec plus de trois voisins direct meurt, comme si par le surpeuplement.
- Toute cellule morte avec exactement trois voisins direct devient un de cellules vivantes, comme si par reproduction.
Beaucoup de modèles intéressants ont été étudiées dans la vie, quelques modèles simples sont présentés ici. Certains modèles, appelés « nature morte » sont stationnaires et ne changent pas au fil du temps (bloc, pain, bateau). « Oscillateurs » sont le motif qui se répète après un certain nombre d’étapes (
,
,
). « Vaisseaux spatiaux » est un type d’oscillateur qui traversent l’espace comme ils oscillent. La forme plus simple et la plus courante du vaisseau spatial est appelée un
. Un autre vaisseau commun est le
. « Guns » sont des structures qui produisent un flux de vaisseaux spatiaux, ici est un exemple de
. Certaines conditions initiales très simples créent un comportement complex, comme c’est le cas avec le r pentominos, un modèle de cinq cellule.
En utilisant une combinaison de vaisseaux spatiaux, des natures mortes, oscillateurs, fusils et autres objets de base, il est possible de construire des structures extrêmement complexes dans la vie. Voici un exemple d’un pistolet de période 416 qui construit les vaisseaux 60P5H2V0 à l’aide d’une série de collisions planeur chronométré :
En 2006, Brice dûment publié une structure appelée l' OTCA Metapixel ; son but est d’émuler le comportement d’une seule cellule de vie. Je suis tombé sur cette vidéo la semaine dernière et a décidé que je devais comprendre comment il fonctionne :
L’OTCA Metapixel n’est pas le premier ou le plus rapide metapixel découvert dans la vie (aussi vérifier la P5760 maille de vie et la cellule profonde), mais il a la propriété intéressante de ressemblant à une cellule de vie avec zoom arrière. Il a aussi un registre qui permet de le programmer à se comporter selon n’importe quel arbitraire vie comme automate cellulaire ruleset.
J’ai obtenu tous mes infos de la Vie Wiki, le site de l’OTCAet le Lexique de la vie et (surtout) par téléchargement Golly et regarder l’OTCA Metapixel exécuter.
Voici comment cela fonctionne :
Horloge - un rayon tracteur est un ruisseau de vaisseaux spatiaux qui tirez lentement sur un objet dans la direction de sa source. Un exemple simple est le rayon tracteur de pain. Cette vidéo montre un type légèrement différent du rayon tracteur dans une dent de scie.
L’OTCA Metapixel utilise un rayon tracteur comme une horloge pour réglementer la chronologie des événements :
Dans la vidéo ci-dessus, un rayon tracteur tire un bloc vers le bas par 8 piles dans chaque collision, libérant un planeur à droite chaque fois. Une clôture sur le côté du faisceau tracteur fait de Eater 1détruit les planeurs immédiatement, mais il y a quelques trous dans la clôture qui permettent aux planeurs de traverser et d’interagir avec d’autres structures dans le metapixel à intervalles régulièrement.
Le premier coup dans la vidéo montre la source du bloc et trois planeurs de tir dans un vaisseau spatial léger (LWSS) paquet pistolet, qui jaillit alors trois séries de trois LWSSes, un jeu pour chaque aile entrant. La photo suivante montre la source du faisceau tracteur et quatre planeurs plus tiré depuis le rayon tracteur dans la metapixel. Cette première aile initie un voisin comte décoder la séquence, les deux planeurs lire les résultats du décodeur, et le dernier planeur déclenche une cascade de logique qui finalement décide s’il faut tourner le metapixel allumé ou éteint dans le prochain cycle d’horloge (tous décrits plus en détail plus loin). Le rôle des 7 planeurs se résume dans
.
Au cours de chaque cycle de l’horloge de l’OTCA Metapixel, le bloc est détruit à la source du faisceau tracteur et restauré dans sa position de départ, poursuivant le cycle.
Règles et logiques - les règles de la metapixel sont encodés dans deux colonnes (enregistre) comme le montre les images ci-dessous. Règles de vie comme automates sont écrites dans la forme B # / s #, décrite ici. Règles de Conway sont définis comme B3/S23, donc les bits correspondants des registres de l’OTCA metapixel sont remplis avec un mangeur-1 .
registres de l’État
À chaque cycle d’horloge trois séries de trois LWSSes (9 au total sur une seule ligne) sont tirés un fusil de paquet (déclenché par l’horloge, expliqué plus haut) et envoyés sur une boucle complète autour de la metapixel. Comme le train de vaisseaux spatiaux passe par chacun de ses voisins de Moore , le premier navire du train est en collision avec un étang dans son chemin d’accès si le voisin est actuellement vivant, détruisant le navire et en diminuant le nombre total de navires dans le train par un. Donc si un metapixel a 4 voisins vivants, seulement cinq LWSSes retournera après avoir terminé une passe autour du périmètre. Une collision d’un train de LWSSes avec un étang est indiquée ci-dessous à environ 0:32 (je vais vous expliquer comment les étangs y arriver plus tard) :
Cette vidéo montre également le berger du train des LWSSes autour de la metapixel par twin bees navettes et autres réflecteurset un exemple de « ajustement des couleurs » des navires (en changeant leur phase légèrement) par une paire de canons de planeur. Le chemin de la LWSSes ainsi que l’emplacement des régleurs de couleur et des étangs possibles est affiché dans
.
Le chemin d’accès complet du train LWSS est illustré ci-dessous. Remarquez comment un navire est prélevé à l’avant du train qui passe chaque voisin de vie.
Lorsque le train de LWSSes termine une boucle, ils sont canalisés vers une mémoire tampon sync et p46 p40 convertisseur où ils ont donné la même phase. Puis ils sont envoyés dans le registre de règles où ils sont est entré en collision avec un autre LWSS venant de la direction opposée (provenant d’un des planeurs coup hors de l’horloge) pour décoder le train de LWSS dans le nombre de voisins vivants (représenté dans
).
L’emplacement de la collision entre le train LWSS et le LWSS originaire de forme l’horloge dépend de combien de LWSS ont été détruites par l’avant du train pendant la boucle autour de la metapixel. Le mécanisme est mis en place afin que la collision jaillit de deux planeurs dans des directions opposées, orientées vers le Registre qui correspond au nombre de vie voisins que le metapixel a (encore une fois, voir
comme référence).
Normalement, les planeurs seront chacun entrent en collision avec une ruche pour produire un bloc et un étang, c’est ce qu’on appelle une réaction honeybit. Si vous regardez depuis environ 6 min dans la vidéo ci-dessus, vous verrez la collision de la LWSSes antiparallèles, envoyant deux planeurs vers 4ème slot (compte vers le haut par le bas, en commençant par 0) dans les registres de la naissance et de la survie, et à environ 06:30 deux étangs sont forment dans les registres. Les vaisseaux restants dans le train LWSS entrent en collision avec un mangeur-1 et sont détruits. La vidéo ci-dessous montre un examen approfondi à travers de nombreuses générations :
Si l’emplacement dans le Registre est occupé par un mangeur-1 (comme le logement 3e dans le registre des naissances, ainsi que les fentes de 2e et 3e dans les registres de survie, nouveau décompte à partir du bas commençant par 0), puis l’aile entrant est détruit avant qu’il ait une chance de déclencher une réaction de honeybit avec la ruche. Ce produit aucun étang dans le registre. Dans ce mécanisme un registre a un étang si le nombre de voisins de vie ne satisfait pas les conditions de vie dans la prochaine génération et aucun étang si elle le fait. Se souvenir de que cette information est partagée entre deux registres (naissance et survie) et dans une étape ultérieure, qu'une logique se penchera sur l’état actuel de la metapixel pour déterminer qui s’inscrire pour lire à partir (décrit plus loin). Ce mécanisme est ce qui rend l’OTCA Metapixel programmable pour n’importe quel groupe de règles de vie comme, assez cool.
Ensuite, l’horloge jaillit une paire de LWSSes de lire ces registres (un LWSS pour chaque registre), suivant les trajectoires représentés dans
. Si un étang est présent dans un registre, le LWSS se heurte à l’étang et est détruit. Ceci termine la réaction honeybit et restaure la ruche dans la même position, qu'il était à l’origine. Si le LWSS n’a aucun étang sur son passage, il est permis de continuer dans le mécanisme logique suivant. Dans la vidéo ci-dessus, voir si vous pouvez prédire l’état suivant de le metapixel par lecture des registres.
Avant de passer à la finale logique du système, je vais regarder comment les États les voisins sont comptés vers le haut.
montre les 8 canaux d’entrée/sortie de chaque metapixel. En prenant le regarder de plus près l’un d’eux, vous verrez une autre réaction de honeybit qui se passe :
La réaction de honeybit sur la gauche correspond à l’état de la metapixel sur la droite, et la réaction à droite correspond à l’état de la metapixel sur la gauche. Le LWSS train se déplace dans le sens horaire autour du metapixel, appartient donc le train en marche vers le bas de l’écran appartient au pixel sur la gauche et le train en marche vers le haut de l’écran au pixel sur le droit.
Ces réactions de honeybit sont fixées par un vaisseau spatial de poids moyen (CCPM) qui se déplace dans un chemin dans le sens anti-horaire autour du pixel de chaque cycle d’horloge.
une description de son chemin et le chemin d’accès de tous les planeurs qu’il génère pour 8 honeybit réactions autour du metapixel. Le CCPM est créé uniquement si l’état actuel de la metapixel est vivant et à la fin de la boucle autour du pixel, elle est détruite.
La finale logique de la metacell est résumée dans
.
Première quelques définitions :
C est l’état actuel de la cellule, 1 ou 0
B est l’état du registre des naissances, 1 pour les conditions de naissance satisfait, 0 pour non satisfaits
S s’il est convaincu de l’état de l’enregistreur de survie, 1 pour, 0 pour non satisfaits
Les États de C, B et S sont stockés dans le metapixel par la présence ("1") ou non ("0") de trois bateaux. Bateaux ont la propriété intéressante que lorsqu’ils sont touchés avec un planeur qu’ils reflètent une nouvelle aile avec une trajectoire perpendiculaire à la trajectoire de l’aile entrant. Cette collision a détruit le bateau, donc bateaux est connus comme un réflecteurs de temps. La position des bateaux dans la metacell est représentée dans
. Les bateaux B et S sont définies à l’aide de la LWSSes qui sont en mesure de passer par les registres de naissance et de la survie pendant l’étape de décodage décrit ci-dessus. Dans cette vidéo, montre comment les États de la B et S sont sur « 1 » par une paire de LWSSes à partir de 03:47, du moment qu’ils sont définis est livré à 04:54 :
Un planeur est utilisé pour lire les États de C, B et S et définir un étang en G ou H (représenté dans
). La logique de formation pond G et H (« 1 » signifie un étang est formé, « 0 » ne signifie aucun étang) est donnée par la logique suivante :
Si C est présent, alors :
G = ! S (G est égal à l’opposé de S)
H = 0
Si C n’est pas présent :
G = 0
H = B
Le planeur final publié par l’horloge (décrit au début) définit d’une cascade de logique qui calcule ces relations. Le planeur est libéré par le petit trou dans le mur à côté de l’horloge, à un peu moins de la moitié du côté gauche de la vidéo ci-dessus, déclenchant la formation d’un LWSS qui se déplace vers la droite de la vidéo, libérant deux planeurs sur son chemin (par exemple à partir d’environ 16:12). Le premier planeur rebondit et finalement se transforme en une LWSS qui lit les résultats sur G et H, plus que dans le paragraphe suivant. Le deuxième planeur se dirige vers C, si C est présent il reflète et démarre en direction de S. Si S est présent il reflète en un mangeur ne meurt pas, si S n’est pas présent il continue d’une ruche à G et fait une réaction honeybit, formant un étang. Si C n’est pas présent, le deuxième planeur se dirige vers B à la place. Si B est présent, le planeur réfléchit B et fait une réaction honeybit à H, sinon il se heurte à un mangeur et meurt. 16:20 dans la vidéo ci-dessus montre le planeur se reflétant sur C, passant par un S absent et faisant un étang à G.
À 16:38 vous pouvez voir un étang fixé à G et une LWSS venant de la gauche pour lire G et H. Si G ou H a un étang de la valeur, le LWSS est détruite, tel qu’illustré à 16:39. Si ni sont définies (voir 10:47) le LWSS continue sur et forme un bateau à notT (représenté par T avec une ligne en haut sur
). Cela peut se résumer à la logique :
notT = ! (G || H) (notT est égale à 1 quand G et H sont les deux 0, sinon c’est 0)
Une troisième aile publiée à 10:57 par l’original LWSS logique cascade déclencheur se dirige vers notT. Si le bateau est présent, il reflète le bateau et frappe un mangeur, si le bateau est absent il continue de T (encore une fois,
). Le planeur est détruit par un mangeur à 11:16, mais vous pouvez le voir la tête de T à partir de 05:33.
Un quatrième planeur est libéré par le LWSS original qui se transforme en une LWSS qui nettoie les bateaux restes laissés à B ou S après ont terminé les opérations logiques. Un exemple commence à 05:24. Cette LWSS n’a aucune autre fonction, il est détruit par un bateau, qu'il nettoie, ou un mangeur. Sa trajectoire est montré
.
Après tout cela nous reste avec l’état suivant :
T = présence d’un LWSS à T, la logique formelle, car cet État est donné par :
T =! notT = G || H = (C & & ! S) || (! C & & B)
que vous pouvez lire comme « si le pixel est actuellement vivant et il ne conforme pas aux exigences pour la survie, ou si le pixel est actuellement mort et satisfait aux exigences pour la naissance, » essentiellement si le prochain état metapixel diffère de l’état actuel il y aura un LWSS à T.
Le LWSS à T suit le chemin montré
. À 06:28, vous pouvez voir un exemple de la LWSS transforme en une série de rebondissements. À 06:39 il tire un planeur au large de laquelle se transforme en une LWSS qui se dirige vers la mémoire tampon de synchronisation et, éventuellement, le bit de bateau État cellule (différent de C, plus sur cela dans le paragraphe suivant). Le LWSS original continue vers la gauche, tir un autre planeur à 06:44, création d’un troisième LWSS qui se dirige vers le coin inférieur droit de la metapixel pour activer/désactiver l’état de l’affichage de la sortie ; les têtes LWSS originales pour le coin supérieur gauche de la metapixel à faire la même (plus sur cela dans la prochaine section).
Le bit de bateau État cellule est ce qui stocke en réalité l’état actuel de la cellule, (C est actualisé périodiquement selon l’état de la mèche de bateau). Si le bit de bateau est présent, ce qui indique que l’état actuel de la metapixel est « off », le nouveau LWSS se formera un planeur qui entre en collision avec elle et le supprime (commence à 07:03). Si le bit de bateau État cellule est absent, ce qui indique que l’état actuel de la metapixel est « on », le LWSS entrants formeront un planeur qui crée un nouveau bit de bateau (qui commence à 18:58).
Enfin, nous allons suivre le chemin de la LWSS originale qui a déclenché cette série d’événements. Elle suit le chemin externe montré
, obtient converti en CCPM et se dirige vers le foret de bateau État cellule. Si le bateau est peu présent, il entre en collision avec elle et meurt, bien qu’il ne conserve pas le bit de bateau au cours de cette mort (03:18). Si le bit de bateau n’est pas présent, elle passe sain et sauf et maintient la position vers la droite (07:14). Il s’agit de la CCPM même qui effectue une boucle dans le sens anti-horaire autour de la cellule, déclenchant des réactions de honeybit sur les entrées de tous les voisins. Cette CCPM n’est autorisée à faire la boucle lorsque le bit de bateau État cellule n’est pas présent, quand le metapixel est « on ». Juste avant son départ pour faire la boucle, il tire sur un planeur qui rebondit et finalement définit un bateau à C (07:20). À 07:54 vous pouvez le voir en déclenchant la première des 8 honeybit réactions autour du metapixel, un pour chaque voisin de Moore.
Affiche - le dernier morceau de la metapixel est l’affichage de sortie qui utilise une tonne de vaisseaux spatiaux pour remplir une zone carrée grande afin qu’il ressemble plus ou moins blanc. Deux synchronisés LWSSes activer/désactiver l’affichage de la sortie ; ils sont venus le dernier mécanisme logique décrit dans les paragraphes précédents, illustré
. Leur calendrier est synchronisé vers le haut à travers une série de
, puis elles sont utilisées pour activer/désactiver activer une arme à feu HWSS qui déclenche une série de LWSS "out of the blue" réactions. Les ruisseaux de LWSSes remplir l’espace carré et s’annihilent mutuellement dans le centre de la metapixel, illustré
. Les mécanismes pour les deux loquets sont similaires :
J’ai joint tous les fichiers vidéo pour cette instructable ci-dessous dans le cas de la compression d’youtube est ce qui les rend difficile à voir.