Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin


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

http

https://

fews

fewsdocs.

wldelft

deltares.nl/schemas/version1.0/decisionModule.xsd

Entry in ModuleDescriptors

Code Blockxmlxml
<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
xml
xml
titleExample variable definition

	<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

Image RemovedImage Added

Rules definition

The Rules section defines the rules which will be used by the decision entries of each decisionTree.

Schema definition

Image RemovedImage Added

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
xml
xml
titleExample decistionTree

	<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

Image RemovedImage Added

evaluationType
stateDefinitionId
inputState

...

Code Block
xml
xml
titleExample decisionEvalution

	<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:

...