Support graph grammars for graph generation
- Dominant language
- Python
- Stars
- 73
- Forks
- 11
- Avg merge
- 8h 51m
- Merged PRs (30d)
- 4
Description
The idea is to provide a way to generate only valid graphs during evolution (mutations/crossovers).
there's already some rudimentary support for constrained generation. As a sketch, the ChangeAdviser could play a role of a graph grammar generator. For example, mutation could ask ChangeAdvisor which nodes are allowed in a current node context.
This approach would be a more effective alternative to GraphVerifier. GraphVerifier discards already generated invalid graphs, whereas graph grammar approach wouldn't allow them to appear and waste time on them.
What must be here:
- [ ] Support for Context Free Grammars
- [ ] Explicit support for generation of terminal and non-terminal nodes
- [ ] It must be possible to check already generated graph, if it corresponds to the grammar or not.
Possibly there're already tools for that. This would be useful at least for testing.
There's already a real use-case for that in https://github.com/aimclub/rostok library, that uses GOLEM.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.