annotate talk/code/showalgo.m @ 67:1aa38f4846e0

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