Jump to content
  • Advertisement

Archived

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

myahmac

An AI that creates other AI's

This topic is 5269 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

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!