maxitg / SetReplace

C++/Wolfram Language package for exploring set and graph rewriting systems
MIT License
219 stars 45 forks source link

Enumeration of Hypergraphs and Hypergraph Rules #650

Open maxitg opened 3 years ago

maxitg commented 3 years ago
image

The project goal

We currently don't have any way to enumerate ordered hypergraphs or HypergraphSubstitutionSystem rules in SetReplace. The closest thing we have is a RandomHypergraph function and a resource function (which being a WFR function is difficult to use).

This project is mostly a software engineering project to implement the enumeration as a SetReplace function.

The algorithm from WFR can be used. However, it will need to be carefully tested. There are also some improvements that can be made. For example, we can allow flat enumeration based on complexity (similar to a single argument version of RandomHypergraph). If possible, it will also be nice to have a numbering scheme that will assign (not necessarily unique) short codes to rules and produce the rule given the code.

Expected deliverables:

Motivations

Any systematic study of HypergraphSubstitutionSystem rules will require a reliable enumeration algorithm. This project will be a foundation for that.

External prerequisites

SetReplace prerequisites

Difficulty

It should be fairly straightforward to port the WFR function to SetReplace. However, implementing additional features, especially the short codes, might be quite hard.

Potential instructors

@maxitg

Existing work

Required future SetReplace features

No additional features are required. The rules can be used with WolframModel already.