From 5d481aa8cd2bd6c8d3596aa86b703e5a1d88c4e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=B8=D1=81=D0=B5=D0=BB=D1=91=D0=B2=20=D0=92=D0=BB?= =?UTF-8?q?=D0=B0=D0=B4=D0=B8=D1=81=D0=BB=D0=B0=D0=B2?= Date: Sun, 28 Apr 2019 20:47:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BF=D1=80=D0=BE=D1=89=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B3=D1=80=D1=83=D0=B7=D0=BE=D0=BE=D0=B1=D1=80?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/constraints/conversion_2.mzn | 12 +++++------- src/inport/ConversionUtil.java | 7 +++++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/constraints/conversion_2.mzn b/src/constraints/conversion_2.mzn index fcaf9ee..ba628db 100644 --- a/src/constraints/conversion_2.mzn +++ b/src/constraints/conversion_2.mzn @@ -287,17 +287,15 @@ array [1..n_operations] of 1..n_locations : operations_destination; % Локац array [1..n_loading_op] of int : loading_op_delta; array [1..n_loading_op] of 1..n_operations : loading_op_n; % Номера среди общего списка операций. - int : involved_operations_max_size; - array [1..n_obj_with_storage, 1..n_cargo_types] of 0..involved_operations_max_size : involved_operations_sizes; - array [1..n_obj_with_storage, 1..n_cargo_types, 1..involved_operations_max_size] of 1..n_loading_op : involved_operations; + array [1..n_obj_with_storage, 1..n_cargo_types] of set of 1..n_loading_op : involved_operations; constraint forall (storage in 1..n_obj_with_storage, cargo in 1..n_cargo_types, t in 1..(n_intervals + 1)) ( - storage_used_volume[storage, t, cargo] == ( + storage_used_volume[storage, t, cargo] = ( storage_used_volume[storage, t - 1, cargo] + cargo_flows[storage, t, cargo] + - sum (inv_op_no in 1..involved_operations_sizes[storage, cargo]) ( - loading_op_delta[involved_operations[storage, cargo, inv_op_no]] * - op_status[loading_op_n[involved_operations[storage, cargo, inv_op_no]], t] + sum (inv_op in involved_operations[storage, cargo]) ( + loading_op_delta[inv_op] * + op_status[loading_op_n[inv_op], t] ) ) ); diff --git a/src/inport/ConversionUtil.java b/src/inport/ConversionUtil.java index a05fb09..0be5821 100644 --- a/src/inport/ConversionUtil.java +++ b/src/inport/ConversionUtil.java @@ -768,8 +768,11 @@ public class ConversionUtil { } } writer.write("n_loading_op = " + loadingOpDelta.size() + ";\n"); -// write2DArrayOfSet(writer, "involved_operations", involvedOperations); - write2DArrayOfSetAs3DArray(writer, "involved_operations", involvedOperations); + if (task.isTypified()) { + write2DArrayOfSet(writer, "involved_operations", involvedOperations); + } else { + write2DArrayOfSetAs3DArray(writer, "involved_operations", involvedOperations); + } writeArray(writer, "loading_op_delta", loadingOpDelta); writeArray(writer, "loading_op_n", loadingOpN, (Integer i) -> i + 1); writer.write("\n"); -- GitLab