Learning Algorithms for Verification of Markov Decision Processes
<|reference_start|>Learning Algorithms for Verification of Markov Decision Processes: We present a general framework for applying learning algorithms and heuristical guidance to the verification of Markov decision processes (MDPs). The primary goal of our techniques is to improve performance by avoiding an exhaustive exploration of the state space, instead focussing on particularly relevant areas of the system, guided by heuristics. Our work builds on the previous results of Br{\'{a}}zdil et al., significantly extending it as well as refining several details and fixing errors.   The presented framework focuses on probabilistic reachability, which is a core problem in verification, and is instantiated in two distinct scenarios. The first assumes that full knowledge of the MDP is available, in particular precise transition probabilities. It performs a heuristic-driven partial exploration of the model, yielding precise lower and upper bounds on the required probability. The second tackles the case where we may only sample the MDP without knowing the exact transition dynamics. Here, we obtain probabilistic guarantees, again in terms of both the lower and upper bounds, which provides efficient stopping criteria for the approximation. In particular, the latter is an extension of statistical model-checking (SMC) for unbounded properties in MDPs. In contrast to other related approaches, we do not restrict our attention to time-bounded (finite-horizon) or discounted properties, nor assume any particular structural properties of the MDP.<|reference_end|>
@article{brázdil2024learning,
    title={Learning Algorithms for Verification of Markov Decision Processes},
    author={Tom'av{s} Br'azdil, Krishnendu Chatterjee, Martin Chmelik,
  Vojtv{e}ch Forejt, Jan Kv{r}et'insk'y, Marta Kwiatkowska, Tobias
  Meggendorfer, David Parker and Mateusz Ujma},
    journal={arXiv preprint arXiv:2403.09184},
    year={2024},
    archivePrefix={arXiv},
    eprint={2403.09184},
    primaryClass={eess.SY cs.AI cs.LO cs.SY}
}