Skip to content

Formulating and implementing heuristic functions to identify potential task swaps for optimal multi-agent task assignment.

Notifications You must be signed in to change notification settings

jacobsayono/multi-agent-case-swap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multi-Agent Case Swap

Build using CMake.

git clone https://github.com/jacobsayono/multi-agent-case-swap.git
cd multi-agent-case-swap
mkdir build
cd build
cmake ..
cmake --build .
./brute

Tree structure for DFS & BFS.

Tree

DFS

DFSout

BFS

BFSout

Example using 3 robots (X), 2 tasks (O) with cost from each robot to each task.

Desc

Results for best 1-swap:

Result

Results for best k-swap using tree structure:

Result

Example using recursive k-swap for grid implementation with (x, y) coordinates.

Example

Tree class.

The tree class builds a tree of nodes. Each node consists of a task assignment configuration, including its makespan and sum of costs. Additionally, the node dynamically allocates new memory to create a layer of children nodes, pointing to their respective addresses in memory. Each layer of the tree represents the depth in which we do k-swaps. The explored task assignment configuration is stored in a hash table to prevent duplicates and allowing the algorithm to terminate.

The goal is to form a DFS/BFS heuristic using a mathematical hypothesis that hints at us in approaching a lower bound on makespan. The first step is to use a brute-force approach to keep track of the minimum makespan as we traverse the tree.

About

Formulating and implementing heuristic functions to identify potential task swaps for optimal multi-agent task assignment.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published