-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path3_kDS.py
More file actions
65 lines (54 loc) · 1.58 KB
/
3_kDS.py
File metadata and controls
65 lines (54 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import networkx as nx
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
import shapely
from shapely.geometry import Point, Polygon, LineString
from shapely.ops import nearest_points
from functools import partial
import sys
from funcs import *
from scipy import sparse
import pickle
import time
# G = nx.read_gpickle('data/BaseGraph03_NOR_wagrades.pickle').to_undirected()
np.random.seed(25)
# R = [10, 15, 20]
R = [20, 30, 40]
D = []
sets = []
index = ["range", "k", "n", "seed"]
data = pd.DataFrame(columns = index)
# Run k-domination for each reachability graph and append results to D
for r in R:
print(r)
g = sparse.load_npz('data/Reachability_03_{}kwh_UNDIRECTED.npz'.format(r))
g = nx.convert_matrix.from_scipy_sparse_matrix(g)
# Run for each value of k
k = [1,2,3,4]
for i in k:
# Run for 5 different random seeds
# for s in range(5):
print(i,r)
start = time.time()
_set = randomized_k_dominating(g, k = i)
end = time.time()
print("Time elapsed:\t", end-start)
setlen = len(_set)
sets.append(_set)
# Save current iteration of sets
with open('data/DomSets_alt.pickle', 'wb') as f:
pickle.dump(sets, f)
del(g)
# Save collection of sets
with open('data/DomSets_alt.pickle', 'wb') as f:
pickle.dump(sets, f)
# Retrieve set parameters and save object
set_param = []
for r in R:
k = [1,2,3,4]
for i in k:
set_param.append([r,k])
with open('data/DomSets_param.pickle', 'wb') as f:
pickle.dump(set_param, f)