POMDPPlanners 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pomdpplanners-0.1.0/LICENSE.md +7 -0
- pomdpplanners-0.1.0/PKG-INFO +378 -0
- pomdpplanners-0.1.0/POMDPPlanners/__init__.py +3 -0
- pomdpplanners-0.1.0/POMDPPlanners/configs/__init__.py +4 -0
- pomdpplanners-0.1.0/POMDPPlanners/configs/environment_configs.py +532 -0
- pomdpplanners-0.1.0/POMDPPlanners/configs/experiment_configs.py +474 -0
- pomdpplanners-0.1.0/POMDPPlanners/configs/planners_hyperparam_configs.py +343 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/__init__.py +1 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/belief/__init__.py +56 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/belief/base_belief.py +145 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/belief/belief_utils.py +118 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/belief/gaussian_belief.py +182 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/belief/gaussian_belief_updaters.py +347 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/belief/gaussian_mixture_belief.py +287 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/belief/particle_beliefs.py +830 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/belief/vectorized_particle_belief_updater.py +59 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/belief/vectorized_weighted_particle_belief.py +225 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/config_types.py +117 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/cost.py +247 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/distributions.py +150 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/environment.py +946 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/policy.py +681 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/serialization.py +385 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/simulation/__init__.py +38 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/simulation/history.py +204 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/simulation/hyperparameter_tuning.py +479 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/simulation/metrics.py +8 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/simulation/simulation_configs.py +158 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/simulation/tasks.py +343 -0
- pomdpplanners-0.1.0/POMDPPlanners/core/tree.py +170 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/__init__.py +134 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/cartpole_pomdp.py +445 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/cartpole_pomdp_beliefs.py +291 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/cartpole_pomdp_gaussian_beliefs.py +255 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/__init__.py +27 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/continuous_laser_tag_geometry.py +439 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/continuous_laser_tag_pomdp.py +861 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/continuous_laser_tag_visualizer.py +565 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/laser_tag_pomdp.py +1176 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/laser_tag_pomdp_beliefs/__init__.py +19 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/laser_tag_pomdp_beliefs/continuous_laser_tag_belief_factory.py +76 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/laser_tag_pomdp_beliefs/continuous_laser_tag_vectorized_updater.py +309 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/laser_tag_pomdp_beliefs/laser_tag_belief_factory.py +68 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/laser_tag_pomdp_beliefs/laser_tag_vectorized_updater.py +440 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/laser_tag_visualizer.py +549 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/continuous_light_dark_pomdp.py +687 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/discrete_light_dark_pomdp.py +367 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/light_dark_pomdp_beliefs/__init__.py +17 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/light_dark_pomdp_beliefs/continuous_light_dark_belief_factory.py +104 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/light_dark_pomdp_beliefs/continuous_light_dark_gaussian_beliefs.py +141 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/light_dark_pomdp_beliefs/continuous_light_dark_vectorized_updater.py +242 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/light_dark_pomdp_utils/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/light_dark_pomdp_utils/base_light_dark_pomdp.py +441 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/light_dark_pomdp_utils/light_dark_observation_models.py +582 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/light_dark_pomdp_utils/light_dark_reward_models.py +188 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/light_dark_pomdp_utils/light_dark_visualizer.py +327 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/mountain_car_pomdp.py +388 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/mountain_car_pomdp_beliefs.py +254 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/mountain_car_pomdp_gaussian_beliefs.py +205 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/pacman_pomdp/__init__.py +17 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/pacman_pomdp/pacman_pomdp.py +1356 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/pacman_pomdp/pacman_visualizer.py +304 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/__init__.py +43 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/continuous_push_geometry.py +307 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/continuous_push_pomdp.py +688 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/continuous_push_pomdp_visualizer.py +567 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/push_pomdp.py +777 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/push_pomdp_beliefs/__init__.py +19 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/push_pomdp_beliefs/continuous_push_belief_factory.py +69 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/push_pomdp_beliefs/continuous_push_vectorized_updater.py +237 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/push_pomdp_beliefs/push_belief_factory.py +66 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/push_pomdp_beliefs/push_vectorized_updater.py +216 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/push_pomdp_visualizer.py +486 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/rock_sample_pomdp/__init__.py +40 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/rock_sample_pomdp/rock_sample_pomdp.py +649 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/rock_sample_pomdp/rock_sample_visualizer.py +383 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/safety_ant_velocity_pomdp/__init__.py +21 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/safety_ant_velocity_pomdp/safety_ant_velocity_pomdp.py +590 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/safety_ant_velocity_pomdp/safety_ant_velocity_pomdp_beliefs/__init__.py +11 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/safety_ant_velocity_pomdp/safety_ant_velocity_pomdp_beliefs/safety_ant_velocity_belief_factory.py +70 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/safety_ant_velocity_pomdp/safety_ant_velocity_pomdp_beliefs/safety_ant_velocity_vectorized_updater.py +172 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/safety_ant_velocity_pomdp/safety_ant_velocity_visualizer.py +364 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/sanity_pomdp.py +354 -0
- pomdpplanners-0.1.0/POMDPPlanners/environments/tiger_pomdp.py +362 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/__init__.py +85 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/__init__.py +1 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/beta_zero/__init__.py +48 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/beta_zero/belief_representation.py +156 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/beta_zero/beta_zero.py +795 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/beta_zero/beta_zero_action_sampler.py +150 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/beta_zero/beta_zero_network.py +332 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/beta_zero/puct.py +128 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/beta_zero/training.py +212 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/beta_zero/training_buffer.py +143 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/constrained_zero/__init__.py +37 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/constrained_zero/constrained_puct.py +138 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/constrained_zero/constrained_training.py +213 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/constrained_zero/constrained_training_buffer.py +102 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/constrained_zero/constrained_zero.py +533 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/constrained_zero/constrained_zero_network.py +182 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/icvar_pft_dpw.py +230 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/icvar_pomcpow.py +361 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/pft_dpw.py +310 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/pomcp.py +247 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/pomcp_dpw.py +299 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/pomcpow.py +296 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/sparse_pft.py +273 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/open_loop_planners/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/open_loop_planners/discrete_action_sequences_planner.py +149 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/planners_utils/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/planners_utils/cvar_exploration.py +94 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/planners_utils/cvar_progressive_widening.py +47 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/planners_utils/dpw.py +553 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/planners_utils/path_simulations_policy.py +407 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/planners_utils/rollout.py +78 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/sparse_sampling_planners/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/sparse_sampling_planners/icvar_sparse_sampling.py +132 -0
- pomdpplanners-0.1.0/POMDPPlanners/planners/sparse_sampling_planners/sparse_sampling.py +267 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/__init__.py +31 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/episodes.py +333 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/hyper_parameter_tuning_simulations.py +844 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/simulation_apis/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/simulation_apis/dask_simulations_api.py +686 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/simulation_apis/local_simulations_api.py +927 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/simulation_apis/pbs_simulations_api.py +740 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/simulation_apis/simulations_api_interface.py +364 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/simulation_statistics.py +611 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/simulations_deployment/__init__.py +152 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/simulations_deployment/cache_dbs.py +93 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/simulations_deployment/task_manager_configs.py +93 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/simulations_deployment/task_managers.py +743 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/simulations_deployment/tasks/__init__.py +13 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/simulations_deployment/tasks/episode_simulation_task.py +586 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/simulations_deployment/tasks/hyper_parameter_tuning_simulation_task.py +1050 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/simulator.py +1218 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/workflows/__init__.py +33 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/workflows/evaluation.py +299 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/workflows/hyperparameter_tuning_evaluation_workflows.py +516 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/workflows/integrated.py +321 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/workflows/optimization.py +458 -0
- pomdpplanners-0.1.0/POMDPPlanners/simulations/workflows/planner_evaluation_workflow.py +299 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/__init__.py +1 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/conftest.py +110 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_configs/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_configs/test_environment_configs.py +597 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_configs/test_experiment_configs.py +1756 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_configs/test_planners_hyperparam_configs.py +741 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_belief/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_belief/test_base.py +384 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_belief/test_belief_environment_integration.py +652 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_belief/test_belief_utils.py +417 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_belief/test_gaussian_belief.py +630 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_belief/test_gaussian_belief_updaters.py +692 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_belief/test_gaussian_mixture_belief.py +712 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_belief/test_particle_beliefs.py +2772 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_belief/test_vectorized_weighted_particle_belief.py +397 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_cost.py +731 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_distributions.py +188 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_environment.py +478 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_hyper_parameter_tuning.py +1753 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_policy.py +356 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_serialization.py +956 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_simulation.py +341 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_simulation_configs.py +706 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_tree.py +706 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_cartpole_pomdp.py +755 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_cartpole_pomdp_belief_factory.py +111 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_cartpole_pomdp_beliefs.py +310 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_cartpole_pomdp_gaussian_beliefs.py +617 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_environment_serialization.py +754 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_environment_visualizations_golden_files.py +958 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_laser_tag_pomdp/__init__.py +6 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_laser_tag_pomdp/test_continuous_laser_tag_geometry.py +342 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_laser_tag_pomdp/test_continuous_laser_tag_pomdp.py +1002 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_laser_tag_pomdp/test_continuous_laser_tag_visualizer.py +136 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_laser_tag_pomdp/test_laser_tag_pomdp.py +2054 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_laser_tag_pomdp/test_laser_tag_pomdp_beliefs/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_laser_tag_pomdp/test_laser_tag_pomdp_beliefs/test_continuous_laser_tag_belief_factory.py +140 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_laser_tag_pomdp/test_laser_tag_pomdp_beliefs/test_continuous_laser_tag_vectorized_updater.py +296 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_laser_tag_pomdp/test_laser_tag_pomdp_beliefs/test_laser_tag_belief_factory.py +97 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_laser_tag_pomdp/test_laser_tag_pomdp_beliefs/test_laser_tag_vectorized_updater.py +603 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_laser_tag_pomdp/test_laser_tag_visualizer.py +179 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_light_dark_pomdp/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_light_dark_pomdp/light_dark_pomdp_utils/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_light_dark_pomdp/light_dark_pomdp_utils/test_light_dark_observation_models.py +2149 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_light_dark_pomdp/light_dark_pomdp_utils/test_light_dark_reward_models.py +857 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_light_dark_pomdp/test_continuous_light_dark_pomdp.py +2231 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_light_dark_pomdp/test_discrete_light_dark_pomdp.py +1579 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_light_dark_pomdp/test_light_dark_pomdp_beliefs/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_light_dark_pomdp/test_light_dark_pomdp_beliefs/test_continuous_light_dark_belief_factory.py +188 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_light_dark_pomdp/test_light_dark_pomdp_beliefs/test_continuous_light_dark_gaussian_beliefs.py +412 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_light_dark_pomdp/test_light_dark_pomdp_beliefs/test_continuous_light_dark_vectorized_updater.py +506 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_mountain_car_pomdp.py +1045 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_mountain_car_pomdp_belief_factory.py +97 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_mountain_car_pomdp_beliefs.py +345 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_mountain_car_pomdp_gaussian_beliefs.py +623 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_pacman_pomdp.py +1885 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_push_pomdp/__init__.py +8 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_push_pomdp/test_continuous_push_geometry.py +217 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_push_pomdp/test_continuous_push_pomdp.py +648 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_push_pomdp/test_push_pomdp.py +1249 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_push_pomdp/test_push_pomdp_beliefs/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_push_pomdp/test_push_pomdp_beliefs/test_continuous_push_belief_factory.py +111 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_push_pomdp/test_push_pomdp_beliefs/test_continuous_push_vectorized_updater.py +157 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_push_pomdp/test_push_pomdp_beliefs/test_push_belief_factory.py +97 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_push_pomdp/test_push_pomdp_beliefs/test_push_vectorized_updater.py +548 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_rock_sample_pomdp/__init__.py +6 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_rock_sample_pomdp/test_rock_sample_pomdp.py +1282 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_rock_sample_pomdp/test_rock_sample_visualizer.py +137 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_safety_ant_velocity_pomdp/__init__.py +1 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_safety_ant_velocity_pomdp/test_safety_ant_velocity_pomdp.py +954 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_safety_ant_velocity_pomdp/test_safety_ant_velocity_pomdp_beliefs/__init__.py +1 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_safety_ant_velocity_pomdp/test_safety_ant_velocity_pomdp_beliefs/test_safety_ant_velocity_belief_factory.py +101 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_safety_ant_velocity_pomdp/test_safety_ant_velocity_pomdp_beliefs/test_safety_ant_velocity_vectorized_updater.py +368 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_sanity_pomdp.py +853 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_tiger_pomdp.py +696 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_examples/__init__.py +6 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_examples/test_notebook_examples.py +346 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_interfaces/__init__.py +6 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_interfaces/fixtures/__init__.py +5 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_interfaces/test_distributions.py +256 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_interfaces/test_observation_models.py +854 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_interfaces/test_state_transition_models.py +582 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_metric_consistency.py +238 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_metric_consistency_utils.py +178 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_beta_zero/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_beta_zero/test_belief_representation.py +210 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_beta_zero/test_beta_zero.py +537 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_beta_zero/test_beta_zero_action_sampler.py +380 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_beta_zero/test_beta_zero_network.py +270 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_beta_zero/test_puct.py +265 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_beta_zero/test_training.py +229 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_beta_zero/test_training_buffer.py +245 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_constrained_zero/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_constrained_zero/test_constrained_puct.py +312 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_constrained_zero/test_constrained_training.py +322 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_constrained_zero/test_constrained_training_buffer.py +212 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_constrained_zero/test_constrained_zero.py +544 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_constrained_zero/test_constrained_zero_network.py +360 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_icvar_pft_dpw.py +636 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_icvar_pomcpow.py +1386 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_path_simulation_policy.py +643 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_pft_dpw.py +706 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_pomcp.py +702 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_pomcp_dpw.py +1211 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_pomcpow.py +1286 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_sparse_pft.py +708 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_utils.py +203 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_open_loop_planners/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_open_loop_planners/test_discrete_action_sequences_planner.py +403 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_planner_save_load_interface.py +361 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_planner_serialization.py +781 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_planners_utils/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_planners_utils/test_dpw.py +1303 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_planners_utils/test_rollout.py +762 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_sparse_sampling_planners/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_sparse_sampling_planners/test_icvar_sparse_sampling.py +323 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_sparse_sampling_planners/test_sparse_sampling.py +469 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_setup.py +98 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/conftest.py +35 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_hyper_parameter_tuning_simulations.py +2814 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulation_statistics.py +829 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_apis/__init__.py +10 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_apis/api_test_fixtures.py +189 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_apis/api_test_mixins.py +769 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_apis/test_dask_simulations_api.py +341 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_apis/test_local_simulations_api.py +776 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_apis/test_pbs_simulations_api.py +284 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_deployment/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_deployment/test_cache_dbs.py +244 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_deployment/test_task_manager_configs.py +613 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_deployment/test_task_managers.py +2803 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_deployment/test_tasks/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_deployment/test_tasks/test_episode_simulation_task.py +1533 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_deployment/test_tasks/test_hyper_parameter_tuning_simulation_task.py +1835 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_deployment/test_tasks/test_task_serialization.py +904 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulator.py +3790 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulator_serialization.py +334 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_workflows/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_workflows/test_hyperparameter_tuning_evaluation_workflows.py +952 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_workflows/test_planner_evaluation_workflow.py +1476 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_training/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_training/test_callbacks.py +416 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_training/test_policy_trainer.py +266 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/confidence_interval_utils.py +69 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/history_builders.py +73 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_action_samplers.py +1061 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_belief_factory.py +338 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_confidence_interval_utils.py +146 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_config_loader.py +196 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_config_to_id.py +866 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_hyperparameter_tuning_and_eval.py +3163 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_logger.py +1032 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_memory_tracker.py +592 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_multivariate_normal.py +586 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_planner_episode_visualization.py +995 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_probability_utils.py +652 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_simulations_caching.py +641 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_statistics_utils.py +983 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_tree_statistics.py +109 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_visualization/__init__.py +11 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_visualization/test_metrics_plots.py +544 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_visualization/test_policy_simulation_plots.py +308 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_visualization/test_returns_plots.py +449 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_visualization/test_tree_plots.py +201 -0
- pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_weighted_particle_belief.py +606 -0
- pomdpplanners-0.1.0/POMDPPlanners/training/__init__.py +32 -0
- pomdpplanners-0.1.0/POMDPPlanners/training/callbacks.py +299 -0
- pomdpplanners-0.1.0/POMDPPlanners/training/policy_trainer.py +214 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/__init__.py +0 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/action_samplers.py +108 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/belief_factory.py +188 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/config_loader.py +177 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/config_to_id.py +74 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/distributed_computing.py +112 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/hyperparameter_tuning_and_eval.py +2079 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/logger.py +837 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/memory_tracker.py +445 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/multivariate_normal.py +179 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/planner_episode_visualization.py +69 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/simulations_caching.py +71 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/statistics_utils.py +799 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/tree_statistics.py +191 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/visualization/__init__.py +49 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/visualization/metrics_plots.py +331 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/visualization/plot_utils.py +83 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/visualization/policy_simulation_plots.py +293 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/visualization/returns_plots.py +176 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/visualization/tree_plots.py +290 -0
- pomdpplanners-0.1.0/POMDPPlanners/utils/weighted_particle_beliefs.py +256 -0
- pomdpplanners-0.1.0/POMDPPlanners.egg-info/PKG-INFO +378 -0
- pomdpplanners-0.1.0/POMDPPlanners.egg-info/SOURCES.txt +343 -0
- pomdpplanners-0.1.0/POMDPPlanners.egg-info/dependency_links.txt +1 -0
- pomdpplanners-0.1.0/POMDPPlanners.egg-info/requires.txt +47 -0
- pomdpplanners-0.1.0/POMDPPlanners.egg-info/top_level.txt +1 -0
- pomdpplanners-0.1.0/README.md +309 -0
- pomdpplanners-0.1.0/pyproject.toml +196 -0
- pomdpplanners-0.1.0/setup.cfg +4 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Copyright 2025 Yaacov Pariente
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the โSoftwareโ), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
4
|
+
|
|
5
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
6
|
+
|
|
7
|
+
THE SOFTWARE IS PROVIDED โAS ISโ, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: POMDPPlanners
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A Python package for POMDP planning algorithms and environments
|
|
5
|
+
Author-email: Yaacov Pariente <yaacovpar@gmail.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/yaacovpariente/POMDPPlanners
|
|
8
|
+
Project-URL: Bug Reports, https://github.com/yaacovpariente/POMDPPlanners/issues
|
|
9
|
+
Project-URL: Documentation, https://yaacovpariente.github.io/POMDPPlanners/
|
|
10
|
+
Keywords: pomdp,planning,reinforcement-learning,monte-carlo-tree-search,artificial-intelligence
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Intended Audience :: Science/Research
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering :: Mathematics
|
|
19
|
+
Classifier: Operating System :: OS Independent
|
|
20
|
+
Requires-Python: >=3.10
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE.md
|
|
23
|
+
Requires-Dist: numpy>=1.21.0
|
|
24
|
+
Requires-Dist: ray>=2.0.0
|
|
25
|
+
Requires-Dist: pandas>=1.3.0
|
|
26
|
+
Requires-Dist: matplotlib>=3.4.0
|
|
27
|
+
Requires-Dist: scipy>=1.7.0
|
|
28
|
+
Requires-Dist: gymnasium>=0.29.0
|
|
29
|
+
Requires-Dist: anytree>=2.8.0
|
|
30
|
+
Requires-Dist: mlflow>=2.0.0
|
|
31
|
+
Requires-Dist: redis>=4.0.0
|
|
32
|
+
Requires-Dist: seaborn>=0.11.0
|
|
33
|
+
Requires-Dist: plotly>=5.0.0
|
|
34
|
+
Requires-Dist: diskcache>=5.0.0
|
|
35
|
+
Requires-Dist: joblib>=1.0.0
|
|
36
|
+
Requires-Dist: tqdm>=4.62.0
|
|
37
|
+
Requires-Dist: optuna>=2.0.0
|
|
38
|
+
Requires-Dist: pyyaml>=6.0.0
|
|
39
|
+
Requires-Dist: dask>=2023.3.0
|
|
40
|
+
Requires-Dist: distributed>=2023.3.0
|
|
41
|
+
Requires-Dist: dask_jobqueue>=0.8.0
|
|
42
|
+
Requires-Dist: cachey>=0.2.1
|
|
43
|
+
Requires-Dist: torch>=2.0.0
|
|
44
|
+
Requires-Dist: tensorboard>=2.0.0
|
|
45
|
+
Requires-Dist: line_profiler>=4.0.0
|
|
46
|
+
Requires-Dist: memory_profiler>=0.60.0
|
|
47
|
+
Requires-Dist: psutil>=5.8.0
|
|
48
|
+
Requires-Dist: bokeh>=3.0.0
|
|
49
|
+
Provides-Extra: dev
|
|
50
|
+
Requires-Dist: pylint>=2.17.0; extra == "dev"
|
|
51
|
+
Requires-Dist: black==23.12.1; extra == "dev"
|
|
52
|
+
Requires-Dist: pyright>=1.1.0; extra == "dev"
|
|
53
|
+
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
|
|
54
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
55
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
56
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
57
|
+
Requires-Dist: nbval>=0.9.6; extra == "dev"
|
|
58
|
+
Requires-Dist: papermill>=2.6.0; extra == "dev"
|
|
59
|
+
Requires-Dist: setuptools>=65.0.0; extra == "dev"
|
|
60
|
+
Requires-Dist: ipykernel>=6.0.0; extra == "dev"
|
|
61
|
+
Requires-Dist: jupyter-client>=7.0.0; extra == "dev"
|
|
62
|
+
Requires-Dist: nbformat>=5.0.0; extra == "dev"
|
|
63
|
+
Provides-Extra: docs
|
|
64
|
+
Requires-Dist: sphinx>=5.0.0; extra == "docs"
|
|
65
|
+
Requires-Dist: sphinx-rtd-theme>=1.0.0; extra == "docs"
|
|
66
|
+
Requires-Dist: sphinx-autodoc-typehints>=1.17.0; extra == "docs"
|
|
67
|
+
Requires-Dist: myst-parser>=0.18.0; extra == "docs"
|
|
68
|
+
Dynamic: license-file
|
|
69
|
+
|
|
70
|
+
# POMDPPlanners
|
|
71
|
+
|
|
72
|
+
[](https://opensource.org/licenses/MIT)
|
|
73
|
+
[](https://www.python.org/downloads/release/python-3100/)
|
|
74
|
+
[](https://github.com/psf/black)
|
|
75
|
+
|
|
76
|
+
A comprehensive Python package for **POMDP (Partially Observable Markov Decision Process)** planning algorithms and environments. POMDPPlanners provides standardized simulation studies for research and reliable implementations of planning algorithms for industrial applications.
|
|
77
|
+
|
|
78
|
+
## ๐ฏ Key Features
|
|
79
|
+
|
|
80
|
+
- **Comprehensive Algorithm Library**: Implementations of state-of-the-art POMDP planning algorithms including POMCP, POMCPOW, POMCP-DPW, PFT-DPW, Sparse PFT, BetaZero, ConstrainedZero, and more
|
|
81
|
+
- **Rich Environment Collection**: Classic and modern POMDP environments (Tiger, Light-Dark, RockSample, LaserTag, PacMan, CartPole, Push, Safety-Ant-Velocity, etc.)
|
|
82
|
+
- **Flexible Belief Representations**: Particle filters, weighted beliefs, Gaussian beliefs, Gaussian mixture beliefs, and vectorized belief updaters
|
|
83
|
+
- **Simulation Framework**: Complete experiment management with hyperparameter tuning, high-level evaluation workflows, and distributed computing support
|
|
84
|
+
- **Visualization Tools**: Built-in plotting and visualization capabilities for analysis and debugging
|
|
85
|
+
- **Production Ready**: Designed for both research experiments and industrial applications
|
|
86
|
+
|
|
87
|
+
## ๐ Quick Start
|
|
88
|
+
|
|
89
|
+
### Installation
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# Clone the repository
|
|
93
|
+
git clone https://github.com/yaacovpariente/POMDPPlanners.git
|
|
94
|
+
cd POMDPPlanners
|
|
95
|
+
|
|
96
|
+
# Create and activate virtual environment
|
|
97
|
+
python -m venv .venv
|
|
98
|
+
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
|
99
|
+
|
|
100
|
+
# Install package (standard)
|
|
101
|
+
pip install -e .
|
|
102
|
+
|
|
103
|
+
# Install with development dependencies
|
|
104
|
+
pip install -e ".[dev]"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Basic Usage
|
|
108
|
+
|
|
109
|
+
```python
|
|
110
|
+
from POMDPPlanners.environments.tiger_pomdp import TigerPOMDP
|
|
111
|
+
from POMDPPlanners.planners.mcts_planners.pomcp import POMCP
|
|
112
|
+
from POMDPPlanners.core.belief import WeightedParticleBelief
|
|
113
|
+
|
|
114
|
+
# Create environment and planner
|
|
115
|
+
env = TigerPOMDP()
|
|
116
|
+
planner = POMCP(env, num_simulations=1000)
|
|
117
|
+
|
|
118
|
+
# Initialize belief and run planning
|
|
119
|
+
initial_belief = WeightedParticleBelief.create_uniform_belief(
|
|
120
|
+
env.get_states(), num_particles=1000
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
# Get action from planner
|
|
124
|
+
action = planner.get_action(initial_belief)
|
|
125
|
+
print(f"Recommended action: {action}")
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## ๐๏ธ Architecture Overview
|
|
129
|
+
|
|
130
|
+
### Core Components
|
|
131
|
+
|
|
132
|
+
- **`POMDPPlanners.core`**: Fundamental abstractions and interfaces
|
|
133
|
+
- `environment.py`: Base `Environment`, `DiscreteActionsEnvironment`, `SpaceType`, `ObservationModel`, `StateTransitionModel`
|
|
134
|
+
- `policy.py`: Base `Policy` and `TrainablePolicy` classes with config management and logging
|
|
135
|
+
- `belief/`: Belief state representations including:
|
|
136
|
+
- `WeightedParticleBelief`, `UnweightedParticleBelief` โ particle filter beliefs
|
|
137
|
+
- `GaussianBelief`, `GaussianMixtureBelief` โ parametric beliefs
|
|
138
|
+
- `VectorizedWeightedParticleBelief` โ vectorized particle belief for performance
|
|
139
|
+
- Gaussian belief updaters and vectorized particle belief updaters
|
|
140
|
+
- `cost.py`: Cost function abstractions for constrained planning
|
|
141
|
+
- `distributions.py`: Probability distribution implementations
|
|
142
|
+
- `tree.py`: Tree-based data structures for planning algorithms
|
|
143
|
+
- `config_types.py`: Centralized configuration type definitions
|
|
144
|
+
|
|
145
|
+
- **`POMDPPlanners.environments`**: POMDP environment implementations
|
|
146
|
+
- **`POMDPPlanners.planners`**: Planning algorithm implementations
|
|
147
|
+
- **`POMDPPlanners.simulations`**: Experiment management and execution framework
|
|
148
|
+
- **`POMDPPlanners.utils`**: Helper functions and visualization tools
|
|
149
|
+
|
|
150
|
+
### Supported Algorithms
|
|
151
|
+
|
|
152
|
+
#### MCTS-Based Planners
|
|
153
|
+
- **POMCP**: Partially Observable Monte Carlo Planning
|
|
154
|
+
- **POMCPOW**: POMCP with Online Widening (progressive widening for observations)
|
|
155
|
+
- **POMCP-DPW**: POMCP with Double Progressive Widening
|
|
156
|
+
- **PFT-DPW**: Progressive Widening with Particle Filter Trees
|
|
157
|
+
- **Sparse PFT**: Sparse sampling with Particle Filter Trees
|
|
158
|
+
|
|
159
|
+
#### Neural MCTS Planners
|
|
160
|
+
- **BetaZero**: Neural-guided MCTS for POMDPs โ adapts AlphaZero to belief-space planning with a dual-head neural network (value + policy)
|
|
161
|
+
- **ConstrainedZero**: Safety-constrained extension of BetaZero for chance-constrained POMDPs โ adds a failure-probability head and adaptive threshold calibration via conformal inference
|
|
162
|
+
|
|
163
|
+
#### Other Planners
|
|
164
|
+
- **Sparse Sampling**: Classical sparse sampling algorithm
|
|
165
|
+
- **Open Loop Planners**: Non-feedback planning approaches (discrete action sequences)
|
|
166
|
+
|
|
167
|
+
### Available Environments
|
|
168
|
+
|
|
169
|
+
- **Tiger POMDP**: Classic two-door problem
|
|
170
|
+
- **Light-Dark POMDP**: Navigation with position-dependent observation noise (discrete and continuous variants)
|
|
171
|
+
- **Rock Sample POMDP**: Grid-world rover navigation with multiple rock samples; rover must sense and collect good rocks
|
|
172
|
+
- **Laser Tag POMDP**: Tag-based pursuit environment (discrete and continuous geometry variants)
|
|
173
|
+
- **PacMan POMDP**: Partially observable Pac-Man navigation with ghost uncertainty
|
|
174
|
+
- **CartPole POMDP**: Partially observable cart-pole balancing
|
|
175
|
+
- **Mountain Car POMDP**: Partially observable mountain car
|
|
176
|
+
- **Push POMDP**: Object manipulation environment
|
|
177
|
+
- **Safety Ant Velocity**: Safety-constrained locomotion task
|
|
178
|
+
|
|
179
|
+
### Simulations Framework
|
|
180
|
+
|
|
181
|
+
- **`POMDPPlanners.simulations.simulator`**: Main simulation runner
|
|
182
|
+
- **`POMDPPlanners.simulations.episodes`**: Episode execution logic
|
|
183
|
+
- **`POMDPPlanners.simulations.workflows`**: High-level evaluation and optimization workflows
|
|
184
|
+
- `evaluation.py`, `optimization.py`, `integrated.py`
|
|
185
|
+
- `planner_evaluation_workflow.py`, `hyperparameter_tuning_evaluation_workflows.py`
|
|
186
|
+
- **`POMDPPlanners.simulations.simulation_apis`**: Pluggable backends for experiment execution (see Distributed Computing section)
|
|
187
|
+
- **`POMDPPlanners.simulations.simulations_deployment`**: Task managers and caching for distributed runs
|
|
188
|
+
|
|
189
|
+
### Utilities
|
|
190
|
+
|
|
191
|
+
- **`POMDPPlanners.utils.visualization`**: Visualization submodule with
|
|
192
|
+
- `metrics_plots.py`, `returns_plots.py`, `tree_plots.py`, `policy_simulation_plots.py`
|
|
193
|
+
- **`POMDPPlanners.utils.config_loader`**: Configuration file management
|
|
194
|
+
- **`POMDPPlanners.utils.logger`**: Centralized logging setup
|
|
195
|
+
- **`POMDPPlanners.utils.statistics_utils`**: Statistical analysis functions
|
|
196
|
+
- **`POMDPPlanners.utils.tree_statistics`**: Tree statistics computation
|
|
197
|
+
|
|
198
|
+
## ๐ Running Experiments
|
|
199
|
+
|
|
200
|
+
### Simple Experiment
|
|
201
|
+
|
|
202
|
+
```python
|
|
203
|
+
from POMDPPlanners.simulations.simulator import Simulator
|
|
204
|
+
from POMDPPlanners.utils.config_loader import load_config
|
|
205
|
+
|
|
206
|
+
# Load experiment configuration
|
|
207
|
+
config = load_config("experiments/configs/tiger_pomcp_experiment.yaml")
|
|
208
|
+
|
|
209
|
+
# Run simulation
|
|
210
|
+
simulator = Simulator(config)
|
|
211
|
+
results = simulator.run()
|
|
212
|
+
|
|
213
|
+
print(f"Average reward: {results['average_reward']}")
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Hyperparameter Tuning
|
|
217
|
+
|
|
218
|
+
```python
|
|
219
|
+
from POMDPPlanners.simulations.hyper_parameter_tuning_simulations import HyperParameterTuningSimulations
|
|
220
|
+
|
|
221
|
+
# Define hyperparameter space
|
|
222
|
+
hyperparams = {
|
|
223
|
+
"num_simulations": [500, 1000, 2000],
|
|
224
|
+
"exploration_constant": [1.0, 2.0, 5.0],
|
|
225
|
+
"discount_factor": [0.9, 0.95, 0.99]
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
# Run tuning experiment
|
|
229
|
+
tuner = HyperParameterTuningSimulations(
|
|
230
|
+
base_config="experiments/configs/base_config.yaml",
|
|
231
|
+
hyperparameters=hyperparams
|
|
232
|
+
)
|
|
233
|
+
best_params = tuner.optimize()
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Example Notebooks
|
|
237
|
+
|
|
238
|
+
Interactive Jupyter notebooks with detailed usage examples are available in `docs/examples/`:
|
|
239
|
+
|
|
240
|
+
- `docs/examples/basic_usage.ipynb` โ Environment setup, belief initialization, and basic planning
|
|
241
|
+
- `docs/examples/hyperparameter_tuning.ipynb` โ End-to-end hyperparameter search
|
|
242
|
+
- `docs/examples/planners_comparison.ipynb` โ Side-by-side comparison of planning algorithms
|
|
243
|
+
|
|
244
|
+
## ๐ Distributed Computing
|
|
245
|
+
|
|
246
|
+
POMDPPlanners supports multiple execution backends for scaling experiments:
|
|
247
|
+
|
|
248
|
+
| Backend | Description | Use Case |
|
|
249
|
+
|---------|-------------|----------|
|
|
250
|
+
| **Local** | Sequential single-process | Development and debugging |
|
|
251
|
+
| **Dask** | Distributed multi-machine cluster | Large-scale parallelism |
|
|
252
|
+
| **PBS** | HPC cluster via `dask-jobqueue` | Supercomputer / PBS job scheduler |
|
|
253
|
+
|
|
254
|
+
Select the backend via the simulation API in `POMDPPlanners.simulations.simulation_apis`:
|
|
255
|
+
|
|
256
|
+
```python
|
|
257
|
+
# Local sequential execution
|
|
258
|
+
from POMDPPlanners.simulations.simulation_apis.local_simulations_api import LocalSimulationsAPI
|
|
259
|
+
|
|
260
|
+
# Dask distributed execution
|
|
261
|
+
from POMDPPlanners.simulations.simulation_apis.dask_simulations_api import DaskSimulationsAPI
|
|
262
|
+
|
|
263
|
+
# PBS (HPC) cluster execution
|
|
264
|
+
from POMDPPlanners.simulations.simulation_apis.pbs_simulations_api import PBSSimulationsAPI
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
## ๐งช Testing
|
|
268
|
+
|
|
269
|
+
Run the comprehensive test suite:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
# Activate virtual environment
|
|
273
|
+
source .venv/bin/activate
|
|
274
|
+
|
|
275
|
+
# Run all tests
|
|
276
|
+
pytest
|
|
277
|
+
|
|
278
|
+
# Run specific test categories
|
|
279
|
+
pytest POMDPPlanners/tests/test_core/
|
|
280
|
+
pytest POMDPPlanners/tests/test_environments/
|
|
281
|
+
pytest POMDPPlanners/tests/test_planners/
|
|
282
|
+
|
|
283
|
+
# Run with verbose output
|
|
284
|
+
pytest -v
|
|
285
|
+
|
|
286
|
+
# Run specific test file
|
|
287
|
+
pytest POMDPPlanners/tests/test_core/test_belief.py
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
## ๐ง Development
|
|
291
|
+
|
|
292
|
+
### Code Quality
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
# Format code
|
|
296
|
+
black .
|
|
297
|
+
|
|
298
|
+
# Type checking
|
|
299
|
+
python -m pyright POMDPPlanners/
|
|
300
|
+
|
|
301
|
+
# Run linting
|
|
302
|
+
pylint POMDPPlanners/
|
|
303
|
+
flake8 .
|
|
304
|
+
|
|
305
|
+
# Install pre-commit hooks
|
|
306
|
+
pre-commit install
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
### Virtual Environment
|
|
310
|
+
|
|
311
|
+
**Important**: Always activate the virtual environment before development:
|
|
312
|
+
|
|
313
|
+
```bash
|
|
314
|
+
source .venv/bin/activate # Linux/Mac
|
|
315
|
+
# .venv\Scripts\activate # Windows
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
All commands should be run within this environment for consistent dependency management.
|
|
319
|
+
|
|
320
|
+
## ๐ Documentation
|
|
321
|
+
|
|
322
|
+
Comprehensive documentation is generated from docstrings using Sphinx:
|
|
323
|
+
|
|
324
|
+
```bash
|
|
325
|
+
# Build documentation
|
|
326
|
+
cd docs/
|
|
327
|
+
sphinx-build -b html . _build/html
|
|
328
|
+
|
|
329
|
+
# Serve locally
|
|
330
|
+
python -m http.server 8000 -d _build/html
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
Visit the documentation at: [Project Documentation](https://yaacovpariente.github.io/POMDPPlanners/) *(available when repository becomes public)*
|
|
334
|
+
|
|
335
|
+
## ๐ค Contributing
|
|
336
|
+
|
|
337
|
+
We welcome contributions of all kinds! Please see our [Contributing Guide](CONTRIBUTING.md) for details on:
|
|
338
|
+
|
|
339
|
+
- Setting up the development environment
|
|
340
|
+
- Coding guidelines and standards
|
|
341
|
+
- Submitting pull requests
|
|
342
|
+
- Reporting bugs and requesting features
|
|
343
|
+
|
|
344
|
+
Please also read our [Code of Conduct](CODE_OF_CONDUCT.md).
|
|
345
|
+
|
|
346
|
+
## ๐ License
|
|
347
|
+
|
|
348
|
+
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.
|
|
349
|
+
|
|
350
|
+
## ๐ Citation
|
|
351
|
+
|
|
352
|
+
If you use POMDPPlanners in your research, please cite:
|
|
353
|
+
|
|
354
|
+
```bibtex
|
|
355
|
+
@software{pomdpplanners2025,
|
|
356
|
+
title={POMDPPlanners: A Python Package for POMDP Planning Algorithms},
|
|
357
|
+
author={Pariente, Yaacov},
|
|
358
|
+
year={2025},
|
|
359
|
+
url={https://github.com/yaacovpariente/POMDPPlanners}
|
|
360
|
+
}
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
## ๐ ๏ธ Requirements
|
|
364
|
+
|
|
365
|
+
- Python 3.10 or higher
|
|
366
|
+
- Core dependencies managed via `pyproject.toml` (`pip install -e .`)
|
|
367
|
+
- Development dependencies: `pip install -e ".[dev]"`
|
|
368
|
+
|
|
369
|
+
## ๐ Links
|
|
370
|
+
|
|
371
|
+
- **Repository**: https://github.com/yaacovpariente/POMDPPlanners
|
|
372
|
+
- **Documentation**: https://yaacovpariente.github.io/POMDPPlanners/ *(available when repository becomes public)*
|
|
373
|
+
- **Issues**: https://github.com/yaacovpariente/POMDPPlanners/issues
|
|
374
|
+
- **Discussions**: https://github.com/yaacovpariente/POMDPPlanners/discussions
|
|
375
|
+
|
|
376
|
+
---
|
|
377
|
+
|
|
378
|
+
**Made with โค๏ธ for the POMDP research community**
|