---
slideOptions:
transition: slide
theme: white
---
## DecisionProgramming.jl
---
## History in short
<span>- 2018-2019: Ahti, Juho and Fabricio write the first revision of *Decision Programming for Mixed-Integer Multi-Stage Optimization under Uncertainty* ([arXiv](https://arxiv.org/pdf/1910.09196.pdf))<!-- .element: class="fragment" data-fragment-index="1" --></span>
<span>- 2020: Jaan built a Julia package implementing the Decision Programming framework<!-- .element: class="fragment" data-fragment-index="2" --></span>
<span>- 2021: Helmi improved the package by both making the interface more user-friendly and changing the underlying problem formulation to a tighter version that Juho had figured out<!-- .element: class="fragment" data-fragment-index="3" --></span>
---
<span style="float: right; width: 30%">

</span>
<span style="float: left; width: 70%">
```julia
using JuMP, Gurobi
using DecisionProgramming
const N = 4
diagram = InfluenceDiagram()
add_node!(diagram, ChanceNode("H1", [], ["ill", "healthy"]))
for i in 1:N-1
# Testing result
add_node!(diagram, ChanceNode("T$i", ["H$i"], ["positive", "negative"]))
# Decision to treat
add_node!(diagram, DecisionNode("D$i", ["T$i"], ["treat", "pass"]))
# Cost of treatment
add_node!(diagram, ValueNode("C$i", ["D$i"]))
# Health of next period
add_node!(diagram, ChanceNode("H$(i+1)", ["H$(i)", "D$(i)"], ["ill", "healthy"]))
end
add_node!(diagram, ValueNode("MP", ["H$N"]))
```
</span>