Difference between revisions of "Introduction"

From WikiManual
Jump to: navigation, search
m (Darwinbots)
m (Fixed typos)
 
(34 intermediate revisions by 13 users not shown)
Line 1: Line 1:
 +
Darwinbots is an open source artificial life simulator which attempts to simulate artificial life and evolution.  It simulates [http://en.wikipedia.org/wiki/Von_Neumann_machine Von Neumann Machines] (and [http://en.wikipedia.org/wiki/Von_Neumann_probe Von Neumann probes] like [http://en.wikipedia.org/wiki/2001:_A_Space_Odyssey#Synopsis the Monolith]) better than it simulates biological life necessarily.
 +
 
== Darwinbots ==
 
== Darwinbots ==
 +
Similar to other ALife programs (such as Avida notably) organisms (called "bots" hereafter) are simulated by a DNA script which defines behavior.  Conceptually the DNA is a large Finite State Machine that reads various sensory inputs, modifies them, and connects them to various outputs and actions.  Bot DNA files are in ASCII with a .txt extension, which allows anyone familiar with the DNA language to write and share DNA files with notepad.
  
Darwinbots is an artificial life simulator. Because it is an open source project, it is spread all over the net.
+
The bots' world is a large non-discrete plane. There are no "grids" bots are placed in, as in cellular automata. Rather, the bots move and roam around like ants on a giant pane of glass.
 
 
Please visit the links page for a listing of where the forum, home page, and other Darwinbot pages are.  
 
  
----
+
Bots receive energy ("nrg") by eating other bots.  A few bots (deemed "veggies") get nrg from the simulation for free to simulate an inflow of energy.  Most actions (movement, DNA execution, eating, etc.) cost nrg.
  
'''OVERVIEW'''
+
Conceptually, Darwinbots is the ALife descendant of C Robots, as opposed to Avida or Tierra which descend from Core Wars.  Most of the universe rules in Darwinbots descend from that conceptual past.
  
DarwinBots is an artificial life simulator. Its purpose is to simulate as closely as possible some of the aspects of natural life and evolution. It does so by simulating a number of individuals who must survive like real organisms do: based on their merits.
+
A certain level of abstraction is necessary to keep the simulation running at decent speeds. [[Concept]]s help to provide that level of abstraction. For instance, Darwinbots does not simulate proteinebiosynthesys or enzymatics.  Instead, the DNA directly controls a bot's behavior. However you ''can'' simulate [http://simple.wikipedia.org/wiki/Hormone simple hormones] by variables which control feeding, reproduction, growth, or any other physical process.
  
It is impossible to model all of the factors influencing existence of living organisms. There are simply too many complicated and interrelated processes. Therefore, we must choose which aspects of life to simulate and model. Basic idea of DarwinBots is to simulate populations of individuals, called bots, whose behaviour is defined by a series of specially designed commands, or DNA. The DNA is the connection between bot's sensory inputs and its actions.
+
===What are bots?===
  
When bots reproduce, their DNA is passed to the child, sometimes with a random change, which might affect the pattern of bot's behaviour. Just like in real evolution, when a change in DNA improves the bot's ability to survive and reproduce, these new mutations will spread through the population; otherwise, they will likely disappear.  
+
Every [[Single Bot|bot]] is represented by a circle of a given size and color. A bot's "eye" is marked by a white dot on the circle. The eye consists of nine simple sub eyes called eyeX where X is between 1 and 9.  These simple eyes return a value that roughly corresponds to the apparent size of the nearest object it can see through that eye.
  
'''What are the bots?'''
+
Bots also have tactile senses allowing them to feel when another bot has bumped into them or when the bot is being attacked.  At present there are no long range senses available to the bots (such as sounds in higher organisms or chemical signals in bacteria).
  
The DarwinBots universe is a two-dimensional space populated by two-dimensional bots. Every bot is represented by a circle of a given size. Bot's head is marked by a dot on the circle. Around the head are the main sensory organs of bots - nine simple eyes. Aside from eyes, bots have tactile sense, allowing them to feel when they are attacked or when another bot is attaching itself to them. Right now bots don't have anything analogous to hearing, smell or taste senses.
+
The sensory inputs of bots are analyzed through its DNA, which is essentially a program, written in a specially designed FILO (First in last out memory stack/array) language, designed to be as robust to mutations as possible. Most bots' DNA is made of only ~6-20 procedures called [[gene]]s, themselves made up of 20-200 [[operators | operation]]s. Each operation can potentially change through [[mutation]]s.
  
As it was already mentioned, the sensory inputs of bots are analyzed through its DNA, which is essentially a program, written in a specially designed language, which allows random changes to affect only a small portion of the program, without disturbing the majority of the code. As a result, the program written in this language can tolerate random mutations much better than programs written in most of the other programming languages.
+
Every bot has its own [[Energy]] supply. Most actions cost nrg.  If a bot reaches 0 nrg, it dies.  Most bots reproduce when their nrg levels are above a certain threshold determined by the DNA.  Energy can be replenished by taking energy from other bots in the simulation (analogous to hunting in real ecosystems), by feeding on stored energy reserves (called "body").  Bots also are resupplied by the simulation if they are [[Veggy|veggies]] or alga. Veggies receive energy for free over time (analogous to plants in real ecosystems).
  
Like any other program, the bots' DNA manipulates values, which are stored in a special memory array. It takes values from some of the cells in this array, processes them in a bot-specific way, and writes the output into other cells. The values in output cells determine whether bot is going to move, turn, hunt, reproduce or do any other of the many things that bots can do.
+
Bots use non-material [[Shot|shots]] to feed, attack, remove [[waste]], infect, or communicate. Shots are single points with no mass or physical dimensions.
  
Every bot has its own energy supply, called nrg . To perform an action, a bot has to spend a certain amount of energy. If nrg runs out, the bot dies. The energy supply can be replenished by taking energy from other bots in the simulation (anlogous to hunting in real ecosystems). The overall energy suppliers in DarwinBots simulations are special bots, called veggies, which receive energy for free (analogous to plants in real ecosystems).  
+
Bots can also make [[Tie]]s to each other that can harden to form more complex [[Multibot | multicellular]] structures that can share food or tasks, or just drag each other around.
  
'''Shots'''
+
===Mutations and Natural Selection===
  
Shots are special objects in DarwinBots. Unlike bots, which are circular and normally cannot overlap, shots are completely immaterial and don't collide with each other. Shots are released by bots using special DNA commands and they are absorbed by the first bot that they encounter. There are several different kinds of shots, which can carry energy or information.  
+
When bots reproduce, their DNA is passed to the child, sometimes with a random change, which might affect the pattern of bot's behavior. Just as in real evolution, when a change in DNA improves the bot's ability to survive and reproduce, these new mutations will spread through the population; otherwise, they will likely disappear.  Note that the simulation itself is not directly interfacing with the DNA or mutations. Increases or decreases in fitness are strictly emergent.  [[Junk code]] generally gives an evolutionary disadvantage through higher DNA maintenance or processing energy costs.
  
'''Ties'''
+
Because the program does not directly decide how fit an organism is, a bot's survival depends on its long term, combined strategies for movement, energy management, reproduction, etc. There is no limit on sophistication of the DNA code: most user written bots can be quite complex.
  
A tie is another semi-physical object in DarwinBots. They provide connection between two bots and, aside from providing physical interaction, can be used to transfer energy and information. Ties do not interact with each other or with bots not directly connected by them. However they do interact with hypothetical media in which bots are submersed and can be used for swimming. The length of ties is variable: a newly formed tie is very flexible, but it becomes more rigid with time.
+
Unfortunately, Darwinbot evolution takes time. Because a bot generation can last many thousand cycles, and most simulations run at maybe 15 cycles a second, it can take many hours or even several days before significant natural selection can occur.
  
Two or more bots joined by ties are considered multicellular organisms(Multibot) and there are some special rules that apply to them.
+
The optimal strategy for the impatient is to find an old computer and set up a simulation and forget it for about a week.
  
Any given bot can not have more than three ties (v2.35).
+
===Battle Bots===
v2.37+ allows up to 4 ties.
 
  
'''Mutations and Natural Selection'''
+
Battle bots are similar to [http://en.wikipedia.org/wiki/Von_Neumann_probe#Berserkers Von Neumann Berserker probes], like [http://en.wikipedia.org/wiki/Replicators the replicators in Star Gate]
  
Mutation system in DarwinBots is superior to majority of alternative artificial life simulation programs. While many other programs define a limited set of properties on which selection may act, DarwinBots' DNA code allows unlimited and open-ended variation. In addition, Darwinbots does not impose an artificial selection for a given phenotype. As a result, survival of a bot depends on its combined strategies for movement, energy management, reproduction, etc. There is no limit on sophistication of the DNA code.  
+
While the program has been developed mainly to simulate artificial life and evolution, it has also been used as a playground for testing programming skills. Complex DNA programs for bots can be designed from scratch since the DNA language is human-understandable.  The [http://en.wikipedia.org/wiki/Intelligent_design user designed] bots are placed in an arena where they fight until one species wins. Several [[league]]s have been established with different rules and ratings that are periodically updated as new species are introduced.
  
'''Evolution vs. Battle Bots'''
+
Note that it is considered animal cruelty if you reference *[[.pain]] in your DNA code, and you ''will'' be [http://forum.darwinbots.com/index.php?showtopic=109 prosecuted by the ASPCA.] ;-)
  
DarwinBots can be used in two completely different ways. The original goal of the program was simulation of artificial life and evolution processes. While the program has been developed mainly in this direction, it has also been used in a very different way - as a playground for testing programming skills. Instead of evolving the best possible bot for a given environment, DNA programs for bots can be designed from scratch by people. Then the designed bot are placed in an arena where they fight until one of the species wins. Several leagues have been established with different rules and the ratings are periodically updated when the new species of bots are introduced.
+
Return to [[Main Page]]

Latest revision as of 19:40, 14 February 2014

Darwinbots is an open source artificial life simulator which attempts to simulate artificial life and evolution. It simulates Von Neumann Machines (and Von Neumann probes like the Monolith) better than it simulates biological life necessarily.

Darwinbots

Similar to other ALife programs (such as Avida notably) organisms (called "bots" hereafter) are simulated by a DNA script which defines behavior. Conceptually the DNA is a large Finite State Machine that reads various sensory inputs, modifies them, and connects them to various outputs and actions. Bot DNA files are in ASCII with a .txt extension, which allows anyone familiar with the DNA language to write and share DNA files with notepad.

The bots' world is a large non-discrete plane. There are no "grids" bots are placed in, as in cellular automata. Rather, the bots move and roam around like ants on a giant pane of glass.

Bots receive energy ("nrg") by eating other bots. A few bots (deemed "veggies") get nrg from the simulation for free to simulate an inflow of energy. Most actions (movement, DNA execution, eating, etc.) cost nrg.

Conceptually, Darwinbots is the ALife descendant of C Robots, as opposed to Avida or Tierra which descend from Core Wars. Most of the universe rules in Darwinbots descend from that conceptual past.

A certain level of abstraction is necessary to keep the simulation running at decent speeds. Concepts help to provide that level of abstraction. For instance, Darwinbots does not simulate proteinebiosynthesys or enzymatics. Instead, the DNA directly controls a bot's behavior. However you can simulate simple hormones by variables which control feeding, reproduction, growth, or any other physical process.

What are bots?

Every bot is represented by a circle of a given size and color. A bot's "eye" is marked by a white dot on the circle. The eye consists of nine simple sub eyes called eyeX where X is between 1 and 9. These simple eyes return a value that roughly corresponds to the apparent size of the nearest object it can see through that eye.

Bots also have tactile senses allowing them to feel when another bot has bumped into them or when the bot is being attacked. At present there are no long range senses available to the bots (such as sounds in higher organisms or chemical signals in bacteria).

The sensory inputs of bots are analyzed through its DNA, which is essentially a program, written in a specially designed FILO (First in last out memory stack/array) language, designed to be as robust to mutations as possible. Most bots' DNA is made of only ~6-20 procedures called genes, themselves made up of 20-200 operations. Each operation can potentially change through mutations.

Every bot has its own Energy supply. Most actions cost nrg. If a bot reaches 0 nrg, it dies. Most bots reproduce when their nrg levels are above a certain threshold determined by the DNA. Energy can be replenished by taking energy from other bots in the simulation (analogous to hunting in real ecosystems), by feeding on stored energy reserves (called "body"). Bots also are resupplied by the simulation if they are veggies or alga. Veggies receive energy for free over time (analogous to plants in real ecosystems).

Bots use non-material shots to feed, attack, remove waste, infect, or communicate. Shots are single points with no mass or physical dimensions.

Bots can also make Ties to each other that can harden to form more complex multicellular structures that can share food or tasks, or just drag each other around.

Mutations and Natural Selection

When bots reproduce, their DNA is passed to the child, sometimes with a random change, which might affect the pattern of bot's behavior. Just as in real evolution, when a change in DNA improves the bot's ability to survive and reproduce, these new mutations will spread through the population; otherwise, they will likely disappear. Note that the simulation itself is not directly interfacing with the DNA or mutations. Increases or decreases in fitness are strictly emergent. Junk code generally gives an evolutionary disadvantage through higher DNA maintenance or processing energy costs.

Because the program does not directly decide how fit an organism is, a bot's survival depends on its long term, combined strategies for movement, energy management, reproduction, etc. There is no limit on sophistication of the DNA code: most user written bots can be quite complex.

Unfortunately, Darwinbot evolution takes time. Because a bot generation can last many thousand cycles, and most simulations run at maybe 15 cycles a second, it can take many hours or even several days before significant natural selection can occur.

The optimal strategy for the impatient is to find an old computer and set up a simulation and forget it for about a week.

Battle Bots

Battle bots are similar to Von Neumann Berserker probes, like the replicators in Star Gate

While the program has been developed mainly to simulate artificial life and evolution, it has also been used as a playground for testing programming skills. Complex DNA programs for bots can be designed from scratch since the DNA language is human-understandable. The user designed bots are placed in an arena where they fight until one species wins. Several leagues have been established with different rules and ratings that are periodically updated as new species are introduced.

Note that it is considered animal cruelty if you reference *.pain in your DNA code, and you will be prosecuted by the ASPCA. ;-)

Return to Main Page