Newer
Older
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
import Refinement.experiment_properties as exp
import Weakness.src.automaton as a
import csv
import numpy as np
# This script computes the entropy of each refinement in one or more datafiles
for case_study in ["amba08", "ColorSort_fairviolation"]:
exp.changeCaseStudy(case_study)
datafile = open(exp.datafile,"r")
entropiesfile = open(exp.datafile[:-4]+"_entropies.csv","w")
reader = csv.reader(datafile,delimiter=";")
headers = reader.next()
idx_id = headers.index("Id")
idx_refinement = headers.index("Refinement")
idx_goodness = headers.index("Goodness")
entropiesfile.write("Id;Refinement;Goodness;HausDim;Entropy;Hausdim=Entropy\n")
print "Id;Goodness;HausDim;Entropy;Hausdim=Entropy"
# automaton_base_assumptions = a.Automaton("ltl",ltlFormula=" & ".join(exp.initialGR1Units),var_set=exp.varsList)
inf = np.inf
reader.next() # Skip line of base assumptions
for ref_line in reader:
id = ref_line[idx_id]
refinement = eval(ref_line[idx_refinement])
goodness = eval(ref_line[idx_goodness])
hausdim = goodness[0]
# automaton_refinement = a.Automaton("ltl",ltlFormula=" & ".join(refinement),var_set=exp.varsList)
automaton = a.Automaton("ltl",ltlFormula=" & ".join(exp.initialGR1Units + refinement), var_set=exp.varsList)
entropy = automaton.getEntropy()
entropiesfile.write(str(id) + ";" + str(refinement) + ";" + str(goodness) + ";" + ("%.12f" % hausdim) + ";" + ("%.12f" % entropy) + ";" + str(("%.12f" % hausdim) == ("%.12f" % entropy)) + "\n")
print str(id) + ";" + str(goodness) + ";" + ("%.12f" % hausdim) + ";" + ("%.12f" % entropy) + ";" + str(("%.12f" % hausdim) == ("%.12f" % entropy))
datafile.close()
entropiesfile.close()