Description
Within APSIM, the problem of managing farms is a different problem to managing its traditional domain of paddocks. The questions in 'farm' management are of a different order; typically addressing resource allocation issues ahead of operational issues.
The APSFARM project is addressing these issues by developing complex tools devoted to managing diverse lists of rules, instead of the current practise of rules embedded in if/then/else logic. These rules, and the data structures that implement them are under active development.
Representation
The farming system as a whole is represented as a directed graph: a paddock's state is represented by a node on this graph, and the system moves between states by following vertices between each node. These vertices have rules (or conditions) that allow the system to change state from one to the next. Each day the system attempts to move from one state to another by finding all paths leading away from the current state, and evaluating the rules for each path. The path with the highest (non-zero) score
To move from "sorghum" to "fallow" is simple - it requires that the crop was harvested on that day. However to move from "fallow" to "sorghum" may require several rules to be satisfied, for example:
Date within a range
Soil water criteria met
More than 30 days since last harvest
No more than 3 sorghum crops in a row
No more than 70% of farm planted to a sorghum crop
Operation
The dynamic nature of these rule types requires a flexible method of interrogating simulations. At this initial stage, a standalone application to display log files is being used, after consultation with users another application may be developed.