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
66
67
68
69
70
71
72
73
74
75
76
77
|
import matplotlib.pyplot as plt
import numpy as np
import cdf_histogram as cdf
import readCSV as reader
import constants
import csv
from shutil import copy
# viatra_controlled = np.genfromtxt('../statistics/violations/viatra_controlled.csv', delimiter='\n')
# viatra_controlled_mean = np.mean(viatra_controlled)
# viatra_nocons = np.genfromtxt('../statistics/violations/viatra_no_cons_violation.csv', delimiter='\n')
# viatra_nocons_mean = np.mean(viatra_nocons)
# human = np.genfromtxt('../statistics/violations/human_violation.csv', delimiter='\n')
# human_mean = np.mean(human)
# print('viatra controlled violation mean: ' + str(viatra_controlled_mean))
# print('viatra no cons violation mean: ' + str(viatra_nocons_mean))
# print('human output violation mean: ' + str(human_mean))
def read_violation_file(file_name):
violation = {}
with open(file_name) as f:
for i, line in enumerate(f):
line = int(line.rstrip())
if line in violation:
violation[line] += 1
else:
violation[line] = 1
f.close()
return violation
# violation = read_violation_file('../statistics/violations/viatra_controlled.csv')
# print(violation)
# fig, ax = plt.subplots()
# rects = ax.bar(violation.keys(), violation.values())
# cdf.autolabel(rects, ax)
# ax.set_title('viatra controlled violation distribution')
# ax.set_xlabel('number of violations')
# ax.set_ylabel('number of occurrence')
# plt.show()
# fig.savefig('../statistics/violations/viatra_controlled_violation_distribution.png')
def plot_violation():
v = np.array([0,1,1,0,0])
print(v)
(n, bins) = np.histogram(v, bins=v.size, density=True) # NumPy version (no plot)
# plt.plot(.5 * (bins[1:] + bins[:-1]), n)
plt.hist(v, bins=50, density=1)
plt.show()
def human_output_size():
list_of_files = reader.readmultiplefiles('../statistics/humanOutput/', 5000)
num_nodes_list =[]
human_size_dic = {}
for file in list_of_files:
contents = reader.readcsvfile(file)
num_of_node = contents[constants.NUMBER_NODES]
# human_size_dic[file] = int(num_of_node[0])
# num_nodes_list.append(int(num_of_node[0]))
if 90 <= num_of_node[0] <= 110:
copy(file, '../statistics/human_output_100/')
# mean = np.mean(num_nodes_list)
# std = np.std(num_nodes_list)
# with open('../statistics/human_output_size.csv', 'w', newline='') as csvfile:
# spamwriter = csv.writer(csvfile, delimiter=',',
# quotechar='|', quoting=csv.QUOTE_MINIMAL)
# spamwriter.writerow(['mean', mean])
# spamwriter.writerow(['standard deviation', std])
# for key, value in human_size_dic.items():
# spamwriter.writerow([key, value])
|