ciri at October 6th, 2004 16:42 — #1
I'm going to make a treatise on Artificial Intelligence for school (I'm in the last year before college now and this is going to be my hmm *big* endproject of secondary school). I've gathered quite alot of information already but I can't seem to find decent tutorials (writing a tick tack toe AI != decent ) about coding an AI in C++. I've tried coding a bit in prolog and lisp but that didn't get me far either (except for solving a few logic problems). Is there anyone here that can point me in the right direction?
Thanks in advance,
BTW has anyone checked the Golem Project (search google for it, the first match you find) it's quite nice what they achieved.
anubis at October 6th, 2004 18:53 — #2
do you have an idea in which direction you want to go ?
board games ?
group behaviour (like flocking algorithms) ?
neural networks ?
genetic algorithms ?
just a few examples...
ciri at October 7th, 2004 01:58 — #3
Yes, I have 2 options (the 2 directions that I describe in my treatise):
- Making an AI for a game (could be any board game)
- Making an AI that evolves and develops itself through the darwinism process (like create a world with environement variables and a few classes of 'life forms' that adapt themselves to the envioronement)
shadowhawk at October 7th, 2004 02:55 — #4
Well if u have the choice i would go for a self evolving Neural network.
Neural nets work verry simple u just have a neuron with inputs and each input is connected to a neuron in the layer above. Just put the data into the first layer and propagate down to the last layer.
If u encode the weights of the connections into a genome then u can get a genetic algorithm to use your preferred darwin approch to evolve.
quite simplet actualy there is a lot on aijunky.com
nomadrock at October 7th, 2004 03:30 — #5
Neural nets aren't much for learning about intelligence though. They are pretty much black box solutions (though there are some research areas that hope to remove this)
I suggest you start simple. Start with a finite state machine, with each state being the current behavior.
Amit has some good sections on pathfinding and gets a little into AI as well http://theory.stanford.edu/\~amitp/GameProgramming/
I also highly suggest http://ai-depot.com/ but keep in mind there are many advanced techniques described there. Dont let this overwhelm you. Try to find the easier stuff and start there.
Keep in mind fuzzy logic to help make your algorithms seem more "real".
Once you have the basics down you can start into the cooler areas like genetic algorithms and neural nets. These are ways to grow or train a solution to a problem that is very difficult if not impossible to define in an easily solveable way.
shadowhawk at October 7th, 2004 08:42 — #6
Well u dont really need the basics of other types of AI before u start on funny little things like Neural Nets. Sometimes it might be even better since u just read the theory and dont start thinking well this works like that and i know this part.
Neural-Nets are indeed a black box but they are so easy to implement and to combine with a genetic algorithm that it is ideal for things like school projects.
They impress most teachers since they look complex, they are complex at first but verry easy to implement and to test.
Finit state machines are not real inteligence since they are well verry limited and predictable ( and a lot to code ) Pathfinding well technicaly it could fall into the AI department but and A* is nice to implement but if u really want to learn get a simple tile based boardgame sit in front of it and try to determine your thinking process and implement that. I did this once for a small AI programm that in its testphase behaved just like I would do.
ciri at October 7th, 2004 09:11 — #7
Interesting, I will look into the neural networks thing and see how far I get thank you very much!
[edit: Wow that was really what I was looking for, again, thanks !! ]
shadowhawk at October 22nd, 2004 04:02 — #8
Mind letting us know how the project went. I really would like to know if it went well and what u made eventualy. Just curious i think but i myself like AI topics and maby i can now learn something from u
ciri at October 28th, 2004 17:12 — #9
I will translate it (the original version will be in Dutch) and post it here when it's finished, but it probably won't be finished before february 2005 so...
polar_sleuth at October 31st, 2004 21:03 — #10
Another place to look:
John Laird has been doing Artificial Intelligence research for many years. He developed an AI engine called Soar. Originally it was developed to pilot simulated enemy jet fights for military flight simulators. It is now public domain.
The latest research projects include creating an AI player for Quake II (i.e., Quakebot) that is capapble of exploring and mapping levels, learning from the actions of others, learn from its own successes and mistakes, and can even "anticipate" the actions of other players. There are several papers on the subject available via the above website.
The Quakebot Tutorial:
The tutorial was/is part of an AI course at the University of Michigan.
shadowhawk at November 1st, 2004 04:32 — #11
I will translate it (the original version will be in Dutch) and post it here when it's finished, but it probably won't be finished before february 2005 so... [snapback]13425[/snapback]
Hey your dutch nice me too. always nice to see felow countrymen on a forum.
Ill w8 till the version is ready altough when i was at school i could just hand in my assignments in enlish it saved me the translation:) I always code in enlish and if the documentation found on the internet is also enlish i prefer the rest of my projects to be also enlish ( saves context switch from 1 language to the other when working on it )
Good luck with the project.
nomadrock at November 1st, 2004 05:54 — #12
grrr. english. Note the 'g'
Sorry for the nitpick, but 4 times was my breaking point.
We should probably get some articles up on AI. There is talk on neural nets, but no article up about it. Perhaps I will give it a writeup during my winter break.
shadowhawk at November 3rd, 2004 02:51 — #13
O sorry did not notice that. Well at least i was consitent. Im verry bad at all natural languages so please forgive my frequent spelling errors.
BTW i still think that communication was ment to communicate so as long as the recepient understands the message there is nothing wrong with it
nomadrock at November 3rd, 2004 04:11 — #14
shadowhawk at November 3rd, 2004 06:13 — #15
true, no hostility meant [snapback]13612[/snapback]
No offence taken. Im used to people pointing out mistakes all the time.
nomadrock at November 3rd, 2004 12:11 — #16
Back to the topic at hand..
Ciri, any noteable progress?
ciri at November 9th, 2004 12:34 — #17
Yes I finished about 16 pages on Neural Networks. Here's a *huge* recourse of articles on anything science-related (there about 10.000 articles about AI):
nomadrock at November 9th, 2004 12:49 — #18
So where are you thinking of taking this?
There are a lot of topics in advanced neural network design.
ciri at November 9th, 2004 14:45 — #19
I'm going to follow 2 paths, neural networks and genetic algorithms. Then I'm going to combine both and program an implementation of the combination in a problem solving application (I'm not sure yet what problem I'm going to choose).
It's not going to be anything too advanced as these are my first steps into the field of artificial intelligence
shadowhawk at November 10th, 2004 02:21 — #20
Eh well Neural nets and genetic algoritmhs are easy to combine. If u make a good design of what u want to do with them combining will be almost as easy as implementing the Neural Net.
If u get a good problem for your solution ( he he normaly we work the other way around ) let me know i have searched for a good problem myself but stopped my own NN project by lack of a good problem.
next page →