-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dimension and memory limits #3
Comments
One of the targets of this library is the posibility to explore all the rules available on a space. Therefore, the typical solution of sum(neighbours) is not suitable here. For example, in elementary case, rules such 250 might not be explored on this way, as However, there might be a way to better express rules and reduce the size of the expresion by using simetry. See Reflections and complements from elementary automata. This simerties probably multiply geometrically with dimensions. |
Following
The case of rotatinally symmetric seems to cover all cases so it might be the most relevant for this package. |
All rules have a inversed equivalent. For example, in elementary CA rule 255 is inverse equivalent to rule 0. However note this does not reduce the number of rules to half due to the fact that some are symetric, therefore the inverse are themselves. For elementary CA such rules are: {15, 23, 43, 51, 77, 85, 105, 113, 142, 150, 170, 178, 204, 212, 232, 240} # len(): 16 The total of unique rules (removing inversed equivalents) are |
Taking into account a rule is a
dtype="uint8"
(generating a maximum of 256 possible states), the following combinations produce the following rule sizes:rule.shape==[2]**3**1
=> 8B rule size (elementary)rule.shape==[3]**3**1
=> 27B rule size (ternary, r1)rule.shape==[2]**5**1
=> 243B rule sizerule.shape==[2]**3**2
=> 512B rule size (2dim, r1)rule.shape==[3]**3**2
=> 19.22kB rule sizerule.shape==[2]**5**2
=> 33.55MB rule sizerule.shape==[2]**3**3
=> 128.0MB rule size (3dim, r1)rule.shape==[2]**3**4
=> 2.42YB rule size(4dim, r1)Therefore although theorically possible, technically is impossible to map currently every rule using the current structure.
The text was updated successfully, but these errors were encountered: