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.
Files changed (345) hide show
  1. pomdpplanners-0.1.0/LICENSE.md +7 -0
  2. pomdpplanners-0.1.0/PKG-INFO +378 -0
  3. pomdpplanners-0.1.0/POMDPPlanners/__init__.py +3 -0
  4. pomdpplanners-0.1.0/POMDPPlanners/configs/__init__.py +4 -0
  5. pomdpplanners-0.1.0/POMDPPlanners/configs/environment_configs.py +532 -0
  6. pomdpplanners-0.1.0/POMDPPlanners/configs/experiment_configs.py +474 -0
  7. pomdpplanners-0.1.0/POMDPPlanners/configs/planners_hyperparam_configs.py +343 -0
  8. pomdpplanners-0.1.0/POMDPPlanners/core/__init__.py +1 -0
  9. pomdpplanners-0.1.0/POMDPPlanners/core/belief/__init__.py +56 -0
  10. pomdpplanners-0.1.0/POMDPPlanners/core/belief/base_belief.py +145 -0
  11. pomdpplanners-0.1.0/POMDPPlanners/core/belief/belief_utils.py +118 -0
  12. pomdpplanners-0.1.0/POMDPPlanners/core/belief/gaussian_belief.py +182 -0
  13. pomdpplanners-0.1.0/POMDPPlanners/core/belief/gaussian_belief_updaters.py +347 -0
  14. pomdpplanners-0.1.0/POMDPPlanners/core/belief/gaussian_mixture_belief.py +287 -0
  15. pomdpplanners-0.1.0/POMDPPlanners/core/belief/particle_beliefs.py +830 -0
  16. pomdpplanners-0.1.0/POMDPPlanners/core/belief/vectorized_particle_belief_updater.py +59 -0
  17. pomdpplanners-0.1.0/POMDPPlanners/core/belief/vectorized_weighted_particle_belief.py +225 -0
  18. pomdpplanners-0.1.0/POMDPPlanners/core/config_types.py +117 -0
  19. pomdpplanners-0.1.0/POMDPPlanners/core/cost.py +247 -0
  20. pomdpplanners-0.1.0/POMDPPlanners/core/distributions.py +150 -0
  21. pomdpplanners-0.1.0/POMDPPlanners/core/environment.py +946 -0
  22. pomdpplanners-0.1.0/POMDPPlanners/core/policy.py +681 -0
  23. pomdpplanners-0.1.0/POMDPPlanners/core/serialization.py +385 -0
  24. pomdpplanners-0.1.0/POMDPPlanners/core/simulation/__init__.py +38 -0
  25. pomdpplanners-0.1.0/POMDPPlanners/core/simulation/history.py +204 -0
  26. pomdpplanners-0.1.0/POMDPPlanners/core/simulation/hyperparameter_tuning.py +479 -0
  27. pomdpplanners-0.1.0/POMDPPlanners/core/simulation/metrics.py +8 -0
  28. pomdpplanners-0.1.0/POMDPPlanners/core/simulation/simulation_configs.py +158 -0
  29. pomdpplanners-0.1.0/POMDPPlanners/core/simulation/tasks.py +343 -0
  30. pomdpplanners-0.1.0/POMDPPlanners/core/tree.py +170 -0
  31. pomdpplanners-0.1.0/POMDPPlanners/environments/__init__.py +134 -0
  32. pomdpplanners-0.1.0/POMDPPlanners/environments/cartpole_pomdp.py +445 -0
  33. pomdpplanners-0.1.0/POMDPPlanners/environments/cartpole_pomdp_beliefs.py +291 -0
  34. pomdpplanners-0.1.0/POMDPPlanners/environments/cartpole_pomdp_gaussian_beliefs.py +255 -0
  35. pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/__init__.py +27 -0
  36. pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/continuous_laser_tag_geometry.py +439 -0
  37. pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/continuous_laser_tag_pomdp.py +861 -0
  38. pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/continuous_laser_tag_visualizer.py +565 -0
  39. pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/laser_tag_pomdp.py +1176 -0
  40. pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/laser_tag_pomdp_beliefs/__init__.py +19 -0
  41. pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/laser_tag_pomdp_beliefs/continuous_laser_tag_belief_factory.py +76 -0
  42. pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/laser_tag_pomdp_beliefs/continuous_laser_tag_vectorized_updater.py +309 -0
  43. pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/laser_tag_pomdp_beliefs/laser_tag_belief_factory.py +68 -0
  44. pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/laser_tag_pomdp_beliefs/laser_tag_vectorized_updater.py +440 -0
  45. pomdpplanners-0.1.0/POMDPPlanners/environments/laser_tag_pomdp/laser_tag_visualizer.py +549 -0
  46. pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/__init__.py +0 -0
  47. pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/continuous_light_dark_pomdp.py +687 -0
  48. pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/discrete_light_dark_pomdp.py +367 -0
  49. pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/light_dark_pomdp_beliefs/__init__.py +17 -0
  50. pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/light_dark_pomdp_beliefs/continuous_light_dark_belief_factory.py +104 -0
  51. pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/light_dark_pomdp_beliefs/continuous_light_dark_gaussian_beliefs.py +141 -0
  52. pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/light_dark_pomdp_beliefs/continuous_light_dark_vectorized_updater.py +242 -0
  53. pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/light_dark_pomdp_utils/__init__.py +0 -0
  54. pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/light_dark_pomdp_utils/base_light_dark_pomdp.py +441 -0
  55. pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/light_dark_pomdp_utils/light_dark_observation_models.py +582 -0
  56. pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/light_dark_pomdp_utils/light_dark_reward_models.py +188 -0
  57. pomdpplanners-0.1.0/POMDPPlanners/environments/light_dark_pomdp/light_dark_pomdp_utils/light_dark_visualizer.py +327 -0
  58. pomdpplanners-0.1.0/POMDPPlanners/environments/mountain_car_pomdp.py +388 -0
  59. pomdpplanners-0.1.0/POMDPPlanners/environments/mountain_car_pomdp_beliefs.py +254 -0
  60. pomdpplanners-0.1.0/POMDPPlanners/environments/mountain_car_pomdp_gaussian_beliefs.py +205 -0
  61. pomdpplanners-0.1.0/POMDPPlanners/environments/pacman_pomdp/__init__.py +17 -0
  62. pomdpplanners-0.1.0/POMDPPlanners/environments/pacman_pomdp/pacman_pomdp.py +1356 -0
  63. pomdpplanners-0.1.0/POMDPPlanners/environments/pacman_pomdp/pacman_visualizer.py +304 -0
  64. pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/__init__.py +43 -0
  65. pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/continuous_push_geometry.py +307 -0
  66. pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/continuous_push_pomdp.py +688 -0
  67. pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/continuous_push_pomdp_visualizer.py +567 -0
  68. pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/push_pomdp.py +777 -0
  69. pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/push_pomdp_beliefs/__init__.py +19 -0
  70. pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/push_pomdp_beliefs/continuous_push_belief_factory.py +69 -0
  71. pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/push_pomdp_beliefs/continuous_push_vectorized_updater.py +237 -0
  72. pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/push_pomdp_beliefs/push_belief_factory.py +66 -0
  73. pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/push_pomdp_beliefs/push_vectorized_updater.py +216 -0
  74. pomdpplanners-0.1.0/POMDPPlanners/environments/push_pomdp/push_pomdp_visualizer.py +486 -0
  75. pomdpplanners-0.1.0/POMDPPlanners/environments/rock_sample_pomdp/__init__.py +40 -0
  76. pomdpplanners-0.1.0/POMDPPlanners/environments/rock_sample_pomdp/rock_sample_pomdp.py +649 -0
  77. pomdpplanners-0.1.0/POMDPPlanners/environments/rock_sample_pomdp/rock_sample_visualizer.py +383 -0
  78. pomdpplanners-0.1.0/POMDPPlanners/environments/safety_ant_velocity_pomdp/__init__.py +21 -0
  79. pomdpplanners-0.1.0/POMDPPlanners/environments/safety_ant_velocity_pomdp/safety_ant_velocity_pomdp.py +590 -0
  80. pomdpplanners-0.1.0/POMDPPlanners/environments/safety_ant_velocity_pomdp/safety_ant_velocity_pomdp_beliefs/__init__.py +11 -0
  81. pomdpplanners-0.1.0/POMDPPlanners/environments/safety_ant_velocity_pomdp/safety_ant_velocity_pomdp_beliefs/safety_ant_velocity_belief_factory.py +70 -0
  82. pomdpplanners-0.1.0/POMDPPlanners/environments/safety_ant_velocity_pomdp/safety_ant_velocity_pomdp_beliefs/safety_ant_velocity_vectorized_updater.py +172 -0
  83. pomdpplanners-0.1.0/POMDPPlanners/environments/safety_ant_velocity_pomdp/safety_ant_velocity_visualizer.py +364 -0
  84. pomdpplanners-0.1.0/POMDPPlanners/environments/sanity_pomdp.py +354 -0
  85. pomdpplanners-0.1.0/POMDPPlanners/environments/tiger_pomdp.py +362 -0
  86. pomdpplanners-0.1.0/POMDPPlanners/planners/__init__.py +85 -0
  87. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/__init__.py +1 -0
  88. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/beta_zero/__init__.py +48 -0
  89. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/beta_zero/belief_representation.py +156 -0
  90. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/beta_zero/beta_zero.py +795 -0
  91. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/beta_zero/beta_zero_action_sampler.py +150 -0
  92. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/beta_zero/beta_zero_network.py +332 -0
  93. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/beta_zero/puct.py +128 -0
  94. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/beta_zero/training.py +212 -0
  95. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/beta_zero/training_buffer.py +143 -0
  96. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/constrained_zero/__init__.py +37 -0
  97. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/constrained_zero/constrained_puct.py +138 -0
  98. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/constrained_zero/constrained_training.py +213 -0
  99. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/constrained_zero/constrained_training_buffer.py +102 -0
  100. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/constrained_zero/constrained_zero.py +533 -0
  101. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/constrained_zero/constrained_zero_network.py +182 -0
  102. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/icvar_pft_dpw.py +230 -0
  103. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/icvar_pomcpow.py +361 -0
  104. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/pft_dpw.py +310 -0
  105. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/pomcp.py +247 -0
  106. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/pomcp_dpw.py +299 -0
  107. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/pomcpow.py +296 -0
  108. pomdpplanners-0.1.0/POMDPPlanners/planners/mcts_planners/sparse_pft.py +273 -0
  109. pomdpplanners-0.1.0/POMDPPlanners/planners/open_loop_planners/__init__.py +0 -0
  110. pomdpplanners-0.1.0/POMDPPlanners/planners/open_loop_planners/discrete_action_sequences_planner.py +149 -0
  111. pomdpplanners-0.1.0/POMDPPlanners/planners/planners_utils/__init__.py +0 -0
  112. pomdpplanners-0.1.0/POMDPPlanners/planners/planners_utils/cvar_exploration.py +94 -0
  113. pomdpplanners-0.1.0/POMDPPlanners/planners/planners_utils/cvar_progressive_widening.py +47 -0
  114. pomdpplanners-0.1.0/POMDPPlanners/planners/planners_utils/dpw.py +553 -0
  115. pomdpplanners-0.1.0/POMDPPlanners/planners/planners_utils/path_simulations_policy.py +407 -0
  116. pomdpplanners-0.1.0/POMDPPlanners/planners/planners_utils/rollout.py +78 -0
  117. pomdpplanners-0.1.0/POMDPPlanners/planners/sparse_sampling_planners/__init__.py +0 -0
  118. pomdpplanners-0.1.0/POMDPPlanners/planners/sparse_sampling_planners/icvar_sparse_sampling.py +132 -0
  119. pomdpplanners-0.1.0/POMDPPlanners/planners/sparse_sampling_planners/sparse_sampling.py +267 -0
  120. pomdpplanners-0.1.0/POMDPPlanners/simulations/__init__.py +31 -0
  121. pomdpplanners-0.1.0/POMDPPlanners/simulations/episodes.py +333 -0
  122. pomdpplanners-0.1.0/POMDPPlanners/simulations/hyper_parameter_tuning_simulations.py +844 -0
  123. pomdpplanners-0.1.0/POMDPPlanners/simulations/simulation_apis/__init__.py +0 -0
  124. pomdpplanners-0.1.0/POMDPPlanners/simulations/simulation_apis/dask_simulations_api.py +686 -0
  125. pomdpplanners-0.1.0/POMDPPlanners/simulations/simulation_apis/local_simulations_api.py +927 -0
  126. pomdpplanners-0.1.0/POMDPPlanners/simulations/simulation_apis/pbs_simulations_api.py +740 -0
  127. pomdpplanners-0.1.0/POMDPPlanners/simulations/simulation_apis/simulations_api_interface.py +364 -0
  128. pomdpplanners-0.1.0/POMDPPlanners/simulations/simulation_statistics.py +611 -0
  129. pomdpplanners-0.1.0/POMDPPlanners/simulations/simulations_deployment/__init__.py +152 -0
  130. pomdpplanners-0.1.0/POMDPPlanners/simulations/simulations_deployment/cache_dbs.py +93 -0
  131. pomdpplanners-0.1.0/POMDPPlanners/simulations/simulations_deployment/task_manager_configs.py +93 -0
  132. pomdpplanners-0.1.0/POMDPPlanners/simulations/simulations_deployment/task_managers.py +743 -0
  133. pomdpplanners-0.1.0/POMDPPlanners/simulations/simulations_deployment/tasks/__init__.py +13 -0
  134. pomdpplanners-0.1.0/POMDPPlanners/simulations/simulations_deployment/tasks/episode_simulation_task.py +586 -0
  135. pomdpplanners-0.1.0/POMDPPlanners/simulations/simulations_deployment/tasks/hyper_parameter_tuning_simulation_task.py +1050 -0
  136. pomdpplanners-0.1.0/POMDPPlanners/simulations/simulator.py +1218 -0
  137. pomdpplanners-0.1.0/POMDPPlanners/simulations/workflows/__init__.py +33 -0
  138. pomdpplanners-0.1.0/POMDPPlanners/simulations/workflows/evaluation.py +299 -0
  139. pomdpplanners-0.1.0/POMDPPlanners/simulations/workflows/hyperparameter_tuning_evaluation_workflows.py +516 -0
  140. pomdpplanners-0.1.0/POMDPPlanners/simulations/workflows/integrated.py +321 -0
  141. pomdpplanners-0.1.0/POMDPPlanners/simulations/workflows/optimization.py +458 -0
  142. pomdpplanners-0.1.0/POMDPPlanners/simulations/workflows/planner_evaluation_workflow.py +299 -0
  143. pomdpplanners-0.1.0/POMDPPlanners/tests/__init__.py +1 -0
  144. pomdpplanners-0.1.0/POMDPPlanners/tests/conftest.py +110 -0
  145. pomdpplanners-0.1.0/POMDPPlanners/tests/test_configs/__init__.py +0 -0
  146. pomdpplanners-0.1.0/POMDPPlanners/tests/test_configs/test_environment_configs.py +597 -0
  147. pomdpplanners-0.1.0/POMDPPlanners/tests/test_configs/test_experiment_configs.py +1756 -0
  148. pomdpplanners-0.1.0/POMDPPlanners/tests/test_configs/test_planners_hyperparam_configs.py +741 -0
  149. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/__init__.py +0 -0
  150. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_belief/__init__.py +0 -0
  151. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_belief/test_base.py +384 -0
  152. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_belief/test_belief_environment_integration.py +652 -0
  153. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_belief/test_belief_utils.py +417 -0
  154. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_belief/test_gaussian_belief.py +630 -0
  155. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_belief/test_gaussian_belief_updaters.py +692 -0
  156. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_belief/test_gaussian_mixture_belief.py +712 -0
  157. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_belief/test_particle_beliefs.py +2772 -0
  158. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_belief/test_vectorized_weighted_particle_belief.py +397 -0
  159. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_cost.py +731 -0
  160. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_distributions.py +188 -0
  161. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_environment.py +478 -0
  162. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_hyper_parameter_tuning.py +1753 -0
  163. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_policy.py +356 -0
  164. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_serialization.py +956 -0
  165. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_simulation.py +341 -0
  166. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_simulation_configs.py +706 -0
  167. pomdpplanners-0.1.0/POMDPPlanners/tests/test_core/test_tree.py +706 -0
  168. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/__init__.py +0 -0
  169. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_cartpole_pomdp.py +755 -0
  170. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_cartpole_pomdp_belief_factory.py +111 -0
  171. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_cartpole_pomdp_beliefs.py +310 -0
  172. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_cartpole_pomdp_gaussian_beliefs.py +617 -0
  173. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_environment_serialization.py +754 -0
  174. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_environment_visualizations_golden_files.py +958 -0
  175. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_laser_tag_pomdp/__init__.py +6 -0
  176. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_laser_tag_pomdp/test_continuous_laser_tag_geometry.py +342 -0
  177. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_laser_tag_pomdp/test_continuous_laser_tag_pomdp.py +1002 -0
  178. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_laser_tag_pomdp/test_continuous_laser_tag_visualizer.py +136 -0
  179. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_laser_tag_pomdp/test_laser_tag_pomdp.py +2054 -0
  180. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_laser_tag_pomdp/test_laser_tag_pomdp_beliefs/__init__.py +0 -0
  181. 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
  182. 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
  183. 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
  184. 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
  185. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_laser_tag_pomdp/test_laser_tag_visualizer.py +179 -0
  186. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_light_dark_pomdp/__init__.py +0 -0
  187. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_light_dark_pomdp/light_dark_pomdp_utils/__init__.py +0 -0
  188. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_light_dark_pomdp/light_dark_pomdp_utils/test_light_dark_observation_models.py +2149 -0
  189. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_light_dark_pomdp/light_dark_pomdp_utils/test_light_dark_reward_models.py +857 -0
  190. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_light_dark_pomdp/test_continuous_light_dark_pomdp.py +2231 -0
  191. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_light_dark_pomdp/test_discrete_light_dark_pomdp.py +1579 -0
  192. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_light_dark_pomdp/test_light_dark_pomdp_beliefs/__init__.py +0 -0
  193. 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
  194. 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
  195. 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
  196. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_mountain_car_pomdp.py +1045 -0
  197. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_mountain_car_pomdp_belief_factory.py +97 -0
  198. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_mountain_car_pomdp_beliefs.py +345 -0
  199. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_mountain_car_pomdp_gaussian_beliefs.py +623 -0
  200. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_pacman_pomdp.py +1885 -0
  201. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_push_pomdp/__init__.py +8 -0
  202. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_push_pomdp/test_continuous_push_geometry.py +217 -0
  203. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_push_pomdp/test_continuous_push_pomdp.py +648 -0
  204. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_push_pomdp/test_push_pomdp.py +1249 -0
  205. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_push_pomdp/test_push_pomdp_beliefs/__init__.py +0 -0
  206. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_push_pomdp/test_push_pomdp_beliefs/test_continuous_push_belief_factory.py +111 -0
  207. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_push_pomdp/test_push_pomdp_beliefs/test_continuous_push_vectorized_updater.py +157 -0
  208. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_push_pomdp/test_push_pomdp_beliefs/test_push_belief_factory.py +97 -0
  209. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_push_pomdp/test_push_pomdp_beliefs/test_push_vectorized_updater.py +548 -0
  210. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_rock_sample_pomdp/__init__.py +6 -0
  211. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_rock_sample_pomdp/test_rock_sample_pomdp.py +1282 -0
  212. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_rock_sample_pomdp/test_rock_sample_visualizer.py +137 -0
  213. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_safety_ant_velocity_pomdp/__init__.py +1 -0
  214. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_safety_ant_velocity_pomdp/test_safety_ant_velocity_pomdp.py +954 -0
  215. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_safety_ant_velocity_pomdp/test_safety_ant_velocity_pomdp_beliefs/__init__.py +1 -0
  216. 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
  217. 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
  218. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_sanity_pomdp.py +853 -0
  219. pomdpplanners-0.1.0/POMDPPlanners/tests/test_environments/test_tiger_pomdp.py +696 -0
  220. pomdpplanners-0.1.0/POMDPPlanners/tests/test_examples/__init__.py +6 -0
  221. pomdpplanners-0.1.0/POMDPPlanners/tests/test_examples/test_notebook_examples.py +346 -0
  222. pomdpplanners-0.1.0/POMDPPlanners/tests/test_interfaces/__init__.py +6 -0
  223. pomdpplanners-0.1.0/POMDPPlanners/tests/test_interfaces/fixtures/__init__.py +5 -0
  224. pomdpplanners-0.1.0/POMDPPlanners/tests/test_interfaces/test_distributions.py +256 -0
  225. pomdpplanners-0.1.0/POMDPPlanners/tests/test_interfaces/test_observation_models.py +854 -0
  226. pomdpplanners-0.1.0/POMDPPlanners/tests/test_interfaces/test_state_transition_models.py +582 -0
  227. pomdpplanners-0.1.0/POMDPPlanners/tests/test_metric_consistency.py +238 -0
  228. pomdpplanners-0.1.0/POMDPPlanners/tests/test_metric_consistency_utils.py +178 -0
  229. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/__init__.py +0 -0
  230. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/__init__.py +0 -0
  231. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_beta_zero/__init__.py +0 -0
  232. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_beta_zero/test_belief_representation.py +210 -0
  233. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_beta_zero/test_beta_zero.py +537 -0
  234. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_beta_zero/test_beta_zero_action_sampler.py +380 -0
  235. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_beta_zero/test_beta_zero_network.py +270 -0
  236. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_beta_zero/test_puct.py +265 -0
  237. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_beta_zero/test_training.py +229 -0
  238. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_beta_zero/test_training_buffer.py +245 -0
  239. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_constrained_zero/__init__.py +0 -0
  240. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_constrained_zero/test_constrained_puct.py +312 -0
  241. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_constrained_zero/test_constrained_training.py +322 -0
  242. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_constrained_zero/test_constrained_training_buffer.py +212 -0
  243. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_constrained_zero/test_constrained_zero.py +544 -0
  244. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_constrained_zero/test_constrained_zero_network.py +360 -0
  245. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_icvar_pft_dpw.py +636 -0
  246. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_icvar_pomcpow.py +1386 -0
  247. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_path_simulation_policy.py +643 -0
  248. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_pft_dpw.py +706 -0
  249. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_pomcp.py +702 -0
  250. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_pomcp_dpw.py +1211 -0
  251. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_pomcpow.py +1286 -0
  252. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_sparse_pft.py +708 -0
  253. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_mcts_planners/test_utils.py +203 -0
  254. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_open_loop_planners/__init__.py +0 -0
  255. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_open_loop_planners/test_discrete_action_sequences_planner.py +403 -0
  256. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_planner_save_load_interface.py +361 -0
  257. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_planner_serialization.py +781 -0
  258. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_planners_utils/__init__.py +0 -0
  259. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_planners_utils/test_dpw.py +1303 -0
  260. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_planners_utils/test_rollout.py +762 -0
  261. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_sparse_sampling_planners/__init__.py +0 -0
  262. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_sparse_sampling_planners/test_icvar_sparse_sampling.py +323 -0
  263. pomdpplanners-0.1.0/POMDPPlanners/tests/test_planners/test_sparse_sampling_planners/test_sparse_sampling.py +469 -0
  264. pomdpplanners-0.1.0/POMDPPlanners/tests/test_setup.py +98 -0
  265. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/__init__.py +0 -0
  266. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/conftest.py +35 -0
  267. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_hyper_parameter_tuning_simulations.py +2814 -0
  268. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulation_statistics.py +829 -0
  269. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_apis/__init__.py +10 -0
  270. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_apis/api_test_fixtures.py +189 -0
  271. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_apis/api_test_mixins.py +769 -0
  272. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_apis/test_dask_simulations_api.py +341 -0
  273. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_apis/test_local_simulations_api.py +776 -0
  274. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_apis/test_pbs_simulations_api.py +284 -0
  275. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_deployment/__init__.py +0 -0
  276. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_deployment/test_cache_dbs.py +244 -0
  277. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_deployment/test_task_manager_configs.py +613 -0
  278. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_deployment/test_task_managers.py +2803 -0
  279. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_deployment/test_tasks/__init__.py +0 -0
  280. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_deployment/test_tasks/test_episode_simulation_task.py +1533 -0
  281. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_deployment/test_tasks/test_hyper_parameter_tuning_simulation_task.py +1835 -0
  282. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulations_deployment/test_tasks/test_task_serialization.py +904 -0
  283. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulator.py +3790 -0
  284. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_simulator_serialization.py +334 -0
  285. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_workflows/__init__.py +0 -0
  286. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_workflows/test_hyperparameter_tuning_evaluation_workflows.py +952 -0
  287. pomdpplanners-0.1.0/POMDPPlanners/tests/test_simulations/test_workflows/test_planner_evaluation_workflow.py +1476 -0
  288. pomdpplanners-0.1.0/POMDPPlanners/tests/test_training/__init__.py +0 -0
  289. pomdpplanners-0.1.0/POMDPPlanners/tests/test_training/test_callbacks.py +416 -0
  290. pomdpplanners-0.1.0/POMDPPlanners/tests/test_training/test_policy_trainer.py +266 -0
  291. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/__init__.py +0 -0
  292. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/confidence_interval_utils.py +69 -0
  293. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/history_builders.py +73 -0
  294. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_action_samplers.py +1061 -0
  295. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_belief_factory.py +338 -0
  296. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_confidence_interval_utils.py +146 -0
  297. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_config_loader.py +196 -0
  298. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_config_to_id.py +866 -0
  299. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_hyperparameter_tuning_and_eval.py +3163 -0
  300. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_logger.py +1032 -0
  301. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_memory_tracker.py +592 -0
  302. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_multivariate_normal.py +586 -0
  303. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_planner_episode_visualization.py +995 -0
  304. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_probability_utils.py +652 -0
  305. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_simulations_caching.py +641 -0
  306. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_statistics_utils.py +983 -0
  307. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_tree_statistics.py +109 -0
  308. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_visualization/__init__.py +11 -0
  309. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_visualization/test_metrics_plots.py +544 -0
  310. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_visualization/test_policy_simulation_plots.py +308 -0
  311. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_visualization/test_returns_plots.py +449 -0
  312. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_visualization/test_tree_plots.py +201 -0
  313. pomdpplanners-0.1.0/POMDPPlanners/tests/test_utils/test_weighted_particle_belief.py +606 -0
  314. pomdpplanners-0.1.0/POMDPPlanners/training/__init__.py +32 -0
  315. pomdpplanners-0.1.0/POMDPPlanners/training/callbacks.py +299 -0
  316. pomdpplanners-0.1.0/POMDPPlanners/training/policy_trainer.py +214 -0
  317. pomdpplanners-0.1.0/POMDPPlanners/utils/__init__.py +0 -0
  318. pomdpplanners-0.1.0/POMDPPlanners/utils/action_samplers.py +108 -0
  319. pomdpplanners-0.1.0/POMDPPlanners/utils/belief_factory.py +188 -0
  320. pomdpplanners-0.1.0/POMDPPlanners/utils/config_loader.py +177 -0
  321. pomdpplanners-0.1.0/POMDPPlanners/utils/config_to_id.py +74 -0
  322. pomdpplanners-0.1.0/POMDPPlanners/utils/distributed_computing.py +112 -0
  323. pomdpplanners-0.1.0/POMDPPlanners/utils/hyperparameter_tuning_and_eval.py +2079 -0
  324. pomdpplanners-0.1.0/POMDPPlanners/utils/logger.py +837 -0
  325. pomdpplanners-0.1.0/POMDPPlanners/utils/memory_tracker.py +445 -0
  326. pomdpplanners-0.1.0/POMDPPlanners/utils/multivariate_normal.py +179 -0
  327. pomdpplanners-0.1.0/POMDPPlanners/utils/planner_episode_visualization.py +69 -0
  328. pomdpplanners-0.1.0/POMDPPlanners/utils/simulations_caching.py +71 -0
  329. pomdpplanners-0.1.0/POMDPPlanners/utils/statistics_utils.py +799 -0
  330. pomdpplanners-0.1.0/POMDPPlanners/utils/tree_statistics.py +191 -0
  331. pomdpplanners-0.1.0/POMDPPlanners/utils/visualization/__init__.py +49 -0
  332. pomdpplanners-0.1.0/POMDPPlanners/utils/visualization/metrics_plots.py +331 -0
  333. pomdpplanners-0.1.0/POMDPPlanners/utils/visualization/plot_utils.py +83 -0
  334. pomdpplanners-0.1.0/POMDPPlanners/utils/visualization/policy_simulation_plots.py +293 -0
  335. pomdpplanners-0.1.0/POMDPPlanners/utils/visualization/returns_plots.py +176 -0
  336. pomdpplanners-0.1.0/POMDPPlanners/utils/visualization/tree_plots.py +290 -0
  337. pomdpplanners-0.1.0/POMDPPlanners/utils/weighted_particle_beliefs.py +256 -0
  338. pomdpplanners-0.1.0/POMDPPlanners.egg-info/PKG-INFO +378 -0
  339. pomdpplanners-0.1.0/POMDPPlanners.egg-info/SOURCES.txt +343 -0
  340. pomdpplanners-0.1.0/POMDPPlanners.egg-info/dependency_links.txt +1 -0
  341. pomdpplanners-0.1.0/POMDPPlanners.egg-info/requires.txt +47 -0
  342. pomdpplanners-0.1.0/POMDPPlanners.egg-info/top_level.txt +1 -0
  343. pomdpplanners-0.1.0/README.md +309 -0
  344. pomdpplanners-0.1.0/pyproject.toml +196 -0
  345. 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
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
73
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/release/python-3100/)
74
+ [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](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**
@@ -0,0 +1,3 @@
1
+ """POMDPPlanners - A Python package for POMDP planning algorithms and environments."""
2
+
3
+ __version__ = "0.1.0"
@@ -0,0 +1,4 @@
1
+ from POMDPPlanners.configs.environment_configs import EnvironmentConfigsAPI
2
+ from POMDPPlanners.configs.planners_hyperparam_configs import PlannersHyperparamConfigs
3
+
4
+ __all__ = ["PlannersHyperparamConfigs", "EnvironmentConfigsAPI"]