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; constraint x[1] == 1;
% Consecutive cards match % 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; = ((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]) ); 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 %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{ = let{
var 1..24: pos; var 1..24: pos;
var int: cube = cs[1]; var int: cube = cs[1];

View File

@ -158,7 +158,7 @@ array[int,int] of int: transition =
% cost function % 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 if dopresolve then
bt in breakable /\ bt in breakable /\
let {array[period] of var A..H: lhap} in ( let {array[period] of var A..H: lhap} in (
@ -206,7 +206,7 @@ constraint
); );
% channel break <---> hap (2) % 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 /\ bt in breakable /\
(t in north_team -> hapt[(t mod divsize)+1] = A) /\ (t in north_team -> hapt[(t mod divsize)+1] = A) /\
(t in south_team -> hapt[(t mod divsize)+1] = H) /\ (t in south_team -> hapt[(t mod divsize)+1] = H) /\

View File

@ -180,7 +180,7 @@ array[int,int] of int: transition =
% cost function % 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 if dopresolve then
bt in breakable /\ bt in breakable /\
let {array[period] of var A..H: lhap} in ( let {array[period] of var A..H: lhap} in (
@ -228,7 +228,7 @@ constraint
); );
% channel break <---> hap (2) % 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 /\ bt in breakable /\
(t in north_team -> hapt[(t mod divsize)+1] = A) /\ (t in north_team -> hapt[(t mod divsize)+1] = A) /\
(t in south_team -> hapt[(t mod divsize)+1] = H) /\ (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]) 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] 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_sjis) * sjis_score[stream_i+1]
+ bool2int(encoding_i == e_utf8) * utf8_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]) 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([ (forall([
% %
% byte_status -> encoding % 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([ ( forall([
% %
% UTF-8 % UTF-8