-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathalgorithm_statistics.py
80 lines (48 loc) · 1.49 KB
/
algorithm_statistics.py
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
78
79
80
#%%
import os
import pandas as pd
import plotly.express as px
#%%
# estatisticas da raiz
# Da primeira descida (sem cortes):
# lower bound e tempo da primeira descida (sem cortes)
# numero de colunas geradas
# numero de iterações
# Nó raiz:
# lower bound, tempo, quant. de cortes, numero de passadas no cga,
# Final
# Lower bound, tempo, n de nós, Upper bound
# melhor solução conhecida
folder ='Elhedhli'
elhedhli_dictionary = {1: 'u120', 2: 'u250', 3: 'u500', 5:'t60', 6:'t120', 7:'t249'}
def elhedhli_get_set_from_name(s):
data = s.split('.')[0].split('_')
inst_set = elhedhli_dictionary[int(data[1])]
return inst_set
def elhedhli_get_density_from_name(s):
data = s.split('.')[0].split('_')
d = int(data[2])*10
return d
#%%
df = pd.read_csv('time.csv', header=None)
df.columns = ['file_name', 'optimal', 'time']
df['density'] = df['file_name'].apply(elhedhli_get_density_from_name)
df['set'] = df['file_name'].apply(elhedhli_get_set_from_name)
df
# %%
instance_sets = [elhedhli_dictionary[k] for k in elhedhli_dictionary]
set_dfs = {k: df.loc[df['set'] == k] for k in instance_sets}
# for k in set_dfs:
# if len(set_dfs[k]) != 0:
# print(f'set {k}:')
# print(set_dfs[k])
# print('\n')
# %%
set_dfs['u120']
#%%
set_dfs['u120'].loc[set_dfs['u120']['optimal'] == 1][['time']].describe()
#%%
px.histogram(set_dfs['u120'].loc[set_dfs['u120']['optimal'] == 1], x='time', title='Solved - u120', nbins=40)
#%%
set_dfs['u250']
# %%