Rec2Assign maximize profit and the assignment success rate by balancing competition among workers, while simultaneously ensuring fairness.
- Rec2Assign is composed of two main components: (1) Task Recommendation, which aims to recommend an optimal task set for each worker aims to increase the profit. We first compute the Valid Task Set for all workers based on spatiotemporal distribution and introduce a Multi-Stage Probabilistic Recommendation (MSPR) Algorithm, which iteratively recommends tasks based on workers’ willingness for maximizing the overall profit. Next, we apply a Supply-Demand Flow Balancing (SDFB) Algorithm to improve assignment success rate by constructing a Supply-Demand Transfer Graph that identifies the most suitable task regions for each worker to balance competition among workers. (2) Task Assignment, which aims to assign an optimal task to each worker in order to maximize profit while maximizing the consistency of assignment success rates across workers. First, each worker selects a task set based on their willingness from the recommended set. We then employ the Fairness-aware algorithm, which prioritizes tasks assignment to workers with lower assignment success rates while still maintaining high overall profit.
- tqdm==4.67.1
- pandas==2.2.3
- numpy==2.2.3
- matplotlib==3.9.2
└── code-and-data
    ├── data                   # Including DiDi and Yueche datasets
    ├── dataloader             # Codes of preprocessing datasets and calculating metrics
    ├── assignment             # Different assignment and recommendation methods
    ├── utils                  # utils files
    ├── main.py                # This is the main file
    └── README.md              # This documentYou can access the well pre-processed datasets from [Github], then place the downloaded contents under the correspond dataset folder such as ./dataset/dd.
- Download datasets and place them under ./dataset
- Install the required Python packages by running:
pip install -r requirements.txt
- Start:
python main.py
