Skip to content

Running with the GUI

Yash Deshpande edited this page Mar 23, 2020 · 20 revisions

Tree Algorithm Settings

After running the script simstudy.py, a selection menu such as this will appear

  1. Here Q stands for the number of node child nodes a collision will have in the algorithm. It is also referred to as 'd' in certain literatures. If Q = 2, we call it a Binary Tree Algorithm. If Q = 4, Ternary Tree algorithm and so on.. This simulator limits may Q to 10.
  2. K stands for the number of packets that can be decoded in the same slot without Successive interference cancellation. This is acheived through ortogonality in Time, Frequency or Code and using the K-MPR technique. Also refered to as the NOMA paratmeter or T in literature. Normal operation (without K-MPR) is a special case of K-MPR with K = 1.
  3. If Biased Split is checked, it allows for the possiblity for the probability of drawing the 0th slot to be set by the user in the Branching Probability section below the checkbox. If Biased Split is left unchecked, then the branching probability is equal for all the Q-1 slots.
  4. Modified Tree is when a definite collision is skipped.
  5. Unisplit should be checked when an Optimum Static Split algorithm should be simulated. In this, the first collison results in a split equal to the number of collided users. For now, the number is restricted to 10 Users for this simulation.
  6. Successive Interefernce Cancellation (SIC) is when the receiver saves collisions and then tries to resolve them iteratively when there is a success.


These are the Tests that can be directly run from the GUI. Note that they are demonstrative in nature and the simulator includes many additional functions which can be used for deeper analysis.
###One Vizualisation of a Tree This test uses a Graphviz module to create a tree vizualisation. This is extrmemely useful to find bugs in the algorithm as well as demonstrate the effects of SIC, K-MPR, Q , MTA and Unfair Splitting. The vizualisation looks like -

Clone this wiki locally