Commit f2d71392 authored by Vladislav Kiselev's avatar Vladislav Kiselev

Добавлены определения новых данных для оптимизаций.

parent 0ea72898
...@@ -218,6 +218,9 @@ array [0..n_operations] of 0..n_locations : operations_destination; % Локац ...@@ -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 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. % Определение is_involved_in_cargo_op.
constraint forall (obj in 1..n_moving_obj, t in 1..n_intervals) ( constraint forall (obj in 1..n_moving_obj, t in 1..n_intervals) (
is_involved_in_cargo_op[obj, t] = ( is_involved_in_cargo_op[obj, t] = (
...@@ -344,6 +347,9 @@ array [0..n_operations] of 0..n_locations : operations_destination; % Локац ...@@ -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, -1} : loading_op_local_direction;
array [1..n_loading_op] of 1..n_operations : loading_op_n; % Номера среди общего списка операций. 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; 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; % Локац ...@@ -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 [1..n_fixed_op] of int : fixed_op_intensity;
array [0..n_operations, 0..n_intervals] of bool : is_fixed; 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]) ( constraint forall (no in 1..n_fixed_op, op = fixed_op[no]) (
forall (t in fixed_op_start[no]..fixed_op_end[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; % Локац ...@@ -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; array [1..(n_intervals + 1)] of var bool : is_not_terminated;
% В конце всё остановится. % В конце всё остановится.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment