proj
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
proj [2014/06/25 15:00] – marek | proj [2015/01/06 21:07] – bil | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | **Cellular Automata** | + | For an initial description |
- | Cellular Automata (CA) ([[http:// | + | |
- | CA are characterized by a regular grid or lattice of cells, each in a finite number of states (ex. {on,off} or {1,0}). The grid should be theoretically infinite, but due to the | + | Following |
- | physical limitations of computers, these are usually simulated on a finite | + | |
- | grid. Some implementations therefore, have an edge, and in others the cells are arranged in a toroidal (http:// | + | |
- | of the lattice are neighbours to those at the " | + | |
- | "left edge" are neighbours to those on the "right edge". The toroidal solution is often regarded as being more elegant than the version with an edge. | + | |
- | Typically, the evolution of a CA system is completely deterministic, | + | {{:moonlightsonata.txt|Sample Input 1}} |
- | from the initial state at time t = 0 and a new | + | |
- | state of the grid is computed each time step (advancing the time by 1). The | + | |
- | next generation is computed from the last by applying a (usually) fixed | + | |
- | mathematical rule or function to each cell, typically a function of the | + | |
- | cell's current state and the states of nearby cells (in the neighbourhood). | + | |
- | Typically this function is applied to all cells simultaneously i.e. the | + | |
- | next state of cells is not considered on the current time step. There are | + | |
- | exceptions to these such as stochastic cellular automata (http:// | + | |
- | cellular automata (http:// | + | |
- | rules leads into the study of multi-agent systems, such as agent-based models of complex | + | |
- | social phenomena. | + | |
- | **Conway' | + | {{: |
- | Possibly the most famous CA is Conway' | + | {{:beethoven_-_moonlight_sonata.pdf|Sample Output 1}} |
- | {{:game_of_life_animated_glider.gif|}} | + | {{:matheos_-_remembering_rain.pdf|Sample Output 2}} |
- | Figure 1. A Glider in Life (source: WikiMedia Commons) | + | You can access the iText library website [[http:// |
- | Specifically, | + | You can download the library from [[http:// |
- | follows: | + | |
- | * Any live cell with fewer than two live neighbours dies, as if caused by under-population. | + | Here is the [[http://itextpdf.com/examples/iia.php? |
- | * Any live cell with two or three live neighbours lives on to the next generation. | + | |
- | * Any live cell with more than three live neighbours dies, as if by overcrowding. | + | |
- | * Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction. | + | |
- | For more information you can consult (as a starting point): | + | |
- | [[http://en.wikipedia.org/wiki/Conway' | + | |
- | {{:ca-moore.png|}} | + | **March 12**: Two more sample inputs. Your program must produce some reasonable output. Any tablature elements we haven' |
- | Figure 2. The red cells are the 8-neighbourhood (or Moore Neighbourhood) of the blue cell in the center. (source: WikiMedia Commons) | + | {{: |
- | Interestingly, | + | {{:bohemianrhapsody.txt|Sample Input 4}} |
- | a Universal Turing Machine ( | + | |
- | http://en.wikipedia.org/ | + | |
- | capable of computing any computable value, as with a " | + | |
- | possible: http:// | + | |
- | **Course Project** | ||
- | Your project will be to create a Cellular Automata Laboratory with GUI using the Java(tm) programming language. Initially, the application will implement Conway' | ||
- | for an idea of potential features, although that example is implemented in | ||
- | Javascript. You may also consider the file format demonstrated at | ||
- | http:// | ||
- | Other possible features include drag and drop, and copy and paste for Life | ||
- | configurations. |
proj.txt · Last modified: 2015/03/05 22:54 by bil