1
0

Update presolve annotation

This commit is contained in:
Jip J. Dekker 2017-01-23 15:18:58 +01:00
parent 64965003e5
commit 242f04c553
5 changed files with 9 additions and 9 deletions

View File

@ -90,7 +90,7 @@ array[1..52] of var 1..52: y;
constraint x[1] == 1;
% Consecutive cards match
predicate adjacent(var 1..52: a, var 1..52: b) ::presolve
predicate adjacent(var 1..52: a, var 1..52: b) :: presolve(autotable)
= ((x-y) in {13*i+1 | i in -4..3} union {13*i-1 | i in -3..4}) :: domain;
constraint forall(i in 1..51) ( adjacent(x[i], x[i+1]) );

View File

@ -72,7 +72,7 @@ predicate party(array[1..4] of var 0..63: symbols)
);
%Linking cube IDs with the three symbols appearing in relevant positions
predicate link_cube_and_symbols(array[1..4] of var int: cs) ::presolve
predicate link_cube_and_symbols(array[1..4] of var int: cs) :: presolve(autotable)
= let{
var 1..24: pos;
var int: cube = cs[1];

View File

@ -158,7 +158,7 @@ array[int,int] of int: transition =
% cost function
predicate part_cost(var breakable: bt, var team: r, var team: t, var 0..max(allperiod): part) ::presolve = (
predicate part_cost(var breakable: bt, var team: r, var team: t, var 0..max(allperiod): part) :: presolve(autotable) = (
if dopresolve then
bt in breakable /\
let {array[period] of var A..H: lhap} in (
@ -206,7 +206,7 @@ constraint
);
% channel break <---> hap (2)
predicate channel_break_hap(var breakable: bt, array[period] of var A..H: hapt, var team: t) ::presolve(model) =
predicate channel_break_hap(var breakable: bt, array[period] of var A..H: hapt, var team: t) :: presolve(autotable(model)) =
bt in breakable /\
(t in north_team -> hapt[(t mod divsize)+1] = A) /\
(t in south_team -> hapt[(t mod divsize)+1] = H) /\

View File

@ -180,7 +180,7 @@ array[int,int] of int: transition =
% cost function
predicate part_cost(var breakable: bt, var team: r, var team: t, var 0..max(allperiod): part) ::presolve = (
predicate part_cost(var breakable: bt, var team: r, var team: t, var 0..max(allperiod): part) :: presolve(autotable) = (
if dopresolve then
bt in breakable /\
let {array[period] of var A..H: lhap} in (
@ -228,7 +228,7 @@ constraint
);
% channel break <---> hap (2)
predicate channel_break_hap(var breakable: bt, array[period] of var A..H: hapt, var team: t) ::presolve(model) =
predicate channel_break_hap(var breakable: bt, array[period] of var A..H: hapt, var team: t) :: presolve(presolve(model)) =
bt in breakable /\
(t in north_team -> hapt[(t mod divsize)+1] = A) /\
(t in south_team -> hapt[(t mod divsize)+1] = H) /\

View File

@ -137,7 +137,7 @@ constraint objective = sum (i in rng) (
score_of(encoding[i],stream[i])
);
predicate score_computation(var 0..e_unknown:encoding_i, var 0..255:stream_i, var scoreType: score_i) ::presolve(model) =
predicate score_computation(var 0..e_unknown:encoding_i, var 0..255:stream_i, var scoreType: score_i) :: presolve(autotable(model)) =
score_i = (bool2int(encoding_i == e_euc_jp) * eucjp_score[stream_i+1]
+ bool2int(encoding_i == e_sjis) * sjis_score[stream_i+1]
+ bool2int(encoding_i == e_utf8) * utf8_score[stream_i+1]
@ -162,7 +162,7 @@ constraint forall (i in rng) (
stream_to_status(i,stream,byte_status[i])
);
predicate link_vars(var int: encoding_i, var int: byte_status_i, var int: char_start_i) ::presolve =
predicate link_vars(var int: encoding_i, var int: byte_status_i, var int: char_start_i) :: presolve(autotable) =
(forall([
%
% byte_status -> encoding
@ -403,7 +403,7 @@ predicate stream_to_status_old(int:i, array[int] of int: stream, var int: byte_s
);
predicate link_statuses(var int: byte_status_i, var int: byte_status_im1) ::presolve =
predicate link_statuses(var int: byte_status_i, var int: byte_status_im1) :: presolve(autotable) =
( forall([
%
% UTF-8