Unify implementations of evolutionary optimizers
Сейчас EvoGraphParameterFreeOptimiser и EvoGraphOptimiser имеют весьма значительное дублирование в коде метода optimise. Это сильно усложняет их модификацию.
Поэтому есть необходимость в рефакторинге - разделении общей логике ЭА и конкрретных реализацией его частей.
Также можно подумать об улучшении реализации работы с метриками, наборами параметров в parameters и требований в requirements. Например, сейчас поле self.metrics выглядит вообще неиспользуемым.
Пример с использованием внешнего оптимизатора тут.