annotate talk/code/showalgo.m @ 70:430f958f007c

showalgo.m: restore hack for final iteration
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Fri, 20 May 2016 08:38:10 -0400
parents 456e3f722147
children 7bcf3d503d33
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
66
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
1 H = load("H");
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
2 L = load("L") + 1;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
3 R = load("R") + 1;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
4 P = load("P") + 1;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
5 Q = load("Q") + 1;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
6 Ptot = load("Ptotal");
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
7 Qtot = load("Qtotal");
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
8 remaining = load("remaining");
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
9 mc = load("mc");
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
10 jackpot = load("jackpot");
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
11 Am = load("Am");
67
1aa38f4846e0 showalgo: show the rank
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 66
diff changeset
12 medc_idx = load("medc_idx");
66
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
13 Am(end+1) = mc;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
14
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
15 colidx = 1:columns(H);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
16
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
17 origH = repmat((H+1)/2, 1, 1, 3);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
18
68
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
19 graphics_toolkit fltk;
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
20 figure
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
21 pause
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
22
66
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
23 for iter = 1:length(Am)
69
456e3f722147 showalgo: fix handling of the jackpot casex
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 68
diff changeset
24 if iter > rows(L)
456e3f722147 showalgo: fix handling of the jackpot casex
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 68
diff changeset
25 break
456e3f722147 showalgo: fix handling of the jackpot casex
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 68
diff changeset
26 endif
456e3f722147 showalgo: fix handling of the jackpot casex
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 68
diff changeset
27
66
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
28 ## Reset the image
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
29 imgH = origH;
67
1aa38f4846e0 showalgo: show the rank
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 66
diff changeset
30
66
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
31 ## Make greater-than red
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
32 red = imgH(:,:,1);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
33 red(colidx < L(iter, :)') = 1;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
34 imgH(:, :, 1) = red;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
35
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
36 ## Make less-than blue
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
37 blue = imgH(:,:,3);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
38 blue(colidx > R(iter, :)') = 1;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
39 imgH(:, :, 3) = blue;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
40
67
1aa38f4846e0 showalgo: show the rank
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 66
diff changeset
41 printf("Remaining: %d\n", remaining(iter))
66
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
42 imshow(imgH);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
43 pause
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
44
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
45 ## Make the guess yellow
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
46 [i,j] = find(Am(iter) == H);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
47 imgH(i,j,1) = imgH(i,j,2) = 1;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
48 imgH(i,j,3) = 0;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
49
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
50 imshow(imgH);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
51 pause
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
52
70
430f958f007c showalgo.m: restore hack for final iteration
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 69
diff changeset
53 if iter == length(Am)
430f958f007c showalgo.m: restore hack for final iteration
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 69
diff changeset
54 break
430f958f007c showalgo.m: restore hack for final iteration
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 69
diff changeset
55 endif
430f958f007c showalgo.m: restore hack for final iteration
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 69
diff changeset
56
66
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
57 ## Check the left side
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
58 imgLeft = imgH;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
59 red = imgH(:, :, 1);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
60 green = imgH(:, :, 2);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
61 blue = imgH(:, :, 3);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
62
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
63 idx = colidx > P(iter,:)';
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
64
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
65 ## Brighten blue
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
66 blue(idx) = 1;
67
1aa38f4846e0 showalgo: show the rank
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 66
diff changeset
67
66
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
68 ## Dim red and green
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
69 red(idx) .*= 0.5;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
70 green(idx) .*= 0.5;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
71
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
72 imgLeft(:,:,2) = green;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
73 imgLeft(:,:,3) = blue;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
74
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
75 ## Make the guess yellow again
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
76 [i,j] = find(Am(iter) == H);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
77 imgH(i,j,1) = imgH(i,j,2) = 1;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
78 imgH(i,j,3) = 0;
67
1aa38f4846e0 showalgo: show the rank
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 66
diff changeset
79
66
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
80 imshow(imgLeft);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
81 pause
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
82
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
83 ## Check the right side
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
84 imgRight = imgH;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
85 red = imgH(:, :, 1);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
86 green = imgH(:, :, 2);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
87 blue = imgH(:, :, 3);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
88
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
89 idx = colidx < Q(iter,:)';
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
90
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
91 ## Brighten red
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
92 blue(idx) = 1;
67
1aa38f4846e0 showalgo: show the rank
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 66
diff changeset
93
66
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
94 ## Dim blue and green
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
95 blue(idx) .*= 0.5;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
96 green(idx) .*= 0.5;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
97
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
98 imgRight(:,:,2) = green;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
99 imgRight(:,:,3) = blue;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
100
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
101 ## Make the guess yellow again
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
102 [i,j] = find(Am(iter) == H);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
103 imgH(i,j,1) = imgH(i,j,2) = 1;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
104 imgH(i,j,3) = 0;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
105 imshow(imgRight);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
106 pause
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
107
68
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
108 imshow(imgH);
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
109 printf("rank is between %d and %d (target: %d)\n",
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
110 Ptot(iter), Qtot(iter), medc_idx)
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
111 pause
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
112
66
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
113 endfor
68
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
114
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
115 if (jackpot)
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
116 printf("Jackpot!\n")
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
117 endif
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
118 pause