Mentions légales du service

Skip to content
Snippets Groups Projects
Commit aca799e1 authored by HUIN Nicolas's avatar HUIN Nicolas
Browse files

chore(notebook): remove notebook output

parent d4b4e378
No related branches found
No related tags found
No related merge requests found
*.ipynb filter=strip-notebook-output
This diff is collapsed.
%% Cell type:code id:ff977009-904d-4f2d-a617-43a9c6d6e6d5 tags:
``` python
%load_ext autoreload
%autoreload 2
import utils
import pandas as pd
import networkx as nx
import json
pd.set_option('display.max_rows', 500)
```
%% Output
The autoreload extension is already loaded. To reload it, use:
%reload_ext autoreload
%% Cell type:code id:3ca5aef1-3cf9-46a1-a621-78a3a5219b97 tags:
``` python
instance = 'ta1_2'
demands = utils.load_csv_demands_without_path(f'../csv/{instance}.txtdemand.csv')
topo = utils.load_csv_topo(f'../csv/{instance}.txtLink.csv')
#network = nx.from_edgelist([(int(src), int(dst), {'id': int(index), 'delay': delay, 'loss': loss}) for index, (src, dst, delay, loss) in topo.iterrows()], create_using=nx.DiGraph)
network = utils.load_network(instance)
print(network)
for demand_id, (src, dst, delay, loss, weight) in demands.iterrows():
path = None
for p in nx.all_simple_paths(network, int(src), int(dst)):
path_delay = utils.get_path_property(network, p, 'delay')
path_loss = utils.get_path_property(network, p, 'loss')
if path_delay <= delay and path_loss <= delay:
path = p
print(demand_id, p, [network[u][v]['id'] for u, v in zip(path[:-1], path[1:])], (delay, path_delay), (loss, path_loss))
break
if not path:
print(f"No path for {demand_id}")
```
%% Output
/Users/nhuin/data/isp-data/src/utils.py:113: ParserWarning: Length of header or names does not match length of data. This leads to a loss of data with index_col=False.
demands_df = pd.read_csv(filename, delimiter=',', index_col=False, header=None, names=['src', 'dst', 'delay', 'loss'])
DiGraph with 24 nodes and 102 edges
0 [0, 16, 19, 2, 13] [51, 8, 0, 28] (1680570.0, 1149861.9) (28821.0, 42018.0)
1 [5, 4, 2, 19, 16, 22] [37, 35, 1, 9, 98] (1857470.0, 1385730.9) (30178.0, 37929.0)
2 [8, 22, 19, 16] [17, 13, 9] (1297280.0, 1164602.9) (20019.0, 34942.0)
3 [9, 14, 10] [44, 47] (869767.0, 825542.0) (39434.0, 22167.0)
4 [9, 20, 17, 14, 2, 13] [15, 55, 61, 31, 28] (2343950.0, 2211273.0) (68193.0, 40819.0)
5 [9, 20, 17, 10, 14, 19, 16] [15, 55, 52, 46, 7, 9] (2594560.0, 2314466.9) (72573.0, 47744.0)
6 [9, 14, 19, 21] [44, 7, 10] (2550340.0, 2550338.0) (66790.0, 44742.0)
7 [9, 14, 19, 16, 22] [44, 7, 9, 98] (2063860.0, 2063854.9) (72786.0, 51908.0)
8 [9, 14, 19, 16, 22, 23] [44, 7, 9, 98, 20] (2181790.0, 2181789.9) (72447.0, 58854.0)
9 [10, 14, 9] [46, 45] (869767.0, 825542.0) (39434.0, 22167.0)
10 [10, 14, 19, 2, 13] [46, 7, 0, 28] (2255500.0, 2063855.0) (42760.0, 41246.0)
11 [10, 14, 19, 21] [46, 7, 10] (2461890.0, 2461888.0) (51461.0, 34363.0)
12 [10, 14, 19, 16, 22, 23] [46, 7, 9, 98, 20] (2093340.0, 2093339.9) (47014.0, 48475.0)
13 [12, 11, 19, 16, 22] [91, 5, 9, 98] (1651080.0, 1459440.9) (38537.0, 46288.0)
14 [13, 22, 19, 14, 9] [19, 13, 6, 45] (2343950.0, 2343949.0) (68193.0, 52260.0)
15 [13, 22, 19, 14, 10] [19, 13, 6, 47] (2255500.0, 2255499.0) (42760.0, 41881.0)
16 [16, 19, 22, 8] [8, 12, 16] (1297280.0, 1164602.9) (20019.0, 34942.0)
17 [16, 19, 2, 14, 9] [8, 0, 30, 45] (2594560.0, 1547890.9) (72573.0, 51065.0)
18 [16, 19, 2, 14, 9, 20, 17, 10] [8, 0, 30, 45, 15, 55, 52] (2506110.0, 2417658.9) (47140.0, 65243.0)
19 [16, 19, 2, 14, 1, 18] [8, 0, 30, 27, 56] (2624040.0, 2373432.9) (49142.0, 62456.0)
20 [18, 14, 19, 16, 22, 23] [59, 7, 9, 98, 20] (2299720.0, 2211273.9) (49016.0, 64052.0)
21 [21, 19, 14, 9] [11, 6, 45] (2550340.0, 2550338.0) (66790.0, 44742.0)
22 [21, 19, 14, 10] [11, 6, 47] (2461890.0, 2461888.0) (51461.0, 34363.0)
23 [22, 19, 2, 4, 5] [13, 0, 34, 36] (1857470.0, 1385730.0) (30178.0, 30179.0)
No path for 24
25 [22, 19, 2, 4, 12] [13, 0, 34, 92] (1651080.0, 1606858.0) (38537.0, 35237.0)
26 [23, 22, 19, 14, 9] [21, 13, 6, 45] (2181790.0, 2181789.0) (72447.0, 51104.0)
27 [23, 22, 19, 14, 10] [21, 13, 6, 47] (2093340.0, 2093339.0) (47014.0, 40725.0)
%% Cell type:code id:cd88e315-39e1-4dcb-bbac-3372a634b8a9 tags:
``` python
import glob
for f in glob.glob('../csv/*.txtDemand.csv'):
instance = f[len("../csv/"):-len('.txtDemand.csv')]
print(instance)
try:
topo_df = utils.load_csv_topo(f'../csv/{instance}.txtLink.csv')
demands_df = utils.load_csv_demands_without_path(f'../csv/{instance}.txtdemand.csv')
utils.convert_instance_json(instance, topo_df, demands_df)
print("="* 38 + " OK " + "="* 38)
except AssertionError as e:
print(e)
```
%% Output
toy
Loaded 26 links
After droping duplicates: 26 links
/Users/nhuin/data/isp-data/src/utils.py:113: ParserWarning: Length of header or names does not match length of data. This leads to a loss of data with index_col=False.
demands_df = pd.read_csv(filename, delimiter=',', index_col=False, header=None, names=['src', 'dst', 'delay', 'loss'])
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[24], line 8
6 topo_df = utils.load_csv_topo(f'../csv/{instance}.txtLink.csv')
7 demands_df = utils.load_csv_demands_without_path(f'../csv/{instance}.txtdemand.csv')
----> 8 utils.convert_instance_json(instance, topo_df, demands_df)
9 print("="* 38 + " OK " + "="* 38)
10 except AssertionError as e:
File ~/data/isp-data/src/utils.py:152, in convert_instance_json(name, topo_df, demands_df, prefix)
149 print(f"Loaded {len(raw_topo_df)} links")
150 print(f"After droping duplicates: {len(topo_df)} links")
--> 152 topo = nx.DiGraph([(e['src'], e['dst'], {'delay': e['delay'], 'loss': e['loss']}) for e in edgelist['edges']])
153 instance = {'topology':
154 {'edges': [{'e': index, 'src': int(src), 'dst': int(dst), 'delay': delay, 'loss': loss} for index, (src, dst, delay, loss) in topo_df.iterrows()]},
155 'demands':
156 {'edges': [{'src': int(src), 'dst': int(dst), 'delay': delay, 'loss': loss, 'weight': weight} for index, (src, dst, delay, loss, weight) in demands_df[['src', 'dst', 'delay', 'loss', 'weight']].iterrows()]}
157 }
158 json.dump(instance, open(f'{prefix}/wdn/{name}.json', 'w'))
NameError: name 'edgelist' is not defined
%% Cell type:code id:4aca93c0-34fb-4738-afba-45fdc5ab14b1 tags:
``` python
```
%% Cell type:code id:7183e283-858e-4fcf-b454-6614f1c45059 tags:
``` python
```
......
%% Cell type:code id:bdb1ae69-720c-40c7-a195-35b8172012b0 tags:
``` python
import networkx as nx
import pandas as pd
```
%% Cell type:code id:0e9716c7-8b90-462c-ae83-ce06003ce001 tags:
``` python
topo = nx.read_graphml(f'{name}.gml')
raw_topo = pd.read_csv(f'{name}.txtLink.csv', delimiter=',', header=None, index_col=False, names=['src', 'dst', 'delay', 'loss']).query('delay.notna()')
demands = nx.read_graphml(f'{name}.wdml')
raw_demands = pd.read_csv(f'{name}.txtDemand.csv', delimiter=',', index_col=False, header=None, names=['src', 'dst', 'delay', 'loss', 'path'])
print("Topo:", topo)
print("Demands:" , demands)
for idx, (src, dst, delay, loss, path) in raw_demands.iterrows():
p = [int(e) for e in path.split('|') if e != '']
print('path delay:', sum(raw_topo.iloc[e]['delay'] for e in p) < delay)
print('path loss:', sum(raw_topo.iloc[e]['loss'] for e in p) < loss)
```
%% Output
Topo: DiGraph with 27 nodes and 102 edges
Demands: DiGraph with 25 nodes and 156 edges
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
path delay: True
path loss: True
%% Cell type:code id:2347f12a-6613-49f2-8083-bfc32e5b0106 tags:
``` python
```
......
Source diff could not be displayed: it is too large. Options to address this: view the blob.
......@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 48,
"execution_count": null,
"id": "cc81b76d-1f93-4faa-9705-4bdbee69eaad",
"metadata": {},
"outputs": [],
......@@ -14,7 +14,7 @@
},
{
"cell_type": "code",
"execution_count": 82,
"execution_count": null,
"id": "d07b4e2a-e690-47cb-9fae-eee0ee13d825",
"metadata": {},
"outputs": [],
......@@ -33,7 +33,7 @@
},
{
"cell_type": "code",
"execution_count": 83,
"execution_count": null,
"id": "ed658052-027f-4e3f-8632-ca10cd02aa81",
"metadata": {},
"outputs": [],
......@@ -43,7 +43,7 @@
},
{
"cell_type": "code",
"execution_count": 84,
"execution_count": null,
"id": "c3ee16db-6498-4bf5-a70f-8a2fff771f59",
"metadata": {},
"outputs": [],
......@@ -54,7 +54,7 @@
},
{
"cell_type": "code",
"execution_count": 85,
"execution_count": null,
"id": "c23483cd-3c2c-4db3-bd4f-40533b74e17f",
"metadata": {},
"outputs": [],
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment