scrollbar |
---|
*** !!! This page is under construction / valid from Delft-FEWS version 2011.01 !!! ***
Decision Module
What | nameofinstance.xml |
---|---|
Description | Configuration for the Decision module |
schema location |
Entry in ModuleDescriptors
<moduleDescriptor id="DecisionModule">
<description>DecisionModule</description>
<className>nl.wldelft.fews.system.plugin.decisionmodule.DecisionModule</className>
</moduleDescriptor>
...
...
Please note that at the moment the Decision Module is only available in the development build (2011.01).
Contents
Table of Contents |
---|
Overview
The Decision Module in Delft-FEWS is used to implement decision logic and evaluation for barriers. With this module we can iteratively evaluate configurated decision rules. The configuration file of the Decision Module contains the definition of one or more Decision Trees. These Decision Trees defined in the Decision Module are associated with a Barrier definition which are defined by the Barriers configuration file.
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<variable>
<variableId>SVKW.position.in</variableId>
<timeSeriesSet>
<moduleInstanceId>RMM_Structures_Forecast_Processing_Extrapolate</moduleInstanceId>
<valueType>scalar</valueType>
<parameterId>State.position.meting</parameterId>
<locationId>SVKW</locationId>
<timeSeriesType>simulated forecasting</timeSeriesType>
<timeStep unit="minute" multiplier="10"/>
<relativeViewPeriod unit="day" start="0" end="1" endOverrulable="true"/>
<readWriteMode>add originals</readWriteMode>
</timeSeriesSet>
</variable>
<variable>
<variableId>SVKW.position.dss</variableId>
<timeSeriesSet>
<moduleInstanceId>RMM_DecisionTree</moduleInstanceId>
<valueType>scalar</valueType>
<parameterId>State.position.meting</parameterId>
<locationId>SVKW</locationId>
<timeSeriesType>simulated forecasting</timeSeriesType>
<timeStep unit="minute" multiplier="10"/>
<relativeViewPeriod unit="day" start="0" end="1" endOverrulable="true"/>
<readWriteMode>add originals</readWriteMode>
</timeSeriesSet>
</variable>
|
...
Schema definition
Rules definition
The Rules section defines the rules which will be used by the decision entries of each decisionTree.
Schema definition
variables
This section contain a set of variables defined only for the rule definitions. For a description of the variables see the section above.
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<decisionTree>
<barrierId>scheepvaart</barrierId>
<decision id="Stremming (peilsluiting)">
<evaluationType>lastKnownState</evaluationType>
<stateDefinitionId>scheepvaart</stateDefinitionId>
<inputState>
<stateValueId>geen stremming</stateValueId>
</inputState>
<conditionRules>
<allValid>
<anyValid>
<isTrue>H.rotterdam.d</isTrue>
<isTrue>H.dordrecht.d</isTrue>
</anyValid>
<isFalse>Q.lobith</isFalse>
</allValid>
</conditionRules>
<transitionRules>
<anyValid>
<isTrue>scheepvaart.stremming.peilsluiting.rotterdam</isTrue>
<isTrue>scheepvaart.stremming.peilsluiting.dordrecht</isTrue>
</anyValid>
</transitionRules>
<outputState>
<stateValueId>gestremd</stateValueId>
</outputState>
</decision>
<decision id="Stremming (kenteringsluiting)">
...
</decision>
<decision id="Vrijgeven scheepvaart">
...
</decision>
</decisionTree>
|
...
Decision definition
Schema definition
evaluationType
stateDefinitionId
inputState
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<decisionEvaluation>
<initialConditionalWorkflow>
<variableId>SVKH.position.in</variableId>
<variableId>SVKW.position.in</variableId>
<variableId>scheepvaart.in</variableId>
<workflowId>Sobek_DSS_Forecast</workflowId>
</initialConditionalWorkflow>
<conditionalWorkflow>
<variableId>SVKH.position.dss</variableId>
<variableId>SVKW.position.dss</variableId>
<variableId>scheepvaart.dss</variableId>
<stateChanges>
<evaluationType>FirstInTime</evaluationType>
<stateChange>
<decisionTreeId>SVKH</decisionTreeId>
</stateChange>
<stateChange>
<decisionTreeId>SVKW</decisionTreeId>
</stateChange>
<stateChange>
<decisionTreeId>scheepvaart</decisionTreeId>
</stateChange>
</stateChanges>
<workflowId>Sobek_DSS_Forecast</workflowId>
</conditionalWorkflow>
</decisionEvaluation>
|
...
After running the model for the first time, we need to evaluate the decision logic prior to a (possible) second run. If a state change occurs in the decisionTree, we need to run the model again taking this state change into account. From the second iteration and onwards, the section within the 'conditionalWorkflow' tag will be run. Note that we need to evaluate three state changes in this case (SVKH = the position of the Hartelkering, SVKW = the position of the Maeslantkering and scheepvaart = the "shipping state"), each of which has a separate decisionTree definition.
evaluationType
If one state variable changes value, this will change the overall system state, and hence may effect the evaluation of the other state variables. There are to options which can be defined:
...