Group A.I. Dissertation, Learning
Hello everyone,
I'm currently a second year student, starting to think about and do some initial research into my dissertation project. I plan on covering some aspects of A.I., i want to look into specifically Group A.I, A.I that learns and the use of behaviours.
I was just wondering if anyone has any suggestions on good articles, books, websites, ideas and just anything you want to throw my way to help me get started. Anything would be much appreciated!
This is my semi-formal write up that i will fully formalise to use as my submission document:
Aim:
To create a convincing simulation of a 'swarm' of intelligent life forms.
Ideas:
Using AI grouping concepts
Using AI concepts like flocking and design concepts like behaviours I hope to create a simulation of two large groups at war with each other.
Interesting Combat
I hope to make the combat more interesting by making it more dynamic. To do this I am going to use a concept I will coin 'apeing' where in one entity will copy another entity that is doing well deemed by a function that evaluates 'doing well' e.g. lived the longest.
As the system is behaviour based this will focus on one entity taking a copy of another entities behaviours and mixing them with their own. Thus hopefully creating an exponentially evolving system where one entity will copy two or three other entities that are doing well, if they do well they will be copied.
Behaviours
I would also like to investigate ways that a behaviour could be dynamically created, although seemingly illogical, in theory if every behaviour was very basic 'run', 'crouch', and so on, a combination of basic behaviours would create a new complex behaviour, if each entity tried random combinations of behaviours and the ones that lived the longest where copied then hopefully complex, clever behaviours would evolve from the system as the strongest behaviour patterns survived.
If anyone can tell me whether some ideas mentioned above have actually already been tried out then please do tell me.
Thanking people in advance, Christopher Pepper
I would look into neural networks, though they might be a bit heavy for large armies. They have been used to teach AI teams to play soccer, and drive an AI car around a racetrack, so it might be what you're looking for. Genetic algorithms (very similar to what you're describing) might tend towards a local maximum, so all your soldiers would be doing the same (arguably best) thing individually rather then working as a team. With a GA system however, you could build up a fair amount of complexity with less effort then building and training a neural network.
I'll try to find a link to the soccer AI and the racecar AI.
I'll try to find a link to the soccer AI and the racecar AI.
I did a learning based game for my dissertation. It was quite hard but quite rewarding. Got first for it though even though my learning was limited so it is defiantly a good idea (its about how you get to the goal not the goal itself). I used decision tree learning but I don't think this would be suitable for your idea, genetic algorithms sound useful thought.
Some books I used:
Artificial Intelligence for Games (The Morgan Kaufmann Series in Interactive 3D Technology) (Hardcover)
this is good for general game ai but not so much learning (still it helped me create the foundation, movement, pathfinding etc)
Programming Game AI by Example - mat buckland
there is a whole series of books on game ai (similar to the gpu gems series) but I can't for the life of me find the name right now. It has lots of things about learning in it (such as creature learning in the game black and white). I would strongly suggest one of these. Hopefully someone knows what I'm on about otherwise I will check my references when I get home and see. The nice bit about these books is they show both the learning algorithms incorporated into actual game usage.
Edit: found the name, their called
AI Game Programming Wisdom by Steve Rabin (well lots of articles really)
Some books I used:
Artificial Intelligence for Games (The Morgan Kaufmann Series in Interactive 3D Technology) (Hardcover)
this is good for general game ai but not so much learning (still it helped me create the foundation, movement, pathfinding etc)
Programming Game AI by Example - mat buckland
there is a whole series of books on game ai (similar to the gpu gems series) but I can't for the life of me find the name right now. It has lots of things about learning in it (such as creature learning in the game black and white). I would strongly suggest one of these. Hopefully someone knows what I'm on about otherwise I will check my references when I get home and see. The nice bit about these books is they show both the learning algorithms incorporated into actual game usage.
Edit: found the name, their called
AI Game Programming Wisdom by Steve Rabin (well lots of articles really)
Interested in Fractals? Check out my App, Fractal Scout, free on the Google Play store.
A good resource to start with:
http://aigamedev.com/
Have you seen these steering behaviors and BOIDs flocking:
http://www.red3d.com/cwr/steer/
http://www.red3d.com/cwr/boids/
Those basic behaviors are a good benchmark for testing your evolved AI.
Also, you should look into NERO (neuro-evolving-robots):
http://nerogame.org/
The only game afaik that you can train AI armies in real-time and have them fight each other. It evolves Neural Networks networks as the game runs.
Those should give you some good ideas on where to start.
http://aigamedev.com/
Have you seen these steering behaviors and BOIDs flocking:
http://www.red3d.com/cwr/steer/
http://www.red3d.com/cwr/boids/
Those basic behaviors are a good benchmark for testing your evolved AI.
Also, you should look into NERO (neuro-evolving-robots):
http://nerogame.org/
The only game afaik that you can train AI armies in real-time and have them fight each other. It evolves Neural Networks networks as the game runs.
Those should give you some good ideas on where to start.
Flocking combined with 'game theory' ???
The flocking mechanism is great for nifty looking output that makes for good visualization of whats happening.
Game theory to add a twist into the behaviors. Have something like a manually modified reaction table which the user then activated the simulation of the flocking group and can see how disruptive the additional behavior patterns are.
Additional work would be to have subsets within the flock having different strategy tables to explore how they interact.
Various analysis metrics could be made to analyze 'harmony', 'disruption', etc... to quantize a particular scenario.
The learning part could be to throw a GA system ontop of it.
--------------------------------------------[size="1"]Ratings are Opinion, not Fact
It would be interesting to see if you could "evolve" those flocking behaviors using a GA from some simple rules that can be interchanged.
Wow thanks for all the replies, im getting my teeth into the boids & steering article now, and that Nero sounds amazing! so im downloading that aswell, looks like i have a heavy research day ahead :P!
Interesting that neural networks were brought up because they were the first thing i started looking into but when i spoke to peers such as my lecturers and someone who did a neural network last year i got alot of negativity on the subject. To some degree i could understand why they felt that neural networks doesn't work in games but i also disagreed with them so im glad to see what nich was saying and that EJH has directed me to Nero, it has confirmed what i felt before.
Thanks to Nanoha for the book resources i shall check my libary and then get onto amazon!
My only problem now is i have all these interesting subjects and im like a puppy with several toys, not sure which one to jump on and get my teeth into! =] !
I was directed to aigamedev (and EJH =]) by my lecturer and i've been getting very interested by the behaviour tree presentation.
boids is also a fantastic existing work, i had already got wind of it but thanks again to EJH! i have also found an open source implementation thats very interesting.
And yes Nich its the idea of evolving behaviours that really interest me, im going to have to look into these Genetic Algorithms, they have popped up a few times in the past two weeks and i still havent taken the time to look into them! so ill be given meself a kick and actually getting into them aswell
wodinoneeye, when u say "game theory" and "strategy tables", im asuming that the game theory is hardcoded A.I. code and strategy tables is some form of behaviour table using some form of data structure, if i'm wrong please correct me! but ur idea sounds interesting.
I was also looking on AIseek, there demo of tank battle is the kind of thing that makes me drool, so im sort of using that as a muse and aiming for something like that (obviously without the kwl enviroments and prettyness). Where the entites can be seen to improve over time. One thing that ive always wanted to do using neural networks and behaviours is throw some entities into a world with a particular situation, for example being shot at, and they slowly learn to run and hide! I'm starting to get the feeling though that neural networks would be wrong for this, maybe these genetic algorithms that keep popping up or a sort of evolving behaviour tree i believe the halo3 DAG implementation did something like that.
As i said i have alot of things that interest me now and im trying to decide what should be the main wiehgt of my project, i have a tendency to try and take on to much in a restricted timespace so im going to try and keep myself in check =]! im also considering doing a full blog on my disseration, if anyone would be interested? i thought it might be nice for other people in my situation to see a full diary of such a project with other people making input along the way, if anyone here is interested let me know and ill add a new page to my website (below) A.S.A.P and start documenting my research aswel!
Thanks again for all the replies!
Interesting that neural networks were brought up because they were the first thing i started looking into but when i spoke to peers such as my lecturers and someone who did a neural network last year i got alot of negativity on the subject. To some degree i could understand why they felt that neural networks doesn't work in games but i also disagreed with them so im glad to see what nich was saying and that EJH has directed me to Nero, it has confirmed what i felt before.
Thanks to Nanoha for the book resources i shall check my libary and then get onto amazon!
My only problem now is i have all these interesting subjects and im like a puppy with several toys, not sure which one to jump on and get my teeth into! =] !
I was directed to aigamedev (and EJH =]) by my lecturer and i've been getting very interested by the behaviour tree presentation.
boids is also a fantastic existing work, i had already got wind of it but thanks again to EJH! i have also found an open source implementation thats very interesting.
Quote: It would be interesting to see if you could "evolve" those flocking behaviors using a GA from some simple rules that can be interchanged.
And yes Nich its the idea of evolving behaviours that really interest me, im going to have to look into these Genetic Algorithms, they have popped up a few times in the past two weeks and i still havent taken the time to look into them! so ill be given meself a kick and actually getting into them aswell
wodinoneeye, when u say "game theory" and "strategy tables", im asuming that the game theory is hardcoded A.I. code and strategy tables is some form of behaviour table using some form of data structure, if i'm wrong please correct me! but ur idea sounds interesting.
I was also looking on AIseek, there demo of tank battle is the kind of thing that makes me drool, so im sort of using that as a muse and aiming for something like that (obviously without the kwl enviroments and prettyness). Where the entites can be seen to improve over time. One thing that ive always wanted to do using neural networks and behaviours is throw some entities into a world with a particular situation, for example being shot at, and they slowly learn to run and hide! I'm starting to get the feeling though that neural networks would be wrong for this, maybe these genetic algorithms that keep popping up or a sort of evolving behaviour tree i believe the halo3 DAG implementation did something like that.
As i said i have alot of things that interest me now and im trying to decide what should be the main wiehgt of my project, i have a tendency to try and take on to much in a restricted timespace so im going to try and keep myself in check =]! im also considering doing a full blog on my disseration, if anyone would be interested? i thought it might be nice for other people in my situation to see a full diary of such a project with other people making input along the way, if anyone here is interested let me know and ill add a new page to my website (below) A.S.A.P and start documenting my research aswel!
Thanks again for all the replies!
Game theory is usually expressed as Yes-No reactions in a combinatoric table of situational conditions. I was thinking more of a continuous decision space which might use graphs input -- 3D where you pull/push values on a 2D map on the user interface to shape the decision reactions (the 'height' being a range of value, not just yes/no and the push pull be more like a continuous surface which makes for transitions (think of heightmap terrain editors).
Of course that only allows interactions between 2 different situational factors and a linear response between two reaction of the same type (with a do nothing in between). But that might be sufficient when used with other behavior rules locked. Too many factors under variance makes it hard to discern which one is causing what visible results.
Alternately you could have simple 2D graphs (histograms) contoured by the user
for specific behavior traits (again being a continous value used to calculate the response.
The boids simulation itself has several coefficients which control the flocking behavior but ontop of that would be additional rules that allow gain for the individual objects and would be used to control conflicting Individual vs Group
tendencies.
Of course that only allows interactions between 2 different situational factors and a linear response between two reaction of the same type (with a do nothing in between). But that might be sufficient when used with other behavior rules locked. Too many factors under variance makes it hard to discern which one is causing what visible results.
Alternately you could have simple 2D graphs (histograms) contoured by the user
for specific behavior traits (again being a continous value used to calculate the response.
The boids simulation itself has several coefficients which control the flocking behavior but ontop of that would be additional rules that allow gain for the individual objects and would be used to control conflicting Individual vs Group
tendencies.
--------------------------------------------[size="1"]Ratings are Opinion, not Fact
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement