Some quick instructions on how to build the input for the algorithm.
Agent capacities represent the maximum number of items each agent can be allocated.
Item capacities represent the maximum number of times each item can be allocated.
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.
Not sure how to format your CSV? View CSV Format Example
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.
The paper can be found here.