Open gkirgizov opened 1 year ago
Небольшой анализ для случая поиска молекул выявил, что наиболее значительную роль в накапливании дубликатов играет наследование. Наследование же в свою очередь основано на отборе. На данный момент отбор имеет некоторый механизм избавления от дубликатов, однако он не работает так, как ожилается. Данный механизм пытается выявить дубликаты по uid индивида, однако различные uid индиводов не гарантируют различие в структуре их графов.
График доли уникальных индивидов после применения каждого оператора по поколениям: Видно, что сильнее всего уникальность снижается после применения оператора наследования.
После костыльной попытки исправить упомянутый выше механизм избавления от дубликатов при отборе, были получены следующие результаты:
Before fix | After fix |
---|---|
По одному запуску нельзя слелать вывод об улучшении метрики, однако видно, что фронт парето стал более разнообразным. После фикса видно, что мутация так же может значительно снижать разнообразие популяции. Ниже есть пара предположений о возможных причинах (пункт 2).
Другие возможные проблемы, которые не так значительно влияют на уникальность:
Original molecule | Possible OptGraph 1 | Possible OptGraph 1 |
---|---|---|
Need to research how the lines in question (with filtering dublicates of unsuccessful mutations) influences diversity & the work of reproduction controller.
See discussion there: https://github.com/aimclub/GOLEM/pull/148#issuecomment-1676868821
Problem is captured by the following, where we see too many individuals with the same structure:
Comment from @valer1435 on a possible cause: стоит посмотреть внимательно, как выглядит популяция до этого метода и после. Как будто он запихивает в популяцию лучшие индивиды, не учитывая, что они там могут уже быть