andey-robins / saga

Synthesis Augmentation with Genetic Algorithms, or SAGA, is a footprint reduction tool for in-memory computation with memristors.
GNU General Public License v3.0
0 stars 0 forks source link

Integrate graph into population objects #1

Open andey-robins opened 9 months ago

andey-robins commented 9 months ago

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.

andey-robins commented 7 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?