Hide specifics of new OptNode creation in mutation operators
Created by: gkirgizov
Currently mutation operators are specific to AutoML domain. To abstract them for general Graph optimization problem it's required to hide details (usage of candidate operations etc.) behind something like a graph node factory.
Aim is to allow using the mutation functions form mutation.py
for other optimization tasks. Some custom example in the form of tests would be also good to have.
For an example see function _add_intermediate_node
. Candidate operations and usage of OptNode class can be encapsulated.