Skip to main content

Dynamic decentralized task allocation algorithms for multi-agent systems using a greedy auction algorithm

Project description

Release CI CD Coverage Downloads License: MIT

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:

Alt Text

With free communication:

Alt Text

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gcaa-1.0.0.tar.gz (30.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gcaa-1.0.0-py3-none-any.whl (33.9 kB view details)

Uploaded Python 3

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

Hashes for gcaa-1.0.0.tar.gz
Algorithm Hash digest
SHA256 62b9c7dc26f04de521e0cd98236aca3ce1a04c86e735e655a03a46d1919bfb50
MD5 2d417fd94bf666565cb6ef7ef8aadda4
BLAKE2b-256 67425e91e02fd10e9d19b67a372f65716ac5abc5be436da56c5949e95b2db527

See more details on using hashes here.

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

Hashes for gcaa-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a275cea0c676fafe710b53b5e76a11a38692eeed81e1b8aa99687a86cc1fb4e7
MD5 d2e31b990acd6d354e07f0c28c96d3f2
BLAKE2b-256 837f5e8ff78d4e210f53b568b30ff491bfffa86aded0e6df496db9651939b79f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page