Skip to content
/ MEPK Public

A General Multi-agent Epistemic Planner Based on Higher-order Belief Change

Notifications You must be signed in to change notification settings

sysulic/MEPK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multi-agent Epistemic Planner with Knowledge (MEPK)

A planner for multi-agent epistemic planning based on higher-order belief change.

Citation

If you use this work in your research, please cite:

@article{wan2021general,
  title={A general multi-agent epistemic planner based on higher-order belief change},
  author={Wan, Hai and Fang, Biqing and Liu, Yongmei},
  journal={Artificial Intelligence},
  volume={301},
  pages={103562},
  year={2021},
  publisher={Elsevier}
}

The original code from IJCAI 2017 paper "A General Multi-agent Epistemic Planner Based on Higher-order Belief Change" can be found here.

Recently, we proposed two new algorithms for MEPK code.

If you use these two new algorithms, please cite:

@inproceedings{fang2024heuristic,
  title={Heuristic strategies for accelerating multi-agent epistemic planning},
  author={Fang, Biqing and Lin, Fangzhen},
  booktitle={Proceedings of the International Conference on Principles of Knowledge Representation and Reasoning},
  volume={21},
  number={1},
  pages={339--349},
  year={2024}
}

Introduction

MEPK is a knowledge-based planner implemented in C/C++. It treats a knowledge-base as a state in the search progress, enabling reasoning about multi-agent epistemic states. The planner supports both breadth-first search and heuristic search strategies.

We are developing MEP Online (Ipv6), an interactive platform designed to make MEPK more accessible and easier to understand.

System Requirements

Supported Platforms

  • Ubuntu
  • macOS

Dependencies

Getting Started

Compilation

Navigate to the MEPK/src directory and run:

$ make
  • Run with breadth first search:

    • Run one test case
    $ ./mepk ../benchmarks/hexa/hexa_domain3.epddl 2
    • Run all test cases
    $ ./run_with_bfs.sh
  • Run with heuristic strategy:

    • Run one test case
    $ ./mepk ../benchmarks/hexa/hexa_domain3.epddl 0
    • Run all test cases
    $ ./run_with_heu.sh
  • Debug:

$ ./test ../benchmarks/hexa/hexa_domain3.epddl