I want to get into some simple AI Programming on any subject really. My programming language of choice is C#.Net.
Where is the best place to get started? (Preferably free)
I want to get into some simple AI Programming on any subject really. My programming language of choice is C#.Net.
Where is the best place to get started? (Preferably free)
Artificial Intelligence, A Moden Approch by Norvig and Russell is the de-facto textbook
I would start by simple things like implementing depth first search and breadth first search.
For instance, the classic sliding tile puzzle is very easy to understand and implement, and basic search strategies work.
A little harder is maze solving (in terms of data structures)
Unfortunately, your first step should be to learn Lisp. Most AI implementations are written in Lisp. My focus in my CS degree is in Intelligence, and every class I've taken uses it.
This is because many of the things that are essential to implementing Artificial Intelligence (Search, Recursion) are what Lisp does best. It's dead simple to implement djikstra's algorithm. Or even a minimax algorithm (used for choosing a move based on a given value of that move).
Part of my joint honours was in AI. I would start with Russel and Norvig's book "AI: a Modern approach". I would then pick up either a book on prolog or lisp and go from there.
For something a bit more modern, you could try Toby Segaran's "Programming Collective Intelligence" from O'Rielly it is in Python, but you could probably implement the exercises in C#
I really liked Programming Game AI by Example which C++ however you can easily translate that to C# the author has a web site too. ai-junkie
Artificial Intelligence is a big field. What are you specifically looking to learn?
To name a few areas:
I've found the best way to learn about things is to have some concrete problem to focus on. For instance: a program that can play Checkers, or a program to come up with results for the Netflix challenge.
Is there AI problem that you might find particularly interesting?
AI covers a wide range of topics, some of which you wouldn't necessarily consider. "AI" in games mainly consists of Path Planning and some Decision theory.
Knowing more about what you want to do would help provide resources.
Unfortunately, your first step should be to learn Lisp. Most AI implementations are written in Lisp. My focus in my CS degree is in Intelligence, and every class I've taken uses it.
In the US, that may be the case. Other parts of the world us Prolog, rather than Lisp. IIRC, Russell & Norvig cover Prolog, but if you really want to learn it, I think the best text for it is Bratko.
For game AI try Robot Wars you can make it as simple or complex as you like. Check the wikipedia entry for more info
Keep in mind that "artificial intelligence" is another way of saying "hard and poorly-understood problems." So while the Russell and Norvig book is a great place to start, you'll find that some areas of AI may seem kind of of simple and not particularly intelligent, because they represent solved or mostly-solved problems. I'm thinking particularly of things like pathfinding algorithms, although there's still plenty of refinement being done there.
And then other areas, like machine learning, are much harder, especially when they involve very big and hairy real-world data sets, as opposed to the classic game-oriented problems. Various AI tools and algorithms may not even remotely resemble each other, but they get lumped into "AI" because the problems they solve are hard.
I'd start by researching the subject in general (the AI Wikipedia entry is a fine place to start), and picking out the problems or problem domains that excite you the most. That will determine which algorithms and subjects to focus on.
That being said, before you start anywhere in AI you should know your fundamental algorithms, because it only gets harder from there and in AI, it's important to have as firm a grasp on the theory as on the practice.