GithubHelp home page GithubHelp logo

deshpandeyash / treesplittingsimulator Goto Github PK

View Code? Open in Web Editor NEW
2.0 4.0 0.0 123.2 MB

License: MIT License

Python 100.00%
simulations aloha collision-detection collision-avoidance collision-simulator collision-checking algorithms mediumaccess tree

treesplittingsimulator's Introduction

Tree Splitting Simulator

In mulit-user communication on a wireless channel, the medium access problem has many well known solutions. The first common random-access algorithm known as pure ALOHA was conceptualized and implemented in the 1970s. The meduim access schemes can be divided into two broad categories, namely static allocation (reservation based) and dynamic allocation. Reservation based (fixed allocation) schemes such as TDMA and FDMA are suitable for steady and heavy traffic, dynamic allocation is better for bursty and sporadic traffic. In the scenario of random access over a shared channel, packets are bound to collide, in which case all the information is lost. Hence, there arises the need for retransmissions in order to ensure delivery of data by the nodes. In order to ensure that all the packets that have collided, are transmitted succesfully, collision resolution algorithms (CRAs) came up, and one such CRA was proposed by Capetanakis (1979)[1] known as the Tree Resolution Algorithm or the tree splitting collision resolution algorithm. More detials about the the setup and scheme for this algorithm can be found on the wiki page https://github.com/deshpandeyash/treesplittingsimulator/wiki .

Since then more people have inverstigated their properties and suggested improvements. One such notable improvement was the addition of Successive Interference Cancellaiton (SIC) to the tree resoltion algorithms. In this scheme, collisions are saved and then cancelled after one succesful transmssion by the reciever. This was proposed by Yu and Giannakis in 2007[2]

This simulator plans to simulate those algorithms and any additions that contributors wish to add. The code has been written in a maintainable fashion in PEP8 wherever possible. The algorithm part of the code itself has comments on every line for the user to understand. The target for this simulator are educators who wish to use the vizualisation tools in this to better illustrate the algorithms or researchers who wish to investigate and build their own algorithms. For starters, it would be great to read the relevant material and begin with running the tests offered by the GUI https://github.com/deshpandeyash/treesplittingsimulator/wiki/Running-with-the-GUI .

This project is licensed under MIT Open License. https://github.com/deshpandeyash/treesplittingsimulator/blob/master/LICENSE.md

treesplittingsimulator's People

Contributors

dependabot[bot] avatar deshpandeyash avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  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.