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

Compare with DEAP/pymoo on synthetic tasks #175

Open
gkirgizov opened this issue Aug 25, 2023 · 2 comments
Open

Compare with DEAP/pymoo on synthetic tasks #175

gkirgizov opened this issue Aug 25, 2023 · 2 comments
Assignees
Labels
cases New domain applications or examples good first issue Good for newcomers

Comments

@gkirgizov
Copy link
Collaborator

Possible synthetic task for comparison is evolving graphs to match target graphs by some distance metric, like edit distance of adjacency matrix. In DEAP/pymoo this can be implemented as evolution of graph matrices.

Compare results:

  • by max graph size that can be handled effectively
  • by num of iterations / minutes & final metric at convergence

Having this comparison, we could understand where we're better or worse in simple tasks and where GOLEM can be improved. If the results are positive, they could be used in papers.

Implementation of graph search in GOLEM is in this file

@gkirgizov gkirgizov added good first issue Good for newcomers cases New domain applications or examples labels Aug 25, 2023
@gkirgizov gkirgizov changed the title Implement comparison with DEAP/pymoo on synthetic tasks Compare with DEAP/pymoo on synthetic tasks Aug 25, 2023
@rlog58 rlog58 self-assigned this Sep 7, 2023
@rlog58
Copy link
Collaborator

rlog58 commented Sep 28, 2023

Промежуточно. По некоторому seed был построен случайный граф (100 вершин, 1265 ребер). Делалось 10 запусков на каждом из фреймворков. Точки на графике одного цвета отображают наборы парето-фронтов к некоторому времени. У меня это было (0мин, 1мин, ..., 6 мин). На первом графике в задаче неизвестно число вершин, на втором число вершин зафиксировано. Цветовую гамму поправлю, сделаю градиентной, а не набором цветов.
Мои промежуточные выводы такие:

  • На графах мелкой размерности (до 20 вершин) сравнивать неинтересно, оба фреймворка, как правило, у меня находят оптимум за 1-2 минуты.
  • Пока у фреймворков не заметна сильная деградация глобального поиска (позапускаю ещё часовые запуски), т.е некоторое улучшение со временем всё же есть
  • У голема нет нужного набора операторов, как я понял, для поиска графа фиксированной размерности. В основном мутации связаны с изменением числа вершин. Поэтому на втором графике видим, что поиска толком-то и нет.
  • Если же разрешить использование операторов изменения числа вершин, то голем в среднем быстрее сходится. Это я могу объяснить тем, что все мутации имеют смысловую интерпретацию (добавление вершины, изменение поддерева, и т.д.). В то время как у pymoo из коробки только базовые мутации и они не отображают смысловые действия над графом.

Сейчас я планирую добавить в голем мутацию удаления ребра, а также произвести часовые запуски фреймворков, чтобы была видна сходимость к оптимуму. Боксплоты допиливаю
photo_2023-09-28_16-46-56
photo_2023-09-28_16-47-03

@maypink
Copy link
Collaborator

maypink commented Oct 30, 2023

есть какие-то обновления по результатам или уже все сделано и можно закрывать?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cases New domain applications or examples good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

3 participants