Description
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:
- Change the rules of the evolution, by specifying a new
rules
. - 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.