GithubHelp home page GithubHelp logo

duruii / replica-euwr Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 18.4 MB

🐯REPLICA of "Combinatorial Multi-Armed Bandit Based Unknown Worker Recruitment in Heterogeneous Crowdsensing"

License: GNU General Public License v3.0

Python 0.43% Jupyter Notebook 99.57%
crowdsensing crowdsourcing mab mobile-crowdsensing multi-armed-bandits online-learning worker-recruitment

replica-euwr's Introduction

Replica-EUWR: Combinatorial Multi-Armed Bandit Based Unknown Worker Recruitment in Heterogeneous Crowdsensing

Developed and tested on Apple M1, macOS 13.5.2 (22G91).

Overview

This repository contains the Python re-implementation of the Unknown Worker Recruitment (UWR) algorithms proposed in the referenced paper. Our code strives to faithfully replicate the algorithms and experiments described in the paper, allowing for the validation of the paper's assertions.

Details

Simulation Data Generation

One significant obstacle in replicating the experiment is the insufficiently developed simulation description, particularly with regard to the processing of GPS data. Despite this, we make our utmost effort to adhere to the description provided in the paper [code, code].

The selected tasks are given by blue stars, while the trajectory of some of the chosen workers by colorful dots.

Task Buffer Worker

The generator.py file also contains the EasyGenerator class for simulating data, which randomly generates workers and tasks. Modify the generation mode in config.py to switch between different simulation settings.

Data Source

This repository utilizes data from CRAWDAD RomaTaxi. For similar results, download the dataset and place it in the ./dataset directory.

Algorithm Implementation

Due to limited descriptions of compared algorithms in the replicated paper, we implemented the epsilon-first, alpha-optimal, and random algorithms based on our understanding. The proposed algorithm from the paper has been faithfully reproduced according to the provided pseudocode. These implementations can be found in the ./algorithms directory.

Experimental Results

pip install -r requirements.txt
python3 main.py
UWR EUWR

Discussion

📊 Total Weighted Quality:

  • 🟢 UWR(EUWR) & Optimal: Closely matched performance.
  • 🔵 0.1-first, 0.05-first, & Random: Less stable compared to the paper.

🧠 UWR: Theoretically, the Optimal algorithm should strictly outperform all others. However, in our implementation, we drew inspiration from the concept of Steepest Ascent, which may lead to finding only a local optimum, even when all hidden parameters are known.

🔍 Observation: The instability in the relationship among 0.1-first, 0.05-first, and random algorithms, as compared to the original study, may be due to our different interpretation stemming from the paper's limited algorithmic descriptions.

📈 Total Rounds:

👓 Note: Our replicated algo.1 and algo.2 show a higher number of rounds than those in the original experiment. Additionally, the magnitude of our results differs from those reported in the paper, potentially attributable to our distinct understanding and implementation based on the non-detailed data processing methods in the study.

Reference

@INPROCEEDINGS{9155518,
  author={Gao, Guoju and Wu, Jie and Xiao, Mingjun and Chen, Guoliang},
  booktitle={IEEE INFOCOM 2020 - IEEE Conference on Computer Communications}, 
  title={Combinatorial Multi-Armed Bandit Based Unknown Worker Recruitment in Heterogeneous Crowdsensing}, 
  year={2020},
  volume={},
  number={},
  pages={179-188},
  doi={10.1109/INFOCOM41043.2020.9155518}
}

Issues

For bugs, questions, or discussions, please use the issues section of this repository.

Contributions

We welcome contributions to enhance the accuracy of replication. Fork the repository, commit your changes, and make a pull request.

replica-euwr's People

Contributors

duruii avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.