schrum2 / MM-NEAT

Modular Multiobjective (Hyper) Neuro-Evolution of Augmenting Topologies + MAP-Elites: Java code for evolving intelligent agents in Ms. Pac-Man, Tetris, and more, as well as code for Procedural Content Generation in Mario, Zelda, Minecraft, and more!
http://people.southwestern.edu/~schrum2/re/mm-neat.php
Other
50 stars 20 forks source link

Evolve to Reach a Specific Target Location #866

Closed schrum2 closed 1 year ago

schrum2 commented 1 year ago

Make a fitness function where the goal is to reach a specific target location. Or rather, for any given starting point (the evaluation corner), the target will be defined in relation to that. So, you would have target X, Y, and Z coordinates that are added to the start corner to get the actual target location, and the goal would be to minimize the distance between the actual target and the final center of mass of the evolved shape. Note that here, it would actually be bad to overshoot the target.

We can start with targets that are in the direct path of the typical flying machines we have been discovering, but once that starts working, we can try setting the target off on a diagonal to see if evolution can find a way around it.

schrum2 commented 1 year ago

I don't think Joanna ever got around to working on this, but it is more relevant now that we have the missile experiments. One route we are pursuing is to put several targets and reward the shape for blowing any of them up #926 , but this alternative here could help us in a different way. We could reward the shape for getting closer to a specific target, and then set that target location to be the same location as the target we are trying to explode. We would be encouraging it to move toward the shape.

This will be a completely separate fitness function that extends timed evaluation fitness. There will be some new parameters (x,y,z) specifying the offset to the target. The only way for early termination is if all blocks of the shape are gone. The fitness is the distance to the target from the final center of mass (since evaluation stops if the shape is empty, the final center of mass will be the last step in the history where the shape was not empty).

schrum2 commented 1 year ago

@TjRaffert Provide an update on this