Skip to content

CodeDW771/EJOR25_code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README

Overview

This repository contains the Python implementation of the algorithms and experiments presented in our paper "Reconciling Information Opacity and Collective Efficiency: Distributed Approach in Mechanism-Driven Systems". The code is designed to demonstrate various functionalities, including example creation, comparison of mechanism design, evaluation of distributed algorithm performance, and assessment of code acceleration techniques.

Requirements

This code was tested under Python 3.11.7. To run this code, you need to install some packages.

numpy==1.26.4
matplotlib==3.8.0
networkx==3.1
gurobipy==11.0.3
scipy==1.11.4
pandas==2.1.4

Run

The code provides the following main functionalities: mechanism design comparison, distributed algorithms comparison and algorithm acceleration comparison.

Mechanism design comparison

We compare the performance between two machanisms: shadow price mechanism and VCG mechanism. We achieve the two mechanisms and run some tasks in Mech_related.py, and plot the figure in Mech_draw.py. The complete pipeline is implemented in mechanism_design_comparison(examplenow) function in Main.py. To test this component, you can run the following code in Main.py:

# examplenow = 1 for mechanism_design_comparison, contains preconfigured Parameters.
mechanism_design_comparison(examplenow = 1)

Distributed algorithms comparison

Compare our distributed algorithm's performance with other algorithm. We choose four algorithms: Tracking-ADMM, DPMM, IPLUX, PDC-ADMM. We achieve these algorithms in TrackingADMM.py, DPMM.py, IPLUX.py, PDC-ADMM.py respectively, and acheive Algorithm 2 in Algorithm_2_in_our_paper.py. The complete pipeline is implemented in distributed_alg_comparison(examplenow) function in Main.py. To test this component, you can run the following code in Main.py:

# examplenow = 1/2/3 for distributed_alg_comparison, contains preconfigured Parameters, representing small-scale, midium-scale, large-scale scenarios respectively.
distributed_alg_comparison(examplenow = k)

Algorithm improvement comparison

Compare the performance between Algorithm 1 (Consensus-Tracking-ADMM) and Algorithm 2 (Accelerated-Consensus-Tracking ADMM). The complete pipeline is implemented in improvement_comparison(examplenow) function in Main.py. To test this component, you can run the following code in Main.py:

# examplenow = 4/5/6 for acceleration comparison, contains preconfigured Parameters, representing small-scale, midium-scale, large-scale scenarios respectively.
improvement_comparison(examplenow = k)

Contact

For questions or issues, please open an issue in this repository or contact the authors directly.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages