corrections

This commit is contained in:
Mateusz 2022-06-21 15:55:33 +02:00
parent 5b67b5b953
commit 6e42853e38
2 changed files with 24 additions and 27 deletions

View File

@ -17,7 +17,8 @@
"source": [
"## Problem\n",
"\n",
"Emulacja ataku sieci..."
"W jakich topologiach sieci komputerowych potencjalny atak wirusa rozprzestrzeniałby się najszybciej, a w których najwolniej?\n",
"Aby rozwiązać ten problem zaprojektowaliśmy symulację ataków wirusa na różne rodzaje topologii sieci."
]
},
{
@ -31,29 +32,29 @@
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%% md\n"
}
},
"source": [
"## Spacer losowe prosty na grafie\n",
"Inaczej błądzenie losowe. Obiekt przemieszczający się na grafie losowo wybiera jeden z sąsiednich do obecnego wezłów, żeby się do nich przemieścić. Ruch ten nie zależy od historii ruchów - tylko ostatnie przemieszczenie jest brane pod uwagę przy podejmowaniu decyzji."
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%% md\n"
}
}
]
},
{
"cell_type": "markdown",
"source": [
"## Model\n",
"Model sieci reprezentowany jest jako graf nieskierowany. Każdy węzeł reprezentuje w nim urządzenie a krawędzie połączenia między nimi. Węzły zaznaczone na czerwono reprezentują urządzenie zainfekowane przez wirusa, który przemieszcza się do nowych urządzeń spacerem losowym - w każdym kroku wirus wybiera jeden z sąsiadujących węzłów z jednakowym prawdopodobieństwem i próbuje go zainfekować."
],
"metadata": {
"collapsed": false,
"pycharm": {
"name": "#%% md\n"
}
}
},
"source": [
"## Model\n",
"Model sieci reprezentowany jest jako graf nieskierowany. Każdy węzeł reprezentuje w nim urządzenie a krawędzie połączenia między nimi. Węzły zaznaczone na czerwono reprezentują urządzenie zainfekowane przez wirusa, który przemieszcza się do nowych urządzeń spacerem losowym - w każdym kroku wirus wybiera jeden z sąsiadujących węzłów z jednakowym prawdopodobieństwem i próbuje go zainfekować."
]
},
{
"cell_type": "markdown",
@ -65,12 +66,10 @@
]
},
{
"cell_type": "code",
"execution_count": null,
"cell_type": "markdown",
"metadata": {},
"outputs": [],
"source": [
"# kod"
"### Przedstawienie kodu"
]
},
{
@ -81,12 +80,10 @@
]
},
{
"cell_type": "code",
"execution_count": null,
"cell_type": "markdown",
"metadata": {},
"outputs": [],
"source": [
"# kod"
"### Przegląd plików gif"
]
},
{

View File

@ -206,13 +206,13 @@ def bus_experiment():
sizes = [0, 8, 15]
for i in sizes:
bus, bus_avg_degree, node_count = bus_network(20 + i)
do_graph_animation('bus{i}.gif', bus, 90, nx.spiral_layout)
do_graph_animation(f'bus{i}.gif', bus, 90, nx.spiral_layout)
speeds.append(bus.rounds_survived / node_count)
degrees.append(bus_avg_degree)
print(f"\n{node_count} NODE STAR")
print(f"average degree = {bus_avg_degree}")
print(f"propagation speed = {round(speeds[-1], 2)}")
print(f"bus{i} rounds survived = {bus.rounds_survived + 1}")
print(f"bus_{i} rounds survived = {bus.rounds_survived + 1}")
summary(degrees, speeds)
@ -222,13 +222,13 @@ def ring_experiment():
sizes = [0, 8, 15]
for i in sizes:
ring, ring_avg_degree, node_count = ring_network(20 + i)
do_graph_animation('bus{i}.gif', ring, 90, nx.spiral_layout)
do_graph_animation(f'ring{i}.gif', ring, 90, nx.spiral_layout)
speeds.append(ring.rounds_survived / node_count)
degrees.append(ring_avg_degree)
print(f"\n{node_count} NODE STAR")
print(f"average degree = {ring_avg_degree}")
print(f"propagation speed = {round(speeds[-1], 2)}")
print(f"ring{i} rounds survived = {ring.rounds_survived + 1}")
print(f"ring_{i} rounds survived = {ring.rounds_survived + 1}")
def star_experiment():
degrees = []
@ -242,7 +242,7 @@ def star_experiment():
print(f"\n{node_count} NODE STAR")
print(f"average degree = {star_avg_degree}")
print(f"propagation speed = {round(speeds[-1], 2)}")
print(f"star{i} rounds survived = {star.rounds_survived + 1}")
print(f"star_{i} rounds survived = {star.rounds_survived + 1}")
summary(degrees, speeds)