Unrolling Dynamic Programming via Graph Filters

Sergio Rozada, Samuel Rey, Gonzalo Mateos, Antonio G. Marques
7/29/2025
cs.AI

No confident code implementation found for this paper.

Abstract

Dynamic programming (DP) is a fundamental tool used across many engineering fields. The main goal of DP is to solve Bellman's optimality equations for a given Markov decision process (MDP). Standard methods like policy iteration exploit the fixed-point nature of these equations to solve them iteratively. However, these algorithms can be computationally expensive when the state-action space is large or when the problem involves long-term dependencies. Here we propose a new approach that unrolls and truncates policy iterations into a learnable parametric model dubbed BellNet, which we train to minimize the so-termed Bellman error from random value function initializations. Viewing the transition probability matrix of the MDP as the adjacency of a weighted directed graph, we draw insights from graph signal processing to interpret (and compactly re-parameterize) BellNet as a cascade of nonlinear graph filters. This fresh look facilitates a concise, transferable, and unifying representation of policy and value iteration, with an explicit handle on complexity during inference. Preliminary experiments conducted in a grid-like environment demonstrate that BellNet can effectively approximate optimal policies in a fraction of the iterations required by classical methods.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. Any repos shown below are weak matches — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Similar Papers

Cite this paper

@article{rozada2025unrolling,
  title  = {Unrolling Dynamic Programming via Graph Filters},
  author = {Sergio Rozada and Samuel Rey and Gonzalo Mateos and Antonio G. Marques},
  year   = {2025},
  eprint = {2507.21705},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2507.21705v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2507.21705.svg)](https://codeofpaper.com/paper/2507.21705)

Discussion