aboutsummaryrefslogtreecommitdiff
path: root/gfsm/src/gfsm_markov.pd
diff options
context:
space:
mode:
Diffstat (limited to 'gfsm/src/gfsm_markov.pd')
-rw-r--r--gfsm/src/gfsm_markov.pd414
1 files changed, 414 insertions, 0 deletions
diff --git a/gfsm/src/gfsm_markov.pd b/gfsm/src/gfsm_markov.pd
new file mode 100644
index 0000000..ab7142d
--- /dev/null
+++ b/gfsm/src/gfsm_markov.pd
@@ -0,0 +1,414 @@
+#N canvas 386 0 450 300 10;
+#X text 85 2 gfsm_markov : Markov chain using gfsm;
+#X text 181 17 for details \, see:;
+#N canvas 266 0 499 471 gfsm_markov_doc 0;
+#X text 85 2 gfsm_markov : Markov chain using gfsm;
+#X text 15 67 INLETS:;
+#X text 28 84 1 - control messages;
+#X text 203 64 OUTLETS:;
+#X text 17 128 MESSAGES:;
+#X text 81 219 set ATOM : set current state to ATOM;
+#X text 116 231 set : reset to initial (root) state;
+#X text 107 441 bang : synonym for "next";
+#X text 16 24 SYNTAX: gfsm_markov OBJNAME;
+#X text 15 44 REQUIRES:;
+#X obj 83 44 gfsm;
+#X text 75 147 load BASE : load text files BASE.lab and BASE.tfst;
+#X text 75 159 save BASE : save text files BASE.lab \, BASE.tfst;
+#X text 47 182 load_bin BASE : load files BASE.lab \, BASE.gfst;
+#X text 47 194 save_bin BASE : save files BASE.lab \, BASE.gfst;
+#X obj 121 45 zexy;
+#X text 156 294 from current state \, and move to;
+#X text 23 281 add A1 A2 WEIGHT : add WEIGHT to arc on atom-pair A1:A2
+;
+#X text 73 411 next PROB : get next arc with PROB as nearest probability
+;
+#X text 107 427 next : get next arc with random probability;
+#X text 216 106 3 - bang when stuck;
+#X text 157 330 + WEIGHT defaults to 1;
+#X text 157 318 + A2 defaults to 0 (epsilon);
+#X text 157 378 + WEIGHT defaults to 1;
+#X text 157 366 + A2 defaults to 0 (epsilon);
+#X text 18 354 addi A1 A2 WEIGHT : add WEIGHT to initial arc on atoms
+A1:A2;
+#X text 156 305 (possibly new) state for atom A1;
+#X text 217 92 2 - upper side atoms on "next";
+#X text 217 78 1 - lower side atoms on "next";
+#X text 102 250 clear : clear underlying objects;
+#X restore 309 19 pd gfsm_markov_doc;
+#X obj 20 60 inlet;
+#X obj 22 261 outlet;
+#X obj 103 260 outlet;
+#N canvas 27 71 720 463 gfsm_markov_control_guts 0;
+#X obj 22 8 inlet;
+#X obj 450 32 print gfsm_markov_bad_message;
+#X obj 183 230 s \$0-load;
+#X obj 215 209 s \$0-save;
+#X obj 247 187 s \$0-load_bin;
+#X obj 280 164 s \$0-save_bin;
+#X obj 86 373 s \$0-set;
+#X obj 312 125 s \$0-clear;
+#X obj 118 337 s \$0-add;
+#X obj 22 409 s \$0-next;
+#X obj 303 99 s \$0-fsm;
+#X obj 335 78 s \$0-alph;
+#X obj 151 295 s \$0-addi;
+#X obj 415 79 s \$0-state-r;
+#X obj 22 28 route next bang set add addi load save load_bin save_bin
+clear fsm alph state add2;
+#X obj 449 122 s \$0-add2;
+#X connect 0 0 14 0;
+#X connect 14 0 9 0;
+#X connect 14 1 9 0;
+#X connect 14 2 6 0;
+#X connect 14 3 8 0;
+#X connect 14 4 12 0;
+#X connect 14 5 2 0;
+#X connect 14 6 3 0;
+#X connect 14 7 4 0;
+#X connect 14 8 5 0;
+#X connect 14 9 7 0;
+#X connect 14 10 10 0;
+#X connect 14 11 11 0;
+#X connect 14 12 13 0;
+#X connect 14 13 15 0;
+#X connect 14 14 1 0;
+#X restore 20 82 pd gfsm_markov_control_guts;
+#N canvas 0 252 310 205 gfsm_markov_fsm_guts 0;
+#X obj 40 121 gfsm_automaton \$1-fsm;
+#X obj 40 53 gfsm_alphabet \$1-alph;
+#X obj 40 100 r \$0-fsm;
+#X obj 40 33 r \$0-alph;
+#X connect 2 0 0 0;
+#X connect 3 0 1 0;
+#X restore 21 113 pd gfsm_markov_fsm_guts;
+#N canvas 114 67 710 486 gfsm_markov_io_guts 0;
+#X obj 21 87 symbol;
+#X msg 209 301 load \$1;
+#X obj 178 86 symbol;
+#X msg 556 308 save \$1;
+#X msg 21 215 load \$1;
+#X obj 367 85 symbol;
+#X obj 526 79 symbol;
+#X obj 21 20 r \$0-load;
+#X obj 367 22 r \$0-save;
+#X obj 526 26 r \$0-save_bin;
+#X obj 178 19 r \$0-load_bin;
+#X obj 21 110 t s s;
+#X obj 178 106 t s s;
+#X obj 367 107 t s s;
+#X obj 526 100 t s s;
+#X msg 179 215 load_bin \$1;
+#X msg 526 216 save_bin \$1;
+#X msg 367 215 save \$1;
+#X obj 21 193 makefilename %s.tfst;
+#X obj 178 192 makefilename %s.gfst;
+#X obj 367 193 makefilename %s.tfst;
+#X obj 526 193 makefilename %s.gfst;
+#X obj 556 286 makefilename %s.lab;
+#X obj 209 280 makefilename %s.lab;
+#X obj 179 434 s \$0-fsm;
+#X obj 367 429 s \$0-alph;
+#X connect 0 0 11 0;
+#X connect 1 0 25 0;
+#X connect 2 0 12 0;
+#X connect 3 0 25 0;
+#X connect 4 0 24 0;
+#X connect 5 0 13 0;
+#X connect 6 0 14 0;
+#X connect 7 0 0 0;
+#X connect 8 0 5 0;
+#X connect 9 0 6 0;
+#X connect 10 0 2 0;
+#X connect 11 0 18 0;
+#X connect 11 1 23 0;
+#X connect 12 0 19 0;
+#X connect 12 1 23 0;
+#X connect 13 0 20 0;
+#X connect 13 1 22 0;
+#X connect 14 0 21 0;
+#X connect 14 1 22 0;
+#X connect 15 0 24 0;
+#X connect 16 0 24 0;
+#X connect 17 0 24 0;
+#X connect 18 0 4 0;
+#X connect 19 0 15 0;
+#X connect 20 0 17 0;
+#X connect 21 0 16 0;
+#X connect 22 0 3 0;
+#X connect 23 0 1 0;
+#X restore 21 138 pd gfsm_markov_io_guts;
+#N canvas 150 351 551 242 gfsm_markov_set_guts 0;
+#X obj 32 18 r \$0-set;
+#X obj 32 40 route bang;
+#X obj 97 133 gfsm_alphabet \$1-alph;
+#X obj 97 61 route float list;
+#X msg 97 110 atom2char! \$1;
+#X obj 204 83 symbol;
+#X msg 97 156 set \$1;
+#X obj 97 178 s \$0-state;
+#X msg 32 83 0;
+#X obj 345 15 r \$0-clear;
+#X obj 389 78 s \$0-alph;
+#X obj 367 126 s \$0-fsm;
+#X msg 367 105 clear \, root 0;
+#X msg 389 57 clear \, atom2char! 0;
+#X obj 345 35 t b b b;
+#X msg 345 150 set 0;
+#X obj 346 170 s \$0-state;
+#X connect 0 0 1 0;
+#X connect 1 0 8 0;
+#X connect 1 1 3 0;
+#X connect 2 0 6 0;
+#X connect 3 0 4 0;
+#X connect 3 1 4 0;
+#X connect 3 2 5 0;
+#X connect 4 0 2 0;
+#X connect 5 0 4 0;
+#X connect 6 0 7 0;
+#X connect 8 0 4 0;
+#X connect 9 0 14 0;
+#X connect 12 0 11 0;
+#X connect 13 0 10 0;
+#X connect 14 0 15 0;
+#X connect 14 1 12 0;
+#X connect 14 2 13 0;
+#X connect 15 0 16 0;
+#X restore 21 162 pd gfsm_markov_set_guts;
+#X obj 261 60 loadbang;
+#N canvas 142 144 416 223 gfsm_markov_init_guts 0;
+#X obj 15 9 inlet;
+#X msg 15 97 char2atom! 0;
+#X obj 15 118 s \$0-alph;
+#X obj 15 66 t b b;
+#X obj 74 10 r \$0-loadbang;
+#X obj 179 124 gfsm_automaton \$1-fsm;
+#X msg 206 97 root;
+#X obj 179 145 route root;
+#X obj 179 168 route bang;
+#X msg 155 98 root 0;
+#X connect 0 0 3 0;
+#X connect 1 0 2 0;
+#X connect 3 0 1 0;
+#X connect 3 1 6 0;
+#X connect 4 0 3 0;
+#X connect 5 0 7 0;
+#X connect 6 0 5 0;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 9 0 5 0;
+#X restore 261 81 pd gfsm_markov_init_guts;
+#N canvas 66 12 666 508 gfsm_markov_add_guts 0;
+#X obj 28 231 gfsm_alphabet \$1-alph;
+#X obj 28 167 route float list;
+#X msg 28 211 atom2char! \$1;
+#X obj 95 190 symbol;
+#X obj 58 426 gfsm_state \$1-fsm;
+#X obj 71 402 r \$0-state;
+#X msg 508 322 set \$1;
+#X obj 508 428 s \$0-state;
+#X obj 28 12 r \$0-add1;
+#X obj 121 12 r \$0-add;
+#X obj 123 320 1;
+#X obj 28 260 t f f;
+#X obj 413 14 r \$0-addi1;
+#X obj 492 14 r \$0-addi;
+#X obj 443 89 gfsm_automaton \$1-fsm;
+#X msg 443 67 root;
+#X obj 413 39 t a b;
+#X obj 443 110 route root;
+#X obj 443 132 route bang;
+#X msg 481 67 root 0;
+#X msg 58 372 add_weight \$1 \$1 \$2 \$3;
+#X obj 28 89 t a b b;
+#X obj 58 347 pack 0 0 0;
+#X obj 90 320 0;
+#X text 139 347 <-- Q=LO HI WEIGHT;
+#X obj 28 112 niagara 1;
+#X obj 231 129 niagara 1;
+#X obj 231 236 gfsm_alphabet \$1-alph;
+#X obj 231 172 route float list;
+#X msg 231 216 atom2char! \$1;
+#X obj 298 195 symbol;
+#X obj 204 12 r \$0-add2;
+#X obj 28 42 t a b;
+#X obj 205 35 t a b;
+#X obj 446 297 spigot;
+#X obj 454 273 0;
+#X obj 479 273 1;
+#X connect 0 0 11 0;
+#X connect 1 0 2 0;
+#X connect 1 1 2 0;
+#X connect 1 2 3 0;
+#X connect 2 0 0 0;
+#X connect 3 0 2 0;
+#X connect 5 0 4 0;
+#X connect 6 0 7 0;
+#X connect 8 0 32 0;
+#X connect 9 0 32 0;
+#X connect 10 0 22 2;
+#X connect 11 0 34 0;
+#X connect 11 1 22 0;
+#X connect 12 0 16 0;
+#X connect 13 0 16 0;
+#X connect 14 0 17 0;
+#X connect 15 0 14 0;
+#X connect 16 0 21 0;
+#X connect 16 1 15 0;
+#X connect 17 0 18 0;
+#X connect 18 0 19 0;
+#X connect 18 1 6 0;
+#X connect 19 0 14 0;
+#X connect 20 0 4 0;
+#X connect 21 0 25 0;
+#X connect 21 1 23 0;
+#X connect 21 2 10 0;
+#X connect 22 0 20 0;
+#X connect 23 0 22 1;
+#X connect 25 0 1 0;
+#X connect 25 1 26 0;
+#X connect 26 0 28 0;
+#X connect 26 1 22 2;
+#X connect 27 0 22 1;
+#X connect 28 0 29 0;
+#X connect 28 1 29 0;
+#X connect 28 2 30 0;
+#X connect 29 0 27 0;
+#X connect 30 0 29 0;
+#X connect 31 0 33 0;
+#X connect 32 0 21 0;
+#X connect 32 1 36 0;
+#X connect 33 0 21 0;
+#X connect 33 1 35 0;
+#X connect 34 0 6 0;
+#X connect 35 0 34 1;
+#X connect 36 0 34 1;
+#X restore 21 186 pd gfsm_markov_add_guts;
+#N canvas 27 0 738 524 gfsm_markov_next_guts 0;
+#X obj 86 25 r \$0-next;
+#X obj 243 464 outlet;
+#X obj 86 47 route bang;
+#X obj 151 158 * -1;
+#X obj 151 136 * 1;
+#X obj 559 376 t b b;
+#N canvas 75 18 312 424 weight_sum 0;
+#X obj 24 9 inlet;
+#X msg 24 114 arc_next;
+#X obj 24 319 f 0;
+#X obj 199 92 0;
+#X obj 89 238 unpack 0 0 0 0;
+#X obj 183 262 + 0;
+#X obj 88 263 t f f;
+#X obj 24 350 outlet;
+#X obj 60 146 r \$0-state;
+#X obj 24 90 until;
+#X obj 24 214 route bang;
+#X obj 24 235 t b b;
+#X obj 24 192 route arc_next;
+#X obj 24 43 t b b b b;
+#X msg 91 114 arc_reset;
+#X obj 24 167 gfsm_state \$1-fsm 0;
+#X connect 0 0 13 0;
+#X connect 1 0 15 0;
+#X connect 2 0 7 0;
+#X connect 3 0 5 1;
+#X connect 4 3 5 0;
+#X connect 5 0 6 0;
+#X connect 6 0 5 1;
+#X connect 6 1 2 1;
+#X connect 8 0 15 0;
+#X connect 9 0 1 0;
+#X connect 10 0 11 0;
+#X connect 10 1 4 0;
+#X connect 11 0 2 0;
+#X connect 11 1 9 1;
+#X connect 12 0 10 0;
+#X connect 13 0 9 0;
+#X connect 13 1 3 0;
+#X connect 13 2 14 0;
+#X connect 13 3 9 1;
+#X connect 14 0 15 0;
+#X connect 15 0 12 0;
+#X restore 167 115 pd weight_sum;
+#X obj 25 95 random 131072;
+#X obj 25 116 / 131072;
+#X obj 86 69 t b b b;
+#X obj 151 69 t f b b;
+#X msg 559 227 arc_next;
+#X obj 594 269 r \$0-state;
+#X obj 559 205 until;
+#X obj 559 349 route bang;
+#X obj 559 326 route arc_next;
+#X msg 625 226 arc_reset;
+#X obj 151 180 t b b f;
+#X obj 405 461 outlet;
+#X obj 101 429 gfsm_alphabet \$1-alph;
+#X msg 101 407 char2atom! \$1;
+#X obj 179 296 moses 0;
+#X obj 179 251 + 0;
+#X obj 179 274 t f f;
+#X obj 86 225 unpack 0 0 0 0;
+#X obj 18 386 f 0;
+#X msg 18 411 set \$1;
+#X obj 18 432 s \$0-state;
+#X obj 559 292 gfsm_state \$1-fsm 0;
+#X obj 559 457 outlet;
+#X obj 263 428 gfsm_alphabet \$1-alph;
+#X msg 263 406 char2atom! \$1;
+#X obj 263 384 f 0;
+#X obj 101 385 f 0;
+#X obj 225 316 t b b b b;
+#X connect 0 0 2 0;
+#X connect 2 0 9 0;
+#X connect 2 1 10 0;
+#X connect 3 0 17 0;
+#X connect 4 0 3 0;
+#X connect 5 0 29 0;
+#X connect 5 1 13 1;
+#X connect 6 0 4 1;
+#X connect 7 0 8 0;
+#X connect 8 0 4 0;
+#X connect 9 0 7 0;
+#X connect 9 1 6 0;
+#X connect 9 2 13 1;
+#X connect 10 0 4 0;
+#X connect 10 1 6 0;
+#X connect 10 2 13 1;
+#X connect 11 0 28 0;
+#X connect 12 0 28 0;
+#X connect 13 0 11 0;
+#X connect 14 0 5 0;
+#X connect 14 1 24 0;
+#X connect 15 0 14 0;
+#X connect 16 0 28 0;
+#X connect 17 0 13 0;
+#X connect 17 1 16 0;
+#X connect 17 2 22 1;
+#X connect 19 1 1 0;
+#X connect 20 0 19 0;
+#X connect 21 1 34 0;
+#X connect 22 0 23 0;
+#X connect 23 0 21 0;
+#X connect 23 1 22 1;
+#X connect 24 0 25 1;
+#X connect 24 1 33 1;
+#X connect 24 2 32 1;
+#X connect 24 3 22 0;
+#X connect 25 0 26 0;
+#X connect 26 0 27 0;
+#X connect 28 0 15 0;
+#X connect 30 1 18 0;
+#X connect 31 0 30 0;
+#X connect 32 0 31 0;
+#X connect 33 0 20 0;
+#X connect 34 0 25 0;
+#X connect 34 1 33 0;
+#X connect 34 2 32 0;
+#X connect 34 3 13 1;
+#X restore 22 216 pd gfsm_markov_next_guts;
+#X obj 185 260 outlet;
+#X connect 3 0 6 0;
+#X connect 10 0 11 0;
+#X connect 13 0 4 0;
+#X connect 13 1 5 0;
+#X connect 13 2 14 0;