Codici binari Wolfram degli automi cellulari 2d
Questa è una domanda simile a Come funzionano le regole degli automi cellulari 2d? Tuttavia, la risposta lì non mi ha fornito quello che sto cercando. In particolare, voglio essere in grado di rendere queste forme di automi cellulari 2d:https://www.wolframscience.com/nks/p173--cellular-automata/Non riesco a trovare alcun riferimento da nessuna parte che spieghi come passare da un numero reale a una regola di crescita. In 1d, la situazione è ben documentata, come qui:https://mathworld.wolfram.com/ElementaryCellularAutomaton.htmlma in 2d la mappatura esatta dei bit non si trova da nessuna parte. Mi piacerebbe davvero creare un programma, in modo da poter ad esempio inserire il numero 465 e disegnerà il modello 465 dal libro Wolfram. L'altra risposta di scambio di stack che ho collegato sopra fornisce una possibile mappatura binaria, tuttavia il metodo fornito non produce gli stessi numeri del riferimento Wolfram. Il valore binario di 465 è 111010001 che non mi aiuta affatto. Questa particolare forma si basa sull'aggiunta di una cella quando esattamente un vicino è attualmente occupato, quindi non dovremmo aspettarci di avere 4 1 di fila, uno per ciascuno dei quattro vicini? E per rendere questo ancora più confuso, le ultime due cifre sembrano essere state scambiate dalla descrizione data nella stessa pagina Wolfram ... Sembra chiaro dall'altra risposta di Stack Overflow che non c'è solo una possibile mappatura binaria ma molte, tuttavia dato che esiste già una guida con immagini referenziate da numeri di regola, mi piacerebbe davvero poter utilizzare quei numeri di regola specifici. Grazie.
Risposte
La descrizione data nella pagina a cui ti sei collegato è corretta:
"In ogni caso la sequenza di 2 cifre in base per il numero di codice specifica la regola come segue. L'ultima cifra specifica di che colore dovrebbe essere la cella centrale se tutti i suoi vicini erano bianchi nel passaggio precedente, ed era anch'essa bianca. La seconda- l'ultima cifra specifica cosa succede se tutti i vicini sono bianchi, ma la cella centrale stessa è nera. E ogni cifra precedente specifica quindi cosa dovrebbe accadere se progressivamente più vicini sono neri. (Confronta pagina 60.) "
Quello che potresti perdere è che, se il numero della regola è dispari, il reticolo vuoto è instabile poiché i globuli bianchi circondati da altri globuli bianchi diventeranno spontaneamente neri. In particolare, tutte le regole il cui numero è congruente a 1 modulo 4 (cioè la cui forma binaria termina con 01), come 465, sono "stroboscopiche" , cioè il reticolo vuoto si alternerà tra tutto bianco e tutto nero in ogni generazione successiva.
In particolare, questo significa che la regola 465 non può corrispondere all '"aggiunta di una cella quando esattamente un vicino è attualmente occupato". (Questa sarebbe presumibilmente la regola 686, o 1010101110 in binario.)
Invece, come si nota correttamente, 465 è uguale a 111010001 in binario. Scritto in cinque gruppi di due bit ciascuno, che dà 01 11 01 00 01. In ciascuno di questi gruppi il bit più a destra del gruppo$k$ (numerato da destra a sinistra da 0 a 4) è 1 se una cella bianca con $k$ i vicini neri diventeranno neri nella generazione successiva e il bit più a sinistra è 1 se un nero si trova con $k$ i vicini neri rimarranno neri.
Ciò significa che, in base a questa regola, una cella bianca diventerà nera se ha 0, 2, 3 o 4 vicini neri (poiché il bit più a destra è 1 nei gruppi 0, 2, 3 e 4 contando da destra) e un nero cella rimarrà nera se ha esattamente 3 vicini neri (poiché il bit più a sinistra è 1 solo nel gruppo 3).
E infatti, simulando questa regola per 22 generazioni, partendo da un pixel nero su sfondo bianco, si produce un'immagine corrispondente a quella della pagina collegata.
Ps. Risulta che la regola 465 è l ' "equivalente stroboscopico" della regola simmetrica di stato 558 = 01000101110 2 , che differisce dalla regola 686 esattamente di un bit e può essere descritta come "aggiungi una cella quando esattamente un vicino è occupato, rimuovi un cella quando esattamente un vicino è vuoto ".
Partite da una singola cellula, sembra che le regole 558 e 686 si evolvano in modo identico, poiché da questo punto di partenza apparentemente non generano mai una cellula viva con esattamente tre vicini vivi. Pertanto, nelle generazioni pari, anche la regola 465 dello stroboscopio sembra identica a entrambe.