annotate talk/code/showalgo.m @ 68:5510ac95a3d3

last minute fixes
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Wed, 18 May 2016 18:06:22 -0400
parents 1aa38f4846e0
children 456e3f722147
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)
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
24 ## Reset the image
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
25 imgH = origH;
67
1aa38f4846e0 showalgo: show the rank
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 66
diff changeset
26
66
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
27 ## Make greater-than red
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
28 red = imgH(:,:,1);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
29 red(colidx < L(iter, :)') = 1;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
30 imgH(:, :, 1) = red;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
31
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
32 ## Make less-than blue
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
33 blue = imgH(:,:,3);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
34 blue(colidx > R(iter, :)') = 1;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
35 imgH(:, :, 3) = blue;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
36
67
1aa38f4846e0 showalgo: show the rank
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 66
diff changeset
37 printf("Remaining: %d\n", remaining(iter))
66
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
38 imshow(imgH);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
39 pause
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
40
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
41 ## Make the guess yellow
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
42 [i,j] = find(Am(iter) == H);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
43 imgH(i,j,1) = imgH(i,j,2) = 1;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
44 imgH(i,j,3) = 0;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
45
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
46 imshow(imgH);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
47 pause
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
48
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
49 if iter == length(Am)
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
50 break;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
51 endif
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
52
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
53 ## Check the left side
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
54 imgLeft = imgH;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
55 red = imgH(:, :, 1);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
56 green = imgH(:, :, 2);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
57 blue = imgH(:, :, 3);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
58
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
59 idx = colidx > P(iter,:)';
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
60
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
61 ## Brighten blue
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
62 blue(idx) = 1;
67
1aa38f4846e0 showalgo: show the rank
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 66
diff changeset
63
66
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
64 ## Dim red and green
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
65 red(idx) .*= 0.5;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
66 green(idx) .*= 0.5;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
67
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
68 imgLeft(:,:,2) = green;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
69 imgLeft(:,:,3) = blue;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
70
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
71 ## Make the guess yellow again
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
72 [i,j] = find(Am(iter) == H);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
73 imgH(i,j,1) = imgH(i,j,2) = 1;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
74 imgH(i,j,3) = 0;
67
1aa38f4846e0 showalgo: show the rank
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 66
diff changeset
75
66
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
76 imshow(imgLeft);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
77 pause
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
78
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
79 ## Check the right side
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
80 imgRight = imgH;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
81 red = imgH(:, :, 1);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
82 green = imgH(:, :, 2);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
83 blue = imgH(:, :, 3);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
84
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
85 idx = colidx < Q(iter,:)';
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
86
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
87 ## Brighten red
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
88 blue(idx) = 1;
67
1aa38f4846e0 showalgo: show the rank
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 66
diff changeset
89
66
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
90 ## Dim blue and green
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
91 blue(idx) .*= 0.5;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
92 green(idx) .*= 0.5;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
93
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
94 imgRight(:,:,2) = green;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
95 imgRight(:,:,3) = blue;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
96
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
97 ## Make the guess yellow again
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
98 [i,j] = find(Am(iter) == H);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
99 imgH(i,j,1) = imgH(i,j,2) = 1;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
100 imgH(i,j,3) = 0;
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
101 imshow(imgRight);
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
102 pause
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
103
68
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
104 imshow(imgH);
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
105 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
106 Ptot(iter), Qtot(iter), medc_idx)
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
107 pause
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
108
66
916349600c4b algorithm-visualisation code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
109 endfor
68
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
110
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
111 if (jackpot)
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
112 printf("Jackpot!\n")
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
113 endif
5510ac95a3d3 last minute fixes
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents: 67
diff changeset
114 pause