Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missile vs Flying interference #955

Open
schrum2 opened this issue Jul 30, 2023 · 7 comments
Open

Missile vs Flying interference #955

schrum2 opened this issue Jul 30, 2023 · 7 comments
Assignees

Comments

@schrum2
Copy link
Owner

schrum2 commented Jul 30, 2023

More tests are needed, but I think the Missile fitness is messing with selection too much and preventing flying machines from emerging. I'm doing tests right now of pure fly fitness but with the missile block set to see how hard it is for flying machines to emerge. It can take a while.

I might just need to let evolution run longer, which I thought I had ruled out. However, here is another option:

In a multiobjective setting, define missile fitness so that it is always 0 unless the machine is flying. Note sure how hard it will be to detect that information across fitness functions, but the idea of treating missile fitness as 0 until the machine flies should at least encourage flying machines as quickly as having no missile fitness at all.

@schrum2 schrum2 self-assigned this Jul 30, 2023
@schrum2
Copy link
Owner Author

schrum2 commented Jul 31, 2023

Only 1 out of 3 SmallTNT runs produced a flying machine, and it did so fairly late. I'm running a batch of plain small now to see if maybe there is an issue with the direct encoding or some other setting after all. In theory, these should succeed better than the vector-to-volume GECCO batch, but maybe not?

@schrum2
Copy link
Owner Author

schrum2 commented Aug 4, 2023

The direct encoding for small plain flying machines is incredibly successful. They all produce flying machines fairly quickly, which is great, but it makes the problem of producing flying machines with TNT all the more daunting. As a start, I suppose I'll simply try evolving for longer.

@schrum2
Copy link
Owner Author

schrum2 commented Aug 7, 2023

The latest batch of SmallTNTFly runs have actually been a bit more successful at generating flying machines, though many have flown vertically, and they are not transporting TNT, and why would they? I guess there needs to be a fitness that specifically measures the change in center of mass of just the TNT blocks to see if they are moving.

schrum2 added a commit that referenced this issue Aug 7, 2023
Added the option to filter out all blocks except TNT blocks before doing change in center of mass calculations. We want to see how much the TNT moves, not how much other blocks move.

Though I wonder how the exploding blocks will be treated. What if there is no TNT?
schrum2 added a commit that referenced this issue Aug 7, 2023
SmallTNTFlyTNT may need a better name later, but for now it is what checks for the movement of TNT blocks.
@schrum2
Copy link
Owner Author

schrum2 commented Aug 7, 2023

Testing out the idea of tracking TNT movement right now

@schrum2
Copy link
Owner Author

schrum2 commented Aug 15, 2023

It is a bit harder to create flying machines when just tracking TNT movement, but it is possible. The SmallTNTFlyTNT runs produced some flying machines, but no missiles yet.

Missile MOME has also failed.

Now I am trying MOME with Missile fitness vs the change in center of mass of the TNT, so measuring the flight of only the TNT blocks. We'll see what happens.

schrum2 added a commit that referenced this issue Aug 20, 2023
Support for sequentially stacking fitness results from different fitness functions has been added. Specifically, the fitness score is the result of adding individual fitness scores together, except that later scores are not added unless earlier scores pass predefined thresholds. Since selection is not fitness proportional, this means that weighting the objectives is no longer necessary.

The specific test here is to see if it helps to only reward fitness for destroying targets AFTER shapes are capable of flying. The chosen fitness threshold should mean that the score of any shape is simply the ChangeCenterOfMass up until a point when the shape can fly, after which point a bonus from actually destroying targets could be incorporated.

Note that the specific batch file being tested also requires that the shape have moving TNT blocks (simply flying without moving TNT around does not count).
@schrum2
Copy link
Owner Author

schrum2 commented Aug 20, 2023

Seeing what happens if you can't get any missile fitness until after you are flying

@schrum2
Copy link
Owner Author

schrum2 commented Aug 29, 2023

Still not really working, so now I'm combining the restriction of not getting any missile fitness until the shape is flying with the idea of a soft archive from Mat Fontaine's MAP Annealing paper. There is a new batch file for running this test.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant