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