Mercurial > hg > camir-aes2014
comparison core/magnatagatune/macro_sim_graph_analysis.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:e9a9cd732c1e |
---|---|
1 | |
2 % Results: | |
3 Gcomp = ClipComparedGraph(comparison, comparison_ids) | |
4 [Gcompcomps] = Gcomp.connected_components(); | |
5 % only 2graphs with 7 nodes, all subtriplets just connect via | |
6 % one node -> no "infestation" of other triplets | |
7 | |
8 G = ClipSimGraph(comparison, comparison_ids) | |
9 [Gs,s, id] = G.all_strongly_connected_components(); | |
10 u = hist(s); | |
11 % 179 cycled triplets in unprepared graph | |
12 | |
13 Gmd = ClipSimGraphMD(comparison, comparison_ids) | |
14 [Gsmd, smd, id] = Gmd.all_strongly_connected_components(); | |
15 Gsmd(1).order; | |
16 % Not a single triple cycle found | |
17 | |
18 % --- | |
19 % analysis on compliance with stobers preprocessing | |
20 % trying to find out the differing ? Graph structures | |
21 % for that sake analysis with connected (no cycles) components | |
22 % --- | |
23 Graw = ClipSimGraph(comparison, comparison_ids); | |
24 [Gsraw, sraw] = connected_components(Graw) | |
25 hist(sraw) | |
26 % in the unedited graph, there are 346 connected triplets | |
27 | |
28 Gm = ClipSimGraphMulti(comparison, comparison_ids); | |
29 [Gsraw2, sraw2] = connected_components(Gm) | |
30 u = hist(sraw2) | |
31 % in this unedited graph, there are still 346 connected triplets | |
32 | |
33 Gm.remove_cycles_length2; | |
34 [Gs, s, id] = connected_components(DiGraph(Gm)); | |
35 u = hist(s) | |
36 % 27 single nodes, 337 three-node graphs. why not two-nodes | |
37 | |
38 % which clips do these belong to? | |
39 soloid = find(s == 1); | |
40 soloclips = []; | |
41 for i = 1:numel(soloid) | |
42 tmpG = ClipSimGraph(Gs(soloid(i))); | |
43 | |
44 % get the clisp of the single node | |
45 [sm, bg] = tmpG.clipsN(tmpG.nodes); | |
46 soloclips = [soloclips sm bg]; | |
47 end | |
48 soloclips = unique(soloclips) | |
49 % exactly 27 clips lost | |
50 | |
51 % now with our graph processing | |
52 Gmd = ClipSimGraphMD(comparison, comparison_ids) | |
53 [Gsmd, smd] = connected_components(Gmd) | |
54 % same result, | |
55 | |
56 % --- | |
57 % now which are the orphaned nodes ? | |
58 % --- | |
59 Go = Gm.unconnected_subgraph(); | |
60 Go.label(Go.nodes) | |
61 | |
62 % --- | |
63 % how many clips are completely lost? | |
64 % --- | |
65 Go = ClipSimGraphMulti(Gm.unconnected_subgraph()); | |
66 Go.clips | |
67 numel(ans) | |
68 Gm.remove_graph(Go) % | |
69 lastClip = intersect(Go.clips,Gm.clips) | |
70 | |
71 % --- | |
72 % ok lets chase the last clip | |
73 % --- | |
74 Gm.node(21950) | |
75 Gs = Gm.connected_components(283); | |
76 Gs.visualise | |
77 DiGraph(Go).visualise | |
78 | |
79 | |
80 % --- | |
81 % validation with comparison data | |
82 % --- | |
83 Gm = ClipSimGraphMulti(comparison, comparison_ids); | |
84 num_compares = sparse(numel(comparison_ids), numel(comparison_ids)); | |
85 for i = 1:size(comparison,1) | |
86 abc = sort(comparison(i,1:3)); | |
87 a = abc(1); | |
88 b = abc(2); | |
89 c = abc(3); | |
90 num_compares(a,b) = num_compares(a,b) +1; | |
91 num_compares(b,c) = num_compares(b,c) +1; | |
92 num_compares(a,c) = num_compares(a,c) +1; | |
93 end | |
94 | |
95 [i,j] = ind2sub(find(num_compares > 2)) | |
96 [i,j] = ind2sub(size(num_compares), find(num_compares > 2)) | |
97 [i,j] = ind2sub(size(num_compares), find(num_compares > 1)), | |
98 i(1) | |
99 j(1) | |
100 find(comparison(:,1) == i(1) || comparison(:,2) == i(1) || comparison(:,3) == i(1)...) | |
101 && comparison(:,1) == j(1) || comparison(:,2) == j(1) || comparison(:,3) == j(1)) | |
102 find((comparison(:,1) == i(1) | comparison(:,2) == i(1) | comparison(:,3) == i(1))...) | |
103 & (comparison(:,1) == j(1) | comparison(:,2) == j(1) | comparison(:,3) == j(1))) | |
104 | |
105 num = 2; | |
106 a = find((comparison(:,1) == i(num) | comparison(:,2) == i(num) | comparison(:,3) == i(num))...) | |
107 & (comparison(:,1) == j(num) | comparison(:,2) == j(num) | comparison(:,3) == j(num))) | |
108 comparison(a,:) | |
109 [i,j] = ind2sub(size(num_compares), find(num_compares > 1)) | |
110 num = 3; | |
111 a = find((comparison(:,1) == i(num) | comparison(:,2) == i(num) | comparison(:,3) == i(num))...) | |
112 & (comparison(:,1) == j(num) | comparison(:,2) == j(num) | comparison(:,3) == j(num))) | |
113 comparison(a,:) | |
114 [i,j] = ind2sub(size(num_compares), find(num_compares > 1)) | |
115 num = 18; | |
116 a = find((comparison(:,1) == i(num) | comparison(:,2) == i(num) | comparison(:,3) == i(num))...) | |
117 & (comparison(:,1) == j(num) | comparison(:,2) == j(num) | comparison(:,3) == j(num))) | |
118 comparison(a,:) | |
119 [i,j] = ind2sub(size(num_compares), find(num_compares > 1)) | |
120 num = 300; | |
121 a = find((comparison(:,1) == i(num) | comparison(:,2) == i(num) | comparison(:,3) == i(num))...) | |
122 & (comparison(:,1) == j(num) | comparison(:,2) == j(num) | comparison(:,3) == j(num))) | |
123 comparison(a,:) | |
124 | |
125 % --- | |
126 % other simulated data | |
127 % --- | |
128 ClipSimGraph([1 2 3 5 1 0;], 1:100).visualise | |
129 ClipSimGraph([1 2 3 5 1 0; 1 2 4 6 0 0], 1:100).visualise | |
130 ClipSimGraph([1 2 3 5 1 0; 1 2 4 6 0 0], 1:100).max_degree | |
131 G = ClipSimGraph(comparison, comparison_ids); | |
132 | |
133 % --- | |
134 % scc algorithm tests | |
135 % --- | |
136 V = ones(1,5) | |
137 E = zeros(5) | |
138 for i=1:4 | |
139 E(i+1,i) = 1 | |
140 end | |
141 E(1,4) = 1 | |
142 gtest = DiGRaph(V,E) | |
143 | |
144 gtest.strongly_connected_components(4) | |
145 gtest.strongly_connected_components(5) | |
146 |