To address complex challenges in your forestry planning and scheduling activities, you rely on a variety of key insights produced from your optimization models for agile and accurate decision-making.
Building, managing, and analyzing models is a dynamic process. To maximize time for analysis, models must be efficient and run as quickly as possible.
While there are multiple ways to improve your model performance in Woodstock, output structure is a key area that will be explored in our upcoming Debugging and Due Diligence training.
Why is output structure important?
In Woodstock, outputs are the key to analysis and the means of declaring objectives and creating reports, allowing you to interact with and gain insight into the model and its behavior.
You use outputs to declare objective functions and constraints (that is, to describe the characteristics of the desired solution) and for reporting and analysis. Without them, the model would run but would be practically useless.
Output structure has the most impact on the size of — and time to build — the matrix, so it is important to be aware that your output formulations can influence the time required for Woodstock to process the model, be it building a matrix or generating reports and graphs.
Keep in mind that Woodstock provides a range of detailed reports that you can use to report values of interest, rather than creating separate outputs for various combinations of types, actions, and yields.
When in doubt, simplify
The best approach to use for outputs is not always readily apparent. In fact, you might intuitively tend to create outputs for all different combinations of development types, actions, and yields, and then roll them up to calculate grand totals for use in the Optimize section or reporting. This is, in fact, the exact opposite of best practice.
Minimize the number of output nodes
Outputs are declared using source statements. A basic output source composed of a single mask, action and yield is referred to as a node. Basic outputs may contain multiple nodes. Summary outputs by their very nature contain multiple nodes as they are declared using multiple previously defined outputs.
Summary outputs have implications with respect to output nodes (number of calculations) and impact matrix build times. There are no real matrix size issues with summary compared to basic outputs, only model performance since Woodstock must calculate all of the composite outputs (i.e., nodes) when you use summary outputs in constraints and objective functions. The greater the number of nodes, the longer it takes for Woodstock to calculate the output.
Avoid using summary and mixed-summary outputs
Summary and mixed-summary outputs can add overhead to the matrix and slow build times. It takes more time to calculate many outputs and it introduces duplicate accounting rows and inflates matrix. Avoid using mixed-summary outputs in the Optimize section. Use the separate output types directly in objectives and constraints instead.
Avoid building outputs that are constants
Use levels or constants for values that do not change in the model. Instead of using a forest area output to calculate fixed costs, you could use a level. This is only relevant for outputs used in the Optimize section.
Look for opportunities to streamline
Outputs are likely the most important section in the model, and one of the most misunderstood sections. Take some time to consider whether your model formulation is efficient. A model that takes two days to generate and solve may be sufficient for a strategic analysis run on a yearly basis or more infrequently, while a model that takes an hour may be too long for a weekly application run.
Using a decision support application is not just about loading data and pushing the button. Care and due diligence are required to ensure that the correct information comes in and out of the process efficiently. And of course, with respect to performance, even though your model may contain some inefficient formulations, if it is running quickly you really don’t need to fix it. Nonetheless, it is very important to be aware of how your formulation impacts performance and quality of the solution.