Skip to content

DataDrivenStrategicCollaborationGroup/AssignmentProblemWithDiversityConstraints

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Assignment Problem with Diversity Constraints

This repository contains the code to reproduce the results from the paper Assignment Problem with Diversity Constraints(in preparation) and Diversity Constraints in Public Housing Allocation(AAMAS 2018).

Authors: Nawal Benabbou, Mithun Chakraborty, Xuan-Vinh Ho, Jakub Sliwinski, and Yair Zick

For any issue regarding this repository, please contact Nawal Benabbou(nawal.benabbou@lip6.fr) or Xuan-Vinh Ho(hxvinh@comp.nus.edu.sg)

Prerequisites

Our program is written in Java with available standard libraries, except for Gurobi(an optimization tool). Any issue in activating the license and using the library can be found here.

Directory Structure

Our directory is organized as follows:

|-- bin
|-- Data
|   |-- chicago
|   |   `- HDB_data.xlsx
|   `-- housing
|   |   `- Chicago_data.xlsx
|-- Results
|-- src
|   |-- Agent.java
|   |-- MainTests.java
|   |-- ProcessResultsFile.java
|   `-- Solveur.java

All the simulated data are stored in HDB_data.xlsx and Chicago_data.xlsx, then being converted to corresponding *.txt files such that the program can load input from.

To play with parameters and observe the changes in outcome, user has to modify directly in MainTests.java file. Specifically, you have to turn on one of the following boolean variables:

        boolean HDB_realData = false; 
        boolean varyHDB = false;
        boolean chicago = false;

For each option, you are further required to modify related setting:

  • HDB_realData: run experiments using the data collected from HDB website
        boolean randomUtility = false;
	boolean locationBasedUtility = false;
	boolean locationEthnicityBasedUtility = false;
	boolean projectBasedUtility = false;
	boolean incomePriceBasedUtility = false;
	
        MainTests.variance = 10;
	
	int numTests = 100;
  • varyHDB: run experiments with real data but varying the number of agents, types and blocks
        boolean varyNumberAgents = false;
	boolean varyNumberBlocks = false;
	boolean varyNumberTypes = false;
	
        boolean locationBased = true;
        MainTests.variance = 10;
	
	int numTests = 100;
  • chicago: run experiments using the data obtained from the Chicago public school allocation website
        int numberOfChildren = 5000;
        int numTests = 100;
	
        double[] vars = {0,10,50,100};

Result

After the simulation finishes, all results are stored in Results folder. Each running produces 3 types of file: error-*.txt, *-var*.txt and *-octave.txt.

  • error-*.txt shows the standard deviation and standard error of utilitarian social welfare in optimal solution under constraint, solution in lottery unconstrained optimal solution.
  • *-var*.txt shows the value of unconstrained optimal solution, PoD of constrained optimal solution, PoD of lottery solution, theoretical bound based on minAlpha, betaStar and theoretical bound based on betaStar, in each iteration.
  • *-octave.txt shows the value of the above 6 values, in expectation.

For project-based model, there are two differences from the above:

  • Instead of *-var-*.txt, we have *-radius*.txt
  • *-radius*.txt (hence also *-octave.txt) shows a 7th value: percentage of approved blocks per agent

Note that if user reruns the experiment with the same setting, previous result files should be moved to somewhere else, otherwise they will be overwritten.

About

This repository contains the code to reproduce the results from the paper "Assignment Problem with Diversity Constraints".

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages