A research framework for Multi-Objective Hierarchical Auction Framework (MOHAF) for IoT resource allocation.
Project description
MOHAF: Multi-Objective Hierarchical Auction Framework
Overview
This repository provides the implementation and supporting materials for the paper:
"MOHAF: A Multi-Objective Hierarchical Auction Framework for Scalable and Fair Resource Allocation in IoT Ecosystems"
MOHAF is a distributed resource allocation mechanism for heterogeneous IoT environments.
It combines hierarchical clustering, submodular optimization, and dynamic pricing to achieve:
- Efficient allocation of resources in large-scale IoT ecosystems
- Joint optimization of cost, energy efficiency, quality of service (QoS), and fairness
- Theoretical guarantees with a (1 - 1/e) approximation ratio
- Perfect fairness across participants (Jain’s Index = 1.000 in experiments)
We provide code, experimental setup, and references to enable reproducibility and extension of this work.
Repository Contents
MOHAF-Resource-Allocation
├─ .gitignore
├─ LICENSE
├─ MOHAF.ipynb
├─ README.md
├─ docs
│ ├─ index.md
│ ├─ mohaf_paper.pdf
│ └─ usage.md
├─ examples
│ ├─ analyze_results.ipynb
│ └─ run_experiments.py
├─ mohaf
│ ├─ __init__.py
│ ├─ auction_mechanisms.py
│ ├─ core.py
│ ├─ scenarios.py
│ └─ utils.py
├─ pyproject.toml
├─ requirements.txt
└─ tests
├─ __init__.py
├─ test_auction_mechanisms.py
└─ test_core.py
Installation
You can install MOHAF directly from PyPI:
pip install mohaf
Usage
After installation, you can import MOHAF in your Python scripts:
from mohaf.auction_mechanisms import MOHAFAuction
from mohaf.scenarios import generate_synthetic_scenario
# 1. Initialize the auction mechanism
mohaf_auction = MOHAFAuction(alpha=0.3, beta=0.3, gamma=0.2, delta=0.2)
# 2. Generate a synthetic scenario
resources, requests = generate_synthetic_scenario(n_resources=50, n_requests=30)
# 3. Run the auction
results = mohaf_auction.run_auction(resources, requests)
metrics = mohaf_auction.calculate_metrics(results)
print("Auction completed!")
print(f" Allocation Efficiency: {metrics['allocation_efficiency']:.3f}")
print(f" Revenue: ${metrics['revenue']:.2f}")
For more detailed examples and to reproduce the experiments from the paper, please see the examples/ directory and the MOHAF.ipynb notebook in the repository.
Dataset
Experiments rely on the publicly available Google Cluster Data: https://github.com/google/cluster-data
License
This project is licensed under the MIT License.
Citation
If you use this repository, please cite the associated paper:
@misc{Agrawal2025,
author = {Agrawal, Kushagra and Goktas, Polat and Bandopadhyay, Anjan, and Ghosh, Debolina and Jena, Junali Jasmine and Gourisaria, Mahendra Kumar},
title = {MOHAF: A Multi-Objective Hierarchical Auction Framework for Scalable and Fair Resource Allocation in IoT Ecosystems},
year = {2025},
eprint = {2508.14830},
archivePrefix= {arXiv},
primaryClass = {cs.DC},
doi = {10.48550/arXiv.2508.14830},
url = {https://arxiv.org/abs/2508.14830}
}
📌 Repository link: https://github.com/afrilab/MOHAF-Resource-Allocation/tree/main
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mohaf-0.1.0.tar.gz.
File metadata
- Download URL: mohaf-0.1.0.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76330ed6e1de6213bc7a31f0797a9179027651376a08436fb25edcba6b33c34b
|
|
| MD5 |
fb40cc81030c04a42d961f19d20d2020
|
|
| BLAKE2b-256 |
1bb290b14992b09beeea7d919f70b8c68200cd99a081ade01152fdc958192b82
|
File details
Details for the file mohaf-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mohaf-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5266e054a4ec8e54968558e1d411a7679cdca8204515141d98b060ccfdf4d454
|
|
| MD5 |
4736682605188ff2ea6d41c4c7a82e97
|
|
| BLAKE2b-256 |
2ffa5fb5b702844b6ca41055c323e289ddb9a7fd998bcf88841ea77dc02ceaa2
|