maxitg / SetReplace

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

GenerateMultihistory #626

Closed maxitg closed 3 years ago

maxitg commented 3 years ago

Changes

Comments

Examples

SetReplace`PackageScope`declareMultihistoryGenerator[
  generateMultisetMultihistory,
  MultisetSubstitutionSystem,
  <|"MaxGeneration" -> {Infinity, "NonNegativeIntegerOrInfinity"},
    "MinEventInputs" -> {0, "NonNegativeIntegerOrInfinity"}|>,
  {"InputCount", "RuleOrdering"},
  <|"MaxEvents" -> {Infinity, "NonNegativeIntegerOrInfinity"}|>];
Unprotect[$SetReplaceSystems];
SetReplace`PackageScope`initializeGenerators[];
In[] := GenerateMultihistory[
  MultisetSubstitutionSystem[1, 2], <|"MaxGeneration" -> 3|>, All, {"InputCount"}, {}][0]
Out[] = generateMultisetMultihistory[MultisetSubstitutionSystem[1, 2],
                                     <|"MaxGeneration" -> 3, "MinEventInputs" -> 0|>,
                                     All,
                                     {"InputCount"},
                                     <|"MaxEvents" -> \[Infinity]|>,
                                     0]
In[] := GenerateMultihistory[
  MultisetSubstitutionSystem[1, 2], <|"MaxGeneration" -> -1|>, All, {"InputCount"}, {}][0]
image
Out[] = GenerateMultihistory[
  MultisetSubstitutionSystem[1, 2], <|"MaxGeneration" -> -1|>, All, {"InputCount"}, {}][0]
In[] := $SetReplaceSystems
Out[] = {MultisetSubstitutionSystem}
In[] := Through[
  {EventSelectionParameters, EventOrderingFunctions, StoppingConditionParameters} @
    MultisetSubstitutionSystem]
Out[] = {{"MaxGeneration", "MinEventInputs"}, {"InputCount", "RuleOrdering"}, {"MaxEvents"}}

This change is Reviewable

maxitg commented 3 years ago

@daneelsan, @taliesinb?