aimclub / FEDOT

Automated modeling and machine learning framework FEDOT
https://fedot.readthedocs.io
BSD 3-Clause "New" or "Revised" License
627 stars 86 forks source link

Composer operations combination bug #580

Closed ChrisLisbon closed 2 years ago

ChrisLisbon commented 2 years ago

Creating composer through ComposerBuilder with custom mutation_types as optimiser_parameters fails with error when MutationTypesEnum.single_drop and MutationTypesEnum.single_edge are in mutation_types together.

image

It can be reproduced by running fedot\examples\advanced\time_series_forecasting\composing_pipelines.py with changing 99-100 lines on mutation_types = [MutationTypesEnum.single_drop, MutationTypesEnum.single_edge] with any other types.

gkirgizov commented 2 years ago

Appears, that Graph class allows for duplicated edges (i.e. node.nodes_from can contain duplicate entries), but on removals of nodes, edges etc. only the first occurrence of an edge is removed. Mutation process sometimes causes such duplicate edges to appear, which leads to ghost GraphNode to reappear sometimes. Fix for #604 must resolve this.