Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

A (one dimensional) cellular automaton is a function1 F : Σ → Σ with the property that there is a K > 0 such that F (x)i depends only on the 2K + 1 coordinates xi−K , xi−K+1, . . . , xi−1, xi, xi+1, . . . , xi+K . A periodic point of σ is any x such that σ^p (x) = x for some p ∈ N, and a periodic point of F is any x such that F^q (x) = x for some q ∈ N. Given a cellular automaton F, a point x ∈ Σ is jointly periodic if there are p, q ∈ N such that σ^p (x) = F^q (x) = x, that is, it is a periodic point under both functions.

This project aims to explore the nature of one-dimensional Cellular Automata, in the hope of finding the structure of cellular automata through its periodic points.

2034 views
License: MIT
ubuntu2004
COMPILE
------------

Source files for FPeriod:
Comp.cpp
Comp.h
Func.cpp
Func.h
FuncNode.cpp
FuncNode.h
RecNode.cpp
RecNode.h
StorageKey.cpp
StorageKey.h
StorageVal.cpp
StorageVal.h
StringOps.cpp
StringOps.h
main.cpp

Source files for FProbPeriod:
Comp.cpp
Comp.h
Func.cpp
Func.h
FuncNode.cpp
FuncNode.h
RecNode.cpp
RecNode.h
StorageKey.cpp
StorageKey.h
StorageVal.cpp
StorageVal.h
StringOps.cpp
StringOps.h
prob.cpp

Source files for FDense:
Comp.cpp
Comp.h
Func.cpp
Func.h
FuncNode.cpp
FuncNode.h
GroupData.h
MList.h
RecNode.cpp
RecNode.h
StorageKey.cpp
StorageKey.h
StorageVal.cpp
StorageVal.h
StringOps.cpp
StringOps.h
dense.cpp

Note that the programs use STL.

The programs were developed with g++ 2.95.3.

How to compile:
The following will probably work for any g++ version 2.8 and 2.9, though it was only tested on 2.95.3.  It is known to work for g++ 2.95.3.
1. Put all the source files in a directory.
2. Create a subdirectory called STL and put the SGI STL in this directory.  This can be downloaded for free from http://www.sgi.com/tech/stl/
3. Do "make FPeriod" or "make FProbPeriod" or "make FDense".  This generates the binary executable "FPeriod" or "FProbPeriod" or "FDense".

If you are using g++ version 3.0 or greater you may have compatibility issues when trying to get the SGI STL to work with your compiler.  You may have to make changes to the FPeriod/FProbPeriod/FDense source code, make changes to the SGI STL, or use a different implementation of STL.

If you are using a compiler other than g++, you may or may not have to make modifications to the FPeriod/FProbPeriod/FDense source code, make changes to the SGI STL, or use a different implementation of STL.