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

More Unit Tests for Change in Center of Mass #830

Closed schrum2 closed 2 years ago

schrum2 commented 2 years ago

Large variety of simple tests.

  1. A single piston by itself.
  2. A piston with redstone that extends, and that's it.
MuellMark commented 2 years ago

Whenever a piston is extended, but there is no block being pushed with it, its fitness score is 0, since it gets read after the piston pushes out. This is not the case for when there is a block getting pushed by the piston. This is weird behavior, but we're still achieving oscillation easily enough, so we'll leave it be for right now.

alejmedinajr commented 2 years ago

Add several simple tests that do not involve any actual simulation in the mine craft world. All they do is check/confirm the value of the maxFitness method, but there will be several tests because you will change the parameters to check several conditions. Try with minecraftAccumulateChangeInCenterOfMass set to both false and true, with different values of x/y/z range, and with different values of spaceBetweenMinecraftShapes

schrum2 commented 2 years ago

I made some massive changes to this fitness function again which should improve its reliability. Now, the function always has access to the original block list before spawning them in the world, at which point they could immediately move. We actually have a correct starting point. This required me to change/fix some previous tests, but they are more precise and reliable now.

I still want more tests of the maxFitness. testMaxFitness now exists and has one test in it, but add several more, as described by me through the voice of Alex above.

alejmedinajr commented 2 years ago

I have created several tests for max fitness with a variety of parameter combinations.