--- 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%"> ![](https://gamma-opt.github.io/DecisionProgramming.jl/dev/examples/figures/n-month-pig-breeding.svg) </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>