Current section

Files

Jump to
fixpoint data bin_packing bin_packing_experimental.mzn
Raw

data/bin_packing/bin_packing_experimental.mzn

% Use this editor as a MiniZinc scratch book
include "globals.mzn";
int: capacity = 1000;
int: N = 60;
array[1..N] of int: weights = [495,474,473,472,466,450,445,444,439,430,419,414,410,395,372,370,
366,366,366,363,361,357,355,351,350,350,347,320,315,307,303,299,
298,298,292,288,287,283,275,275,274,273,273,272,272,271,269,269,
268,263,262,261,259,258,255,254,252,252,252,251];
item_placement = [9, 4, 1, 20, 18, 19, 16, 11, 3, 15, 8, 10, 7, 12, 6, 5, 14, 21, 9, 17, 5, 2, 14, 13, 13, 12, 3, 18, 2, 8, 7, 10, 21, 17, 19, 6, 10, 16, 15, 11, 8, 17, 7, 1, 2, 11, 16, 20, 5, 15, 21, 6, 4, 4, 1, 14, 20, 13, 19, 12];
int: upper_bound = 23;
% int: capacity = 100;
% int: N = 50;
% array[1..N] of int: weights = [99,98,95,95,95,94,94,91,88,87,86,85,76,74,73,71,68,60,55,54,51,
% 45,42,40,39,39,36,34,33,32,32,31,31,30,29,26,26,23,21,21,21,19,
% 18,18,16,15,5,5,4,1];
% int: upper_bound = 26;
% int: capacity = 1000;
% int: N = 120;
% array[1..N] of int: weights = [
% 497,497,495,485,480,478,474,473,472,470,466,450,446,445,445,444,
% 439,434,430,420,419,414,412,410,407,405,400,397,395,376,372,370,
% 366,366,366,366,366,363,363,362,361,357,357,356,356,355,352,351,
% 350,350,350,347,336,333,329,325,320,315,314,313,307,303,302,301,
% 299,298,298,298,295,294,292,290,288,287,283,282,282,276,275,275,
% 274,273,273,272,272,271,271,269,269,268,267,267,266,263,263,262,
% 262,261,260,259,259,259,258,256,255,254,254,254,253,253,253,253,
% 252,252,252,252,251,251,250,250
% ];
%int: upper_bound = 45;
array[1..N] of var 1..upper_bound: item_placement; % = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 19, 20, 18, 21, 22, 23, 23, 24, 17, 25, 24, 25, 23, 16, 14, 15, 13, 22, 22, 25, 22, 24, 24, 25, 12, 3, 4, 5, 1];
% The total number of trucks has to be minimized
constraint bin_packing(capacity, item_placement, weights);
var 1..upper_bound: total_bins = max(item_placement);
solve minimize(total_bins);