   An AI that creates other AI's
  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.   
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. ;  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. ;  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, asyou said, the learner itself will improve over time.   Kami no Itte ga ore ni zettai naru! ;  They''ll take over the world!Call it Skynet. ;  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?  ;  YesBe afraid, be very afraid!Isn''t this idea similar to Ga''s?Nice coder ;  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.;  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...    ;  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.  