aimclub / aimclub/GOLEM

Support graph grammars for graph generation

Open
#50 0 comments 0 reactions 0 assignees View on GitHub
discuss enhancement help wanted research
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.