Skip to main content

A Network Simulator that randomly generates and calculates minimum paths in a configurable random doubly-weighted graph

Project description

NetworkSim

NetworkSim is a project I wrote for CPE 400 (Computer Networking) and have implemented testing and CI/CD for as a part of CS 491 (DevOps and Testing).

NetworkSim generates random double-weighted graphs and finds the shortest distance between each node to every other node in the graph. The user can specify the number of simulations they want to run and the program will create a directory of directories representing each simulation. In each simulation directory exists a .png picture of the graph and a text file that has a list of the shortest path between every node to every other node, along with the weight of taking that path.

This program simply brute forces all of these calculations, so I would recommend playing with it a bit before going and running a million simulations on a Core 2 Duo. YMMV!


I would recommend using a virtual environment to run this package.

To initialize, simply run:

python3 -m venv env

source env/bin/activate

Then to install the required packages, simply run:

pip install -r requirements.txt

Once all required libraries are installed, simply run:

python src/networksim_package/NetworkSim.py

Or change directory into the packag directory by running:

cd src/networksim_package/
python NetworkSim.py

After reading all of the initial prompts, please input the parameters that one would like to use to run the simulations. Some lightweight parameters that one can use to test the functionality can be found below:

Number of simulations: __ (Up to the user)

Estimated number of nodes: 15 (Takes usually less than 3 seconds per sim on 2017 Macbook Pro i7)

Edge creation probability: 0.2 (0.3 can be fine too, but expect longer time per simulation iteration)

Min/max weights for nodes/edges: __ (Up to the user, just arithmetic, doesn't affect performance)

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

NetworkSim-brysonreese-0.0.2.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

NetworkSim_brysonreese-0.0.2-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file NetworkSim-brysonreese-0.0.2.tar.gz.

File metadata

File hashes

Hashes for NetworkSim-brysonreese-0.0.2.tar.gz
Algorithm Hash digest
SHA256 9f6a9d1be9d9f7fb1cdb1917fa2c3e435d2b1b1eddadbbb83c7506a3030312a2
MD5 9624b0c9e8ae48cf49dffcbe0fd62175
BLAKE2b-256 ecd1d93d90c20808d9847f7ec6e497a5ff3324e8f6dda86561b6fd2751a304d1

See more details on using hashes here.

File details

Details for the file NetworkSim_brysonreese-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for NetworkSim_brysonreese-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ee06dada590b07d3448227dc4cc7c47bbb6aca4500205c0ec930991a9d79d08c
MD5 663b106c4c516026c331e20bd1e759cb
BLAKE2b-256 6b692888a319cdfd5c23244c684ad97fd6ede8cd4ead672a8a2d1035cbe045ac

See more details on using hashes here.

Supported by

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