POMDPPlanners Documentation
POMDPPlanners is a comprehensive Python package for POMDP (Partially Observable Markov Decision Process) planning algorithms and environments. It provides standardized simulation studies for research and reliable implementations of planning algorithms for industrial applications.
🎯 Key Features
Comprehensive Algorithm Library: State-of-the-art POMDP planning algorithms including POMCP, PFT-DPW, Sparse PFT, and more
Rich Environment Collection: Classic and modern POMDP environments (Tiger, Light-Dark, CartPole, Push, Safety-Ant-Velocity, etc.)
Flexible Belief Representations: Particle filters (weighted and unweighted), vectorized particle beliefs with batched NumPy updates, Gaussian beliefs, and custom belief state implementations
Simulation Framework: Complete experiment management with hyperparameter tuning and distributed computing support
Visualization Tools: Built-in plotting and visualization capabilities for analysis and debugging
Production Ready: Designed for both research experiments and industrial applications
🚀 Quick Start
Installation
# Clone the repository
git clone https://github.com/yaacovpariente/POMDPPlanners.git
cd POMDPPlanners
# Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\\Scripts\\activate
# Install dependencies
pip install -r requirements.txt
pip install -e . # Install in development mode
Basic Usage
from POMDPPlanners.environments.tiger_pomdp import TigerPOMDP
from POMDPPlanners.planners.mcts_planners.pomcp import POMCP
from POMDPPlanners.core.belief import WeightedParticleBelief
# Create environment and planner
env = TigerPOMDP()
planner = POMCP(env, num_simulations=1000)
# Initialize belief and run planning
initial_belief = WeightedParticleBelief.create_uniform_belief(
env.get_states(), num_particles=1000
)
# Get action from planner
action = planner.get_action(initial_belief)
print(f"Recommended action: {action}")
📚 Documentation Sections
User Guide
Core Components
API Reference
🏗️ Architecture Overview
Core Components
POMDPPlanners.core: Fundamental abstractions (Environment, Policy, Belief, Distributions)
POMDPPlanners.environments: POMDP environment implementations
POMDPPlanners.planners: Planning algorithm implementations
POMDPPlanners.simulations: Experiment management and execution framework
POMDPPlanners.utils: Helper functions and visualization tools
Supported Algorithms
MCTS-Based Planners
POMCP: Partially Observable Monte Carlo Planning
PFT-DPW: Progressive Widening with Particle Filter Trees
Sparse PFT: Sparse sampling with Particle Filter Trees
Other Planners
Sparse Sampling: Classical sparse sampling algorithm
Open Loop Planners: Non-feedback planning approaches
Available Environments
Tiger POMDP: Classic two-door problem
Light-Dark POMDP: Navigation with position-dependent observation noise (continuous and discrete variants)
CartPole POMDP: Partially observable cart-pole balancing
Mountain Car POMDP: Partially observable mountain car
Push POMDP: Object manipulation environment (discrete and continuous variants)
RockSample POMDP: Classic rock-sampling benchmark with long-horizon information gathering
PacMan POMDP: Partially observable PacMan domain
Continuous LaserTag POMDP: Laser-based pursuit-evasion with continuous state
Safety Ant Velocity: Safety-constrained locomotion task
🤝 Contributing
We welcome contributions of all kinds! Please see our contributing guide for details on:
Setting up the development environment
Coding guidelines and standards
Submitting pull requests
Reporting bugs and requesting features
📄 License
This project is licensed under the MIT License - see the LICENSE.md file for details.
🎓 Citation
If you use POMDPPlanners in your research, please cite:
@misc{pariente2026pomdpplannersopensourcepackagepomdp,
title={POMDPPlanners: Open-Source Package for POMDP Planning},
author={Yaacov Pariente and Vadim Indelman},
year={2026},
eprint={2602.20810},
archivePrefix={arXiv},
primaryClass={cs.AI},
url={https://arxiv.org/abs/2602.20810},
}