The planning process with SIMO consists of generating several alternative development paths for the planning units; e.g. forest stands; using simulation and then picking the best one amongst the alternatives using optimization.


What is being simulated and optimized?

The data for the planning process can be freely chosen - both the objects and their attributes. A lexicon is first defined that lists the objects; e.g. stand, strata, tree; their attributes and their relationships. This lexicon forms the basis for the planning process and is fully modifiable by the user.

Models used in the simulation

SIMO has an extendable modelbase. To introduce a new model to the framework, you describe it in a model catalog and an implement it using either Python, C or Fortran. There is a standard interface definition for the model implementations.

There are three types of models: prediction, aggregation and operation models. Prediction models are used to predict the changes in the properties of objects; e.g. the growth of trees. Aggregation models are used for, well, aggregation. Typically this happens between data levels; e.g. from trees to stands. Operation models modify objects; e.g. remove trees in thinning operations; and have an associated cash flow of income and cost.

How is the simulation done?

You decide what happens in the simulation. The basic concept is a task that may depend on a condition for its execution. The task is executed by a model. A simulation is a collection of tasks that are executed sequentially; i.e. "first predict the diameter growth of trees, then predict the height growth, etc."

Another key concept is that tasks may have sub tasks; i.e. a single task is divided into several smaller tasks. These sub tasks can again have conditions of their own and also sub tasks of their own. These hierarchical task structures are grouped as model chains. Each model chain contains a set of top level tasks that are diveded into arbitrarily many sub tasks. The user can modify the simulation by modifying the contents of the model chain XML documents.


Once the simulation has produced the alternative development paths, the optimal ones should be choses. To do this, you define your goals and the constraints that have to be taken into account when searching for the optimal solution.

Presently one can search for the optimal solution using either Linear Programming or heuristic algorithms. To do LP optimization, the J program developed by Juha Lappi in Natural Resources Institute Finland must be used. See the product page for obtaining a copy.

Open Source

The SIMO Project is open-source software. If you are interested in contributing to the SIMO development process, please visit our Contribute page.