Post by Helgi Páll Helgason on Jan 17, 2009 9:01:41 GMT -5
I know it's early in the class but I have an idea for a final project that I'm putting out there anyway.
This proposal is inspired by the book "Creation: Life and how to make it" by Steve Grand who is the developer of the Creatures video game. Since reading it I have been interested in looking at artificial life. The final project in this course provides a good excuse.
Below is an updated draft of the proposal. Keep in mind that alot of things can change and also that we will need approval from Hannes for the project so there may be additional constraints that have to be satisfied.
----------
Final project proposal:
AGENT JERRY
1. Overview
The goal of the project is to implement an agent which controls a mouse in an environment which is inhabited by many such agents. The agent has properties inspired by artificial life, i.e. simulated biological processes such as hunger. The environment contains elements that the agent must react to and interact with such as other agents, food sources and predators. Each agent instance has a limited lifespan and can “mate” with other agents to produce offspring. Furthermore, each agent instance has a genome that defines some of it’s properties.
The mouse agent will hereafter be called Agent Jerry, which refers to the implementation of the agent (class) but not an instance of it. At any given time, there will be many instances of Agent Jerry inhabiting the environment although each will have different behaviors.
The project combines various aspects of AI including:
a. Artificial life
b. Genetic algorithms
c. Agents
d. Search
e. Planning
2. Environment
The environment is a box-shaped room and from the agent perspective it is:
a. Partially observable
b. Strategic (deterministic except for other agents)
c. Sequential
d. Dynamic
e. Discrete
f. Multi-agent (competitive)
The environment and its state will be represented in two dimensions (X,Y) internally, but this does not prevent 3D visualization of it. It will be discrete, i.e. internally divded into small squares (although this division will not necessarily be visible when the environment is rendered in 3D).
Food blocks will appear at random locations at fixed intervals. Food will be limited and presents a contraint on the number of mice that can be sustained in the environment over time.
The environment is inhabited by one predator, a cat called Tom, who enters the environment at fixed intervals for a period of time to hunt for mice and then leaves. Tom will also be implemented as an agent, but a far simpler one than Jerry. His only goal is to hunt mice and he is always hungry no matter how many he has already caught.
Special places in the enviroment will provide the mice with shelter from Tom as he is too big to enter them.
3. Biological drives
Agent Jerry will have a number of biological drives that partially define his current state. A biological drive is simply a variable that can take values in the range of [0,1], with 0 indicating the drive is completely satisfied and 1 meaning the drive is critically unsatisfied. Drives values grow as time passes and left unsatisfied they can cause death. Drive growth rate will not be identical for all drives and can potentially be decided by the genome of each instance for each drive.
As an example, Jerry will have a hunger drive which has the value of 0 when he is completely full and 1 when he has literally starved to death. Jerry may have the hunger drive value of 0.5, find and eat a block of food and thus restore his hunger drive value to 0. As time passes and Jerry spends energy the hunger drive will grow again.
4. Skills
Agent Jerry has these skills:
a. Vision
Determines how many squares of the enviroment Jerry can see from any location, in the direction he is facing.
b. Hearing
Determines how many squares away Jerry can hear things, regardless of his orientation.
c. Memory
Determines how many square states for previously visited squares Jerry can remember.
d. Social
Determines how other instances react to Jerry. Good social skills will make Jerry want to hang around other instances and other instances hang around Jerry while poor social skills will make Jerry more of a loner and who repells other instances.
Each skill has a numerical value and is part of the genome. Skills do not change during lifespan.
There will be strict upper bounds for the sum of skill attributes in order to give every instance of Jerry the same opportunity to survive in the environment. An agent whose skills are all perfect obviously has an unfair advantage and is less interesting.
5. Breeding
Two mice that have unsatisfied reproductive drives can and will interact and breed. The offspring will have properties that are genetically computed from their parents. This is where genetic algorithms enter the project (and the notions of crossover and mutation).
6. Implementation
For visualization an open source 3D engine will be used, the graphics do not need to be polished as that is not the focus of the project. It will be possible to watch the mouse interact in real-time and select different mice to see their internal states. Critically, it will be possible to “fast-forward” time as to observe difference in behaviors due to evolution. Hopefully there will be a convergence at some point with regards to evolution that answers the question what kind of mouse is best suited to the environment.
This proposal is inspired by the book "Creation: Life and how to make it" by Steve Grand who is the developer of the Creatures video game. Since reading it I have been interested in looking at artificial life. The final project in this course provides a good excuse.
Below is an updated draft of the proposal. Keep in mind that alot of things can change and also that we will need approval from Hannes for the project so there may be additional constraints that have to be satisfied.
----------
Final project proposal:
AGENT JERRY
1. Overview
The goal of the project is to implement an agent which controls a mouse in an environment which is inhabited by many such agents. The agent has properties inspired by artificial life, i.e. simulated biological processes such as hunger. The environment contains elements that the agent must react to and interact with such as other agents, food sources and predators. Each agent instance has a limited lifespan and can “mate” with other agents to produce offspring. Furthermore, each agent instance has a genome that defines some of it’s properties.
The mouse agent will hereafter be called Agent Jerry, which refers to the implementation of the agent (class) but not an instance of it. At any given time, there will be many instances of Agent Jerry inhabiting the environment although each will have different behaviors.
The project combines various aspects of AI including:
a. Artificial life
b. Genetic algorithms
c. Agents
d. Search
e. Planning
2. Environment
The environment is a box-shaped room and from the agent perspective it is:
a. Partially observable
b. Strategic (deterministic except for other agents)
c. Sequential
d. Dynamic
e. Discrete
f. Multi-agent (competitive)
The environment and its state will be represented in two dimensions (X,Y) internally, but this does not prevent 3D visualization of it. It will be discrete, i.e. internally divded into small squares (although this division will not necessarily be visible when the environment is rendered in 3D).
Food blocks will appear at random locations at fixed intervals. Food will be limited and presents a contraint on the number of mice that can be sustained in the environment over time.
The environment is inhabited by one predator, a cat called Tom, who enters the environment at fixed intervals for a period of time to hunt for mice and then leaves. Tom will also be implemented as an agent, but a far simpler one than Jerry. His only goal is to hunt mice and he is always hungry no matter how many he has already caught.
Special places in the enviroment will provide the mice with shelter from Tom as he is too big to enter them.
3. Biological drives
Agent Jerry will have a number of biological drives that partially define his current state. A biological drive is simply a variable that can take values in the range of [0,1], with 0 indicating the drive is completely satisfied and 1 meaning the drive is critically unsatisfied. Drives values grow as time passes and left unsatisfied they can cause death. Drive growth rate will not be identical for all drives and can potentially be decided by the genome of each instance for each drive.
As an example, Jerry will have a hunger drive which has the value of 0 when he is completely full and 1 when he has literally starved to death. Jerry may have the hunger drive value of 0.5, find and eat a block of food and thus restore his hunger drive value to 0. As time passes and Jerry spends energy the hunger drive will grow again.
4. Skills
Agent Jerry has these skills:
a. Vision
Determines how many squares of the enviroment Jerry can see from any location, in the direction he is facing.
b. Hearing
Determines how many squares away Jerry can hear things, regardless of his orientation.
c. Memory
Determines how many square states for previously visited squares Jerry can remember.
d. Social
Determines how other instances react to Jerry. Good social skills will make Jerry want to hang around other instances and other instances hang around Jerry while poor social skills will make Jerry more of a loner and who repells other instances.
Each skill has a numerical value and is part of the genome. Skills do not change during lifespan.
There will be strict upper bounds for the sum of skill attributes in order to give every instance of Jerry the same opportunity to survive in the environment. An agent whose skills are all perfect obviously has an unfair advantage and is less interesting.
5. Breeding
Two mice that have unsatisfied reproductive drives can and will interact and breed. The offspring will have properties that are genetically computed from their parents. This is where genetic algorithms enter the project (and the notions of crossover and mutation).
6. Implementation
For visualization an open source 3D engine will be used, the graphics do not need to be polished as that is not the focus of the project. It will be possible to watch the mouse interact in real-time and select different mice to see their internal states. Critically, it will be possible to “fast-forward” time as to observe difference in behaviors due to evolution. Hopefully there will be a convergence at some point with regards to evolution that answers the question what kind of mouse is best suited to the environment.