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/23 20:49] – marek | proj [2015/01/06 21:03] – removed bil | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | **Cellular Automata** | ||
- | 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 | ||
- | 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, | ||
- | 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' | ||
- | |||
- | Specifically, | ||
- | follows: | ||
- | |||
- | * Any live cell with fewer than two live neighbours dies, as if caused by under-population. | ||
- | * 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:// | ||
- | |||
- | |||
- | Interestingly, | ||
- | a Universal Turing Machine ( | ||
- | http:// | ||
- | 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