High-Multiplicity Fair Allocation Made More Practical


How to build the input

Some quick instructions on how to build the input for the algorithm.

Agent Capacities

Agent capacities represent the maximum number of items each agent can be allocated.

Item Capacities

Item capacities represent the maximum number of times each item can be allocated.

Valuations

Valuations represent how much each agent values each item.


The capacities and valuations must be formatted as dictionaries.
For example,
agent capacities: {"Ami": 2, "Tami": 2, "Rami": 2}
Item capacities: {"Fork": 2, "Knife": 2, "Pen": 2}
Valuations: {"Ami": {"Fork": 2, "Knife": 0, "Pen": 0}, "Rami": {"Fork": 0, "Knife": 1, "Pen": 1}, "Tami": {"Fork": 0, "Knife": 1, "Pen": 1}}

You can also try some complex examples like:
Just notice that it will take a while to execute, be patient.
agent_capacities = {'s1': 3, 's2': 3, 's3': 3, 's4': 3}
item_capacities = {'c1': 2, 'c2': 3, 'c3': 2, 'c4': 2, 'c5': 2, 'c6': 3}
valuations = {
's1': {'c1': 152, 'c2': 86, 'c3': 262, 'c4': 68, 'c5': 263, 'c6': 169},
's2': {'c1': 124, 'c2': 70, 'c3': 98, 'c4': 244, 'c5': 329, 'c6': 135},
's3': {'c1': 170, 'c2': 235, 'c3': 295, 'c4': 91, 'c5': 91, 'c6': 118},
's4': {'c1': 158, 'c2': 56, 'c3': 134, 'c4': 255, 'c5': 192, 'c6': 205}}
Notice: The complex example time of execution is longer than the simple examples.


Use these formats when entering data manually or uploading a CSV file.


Enter Data Manually




Upload CSV File


Description of the Algorithm

The algorithm addresses computational challenges in fair allocation by seeking envy-free solutions and refining the solution space with constraints. It ensures each agent prefers their own bundle and optimizes social welfare without revisiting previous solutions, employing linear programming for constraint enforcement.


Programmers

The programmers of the code for this algorithm are:

- Elor Israeli
- Naor Ladani


Authors of the Paper

The authors of the paper are:

- Robert Bredereck
- Aleksander Figiel
- Andrzej Kaczmarczyk
- DuĊĦan Knop
- Rolf Niedermeier