View previous topic :: View next topic |
Author |
Message |
Trevoke
The missing liberty
Joined: 26 Jan 2005
Post Count: 1924
Location: Madra
25000 Potch
0 Soldiers
0 Nation Points
|
Posted: Fri Mar 17, 2006 3:33 pm Post subject: Artificial Intelligence and the game of go |
|
|
trevoke.ath.cx/Go_bot_project.html
So far this is what I have.. I update it when I find new links or new ideas.
Anyone here into programming, and even better if specifically into AI programming? _________________ There are weapons you cannot hold in your hand.
You can only hold them in your mind.
-- Bene Gesserit Teaching |
|
Back to top |
|
|
fuji
Joined: 31 Jul 2004
Post Count: 7067
Location: North Sparrow Pass
9643133 Potch
16500 Soldiers
100 Nation Points
|
Posted: Fri Mar 17, 2006 5:43 pm Post subject: |
|
|
You could probably find some open source chess engines with some AI. They could probably give you some ideas on the kinds of logic that is used here. From what I know of chess engines, they run through each possible combination of moves and determine which will yield the best results by weighting each move and the move that has the highest probability to yield a good result is then made. Of course it takes into consideration known positions, known inequalities and strategical formations.
Here are a few open source chess engines to look at the code:
Phalanx
GNU CHess
Crafty
A note about Crafty. It has no web site, but it is one of the better free and open engines. It's written in C and is pretty well known.
However, your goal to write an adaptive AI is scary. Haven't you seen Terminator! Don't you know what happens when machines become self-aware?!?!
To have an AI that learns is tough, and the only thing that immediately comes to mind is statistical analysis of players tendencies when put in certain situations.
Hope those links help _________________ ______ "We're still flying"
___ "That's not much"
"It's enough" |
|
Back to top |
|
|
Alkazar
The Sons of Senan
Joined: 07 Jul 2004
Post Count: 171
Location: Senan
0 Potch
200 Soldiers
0 Nation Points
|
Posted: Fri Mar 17, 2006 5:59 pm Post subject: |
|
|
When writing an AI, you must first address the question - what language are you going to end up writing it in? The language is what dictates the potential complexity of the AI and what systems can actually run the AI - C, while powerful, is limited as to what machines can run it, while Java, for example, is essentially just a powerful but can be used on pretty much any system. Once you've made that decision, it's easy to take the next step and plot out exactly what it is you need it to do and see what it is you need to write out. For example...
A few weeks back, we had to write a tic-tac-toe AI to go along with one of our assignments. It's an extremely thing - just check to see if there's a place the computer needs to block (using nothing but ifs) and then block it. If not, then you need to calculate a good blocking position (usually the center, or one of the corners) and have the AI take it.
It isn't really necessary to make the AI need to "learn" - in fact, your average AI doesn't truly learn, but just expands the database it works off of. It runs the same algorithms every time, but just has more data to check it against. A well written AI is adaptive, such as I mentioned for the tic-tac-toe game, and will have all possibilities written into it without having to worry about the player does - the programmer will have already taken care of that posibility.
But yeah, like I said, you need to make a decision about which language you're using before you really try to look for much help. I might be able to give you some pointers - I'm a computer science major with some specialization in networking and intelligences - but I can't really help much without a language (I'm only familiar with Java, C and some C++). _________________
|
|
Back to top |
|
|
Trevoke
The missing liberty
Joined: 26 Jan 2005
Post Count: 1924
Location: Madra
25000 Potch
0 Soldiers
0 Nation Points
|
Posted: Fri Mar 17, 2006 7:53 pm Post subject: |
|
|
I'm currently looking at D (which is a re-engineered C++) .. And some people have spoken about Prolog or Python (although he then added, "I do everything in Python".)
http://digitalmars.com/d/index.html
That's for D.
The issue with go is that it's a *lot* more complex than chess; as such, while the best chess "AI" can defeat most humans, the best go AI currently loses to any amateur player with about a year of experience.
Creating an AI with Reinforced Learning, for instance, may well break the barrier. _________________ There are weapons you cannot hold in your hand.
You can only hold them in your mind.
-- Bene Gesserit Teaching |
|
Back to top |
|
|
Trevoke
The missing liberty
Joined: 26 Jan 2005
Post Count: 1924
Location: Madra
25000 Potch
0 Soldiers
0 Nation Points
|
Posted: Wed Mar 22, 2006 9:42 am Post subject: |
|
|
http://sourceforge.net/projects/go-voke
Now this is what I have. I'm going to start coding this in Python. If you're interested in participating, please drop me a PM and we'll see what can be done.. :) _________________ There are weapons you cannot hold in your hand.
You can only hold them in your mind.
-- Bene Gesserit Teaching |
|
Back to top |
|
|
|
|