corrections
This commit is contained in:
parent
5b67b5b953
commit
6e42853e38
@ -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"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
@ -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)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user