Commit 31e84e09 authored by Vladislav Kiselev's avatar Vladislav Kiselev

Fixed bug with optimization.

parent 659aa53d
......@@ -342,13 +342,11 @@ array [1..n_operations] of 1..n_locations : operations_destination; % Локац
);
% Участвует ли данный объект в операции грузообработки в качестве главного.
array [1..n_moving_obj, 1..n_intervals] of var bool : is_obj_involved_in_cargo_op;
array [1..n_moving_obj, 1..n_intervals] of var bool : is_obj_involved_in_cargo_op_as_main_obj;
constraint forall (obj in 1..n_moving_obj, t in 1..n_intervals) (
is_obj_involved_in_cargo_op[obj, t] = (
((participation_as_resource[obj, t] != 0) /\ (current_moving_operation[obj, t] = 0)) % В качестве ресурса.
\/
exists (op in 1..n_operations where main_obj_of_operation[op] = obj) ( % В качестве главного объекта.
is_obj_involved_in_cargo_op_as_main_obj[obj, t] = (
exists (op in 1..n_operations where (main_obj_of_operation[op] = obj) /\ (not is_moving_operation[op])) (
op_status[op, t]
)
)
......@@ -371,7 +369,7 @@ array [1..n_operations] of 1..n_locations : operations_destination; % Локац
(is_enough_free_resources[op, t] = true) /\ % Достаточно свободных ресурсов на нужном месте.
(forall (conf_op in conflicting_operations[op]) (op_status[op, t] = false))
/\ % Не выполняется ни одной конфликтующей операции.
(is_moving_operation[op] -> not is_obj_involved_in_cargo_op[main_obj_of_operation[op], t])
(is_moving_operation[op] -> not is_obj_involved_in_cargo_op_as_main_obj[main_obj_of_operation[op], t])
/\ % Если это операция перемещения, то главный объект
% не участвует в операциях погрузки.
((is_mooring_op[op] /\ (operations_destination[op] mod 2 = 0)) -> (
......
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