18 lines
636 B
MiniZinc
18 lines
636 B
MiniZinc
include "radiation.mzn";
|
|
include "lex_less.mzn";
|
|
|
|
%-----------------------------------------------------------------------------%
|
|
% Objective
|
|
%-----------------------------------------------------------------------------%
|
|
|
|
predicate lex_minimize(array[int] of var int: o, int: stage) =
|
|
forall(i in min(index_set(o))..stage-1) (
|
|
o[i] = sol(o[i])
|
|
)
|
|
/\ o[stage] < sol(o[stage]);
|
|
|
|
constraint output_this([Beamtime, K]);
|
|
predicate lex_obj(int: stage) ::export = lex_minimize([Beamtime, K], stage);
|
|
|
|
solve :: int_search([Beamtime] ++ N ++ [Q[i,j,b] | i in Rows, j in Columns, b in BTimes ], input_order, indomain_min, complete) satisfy;
|