FRENCH-AZERBAIJANI UNIVERSITY
UE709 Network Algorithms L3/S5
Project
Feb 2023
Graph representation using Python and NetworkX
Tools :
You can use the libraries of Python. Install the following modules for Python3 as pandas, matplotlib, networkx and
all what you need during the project.
Download data file to use the datasets available at moodle3.unistra.fr or using this link :
https://drive.google.com/drive/folders/1-Gpktj7kg0g-4-4byV8biTpUdkOLVTNr?usp=share_link
Part 1:
1. Read the dataset file from the CSV files
2. Describe each attribute in the dataset in the simplest way.
3. Describe the relations between the attributes.
4. Use statistical tools to represent the data using charts and other tools.
Part 2:
5. Using your experience from the lab session and the lab networkx, present the data in a graph format using:
a. First representation uses “IP” as a node and an event as edges.
b. Second representation uses event (row) as a node.
c. Third representation uses any attribute that you decide as a node.
6. Automate the process of representation using graphs to let users decide which attribute as node and which
attribute as edges.
Part 3:
7. Using the plot of the graph to visualize it
8. Create a function to find anyone's path from a given origin to a given destiny (not supposed to be optimal) -
you could get inspiration from Depth First Search (DFS) algorithm: https://en.wikipedia.org/wiki/Depth-first
search
9. Create a function to evaluate how many packets were sent using a path between IPs. Verify this by comparing
your results to different implementations of the path function.
Part 4:
10. Use colors to the plot to represent differences between protocols.
11. Automate the coloring so the user can choose the attribute and then the representation color based on the
difference between values.
If you have questions about the tasks please contact javid.khalilov@ufaz.az and amhaz@unistra.fr and take an
appointment to ask questions personally or via google meet.
FRENCH-AZERBAIJANI UNIVERSITY
UE709 Network Algorithms L3/S5
Project
Feb 2023
Part 5:
12. Using the graphs tools give the values or the matrices of values for :
a. Degree Connectivity
b. Closeness Centrality
c. Betweenness Centrality
d. Network Density
e. Network Diameter
f. Network Average Path Length
Important: Use one or more notebooks via colab to represent all the codes the descriptions and to
comment on the results you will have.
1. SUBMISSION
Deadline of submission: Friday 14 April
To be submitted:
1- Report on 10 points
2- Codes in Python on 10 points
Sure: If you submit a notebook ipynb your point will be on 20.
To be considered:
A) Good description of the project
B) A good description of the data
C) A good representation of the data in a network well defined based on your needs or your subject (+code)
D) Good Analyse of the complexity of your graph representation.
E) If you can do a better representation after the analyze (you can do a second representation after the
analysis process)
F) Good Final Analysis of the graph representation (+code)
G) Good proposition of using one or more algorithms that solves your problem (EXAMPLE application: the
maximum flow algorithm)
H) Final conclusion about your project and perspectives of your project.
Codes should be well described by comments (without comments, you lose 1/4 of the full grade)
2. PRESENTATION
The presentation of your project will be AS VIDEO of 10 minutes maximum.
During the presentation, a few slides convinced us that you have prepared a good project, and mainly all
members of the group understand the project and participate in one or many steps described above. IF we
realize that one of the members didn't work or does not understand the tasks penalty points can affect even the
report grade.
If you have questions about the tasks please contact javid.khalilov@ufaz.az and amhaz@unistra.fr and take an
appointment to ask questions personally or via google meet.