From f2d71392a40fce34e04e12472dc6b8042fa2c3a4 Mon Sep 17 00:00:00 2001 From: Vlad_kv Date: Tue, 6 Aug 2019 10:07:45 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=BE=D0=BF=D1=80=D0=B5=D0=B4=D0=B5=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BD=D0=BE=D0=B2=D1=8B=D1=85=20=D0=B4?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20=D0=B4=D0=BB=D1=8F=20=D0=BE?= =?UTF-8?q?=D0=BF=D1=82=D0=B8=D0=BC=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D0=B9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../conversion_2_with_partial_cargo_operations.mzn | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/constraints/conversion_2_with_partial_cargo_operations.mzn b/src/constraints/conversion_2_with_partial_cargo_operations.mzn index 9c86594..8d7d8c8 100644 --- a/src/constraints/conversion_2_with_partial_cargo_operations.mzn +++ b/src/constraints/conversion_2_with_partial_cargo_operations.mzn @@ -218,6 +218,9 @@ array [0..n_operations] of 0..n_locations : operations_destination; % Локац % Операции погрузки, которые используют этот объект в качестве главного или в качестве бункеровщика. array [0..n_moving_obj] of set of 0..n_operations : related_cargo_op; + % Операции отшвартовки, которые используют объект в качестве главного. + array [0..n_moving_obj] of set of 1..n_operations : related_unmooring_op; + % Определение is_involved_in_cargo_op. constraint forall (obj in 1..n_moving_obj, t in 1..n_intervals) ( is_involved_in_cargo_op[obj, t] = ( @@ -344,6 +347,9 @@ array [0..n_operations] of 0..n_locations : operations_destination; % Локац array [1..n_loading_op] of {1, -1} : loading_op_local_direction; array [1..n_loading_op] of 1..n_operations : loading_op_n; % Номера среди общего списка операций. + array [1..n_moving_obj] of set of 1..n_all_storage_sections : sections_of_moving_obj; + array [1..n_moving_obj] of bool : is_sections_of_moving_obj_empty; + array [1..n_all_storage_sections] of set of 1..n_loading_op : involved_operations; % Интенсивность операций погрузки. @@ -386,6 +392,7 @@ array [0..n_operations] of 0..n_locations : operations_destination; % Локац array [1..n_fixed_op] of int : fixed_op_intensity; array [0..n_operations, 0..n_intervals] of bool : is_fixed; + array [0..n_moving_obj, 0..(n_intervals + 1)] of bool : is_obj_involved_in_fixed_op; constraint forall (no in 1..n_fixed_op, op = fixed_op[no]) ( forall (t in fixed_op_start[no]..fixed_op_end[no]) ( @@ -492,6 +499,12 @@ array [0..n_operations] of 0..n_locations : operations_destination; % Локац ) ); + array [1..n_all_storage_sections, 1..n_locations] of int : min_positive_cargo_val; % Объём максимальной положительной операции, которая может быть произведена с этой секцией в этом хранилище. Если в локации таковой нет, то это значение объёма хранилища + 1. + array [1..n_all_storage_sections, 1..n_locations] of int : max_negative_cargo_val; + + array [1..n_moving_obj, 1..n_locations] of bool : can_obj_leave_loc_only_alone; + array [1..n_moving_obj, 1..n_locations, 1..n_intervals] of bool : is_fixed_op_planned_in_future; + % Критерий оптимизации array [1..(n_intervals + 1)] of var bool : is_not_terminated; % В конце всё остановится. -- GitLab