aimclub / GOLEM

Graph Optimiser for Learning and Evolution of Models
https://thegolem.readthedocs.io
BSD 3-Clause "New" or "Revised" License
64 stars 7 forks source link

Fix mutation operator #238

Closed YamLyubov closed 11 months ago

YamLyubov commented 1 year ago

Changes:

Proposed changes have shown better results on synthetic task for tree graph (random bandit). Here is mean results for 20 launches with all implemented base mutations with 50 maximal iterations and 20 min time limit. It can be seen that new version:

It is a toy experiment but still...

New version results image

Old version results image

codecov-commenter commented 1 year ago

Codecov Report

Attention: 7 lines in your changes are missing coverage. Please review.

Comparison is base (46b53a4) 71.94% compared to head (80d51b4) 72.04%. Report is 4 commits behind head on main.

Files Patch % Lines
...ore/optimisers/genetic/operators/base_mutations.py 93.02% 6 Missing :warning:
...ore/optimisers/genetic/parameters/mutation_prob.py 0.00% 1 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #238 +/- ## ========================================== + Coverage 71.94% 72.04% +0.10% ========================================== Files 136 136 Lines 8127 8164 +37 ========================================== + Hits 5847 5882 +35 - Misses 2280 2282 +2 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

kasyanovse commented 11 months ago

В строке происходит проверка verifierом сразу после мутации. По идее, эта проверка реализована внутри мутации, ее можно убрать.

UPD: так как эта проверка осуществляется один раз при подготовке начального поколения, то пусть будет.

kasyanovse commented 11 months ago

У меня почему-то в ParentOperator в operators лежат функции, что несериализуемо и неудобно. Может быть хранить там строки, как сделано в кроссовере? Немного потестировал такой вариант у себя, все работает. Я могу залить оба изменения, которые предложил в последних комментах.