This project aims to implement various multi-agent hedonic coalition formation for task allocation algorithms for research purposes.
The following algorithms are implemented:
- GRAPE: Anonymous Hedonic Game for Task Allocation in a Large-Scale Multiple Agent System link
The following algorithms are planning to be implemented:
- GRAPE-S: Near Real-Time Coalition Formation for Multiple Service Collectives link
The following software is required for proper operation
GCC >= 14.1
CMake >= 3.20
OpenMPI >= 4.1
Run the following commands in the root directory of the repository to compile all executables. The base project uses cmake build system with default of make.
cmake ./
make
To remove all executables and build files run the following command in the root directory of the repository.
make clean
Note: This will not remove cmake cache files, only files created by make.
The primary executable is mahse
multi-agent hedonic simulation environment.
The program is implemented using GNU Argp, and has available --help
menu for
information on the arguments that each program accepts, which are required and
are optional. This is a MPI program, which means it requires running under
mpirun
. The number of MPI processes determines the number of agents, tasks
start at 2 by default, minimum run is 3 nodes/agents, and 2 tasks.
# run with 5 agents, 2 tasks (default)
mpirun -np 5 ./mahse
# run with 20 agents across 2 machines(28 max) reward 20, modifier 5, tasks 5, Peaked-Reward
mpirun --use-hwthread-cpus -np 20 --host host1:16,host2:12 ./mahse -r 20 -m 5 -t 5 -u 0
A script has been created exp/grape_exp.sh
that will run grape against a variety
of agent, tasks, and heuristics and collect data. Values are hard coded but
variables can be changed at the top for easy of modification for experimentation.
Log files will be generated for each run in a logs/
subdirectory of what ever
directory the script is run in, typically, the root directory of the project,
where the binary is located as it will not be found otherwise.
# run in project dir
./exp/grape_exp.sh