{"id":23562381,"url":"https://github.com/dylan-asmar/estimated_joint_belief","last_synced_at":"2025-07-15T22:18:42.410Z","repository":{"id":269346517,"uuid":"870274661","full_name":"dylan-asmar/estimated_joint_belief","owner":"dylan-asmar","description":"Code supporting the paper Efficient Multiagent Planning via Shared Action Suggestions.","archived":false,"fork":false,"pushed_at":"2024-12-31T18:01:03.000Z","size":834,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-12T11:51:45.929Z","etag":null,"topics":["collaboration","dec-pomdp","multiagent-planning"],"latest_commit_sha":null,"homepage":"","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dylan-asmar.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-09T18:38:17.000Z","updated_at":"2024-12-31T18:01:07.000Z","dependencies_parsed_at":"2024-12-22T23:03:04.776Z","dependency_job_id":null,"html_url":"https://github.com/dylan-asmar/estimated_joint_belief","commit_stats":null,"previous_names":["dylan-asmar/estimated_joint_belief"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dylan-asmar%2Festimated_joint_belief","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dylan-asmar%2Festimated_joint_belief/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dylan-asmar%2Festimated_joint_belief/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dylan-asmar%2Festimated_joint_belief/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dylan-asmar","download_url":"https://codeload.github.com/dylan-asmar/estimated_joint_belief/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254455803,"owners_count":22074059,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["collaboration","dec-pomdp","multiagent-planning"],"created_at":"2024-12-26T16:17:22.825Z","updated_at":"2025-05-16T02:34:16.034Z","avatar_url":"https://github.com/dylan-asmar.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Supplementary Materials for Efficient Multiagent Planning via Shared Action Suggestions\n\nThis repository contains the code and supplementary materials for the paper \"Efficient Multiagent Planning via Shared Action Suggestions\".\n\n[arXiv Paper](https://arxiv.org/abs/2412.11430)\n\n## Repository Structure\n\n```\n├── src/\n│   ├── problems.jl                     # Defines default parameters for the problems\n│   ├── simulate.jl                     # Contains code for running individual simulations\n│   ├── simulation_runner.jl            # Runs all simulations\n│   ├── policy_generator.jl             # Used to generate additional policies\n│   ├── output_data.jl                  # Displays results in a table\n│   ├── policies/                       # Contains a subset of generated policies\n│   └── results/                        # Contains simulation results\n│\n├── MultiAgentPOMDPProblems/\n│   └── src/\n│       ├── BoxPush/                    # Cooperative Box Push\n│       ├── JointMeet/                  # Meeting in a Grid\n│       ├── broadcast_channel.jl        # Broadcast Channel\n│       ├── multi_tiger_pomdp.jl        # Dec-Tiger\n│       ├── multi_wireless.jl           # Wireless Network\n│       ├── sotchastic_mars.jl          # Mars Rover\n│       ├── vis_utils.jl                # Visualization Utilities\n│       └── MultiAgentPOMDPProblems.jl  # Package definition\n|\n├── install.jl                        # Installs the package\n├── README.md                         # This file\n├── Project.toml                      # Defines the package requirements\n└── Appendix A.pdf                    # Additional results (average and maximum size of belief sets)\n```\n\n## Installation\n\nAll of the developement was done with Julia 1.10 and Julia 1.11. We recommend using the most up to date stable release, but it should work with Julia 1.8 or later. You can download Julia [here](https://julialang.org/downloads/).\n\nTo setup your environment, run the following from the root directory:\n\n```julia\njulia\u003e include(\"install.jl\")\n```\n\nor manually:\n\n```julia\njulia\u003e using Pkg\njulia\u003e Pkg.activate(\".\")\njulia\u003e Pkg.instantiate()\njulia\u003e Pkg.develop(path=\"./MultiAgentPOMDPProblems\")\njulia\u003e Pkg.precompile()\n```\n\n\n## Problem Implementation Details\n\nFor details on the implemenation of the problem used, reference the `MultiAgentPOMDPProblems` package. The parameters used for each problem can be found in the `problems.jl` file.\n\n\n## Generating Policies\n\nOnly a subset of policies are included due to memory constraints. To generate additional policies, use `src/policy_generator.jl`. The parameters used to generate the policies are in `PROBLEMS_TO_RUN` with only the time limit being changed from the SARSOP parameters. Most policices converged prior to the time limit.\n\n## Running Simulations\n\nTo run single simulations and visualize how the belief changes with the sharing of suggestions, use `src/simulate.jl`.  \n\n### Example Usage\n\n```julia\nusing POMDPs\nusing POMDPTools\nusing MultiAgentPOMDPProblems\nusing ProgressMeter\nusing Printf\nusing JLD2\n\nusing DiscreteValueIteration # needed for loading the MMDP policy\n\n# Used for handling results\nusing CSV\nusing Logging\n\ninclude(\"src/problems.jl\")\ninclude(\"src/suggested_action_policies.jl\")\ninclude(\"src/simulate.jl\")\ninclude(\"src/problem_and_policy_helpers.jl\")\n\n\nproblem_symbol = :tiger_3\ncontrol_option = :conflate_action\n\njoint_problem, agent_problems, joint_policy, agent_policies, joint_mdp_policy = load_policy(problem_symbol)\n\njoint_control = get_controller(:mpomdp, joint_problem, joint_policy, agent_problems, agent_policies) # Used to visualize the joint belief for comparison\n# joint_control = nothing # This should be used when not wanting a visualization of the joint policy\ncontrol = get_controller(control_option, joint_problem, joint_policy, agent_problems, agent_policies; delta_single=1e-5, delta_joint=1e-5, max_beliefs=200)\n\nseed = 42\n\ns0 = rand(MersenneTwister(seed), initialstate(joint_problem))\n\nresults = run_simulation(\n    joint_problem, s0, control;\n    seed=seed,\n    text_output=false,\n    max_steps=10,\n    show_plots=true,\n    joint_control=joint_control\n)\n```\n\n### Example Usage (Meeting in a 2 x 2 Grid UI, WP)\n\n\n```julia\n# Same packages as above and included files\n\nproblem_symbol = :joint_meet_2x2_ui_wp\ncontrol_option = :conflate_action\n\njoint_problem, agent_problems, joint_policy, agent_policies, joint_mdp_policy = load_policy(problem_symbol)\n\njoint_control = get_controller(:mpomdp, joint_problem, joint_policy, agent_problems, agent_policies) # Used to visualize the joint belief for comparison\n# joint_control = nothing # This should be used when not wanting a visualization of the joint policy\ncontrol = get_controller(control_option, joint_problem, joint_policy, agent_problems, agent_policies; delta_single=1e-5, delta_joint=1e-5, max_beliefs=200)\n\nseed = 43\n\ns0 = rand(MersenneTwister(seed), initialstate(joint_problem))\n\nresults = run_simulation(\n    joint_problem, s0, control;\n    seed=seed,\n    text_output=false,\n    max_steps=10,\n    show_plots=true,\n    joint_control=joint_control\n)\n```\n\n## Paper Experiments\n\nTo recreate all experiments in the paper, run `src/simulation_runner.jl`. This requires policies for all of the problems and must be computed using `src/policy_generator.jl`.\n\n\nThe csv for the experiments is located at `src/results/results_2024-10-15.csv`. To view the results in a table format, run `src/output_data.jl`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdylan-asmar%2Festimated_joint_belief","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdylan-asmar%2Festimated_joint_belief","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdylan-asmar%2Festimated_joint_belief/lists"}