Commit 5d481aa8 authored by Vladislav Kiselev's avatar Vladislav Kiselev

Упрощение грузообработки.

parent fd4b2421
...@@ -287,17 +287,15 @@ array [1..n_operations] of 1..n_locations : operations_destination; % Локац ...@@ -287,17 +287,15 @@ array [1..n_operations] of 1..n_locations : operations_destination; % Локац
array [1..n_loading_op] of int : loading_op_delta; array [1..n_loading_op] of int : loading_op_delta;
array [1..n_loading_op] of 1..n_operations : loading_op_n; % Номера среди общего списка операций. array [1..n_loading_op] of 1..n_operations : loading_op_n; % Номера среди общего списка операций.
int : involved_operations_max_size; array [1..n_obj_with_storage, 1..n_cargo_types] of set of 1..n_loading_op : involved_operations;
array [1..n_obj_with_storage, 1..n_cargo_types] of 0..involved_operations_max_size : involved_operations_sizes;
array [1..n_obj_with_storage, 1..n_cargo_types, 1..involved_operations_max_size] of 1..n_loading_op : involved_operations;
constraint forall (storage in 1..n_obj_with_storage, cargo in 1..n_cargo_types, t in 1..(n_intervals + 1)) ( constraint forall (storage in 1..n_obj_with_storage, cargo in 1..n_cargo_types, t in 1..(n_intervals + 1)) (
storage_used_volume[storage, t, cargo] == ( storage_used_volume[storage, t, cargo] = (
storage_used_volume[storage, t - 1, cargo] + storage_used_volume[storage, t - 1, cargo] +
cargo_flows[storage, t, cargo] + cargo_flows[storage, t, cargo] +
sum (inv_op_no in 1..involved_operations_sizes[storage, cargo]) ( sum (inv_op in involved_operations[storage, cargo]) (
loading_op_delta[involved_operations[storage, cargo, inv_op_no]] * loading_op_delta[inv_op] *
op_status[loading_op_n[involved_operations[storage, cargo, inv_op_no]], t] op_status[loading_op_n[inv_op], t]
) )
) )
); );
......
...@@ -768,8 +768,11 @@ public class ConversionUtil { ...@@ -768,8 +768,11 @@ public class ConversionUtil {
} }
} }
writer.write("n_loading_op = " + loadingOpDelta.size() + ";\n"); writer.write("n_loading_op = " + loadingOpDelta.size() + ";\n");
// write2DArrayOfSet(writer, "involved_operations", involvedOperations); if (task.isTypified()) {
write2DArrayOfSetAs3DArray(writer, "involved_operations", involvedOperations); write2DArrayOfSet(writer, "involved_operations", involvedOperations);
} else {
write2DArrayOfSetAs3DArray(writer, "involved_operations", involvedOperations);
}
writeArray(writer, "loading_op_delta", loadingOpDelta); writeArray(writer, "loading_op_delta", loadingOpDelta);
writeArray(writer, "loading_op_n", loadingOpN, (Integer i) -> i + 1); writeArray(writer, "loading_op_n", loadingOpN, (Integer i) -> i + 1);
writer.write("\n"); writer.write("\n");
......
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