DORASolvers.jl
DORA (Dijkstra Oracle Reduced-cost Algorithm) is an online solver for stochastic shortest path (SSP) problems specified using the POMDPs.jl interface.
The idea
A one-pass label-setting method such as Dijkstra is usually dismissed for stochastic shortest path problems because it is only exact when the value function decreases along every positive-probability transition. The condition that actually matters is weaker: if the reduced costs
\[w^*(s,a) = Q^*(s,a) - V^*(\sigma(s,a))\]
are nonnegative, where $\sigma(s,a)$ is the intended successor of action $a$ in state $s$, then Dijkstra run with them as edge weights returns exactly the optimal value function and exactly the optimal policy. DORA estimates these weights online, using one confidence bound per state-action pair and a fixed number of Dijkstra oracle calls per episode, and never estimates a transition kernel.
Like MCTS.jl, DORA follows the online-solver pattern of POMDPs.jl: solve converts the MDP into a tabular SSP and returns a planner; the Dijkstra oracle calls run lazily at decision time inside action.
Installation
DORASolvers is in the General registry:
import Pkg
Pkg.add("DORASolvers")For the unreleased development version:
Pkg.add(url="https://github.com/ai-vnv/DORASolvers.jl")Quick start
using POMDPs
using DORASolvers
using POMDPModels
using POMDPTools
rewards = Dict(GWPos(4, 3) => -10.0, GWPos(4, 6) => -10.0,
GWPos(9, 3) => 10.0)
mdp = SimpleGridWorld(size=(10, 10), rewards=rewards, tprob=0.7)
planner = solve(DORASolver(start=GWPos(1, 1)), mdp)
a = action(planner, GWPos(1, 1)) # plans on first query
v = value(planner, GWPos(1, 1)) # negated learned cost-to-goal
r = simulate(RolloutSimulator(max_steps=100), mdp, planner)Manual outline
Citation
If you use this package, please cite the paper it implements:
Mansur M. Arief, Ali Akarma, Ahmad Alfan Alfian Irfan. Dijkstra as an Oracle for Online Stochastic Shortest Path Navigation with Provable Guarantees. arXiv:2608.17703, 2026. https://arxiv.org/abs/2608.17703
@misc{arief2026dijkstraoracleonlinestochastic,
title={Dijkstra as an Oracle for Online Stochastic Shortest Path Navigation with Provable Guarantees},
author={Mansur M. Arief and Ali Akarma and Ahmad Alfan Alfian Irfan},
year={2026},
eprint={2608.17703},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2608.17703},
}