Open andey-robins opened 11 months ago
Further use cases:
Currently, I want to be able to create a GA object (which is the evolution of the population object) without needing to specify a graph object. The concerns about having a specific instance of a GA become divorced from the graph it is working on is a valid concern, but having the graph object tied to the GA is now causing other problems. It would be more useful if I could define the GA and later associate it with a graph.
One thought that immediately springs to mind is creating a GA object that has all of the population information, but which can't be run until it has a graph object added to it. This does introduce temporal/state problems. Perhaps doing Runs right now is necessary?
Currently, the graph objects are used as parameters to a lot of the genetic evolution methods. Instead of this, it would be nice to directly associate a graph with a population. This could also streamline our checkpointing system by preventing a checkpoint from being separated from the graph it's evolving on.
The specific mechanism for this is unclear. We have a couple options such as: saving the graph structure itself as part of the checkpoint/population, storing some hash of the graph object, or even re-encoding the graph to a string and storing it in this textual format. Discussion of the implications of each option should find a home here.