Skip to content

iu-vail/iAuction-algorithm

Repository files navigation

#
# PLEASE READ THIS FILE FIRST.
#
# This is a centralized version of an optimal assignment algorithm based on 
# our paper "Optimal Market-based Multi-Robot Task Allocation via Strategic 
# Pricing" published in RSS 2013. The algorithm is written in C++
# (using STL as main data structures). 
#
# The algorithm assumes the input a MAXIMIZATION problem.
# 
# The time complexity of this implementation is O(N^3 lg N), but is tested  
# faster than other algorithms of the same time complexity. (Make sure the
# DEBUG mode is turned off when running large size problem!)

# Moreover, this algorithm in nature can be decentralized.

# 11/2012

# Last update: on 6/2018
# The code was written a few years ago, but still compiled and worked like a charm on the latest linux system.
# Papers and related work can be found at http://vail.sice.indiana.edu
# Lantao Liu, <lantao@iu.edu>


# -----------------------------------------------

# The code has been tested in Ubuntu 10.04+ and Mac OS 10.5., with gcc4.3.3.

To compile, just type 'make'
To clean, just type 'make clean'

! Micros of DEBUG in Define.h can toggle the debug mode;
! Micros of INTEGER in Define.h can toggle the data types of random values;
! Micros of MAX_RANDOM in Define.h specifies the max random values;

Command Line:
Type "./iAuction -h" to prompt below usage options.

	./iAuction
		-i <file>       #specify <file> which assignment will be 
				#imported from. <file> contains a matrix.
				#Default: randomly generating assingment
		-s <size_t>     #use random generator instead of input file,
				#<size_t> should specify seed for generator,
				#this helps analyze one specific assignment
				#Default: time(Null)
		-n <size_t>	#if use random generator, tell me the size
				#Default: 5x5

				#The random generater by default can genenerate
				#natrual number from 0 to 100. You can grep and
				#change macro MAX_RANDOM for other values
				

For instance:
	./iAuction
		run iAuction with a 5x5 random assignment everytime.
	./iAuction -i example
		run iAuction on this example assignment
	./iAuction -s 10 
		run iAuction with random seed 10, on a default 5x5 assignment
	./iAuction -s 10 -n 20
		run iAuction with random seed 10, on a 20x20 assignment
	

About

Fast task allocation (assignment) algorithm

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published