Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Keep in mind that for real time genetic algorithms to be applicable you are generally better off starting by gathering a consistent training set of adversarial strategies (better if from different people) and using this set to evaluate fitness in the background, simulating games in fast-forward, to obtain in reasonable time a number of decent strategies you can start with (it's unthinkable to get humans to evaluate fitness of random strategies - would most likely take too long). A classic example implemented like this is the game of checkers, but also more complex games can leverage the same strategy (there is a famous example of futuristic naval battle where GA aided strategy defeated human opponents - can't remember details but I'll look it up and edit). Once you evolved a set of decent strategies, you could fire off the real time GA so that it keeps learning from humans. </p> <p>Also keep into account this could be an extremely slow process and there might be no value in using real time genetic algorithms, in the sense that you're better off collecting strategies from human opponents and running evolution in the background, so that the next time the same opponent plays you might have evolved a strategy capable of defeating him. Unless you've got loads of people playing - in that case it might make sense, but if the targets is to challenge people with increasingly good bots that's what I would do. Having people evaluating fitness of tentative strategies could be 1) slow 2) boring for them.</p> <p>A few papers dealing with real time genetic algorithms (worth skimming through the abstract and see if you're interested):</p> <ul> <li><a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.130.3277&amp;rep=rep1&amp;type=pdf" rel="nofollow noreferrer">GA for complex real time scheduling</a> </li> <li><a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.13.1884&amp;rep=rep1&amp;type=pdf" rel="nofollow noreferrer">Aircraft landing scheduling with real time GA</a> </li> <li><a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.129.4615&amp;rep=rep1&amp;type=pdf" rel="nofollow noreferrer">Musical Improvisation with real time GA</a></li> <li><a href="http://www.sersc.org/journals/IJUNESST/vol1_no1/papers/02.pdf" rel="nofollow noreferrer">Recommendation engine with real time GA</a></li> </ul> <p>Also worth mentioning, something similar has been done before by using neuroevolution (neural networks evolution with GAs, <a href="http://www.cs.ucf.edu/~kstanley/neat.html" rel="nofollow noreferrer">NEAT</a> is a good example and has been used for FPS afaik) but the considerations in terms of training set still stand valid.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    1. COWow, thank you for this answer and links. Please understand that I am new to GA but the way I want to do this is to have a randomly generated vector ei. of strings that encode bot position. Start the bot with this vector and evaluate the fitness and run it again. Repeat until a sequence is found that takes the bot to the opponent's flag and back.I think the best way to show you what I am trying to achieve is to point you to the original paper [ http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.131.5094&rep=rep1&type=pdf ]. Please have a read and say what you think.
      singulars
    2. COThat's a very interesting paper, and the encoding you have in mind sounds good, but the paper talks about generating test cases to spot bugs, not real time machine learning to generate better game strategies. I still think you should collect a training set and evolve your strategy 'offline' against that training set, or at least that's what I would opt for.
      singulars
    3. COYou are absolutely right in terms of real time learning, my mistake. In my initial attempt I was considering random sequence that would improve thanks to fitness function that measures few aspects of the bot behaviour. I wanted to kind of explore the large space of solutions to find the optimum one. However, I think I may try to take up your suggestion and play the game and try to record some sequences for evolution. If you have any more views or suggestion please post them. Again, cheers for answers.
      singulars
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload