-
Notifications
You must be signed in to change notification settings - Fork 0
/
drv_results.m
95 lines (77 loc) · 2.93 KB
/
drv_results.m
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
%drv_results analyze results from hcp runs
function drv_results
% results directory
res_dir = 'results/2012-01-25/';
% load data
load([res_dir 'res_arcopt.mat']);
% return org tables
mcute_struct2org(res_arcopt,[res_dir 'res_arcopt.org']);
% get cells
C_data = struct2cell(hcp_data)';
C_arcopt = struct2cell(res_arcopt)';
% separate different size graphs
res_code = arrayfun(@(i) cell_filt(C_arcopt{i,6}),1:size(C_arcopt,1))';
% get fieldnames
fn_arcopt = fieldnames(res_arcopt);
% extract important data
hc_arcopt = cell2mat(C_arcopt(:,end));
fev_arcopt = cell2mat(C_arcopt(:,5));
% print report
num_prob = length(res_arcopt);
num_arcopt = sum(hc_arcopt);
fprintf('... arcopt hcp summary ...\n');
fprintf('total number of problems.. %d\n',num_prob);
fprintf('arcopt # solved........... %d\n',num_arcopt);
fprintf('arcopt %% solved........... %g\n',num_arcopt/num_prob);
fprintf('arcopt total fev.......... %g\n',sum(fev_arcopt));
fprintf('arcopt avg fev............ %g\n',sum(fev_arcopt)/num_prob);
% 10 node problems
code = 2;
res_lx = res_code == code;
num_prob = sum(res_lx);
num_arcopt = sum(hc_arcopt(res_lx));
fprintf('\n... arcopt hcp summary: 10 nodes ...\n');
fprintf('number of graphs.......... %d\n',sum(hcp_code == code));
fprintf('number of graphs with hc.. %d\n',num_prob);
fprintf('arcopt # solved........... %g\n',num_arcopt);
fprintf('arcopt %% solved........... %g\n',num_arcopt/num_prob);
fprintf('arcopt total fev.......... %g\n',sum(fev_arcopt(res_lx)));
fprintf('arcopt avg fev............ %g\n',sum(fev_arcopt(res_lx))/num_prob);
% 12 node problems
code = 3;
res_lx = res_code == code;
num_prob = sum(res_lx);
num_arcopt = sum(hc_arcopt(res_lx));
fprintf('\n... arcopt hcp summary: 12 nodes ...\n');
fprintf('number of graphs.......... %d\n',sum(hcp_code == code));
fprintf('number of graphs with hc.. %d\n',num_prob);
fprintf('arcopt # solved........... %g\n',num_arcopt);
fprintf('arcopt %% solved........... %g\n',num_arcopt/num_prob);
fprintf('arcopt total fev.......... %g\n',sum(fev_arcopt(res_lx)));
fprintf('arcopt avg fev............ %g\n',sum(fev_arcopt(res_lx))/num_prob);
% 14 node problems
code = 4;
res_lx = res_code == code;
num_prob = sum(res_lx);
num_arcopt = sum(hc_arcopt(res_lx));
fprintf('\n... arcopt hcp summary: 14 nodes ...\n');
fprintf('number of graphs.......... %d\n',sum(hcp_code == code));
fprintf('number of graphs with hc.. %d\n',num_prob);
fprintf('arcopt # solved........... %g\n',num_arcopt);
fprintf('arcopt %% solved........... %g\n',num_arcopt/num_prob);
fprintf('arcopt total fev.......... %g\n',sum(fev_arcopt(res_lx)));
fprintf('arcopt avg fev............ %g\n',sum(fev_arcopt(res_lx))/num_prob);
%keyboard
end
function n = cell_filt(s)
switch s(1:2)
case '10'
n = 2;
case '12'
n = 3;
case '14'
n = 4;
otherwise
n = 1;
end
end