Update presolve annotation
This commit is contained in:
parent
64965003e5
commit
242f04c553
@ -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]) );
|
||||
|
@ -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];
|
||||
|
@ -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) /\
|
||||
|
@ -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) /\
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user