%% Nonogram problem from Gecode: Dragonfly %% http://www.gecode.org/gecode-doc-latest/classNonogram.html %% ROW RULES row_max = 20; row_states = array2d(1..row_total_states, 1..2, [ % pattern 0,0,0,7,1, % tmp: dummy 0 1 1 1 1 1 1 1 0 1 % 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 9,0, 9,10, 10,0, % pattern 0,0,1,1,2, % tmp: dummy 0 1 0 1 0 1 1 0 % 1,2, 3,0, 3,4, 5,0, 5,6, 0,7, 7,0, % pattern 0,0,2,1,2, % tmp: dummy 0 1 1 0 1 0 1 1 0 % 1,2, 0,3, 4,0, 4,5, 6,0, 6,7, 0,8, 8,0, % pattern 0,0,1,2,2, % tmp: dummy 0 1 0 1 1 0 1 1 0 % 1,2, 3,0, 3,4, 0,5, 6,0, 6,7, 0,8, 8,0, % pattern 0,0,4,2,3, % tmp: dummy 0 1 1 1 1 0 1 1 0 1 1 1 0 % 1,2, 0,3, 0,4, 0,5, 6,0, 6,7, 0,8, 9,0, 9,10, 0,11, 0,12, 12,0, % pattern 0,0,3,1,4, % tmp: dummy 0 1 1 1 0 1 0 1 1 1 1 0 % 1,2, 0,3, 0,4, 5,0, 5,6, 7,0, 7,8, 0,9, 0,10, 0,11, 11,0, % pattern 0,0,3,1,3, % tmp: dummy 0 1 1 1 0 1 0 1 1 1 0 % 1,2, 0,3, 0,4, 5,0, 5,6, 7,0, 7,8, 0,9, 0,10, 10,0, % pattern 0,0,2,1,4, % tmp: dummy 0 1 1 0 1 0 1 1 1 1 0 % 1,2, 0,3, 4,0, 4,5, 6,0, 6,7, 0,8, 0,9, 0,10, 10,0, % pattern 0,0,0,2,9, % tmp: dummy 0 1 1 0 1 1 1 1 1 1 1 1 1 % 1,2, 0,3, 4,0, 4,5, 0,6, 0,7, 0,8, 0,9, 0,10, 0,11, 0,12, 0,13, 13,0, % pattern 0,0,2,1,5, % tmp: dummy 0 1 1 0 1 0 1 1 1 1 1 0 % 1,2, 0,3, 4,0, 4,5, 6,0, 6,7, 0,8, 0,9, 0,10, 0,11, 11,0, % pattern 0,0,0,2,7, % tmp: dummy 0 1 1 0 1 1 1 1 1 1 1 % 1,2, 0,3, 4,0, 4,5, 0,6, 0,7, 0,8, 0,9, 0,10, 0,11, 11,0, % pattern 0,0,0,0,14, % tmp: dummy 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 % 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 0,10, 0,11, 0,12, 0,13, 0,14, 0,15, 15,0, % pattern 0,0,0,8,2, % tmp: dummy 0 1 1 1 1 1 1 1 1 0 1 1 % 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 10,0, 10,11, 0,12, 12,0, % pattern 0,0,6,2,2, % tmp: dummy 0 1 1 1 1 1 1 0 1 1 0 1 1 0 % 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 8,0, 8,9, 0,10, 11,0, 11,12, 0,13, 13,0, % pattern 0,2,8,1,3, % tmp: dummy 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 0 % 1,2, 0,3, 4,0, 4,5, 0,6, 0,7, 0,8, 0,9, 0,10, 0,11, 0,12, 13,0, 13,14, 15,0, 15,16, 0,17, 0,18, 18,0, % pattern 0,1,5,5,2, % tmp: dummy 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 % 1,2, 3,0, 3,4, 0,5, 0,6, 0,7, 0,8, 9,0, 9,10, 0,11, 0,12, 0,13, 0,14, 15,0, 15,16, 0,17, 17,0, % pattern 1,3,2,4,1, % tmp: dummy 0 1 0 1 1 1 0 1 1 0 1 1 1 1 0 1 0 % 1,2, 3,0, 3,4, 0,5, 0,6, 7,0, 7,8, 0,9, 10,0, 10,11, 0,12, 0,13, 0,14, 15,0, 15,16, 16,0, % pattern 3,1,2,4,1, % tmp: dummy 0 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1 0 % 1,2, 0,3, 0,4, 5,0, 5,6, 7,0, 7,8, 0,9, 10,0, 10,11, 0,12, 0,13, 0,14, 15,0, 15,16, 16,0, % pattern 1,1,3,1,3, % tmp: dummy 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 % 1,2, 3,0, 3,4, 5,0, 5,6, 0,7, 0,8, 9,0, 9,10, 11,0, 11,12, 0,13, 0,14, 14,0, % pattern 0,2,1,1,2 % tmp: dummy 0 1 1 0 1 0 1 0 1 1 0 % 1,2, 0,3, 4,0, 4,5, 6,0, 6,7, 8,0, 8,9, 0,10, 10,0, ]); row_max_state = 18; row_total_states = 242; row_num_patterns = 20; row_num_states = [10,7,8,8,12,11,10,10,13,11,11,15,12,13,18,17,16,16,14,10]; % this is also the final state row_start_where = [1,11,18,26,34,46,57,67,77,90,101,112,127,139,152,170,187,203,219,233]; % COL_RULES: col_max = 20; col_states = array2d(1..col_total_states, 1..2, [ % pattern 0,1,1,1,2, % tmp: dummy 0 1 0 1 0 1 0 1 1 0 1,2, 3,0, 3,4, 5,0, 5,6, 7,0, 7,8, 0,9, 9,0, % pattern 3,1,2,1,1, % tmp: dummy 0 1 1 1 0 1 0 1 1 0 1 0 1 0 1,2, 0,3, 0,4, 5,0, 5,6, 7,0, 7,8, 0,9, 10,0, 10,11, 12,0, 12,13, 13,0, % pattern 1,4,2,1,1, % tmp: dummy 0 1 0 1 1 1 1 0 1 1 0 1 0 1 0 1,2, 3,0, 3,4, 0,5, 0,6, 0,7, 8,0, 8,9, 0,10, 11,0, 11,12, 13,0, 13,14, 14,0, % pattern 0,1,3,2,4, % tmp: dummy 0 1 0 1 1 1 0 1 1 0 1 1 1 1 0 1,2, 3,0, 3,4, 0,5, 0,6, 7,0, 7,8, 0,9, 10,0, 10,11, 0,12, 0,13, 0,14, 14,0, % pattern 0,1,4,6,1, % tmp: dummy 0 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1,2, 3,0, 3,4, 0,5, 0,6, 0,7, 8,0, 8,9, 0,10, 0,11, 0,12, 0,13, 0,14, 15,0, 15,16, 16,0, % pattern 0,0,1,11,1, % tmp: dummy 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1,2, 3,0, 3,4, 0,5, 0,6, 0,7, 0,8, 0,9, 0,10, 0,11, 0,12, 0,13, 0,14, 15,0, 15,16, 16,0, % pattern 0,5,1,6,2, % tmp: dummy 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1,2, 0,3, 0,4, 0,5, 0,6, 7,0, 7,8, 9,0, 9,10, 0,11, 0,12, 0,13, 0,14, 0,15, 16,0, 16,17, 0,18, 18,0, % pattern 0,0,0,0,14, % tmp: dummy 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 0,10, 0,11, 0,12, 0,13, 0,14, 0,15, 15,0, % pattern 0,0,0,7,2, % tmp: dummy 0 1 1 1 1 1 1 1 0 1 1 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 9,0, 9,10, 0,11, 11,0, % pattern 0,0,0,7,2, % tmp: dummy 0 1 1 1 1 1 1 1 0 1 1 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 9,0, 9,10, 0,11, 11,0, % pattern 0,0,6,1,1, % tmp: dummy 0 1 1 1 1 1 1 0 1 0 1 0 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 8,0, 8,9, 10,0, 10,11, 11,0, % pattern 0,0,0,9,2, % tmp: dummy 0 1 1 1 1 1 1 1 1 1 0 1 1 1,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 0,10, 11,0, 11,12, 0,13, 13,0, % pattern 0,3,1,1,1, % tmp: dummy 0 1 1 1 0 1 0 1 0 1 0 1,2, 0,3, 0,4, 5,0, 5,6, 7,0, 7,8, 9,0, 9,10, 10,0, % pattern 0,0,3,1,3, % tmp: dummy 0 1 1 1 0 1 0 1 1 1 0 1,2, 0,3, 0,4, 5,0, 5,6, 7,0, 7,8, 0,9, 0,10, 10,0, % pattern 0,0,2,1,3, % tmp: dummy 0 1 1 0 1 0 1 1 1 0 1,2, 0,3, 4,0, 4,5, 6,0, 6,7, 0,8, 0,9, 9,0, % pattern 0,0,2,1,5, % tmp: dummy 0 1 1 0 1 0 1 1 1 1 1 0 1,2, 0,3, 4,0, 4,5, 6,0, 6,7, 0,8, 0,9, 0,10, 0,11, 11,0, % pattern 0,0,3,2,2, % tmp: dummy 0 1 1 1 0 1 1 0 1 1 0 1,2, 0,3, 0,4, 5,0, 5,6, 0,7, 8,0, 8,9, 0,10, 10,0, % pattern 0,0,3,3,2, % tmp: dummy 0 1 1 1 0 1 1 1 0 1 1 0 1,2, 0,3, 0,4, 5,0, 5,6, 0,7, 0,8, 9,0, 9,10, 0,11, 11,0, % pattern 0,0,2,3,2, % tmp: dummy 0 1 1 0 1 1 1 0 1 1 0 1,2, 0,3, 4,0, 4,5, 0,6, 0,7, 8,0, 8,9, 0,10, 10,0, % pattern 0,0,0,2,6 % tmp: dummy 0 1 1 0 1 1 1 1 1 1 1,2, 0,3, 4,0, 4,5, 0,6, 0,7, 0,8, 0,9, 0,10, 10,0, ]); col_num_patterns = 20; col_max_state = 18; col_total_states = 242; col_num_states = [9,13,14,14,16,16,18,15,11,11,11,13,10,10,9,11,10,11,10,10]; % this is also the final state col_start_where = [1,10,23,37,51,67,83,101,116,127,138,149,162,172,182,191,202,212,223,233];