Skip to content

Support WolframModelEvolutionObject as an argument for WolframModel #436

Open
@daneelsan

Description

@daneelsan

The problem

The idea is to support the passing of WolframModelEvolutionObject objects as an argument for WolframModel.

E.g: Let's say we already produced a WolframModelEvolutionObject which is the result of evolving some initial state for a trillion steps. Then, if I wanted to continue evolving it then the following syntax should do so:

In[] := WolframModel[WolframModelEvolutionObject[...] (* already run a trillion *), 10]
Out[] = WolframModelEvolutionObject[...] (* object that ran a trillion + 10 times *)

This syntax would be translated to WolframModel[Automatic, obj, 10] or WolframModel[rules, obj, 10], where rules is obtained from the obj itself.

This also allows us to:

  1. Change the rules of the evolution, by specifying a new rules.
  2. Change the event ordering function, etc.

Possible solution

Missing

Additional context

In WolframModel[rules, object, 10], 10 could be interpreted as either absolute or additional steps to the already evolved object. @maxitg suggested that by default 10 would be translated to

WolframModel[rules, object, <|"AdditionalGenerations" -> 10|> (* new property *)]

instead of <|"MaxGenerations" -> 10|>.

If <|"MaxGenerations" -> 10|> is passed and the object already run for > 10 steps, a proposing functionality is that WolframModel returns the object "trimmed", i.e. the evolution until the 10th step.

Metadata

Metadata

Assignees

No one assigned

    Labels

    evolutionModifies code for running the evolution of the modelfeatureNew functionality, or change in existing functionalitywolfram languageRequires Wolfram Language implementation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions