aimclub / GOLEM

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

Support larger graphs (N>40) #69

Open gkirgizov opened 1 year ago

gkirgizov commented 1 year ago

Example of the problem is Tree Search. Or BAMT graphs (see discussion).

The problem is that Tree search is caught in local minima for graphs with N>20. Small graphs are found without problem in 50-100 iterations, while larger graphs (with N>=30 already almost for sure) can't be found. Optimization is stuck after 100-200 iterations with almost no hope. This situation must be investigated.

I have a hypothesis that current mutation set adds cycles and can't remove them. Also it would be nice to add specific set of constraints for GraphVerifier suited for trees.

Encountered while doing #60

Plan:

  1. [ ] Profile GOLEM

Possibly issue #142 could provide additional information about where GOLEM is slower compared to other evolutionary frameworks.


Updates:

gkirgizov commented 1 year ago

75 Didn't really helped, still the cycles that were added by add_edge mutation are preserved

gkirgizov commented 1 year ago

Maybe adding mutations specifically related to breaking cycles would help

KarinaKarina6 commented 1 year ago

Такая проблема на байесовских сетях. На средних и больших БС не получается достичь хороших результатов. изображение Ссылка на пример запуска: examples/bn/bn_score_shd.py