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

Water/Lava With Width/Height/Depth #876

Closed schrum2 closed 1 year ago

schrum2 commented 1 year ago

We need to consider other options for water and lava. First, make a batch file that uses the MinecraftMAPElitesWidthHeightDepthBinLabels instead of the usual MinecraftMAPElitesPistonOrientationCountBinLabels. This file should make 5x5x5 shapes.

This step along could lead to success, so run this before trying other things. Depending on how this goes, we may consider other behavior characterizations, or even maybe make some new ones specifically for water and lava.

TjRaffert commented 1 year ago

We are running an experiment and will close when it is complete.

schrum2 commented 1 year ago

This may have revealed another problem. All of the shapes are only in the 5x5x5 bin. Evolution never discovered a single shape that did not take up the full 5x5x5 space. There were some block gaps, but not unified lack of blocks within an entire edge.

I think this is revealing a weakness of the simple numeric encoding we are using, though it could also be indicating a weakness in the search operators we are using. We need to address those issues before returning to this.

schrum2 commented 1 year ago

To address the issue of not searching the space in an effective manner, lets try applying CMA-ME to Minecraft instead of plain MAP Elites. No need to worry about what CMA-ME is yet, let's just try it first and see what happens.

Make a new batch file that uses this Water/Lava with WHD as a starting point, but replace

ea:edu.southwestern.evolution.mapelites.MAPElites

with the following:

ea:edu.southwestern.evolution.mapelites.CMAME numImprovementEmitters:5 numOptimizingEmitters:0 CMAMESigma:0.5 resampleBadCMAMEGenomes:false

I worry that this could crash, but give it a shot.

schrum2 commented 1 year ago

We ran code that executed without crashing using CMA-ME and also SBX. We still have slightly disappointing results in terms of coverage of the space of possibilities. However, that is not really an issue with Water/Lava itself.