Advertisement

Best AI programming language?

Started by October 06, 2009 02:44 PM
37 comments, last by caleb_yau 15 years, 3 months ago
Quote:
Original post by TriKri
Hi! I have thought of making some implementation of AI in chess (in the evaluation function), based on some form of artificial programming, maybe trial and error.


I wouldn't start with chess, it's a very complex game. In fact, most classic board games (chess, checkers, backgammon, go,...) are very complex. Even if you spend a lot of time, you're AI will most likely either play very bad or take a very very long time to think.

As for programming language: It doesn't really matter! Pick the one you know best, unless you want to learn a new language in the process, then pick one you'd like to know.

[Edited by - Rattenhirn on October 8, 2009 3:03:39 AM]
If I understand TriKri correctly, he thinks that the code for artificial inteligence needs to be generated dynamically (that's why he's talking about parsing C++ and lisp and such things).
TriKri, you should read some more before starting coding this, as it seems you dont graps the basic ideas at all.
Advertisement
Quote:
Original post by Relfos
If I understand TriKri correctly, he thinks that the code for artificial inteligence needs to be generated dynamically (that's why he's talking about parsing C++ and lisp and such things).
TriKri, you should read some more before starting coding this, as it seems you dont graps the basic ideas at all.


Can you please explain that a bit further, why don't I have to generate code dynamically? That is exactly what I want to do. What I want to achieve is a "creative" AI, and that can only be done by letting it formulate new ideas (and try them out), in this case code.
Ideas don't have to be expressed as code. They can be data that states how to combine pre-existing behaviour. In fact I would say code is a poor representation for creative ideas because it isn't sufficiently constrained to the problem domain.
If you want your program to be creative, first you need to know what you mean by that. Is Rybka creative? What test would you use to determine it?

I am a natural Wittgensteinian, and I only understand words in their context. I don't think "creative" is a word that means anything when applied to a chess program. It makes sense to use it for human chess players that can think of things other humans miss. "Creative moves" can also be simply surprising moves that happen to work only because their opponents don't know how to counter them. When applied to programs, it's a metaphor at best.

Quote:
Original post by Kylotan
Ideas don't have to be expressed as code. They can be data that states how to combine pre-existing behaviour.


That sounds interesting. How do you mean combine pre-existing behaviour, can you give an example of it? Can it for example be applied to chess? Or to any other interesting game?

Quote:
Original post by alvaro
If you want your program to be creative, first you need to know what you mean by that. Is Rybka creative? What test would you use to determine it?


alvaro, I haven't heard about Rybka before, actually I'm not that into chess myself, I just use it because I find it an interesting game. Hm, the strongest chess engine in the world? I'd better check it out!

I do think creativity can mean something when applied to a chess program as well. For sure, there has to be some kind of definition of what creativity is, and that has to be applicable to a computer program as well. My idea of creativity is that a person who is creative comes up with new ideas all the time, which he doesn't know if they are going to work or not, and tries them out. Regardless of if his ideas worked or not I think that is creativity, because he is sooner or later going to find something that will work. In other words, what I am being now. What is your idea of creativity?

[Edited by - TriKri on October 9, 2009 2:01:48 AM]
Advertisement
Quote:
Original post by TriKri
What is your idea of creativity?


I sort of answered that in my previous post. I think words are only meaningful only in the context in which they are normally used, and the search for human attributes like creativity or consciousness in machines is futile if you don't clearly define what you mean by them in this new context, in a testable way.

Instead of being creative - if you're doing research why not try to 'solve' the chess problem. It's been done for checkers, so now someone should do it for chess. The link for checkers if you haven't seen is http://www.cs.ualberta.ca/~chinook/
I was thinking that AI was ok just about any language and didn't realize that they was a history about it all ready.
Bring more Pain
Hello,

why not use a logic programming language like Prolog or a constraint logic programming language? ( f.e. http://eclipse-clp.org/ )

This topic is closed to new replies.

Advertisement