Skip to content
dfki-inPublic

About

a customizable framework named User Data Demand Simulation (UDD-Sim), which simulates internet traffic demand for mobile users and stationary devices for smart cities.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

Smart Resource Allocation

Welcome to the Smart Resource Allocation repository. This project provides a platform to make different synthetic user data demand simulations comparable. The tool enables to build custom small villages and towns to accomodate data spacity. If real data is available only for a specific base cell, this tool now allows to rebuild this cell and calibrate the simulation on availbale real data.

Table of Contents

how to install:

  • install python-packages from "requirements.txt"
  • python-tkinter should be available! (for example for MAC using brew: brew install python-tk)

Introduction

This framework is meant to provide a platform to make different synthetic user data demand simulations comparable. Note, that no new algorithms or models are proposed. The implemented formulas for user data demand are simple and heuristic to help determine, wether the framework is set up correctly. To use this tool Python 3.12.3 and above is required. The .pkl files are not backwards compatible amongst the different Python versions. This program is divided in a calculation module, a configuration module and application modules, either as an user interface or a Jupyter Notebook. All the information of each created building and device are stored in a SQLite database.

Features

  • Customizable Internet Usage Demand Simulation framework for smart cities (see code comments to see where to implement the algorithms you want to compare)
  • Data analysis and visualization tools
  • User-friendly interface
  • Customizable settings and parameters

Usage

To start a simulation GUI-version: 'SRA_Visualization.py' / To start the Jupyter Notebook version: 'consoleTesting.ipynb'. In the GUI choose a seed number on the top right for reproducability and click "set". Then on "custom map" a map can be created. After running a simulation, results can be accessed in the drop down menu at the bottom right of the main UI.

Jupyter Notebook

Every step to run and analyse a simulation is written in this file. First, import the required modules and classes. Then, either load an existing simulation file with the right path or you can create a new simulation by inserting a 'hash code', the format is given in the notebook, and further parameters like the size of the simulation environment, the simulation duration in hours and more. After completing the simulation you can export further data in an excel sheet or save the simulation as a pickle file. The notebook has a variety of different analysing tools to visualize the outcomes.

User Interface

Using the user interface gives you a more intuitive way of to create and analyse simulations. The hash code to start a simulation is create by setting the required parameters, starting with the simulation seed. After this is set you can insert different kinds of building types and their amount and set the final parameters mentioned above. Or you can create a simulation with custom placed buildings to rebuild your own city or town. After the simulation is done there are many details of the simulation showing in the UI. A finer analysis of different buildings is also possible by clicking on one or choosing out of the buildings list. Exports and savings of the simulation environment are available.

Customize functions and usage models

For compiling exemplary simulations the usage model weights are initialized with heuristic numbers in the calculation_config.py. Please adapt to the statistics and behaviour to your local usecase based on your available real datasets.

Adapt the numbers of stationary devices per building type: See the definitions of num(building_type), e.g. numH denotes the number of stationary devices in private houses. Weights in the funciton changeUsageModelWeights determine the probability distribution used when selecting which usage model a device or user will follow. Higher weights make that particular usage model more likely to be chosen.

If you use this framework for your own work please cite:

M. Rueb, J. Herbst, R. Schroeder and H. D. Schotten, "A Simulation Environment Predicting User Data Demand (UDD-Sim) in Upcoming Wireless Networks and Smart Cities," Mobilkommunikation; 29. ITG-Fachtagung, Osnabrück, 2025, pp. 41-46. ISBN: 978-3-8007-6530-0.

About

a customizable framework named User Data Demand Simulation (UDD-Sim), which simulates internet traffic demand for mobile users and stationary devices for smart cities.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages