Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mohaf-0.1.0.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mohaf-0.1.0-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

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

Hashes for mohaf-0.1.0.tar.gz
Algorithm Hash digest
SHA256 76330ed6e1de6213bc7a31f0797a9179027651376a08436fb25edcba6b33c34b
MD5 fb40cc81030c04a42d961f19d20d2020
BLAKE2b-256 1bb290b14992b09beeea7d919f70b8c68200cd99a081ade01152fdc958192b82

See more details on using hashes here.

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

Hashes for mohaf-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5266e054a4ec8e54968558e1d411a7679cdca8204515141d98b060ccfdf4d454
MD5 4736682605188ff2ea6d41c4c7a82e97
BLAKE2b-256 2ffa5fb5b702844b6ca41055c323e289ddb9a7fd998bcf88841ea77dc02ceaa2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page