• Advertisement

Archived

This topic is now archived and is closed to further replies.

An AI that creates other AI's

This topic is 5092 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

BAsically I am thinking of taking an AI to look at the game being played and identify weak points in the strategy. Based on those points it would then create a file and stream the contents of diferent methods etc. into the file, call a shell script to compile and then dynamicly load the new class. I am thinking that the AI could be given a list of Sun TZU with a genral trnslation. Each sub AI would look at the situation diferently. Maybe allowing for experimentation. Still kind of brainstorming the idea.

Share this post


Link to post
Share on other sites
Advertisement
quote:
Original post by myahmac
BAsically I am thinking of taking an AI to look at the game being played and identify weak points in the strategy. Based on those points it would then create a file and stream the contents of diferent methods etc. into the file, call a shell script to compile and then dynamicly load the new class.


That sounds extremely difficult. Why not build the entire AI system with scripts. You could use a high level language like perl or python for scripting, because the AI that you''re talking about ain''t easy to build. That way you won''t have to stream to a file and compile and link with a running program.
quote:

I am thinking that the AI could be given a list of Sun TZU with a genral trnslation. Each sub AI would look at the situation diferently. Maybe allowing for experimentation. Still kind of brainstorming the idea.

You could use some kind of evolutionary algorithm that learns from it''s mistakes. The system could try 10 ways to attack a player and then continue to use the one that worked best. And then create 10 variations based on that, etc.

Share this post


Link to post
Share on other sites
Hey thats part of what the games concept is!!! Our whole purpose was to have a completly dyanmic situation pitting man against machine. INstead of a campegin plot to follow, You are put in in control of an entire army dictating strategical moves to your subordinates. Those can be AI or people. The opposing "general" is given a small set of rules to play with as is the human player, but you both learn the game together. Certain functions will be built i but undisclosed to the user, and as he uses new tactics the Ai is supposed to learn how to counter. not instantly though, that would be kinda hard. INstead we are going to have the Ai study a recorded game and then attempt different strats, based on probability.

BTW, there are multiple levels of Ai in the game. Kind of like a rank. we have a controller pointer that decides who gives the orders, but other than main objectives set by the controller, the little ai''s run the game. The ones i would like to detach are the studying AI''s. Kinda like how2 people see the same thing diferently. I know thats alot simpler than it is buts that the basic idea. ;-)

I have never done scripting, so I didnt think about that aproach. How would scripting be diferent from compiling. I am working on a mac system so dynamic linking is pretty easy.

Share this post


Link to post
Share on other sites
I would classify what you described as Supervised Learning,
with the learning process supervised by another program,
instead of a human.

Instead of the supervising AI "rewriting" the learner, as
you said, the learner itself will improve over time.



Kami no Itte ga ore ni zettai naru!

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
They''ll take over the world!

Call it Skynet.

Share this post


Link to post
Share on other sites
well, just thinking would a system be able to adapt to most anything just by giving a diferent objective to the main AI. if it maintained its links to all sub AI''s that it spawned and thus their memories, would that mean it it could eventualy be called Skynet?

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I agree with NiceCoder... What you are suggesting sounds similar to Genetic Algorithms. Two AIs spawn many children by "recombination" of their internal models... the best children are selected... those children become the new parents ... Repeat until satisfied with the children...

However, you also seem to be interested in "machine teaching", that is one AI communicating its models to another AI, to enhance the second AI''s models.

Instead of simply replacing the subject''s models (which would be simply retraining...) one method I''ve seen builds "sample cases" based on the trainer''s models, then communicates these sample cases to the subject, which "learns" them, adding them to its own model.
This has the advantage of not destroying any domain knowledge that the subject had gained itself...

**

As regards SkyNet, the real difficulty would come in trying to define the reward function (or the objective and the achievement score). This means that while in theory, yes you could build SkyNet this way, you probably can''t define "World Domination" in the AI''s knowlege system...

**

My usual source for all things AI and/or CompSci is http://citeseer.nj.nec.com/ a.k.a. http://citeseer.org/

Cheers.

Share this post


Link to post
Share on other sites
well, if u are able to write the AI in strict C, you could use www.critticall.com.

the "only" real problem would be to provide a working input/reward system...

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Hey bro, sounds like you need a decision tree. you wont have to do any crazy compiles or whatever the hell you thought you where doing. Sounds like you dont really know what your talking about, but good luck.

Share this post


Link to post
Share on other sites
Well with skynet like AI''s its not that they are programmed for world domination or what have you. The idea is that you have a defense system that is aware for itself. Its knowlege of how to defend an objective or attack a target is built in. The weird part is when you have an AI that nkows it is itself. Which is where for now I think that is a long way off. I wouldnt mind beinig surprised though.

decision trees are great if i were programig for one game, one genre, or even limiting it to just the game. The idea is an acutal concept that i intend to use for thesis later. But I would like to try it out now in a game while i have time as an undergrad doing mostly basic tasks with school. The idea came from the fix and continue option found in xcode where the program can load some recompiled files on the fly. Just thought it would make for an nice idea to have a program edit itself on the fly. Not that it would be the most effiiecnt way as of yet to do it.

In terms of GA''s thats kinda what the framework I''m builidng is set to do. Its a GA that build NN''s from a framework i already setup. Its not meant for working on a single pc though. designed to run couple hundred NNs at once. But i have to finish the whole thing and write up a proposal b4 I can get to play with it on a cluster.

But yeah part concept, part what is feasible now.

Share this post


Link to post
Share on other sites
more specifically you may want to look for Grammatical Evolution, part of the field of Genetic Programming...to get a good idea of what this is, research something called the "Santa Fe Trail" this objective is commonly used to test Genetic Programming paradigms.
-Lucas

Share this post


Link to post
Share on other sites
quote:
Original post by Anonymous Poster
However, you also seem to be interested in "machine teaching", that is one AI communicating its models to another AI, to enhance the second AI''s models.

Instead of simply replacing the subject''s models (which would be simply retraining...) one method I''ve seen builds "sample cases" based on the trainer''s models, then communicates these sample cases to the subject, which "learns" them, adding them to its own model.
This has the advantage of not destroying any domain knowledge that the subject had gained itself...




this sounds like the "talking head" experiment i heard once
google for it

however, for the original post, i think that you may have a chance if you consider the semantics (object and class), the axiology (build around the goal, the supervising set) and topology (weigthed relation between semantics thanks to axiology)
you can even made than the axiology set is considering like a semantics and could be rewrite on the fly, these three term i think , help to see more clearly how to implement such a system (i''m studying a similr case for social agent, where the problem is slighty more complex, because there is multiple goal in competition which lead to conflict, but conflict is the spice of drama )

>>>>>>>>>>>>>>>
be good
be evil
but do it WELL
>>>>>>>>>>>>>>>

Share this post


Link to post
Share on other sites

  • Advertisement