gitextract_jhy4mwbi/ ├── .github/ │ └── workflows/ │ ├── docs.yml │ ├── lint.yaml │ ├── manual-branch-nightly.yaml │ ├── nightly-tests.yaml │ ├── python-package.yml │ └── test.yaml ├── .gitignore ├── .pre-commit-config.yaml ├── .readthedocs.yml ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── docs/ │ ├── Makefile │ ├── agent.rst │ ├── algos/ │ │ ├── fpi.rst │ │ ├── index.rst │ │ └── mmp.rst │ ├── conf.py │ ├── control.rst │ ├── env.rst │ ├── index.rst │ ├── inference.rst │ ├── installation.rst │ ├── learning.rst │ ├── make.bat │ ├── notebooks/ │ │ ├── active_inference_from_scratch.ipynb │ │ ├── cue_chaining_demo.ipynb │ │ ├── free_energy_calculation.ipynb │ │ ├── pymdp_fundamentals.ipynb │ │ ├── tmaze_demo.ipynb │ │ └── using_the_agent_class.ipynb │ └── requirements.txt ├── docs-mkdocs/ │ ├── agent.html │ ├── algos/ │ │ └── index.html │ ├── api/ │ │ ├── agent.md │ │ ├── algos.md │ │ ├── control.md │ │ ├── envs-env.md │ │ ├── envs-rollout.md │ │ ├── index.md │ │ ├── inference.md │ │ ├── learning.md │ │ ├── maths.md │ │ ├── planning-mcts.md │ │ ├── planning-si.md │ │ └── utils.md │ ├── control.html │ ├── development/ │ │ ├── release-notes.md │ │ └── viewing-docs.md │ ├── env.html │ ├── getting-started/ │ │ ├── installation.md │ │ └── quickstart-jax.md │ ├── guides/ │ │ ├── generative-model-structure.md │ │ ├── pymdp-env.md │ │ └── rollout-active-inference-loop.md │ ├── index.md │ ├── inference.html │ ├── installation.html │ ├── javascripts/ │ │ ├── mathjax.js │ │ └── sidebar-accessibility.js │ ├── learning.html │ ├── legacy/ │ │ └── index.md │ ├── migration/ │ │ └── numpy-to-jax.md │ ├── notebooks/ │ │ ├── active_inference_from_scratch.html │ │ ├── cue_chaining_demo.html │ │ ├── free_energy_calculation.html │ │ ├── pymdp_fundamentals.html │ │ ├── tmaze_demo.html │ │ └── using_the_agent_class.html │ ├── overrides/ │ │ └── modules/ │ │ └── sidebar.html │ ├── styles/ │ │ └── crisp-api.css │ └── tutorials/ │ ├── index.md │ ├── notebooks/ │ │ ├── index.header.md │ │ └── index.md │ └── notebooks.manifest ├── examples/ │ ├── __init__.py │ ├── advanced/ │ │ ├── complex_action_dependency.ipynb │ │ ├── infer_states_optimization/ │ │ │ └── methods_test.ipynb │ │ └── pymdp_with_neural_encoder.ipynb │ ├── api/ │ │ └── model_construction_tutorial.ipynb │ ├── envs/ │ │ ├── chained_cue_navigation.py │ │ ├── cue_chaining_demo.ipynb │ │ ├── generalized_tmaze_demo.ipynb │ │ ├── graph_worlds_demo.ipynb │ │ ├── knapsack_demo.ipynb │ │ └── tmaze_demo.ipynb │ ├── experimental/ │ │ └── sophisticated_inference/ │ │ ├── mcts_generalized_tmaze.ipynb │ │ ├── mcts_graph_world.ipynb │ │ ├── si_generalized_tmaze.ipynb │ │ ├── si_graph_world.ipynb │ │ └── si_tmaze_SIvalidation.ipynb │ ├── inductive_inference/ │ │ ├── inductive_inference_example.ipynb │ │ └── inductive_inference_gridworld.ipynb │ ├── inference_and_learning/ │ │ └── inference_methods_comparison.ipynb │ ├── learning/ │ │ └── learning_gridworld.ipynb │ ├── legacy/ │ │ ├── agent_demo.ipynb │ │ ├── free_energy_calculation.ipynb │ │ ├── gridworld_tutorial_1.ipynb │ │ ├── gridworld_tutorial_2.ipynb │ │ ├── tmaze_demo.ipynb │ │ └── tmaze_learning_demo.ipynb │ ├── model_fitting/ │ │ ├── fitting_with_pybefit.ipynb │ │ └── tmaze_recoverability.py │ └── sparse/ │ └── sparse_benchmark.ipynb ├── mkdocs.yml ├── nbval_sanitize.cfg ├── paper/ │ ├── paper.bib │ └── paper.md ├── pymdp/ │ ├── __init__.py │ ├── agent.py │ ├── algos.py │ ├── control.py │ ├── distribution.py │ ├── envs/ │ │ ├── __init__.py │ │ ├── cue_chaining.py │ │ ├── env.py │ │ ├── generalized_tmaze.py │ │ ├── graph_worlds.py │ │ ├── grid_world.py │ │ ├── rollout.py │ │ └── tmaze.py │ ├── inference.py │ ├── learning.py │ ├── legacy/ │ │ ├── __init__.py │ │ ├── agent.py │ │ ├── algos/ │ │ │ ├── __init__.py │ │ │ ├── fpi.py │ │ │ ├── mmp.py │ │ │ └── mmp_old.py │ │ ├── control.py │ │ ├── default_models.py │ │ ├── envs/ │ │ │ ├── __init__.py │ │ │ ├── env.py │ │ │ ├── grid_worlds.py │ │ │ ├── tmaze.py │ │ │ └── visual_foraging.py │ │ ├── inference.py │ │ ├── learning.py │ │ ├── maths.py │ │ └── utils.py │ ├── likelihoods.py │ ├── maths.py │ ├── planning/ │ │ ├── __init__.py │ │ ├── mcts.py │ │ ├── si.py │ │ └── visualize.py │ └── utils.py ├── pyproject.toml ├── scripts/ │ ├── docs_build.sh │ ├── docs_serve.sh │ ├── docs_sync_and_serve.sh │ ├── notebook_precommit.py │ ├── run_notebook_manifest.py │ └── sync_docs_notebooks.sh ├── setup.cfg └── test/ ├── __init__.py ├── conftest.py ├── matlab_crossval/ │ ├── generation/ │ │ ├── bmr_matlab_test_a.m │ │ ├── bmr_matlab_test_b.m │ │ ├── mmp_matlab_test_a.m │ │ ├── mmp_matlab_test_b.m │ │ ├── mmp_matlab_test_c.m │ │ ├── mmp_matlab_test_d.m │ │ ├── run_mmp.m │ │ ├── vb_x_matlab_test_1a.m │ │ └── vb_x_matlab_test_1b.m │ └── output/ │ ├── bmr_test_a.mat │ ├── bmr_test_b.mat │ ├── cross_a.mat │ ├── cross_b.mat │ ├── cross_c.mat │ ├── cross_d.mat │ ├── cross_e.mat │ ├── dot_a.mat │ ├── dot_b.mat │ ├── dot_c.mat │ ├── dot_d.mat │ ├── dot_e.mat │ ├── mmp_a.mat │ ├── mmp_b.mat │ ├── mmp_c.mat │ ├── mmp_d.mat │ ├── vbx_test_1a.mat │ ├── wnorm_a.mat │ └── wnorm_b.mat ├── notebooks/ │ ├── README.md │ ├── ci_notebooks.txt │ └── nightly_notebooks.txt ├── test_SPM_validation.py ├── test_agent.py ├── test_agent_jax.py ├── test_categorical_observations.py ├── test_control.py ├── test_control_jax.py ├── test_cue_chaining_env.py ├── test_demos.py ├── test_distribution.py ├── test_env.py ├── test_fpi.py ├── test_grid_world_parity.py ├── test_hmm_associative_scan.py ├── test_inductive_inference_jax.py ├── test_infer_states_optimized.py ├── test_inference.py ├── test_inference_jax.py ├── test_jax_sparse_backend.py ├── test_learning.py ├── test_learning_jax.py ├── test_message_passing_jax.py ├── test_mmp.py ├── test_param_info_gain_jax.py ├── test_pybefit_model_fitting.py ├── test_rollout_function.py ├── test_sophisticated_inference_jax.py ├── test_tmaze_envs.py ├── test_tmaze_recoverability.py ├── test_utils.py ├── test_utils_jax.py ├── test_vfe_jax.py └── test_wrappers.py