# Usage

On this page, we demonstrate common patterns for expressing influence diagrams and creating decision models using DecisionProgramming.jl. We can import the package with the using keyword.

using DecisionProgramming

## Chance Nodes Given the above influence diagram, we can create the ChanceNode and Probabilities structures for the node 3 as follows:

S = States([2, 3, 2])
j = 3
I_j = Node[1, 2]
X_j = zeros(S[I_j]..., S[j])
X_j[1, 1, :] = [0.1, 0.9]
X_j[1, 2, :] = [0.0, 1.0]
X_j[1, 3, :] = [0.3, 0.7]
X_j[2, 1, :] = [0.2, 0.8]
X_j[2, 2, :] = [0.4, 0.6]
X_j[2, 3, :] = [1.0, 0.0]
ChanceNode(j, I_j)
Probabilities(j, X_j)

## Decision Nodes Given the above influence diagram, we can create the DecisionNode structure for the node 3 as follows:

S = States([2, 3, 2])
j = 3
I_j = Node[1, 2]
DecisionNode(j, I_j)

## Value Nodes Given the above influence diagram, we can create ValueNode and Consequences structures for node 3 as follows:

S = States([2, 3])
j = 3
I_j = [1, 2]
Y_j = zeros(S[I_j]...)
Y_j[1, 1] = -1.3
Y_j[1, 2] = 2.5
Y_j[1, 3] = 0.1
Y_j[2, 1] = 0.0
Y_j[2, 2] = 3.2
Y_j[2, 3] = -2.7
ValueNode(j, I_j)
Consequences(j, Y_j)