Dynamic decentralized task allocation algorithms for multi-agent systems using a greedy auction algorithm
Project description
Task Allocation using Auctions
Dynamic decentralized task allocation algorithms for multi-agent systems using a greedy auction algorithm. It's available in Matlab and Python.
Official GitHub repository: https://github.com/MartinBraquet/task-allocation-auctions.
Master's research at The University of Texas at Austin in the research group of Efstathios Bakolas.
The paper resulting from these simulations has been published at the Modeling, Estimation, and Control Conference (MECC 2021).
To cite this work:
Braquet, M. and Bakolas E., "Greedy Decentralized Auction-based Task Allocation for Multi-Agent Systems", Modeling, Estimation and Control Conference (MECC), 2021.
Official paper link: https://doi.org/10.1016/j.ifacol.2021.11.249.
Demo
2D map of the dynamic task allocation (10 agents and 10 tasks) with associated reward, cost, and utility
With limited communication:
With free communication:
Matlab
In the matlab folder.
- For the dynamic task allocation, run
OptimalControl_DTA.m. - For the sensitivity analysis of the parameters, run
optimalControlParametersAnalysis.m.
To run the code in Matlab online: https://drive.matlab.com/sharing/f36a058f-99a4-4e38-a08e-0af800bd4ce8.
Python
In the gcaa folder.
Installation
The Python package works on any major OS (Linux, Windows, and macOS) and with Python >= 3.11.
The most straightforward way is to simply install it from PyPI via:
pip install gcaa
If you want to install it from source, which is necessary for development, follow the instructions here.
If some dependencies release changes that break the code, you can install the project from its lock file—which fixes the dependency versions to ensure reproducibility:
pip install -r requirements.txt
Usage
For the dynamic task allocation, run:
import gcaa
gcaa.optimal_control_dta(
nt=4, # number of tasks
na=5, # number of agents
uniform_agents=False, # whether agents have an initial speed
n_rounds=20, # number of simulation rounds (precision vs compute time)
limited_communication=True, # whether communication is limited (True, False, or 'both')
)
The sensitivity analysis of the parameters isn't available in Python.
Tests
pytest gcaa
Feedback
For any issue / bug report / feature request, open an issue.
Contributions
To provide upgrades or fixes, open a pull request.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gcaa-1.0.0.tar.gz.
File metadata
- Download URL: gcaa-1.0.0.tar.gz
- Upload date:
- Size: 30.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62b9c7dc26f04de521e0cd98236aca3ce1a04c86e735e655a03a46d1919bfb50
|
|
| MD5 |
2d417fd94bf666565cb6ef7ef8aadda4
|
|
| BLAKE2b-256 |
67425e91e02fd10e9d19b67a372f65716ac5abc5be436da56c5949e95b2db527
|
File details
Details for the file gcaa-1.0.0-py3-none-any.whl.
File metadata
- Download URL: gcaa-1.0.0-py3-none-any.whl
- Upload date:
- Size: 33.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a275cea0c676fafe710b53b5e76a11a38692eeed81e1b8aa99687a86cc1fb4e7
|
|
| MD5 |
d2e31b990acd6d354e07f0c28c96d3f2
|
|
| BLAKE2b-256 |
837f5e8ff78d4e210f53b568b30ff491bfffa86aded0e6df496db9651939b79f
|