Skip to content

Algorithms of fairly allocating indivisible items to agents

Notifications You must be signed in to change notification settings

Fernadoo/FairAllocation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Allocating individible items

A python implementation of all algorithms that allocate indivisible items.

Usage:

$ python eval.py -h
usage: eval.py [-h]
               [--alg {roundRobin,envyGraph,MUtilW,MNW_opt,MNW_local,CSP1,CSPx}]
               [--num_agents NUM_AGENTS] [--num_items NUM_ITEMS] [--round RD]
               [--seed SEED]

Allocating indivisible items.

optional arguments:
  -h, --help            show this help message and exit
  --alg {roundRobin,envyGraph,MUtilW,MNW_opt,MNW_local,CSP1,CSPx}
                        Select the allocation algorithm
  --num_agents NUM_AGENTS
                        Specify the number of agents
  --num_items NUM_ITEMS
                        Specify the number of items
  --round RD            Specify the degree of rounding
  --seed SEED           Specify the seed
  • Example:

python eval.py --alg roundRobin --num_agents 4 --num_items 50 --round 2 --seed 7

Implementation so far:

Algorithm Comp EF1 PO EFx(any) Allow_neg Reference Support
roundRobin Poly Y N N The Unreasonable Fairness of Maximum Nash Welfare Y
doubleRoundRobin Y Fair Allocation of Indivisible Goods and Chores
envyGraph Poly Y N N On Approximately Fair Allocations of Indivisible Goods Y
genEnvyGraph Y Fair Allocation of Indivisible Goods and Chores
MUtilW Poly N Y N / Y
MNW_opt NP-hard Y Y N The Unreasonable Fairness of Maximum Nash Welfare Y
MNW_local DK DK DK N A Realistic Approach to Solve the Nash Welfare Y
CSP NP-hard Y Y Y
deepNet Linear Y DK

About

Algorithms of fairly allocating indivisible items to agents

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages