Commit 30d0fc31 authored by Vladislav Kiselev's avatar Vladislav Kiselev

Добавлен нормальный OR.

parent 729ab3be
...@@ -189,13 +189,8 @@ subject to { ...@@ -189,13 +189,8 @@ subject to {
// current_moored_obj соответствуе какому-либо реально пришвартованному объекту. // current_moored_obj соответствуе какому-либо реально пришвартованному объекту.
forall (loc in 1..n_locations, t in 1..n_intervals : loc mod 2 == 0) ( forall (loc in 1..n_locations, t in 1..n_intervals : loc mod 2 == 0) (
(current_moored_obj[loc, t] != 0) => ((m_obj_loc[current_moored_obj[loc, t], t] == loc) || (current_moored_obj[loc, t] != 0) => ((m_obj_loc[current_moored_obj[loc, t], t] == loc) ||
( (or (id in 1..op_with_nominally_mooring_max_size) // new!!!
// (sum (id in 1..op_with_nominally_mooring_sizes[loc, current_moored_obj[loc, t]]) op_status[op_with_nominally_mooring[loc, current_moored_obj[loc, t], id], t] == true
// op_status[op_with_nominally_mooring[loc, current_moored_obj[loc, t], id], t]
// ) > 0
(sum (id in 1..op_with_nominally_mooring_max_size) // new!!!
op_status[op_with_nominally_mooring[loc, current_moored_obj[loc, t], id], t]
) > 0
)) ))
); );
...@@ -320,9 +315,7 @@ subject to { ...@@ -320,9 +315,7 @@ subject to {
// Определение is_involved_in_cargo_op. // Определение is_involved_in_cargo_op.
forall (obj in 1..n_moving_obj, t in 1..n_intervals) ( 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] == (
((sum (op in related_cargo_op[obj]) (op_status[op, t]) (or (op in related_cargo_op[obj]) (op_status[op, t] == true))
) > 0
)
|| ||
((participation_as_resource[obj, t] != 0) && (is_moving_operation[participation_as_resource[obj, t]] == 0)) ((participation_as_resource[obj, t] != 0) && (is_moving_operation[participation_as_resource[obj, t]] == 0))
) )
...@@ -610,8 +603,7 @@ subject to { ...@@ -610,8 +603,7 @@ subject to {
// Действия ещё не остановились, если в текущий интервал что-нибудь происходит или они не остановятся в следующий интервал. // Действия ещё не остановились, если в текущий интервал что-нибудь происходит или они не остановятся в следующий интервал.
forall (t in 1..n_intervals) ( forall (t in 1..n_intervals) (
is_not_terminated[t] == ( is_not_terminated[t] == (
((sum (op in 1..n_operations) (op_status[op, t]) (or (op in 1..n_operations) (op_status[op, t] == true))
) > 0)
|| ||
(is_not_terminated[t + 1] == 1) (is_not_terminated[t + 1] == 1)
) )
......
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