LANGUAGE: ENGLISH | FRANÇAIS | Chinese
Remsoft: Software for Sustainable Growth
HomeAbout UsProducts & ServicesOur PartnersSupportNews & EventsContact
SUPPORT
About Support

Contact Support

Tech Tips

Library

Download BBR



RECENT NEWS
August 17th, 2010
Infrastructure Sustainability Service reveals funding gaps in transportation asset management
July 7th, 2010
Remsoft joins GIS elite as ESRI Business Partner
June 30th, 2010
New Remsoft Tactical Planner release offers speed and agility to improve performance and communicate results
More news...
Share on Facebook Share on Twitter Share on Delicious.com Digg! this page

Tech Tips
  Printer Friendly
Understanding Action Operability

Actions are the decision points in Remsoft models.  It is via actions that you define all of the development-altering events that the model can select from when optimizing.  The purpose of this tech tip is to describe the different ways that you can declare action operability in models. 

The decision variable in a Woodstock model is the area allocated to action X in period Y.  More precisely, it is the amount of area of a particular development type, at a particular age, to assign to a particular action in a particular planning period.  Thus, you must indicate to the model the development types that are eligible for actions and at what ages.  There are several ways to do this.

1.  Defining operability by age
First, you can declare the development types and age classes eligible directly.  You can do this in one of two ways: using a conditional statement or an end-point statement.

1a.  Conditional operability
Conditional age statements are straightforward and the most commonly used method for declaring operability in models.  You simply declare the development types operable using a mask, and then supply the operable ages using the _AGE keyword in conditional statements as indicated below.

*ACTION MyAction Y
*OPERABLE MyAction
  Mask  _AGE >=/=/<=  X and/or _AGE >=/=/<= Y  and so on up to six age references.

1b.  End point operability
End point age statements are another way to declare eligible age classes except these always include two parameters, and they do not require operators.  The two parameters are the age class when types are first and last operable as indicated below.

*ACTION MyAction Y
*OPERABLE MyAction
  Mask  _AGE  X _AGE  Y 
where X is the age that types are first operable and Y is the age that types are last operable.  All ages in between the two end points are operable.

2.  Defining operability by yield condition
Second, you can declare operability using yield conditions and the system will determine the matching age classes for you.  This can be done using conditional or end point statements.

2a.  Condition operability
*ACTION MyAction Y
*OPERABLE MyAction
  Mask  YieldTable >=/=/<=  X and/or YieldTable >=/=/<= Y  and so on up to six yield references.

2b.  End point operability
*ACTION MyAction Y
*OPERABLE MyAction
  Mask  YieldTable  X YieldTable  Y 
where X is the yield condition when types are first operable and Y is the yield condition when types are last operable.  The system will determine the ages associated with the yield conditions and all ages between the two end points are operable.

You can see that a conditional operability and end point operability statements are very similar and you can mix ages and yield conditions within a single statement (e.g. types must be of some minimum age and of some minimum yield condition before they can be treated).

3.  Defining operability by time period
Third, you can specify operability based on the planning period.  This is generally described as time-dependent operability.  You do this using the _CP keyword (for referencing the Current Planning period) in conditional and end point statements.

3a.  Conditional operability
*ACTION MyAction Y
*OPERABLE MyAction
  Mask  _CP  >= /=/<=  X and/or _CP  >=/=/<=  Y 
where X and Y are whole numbers greater than zero.

3b.  End point operability
*ACTION MyAction Y
*OPERABLE MyAction
  Mask  _CP  X _CP  Y 
where X is the planning period that types are first operable and Y is the planning period that types are last operable.  This form of time-dependent operability is not commonly used.

3c.  Multiple operability declarations
The other way to declare time-dependent operability is on the *OPERABLE line.  If you only supply a single operable statement for an action, it applies in all planning periods.  However, you can provide a different operability statement for one or more planning periods for an action as follows:

*ACTION MyAction Y
*OPERABLE MyAction  _CP PeriodRange1
  Mask  Operability statement1
*OPERABLE MyAction  _CP PeriodRange2
  Mask  Operability statement2
And so on… 
In theory, you could have a separate operability declaration for every period in the model, but this rarely done and usually not necessary.
This allows great control over the decision matrix by allowing you to combine age and/or yield conditional statements with time-dependent rules.  It can be a very effective way to limit the decision matrix by limiting operability over time.



Stora Enso Predicts a 2.5% Savings

Stora Enso Predicts a 2.5% Savings

“We asked, ‘If we had made the decision and optimized the problems, how much money would we have saved?’” The answer was approximately 2.5 percent.”

- Continue reading...
- View all case studies...
Remsoft RSS News Feed Remsoft RSS News Feed
ABOUT US   |   OUR SOLUTIONS   |   SUPPORT   |   NEWS & EVENTS   |   DOWNLOADS   |   CONTACT
Copyright © 2010 Remsoft®         Legal  |  Privacy  |  Site Map