Commit df752fb2 authored by Vladislav Kiselev's avatar Vladislav Kiselev

Операции грузообрабртки теперь могут быть не целыми.

parent dda622ab
...@@ -336,11 +336,15 @@ array [0..n_operations] of 0..n_locations : operations_destination; % Локац ...@@ -336,11 +336,15 @@ array [0..n_operations] of 0..n_locations : operations_destination; % Локац
int : n_loading_op; int : n_loading_op;
array [0..n_operations] of int : loading_op_delta_of_main_obj; array [0..n_operations] of int : loading_op_delta_of_main_obj;
array [0..n_operations] of int : loading_op_abs_delta;
array [0..n_operations] of {1, -1} : loading_op_direction;
array [0..n_operations] of 1..n_obj_with_storage : operations_main_stor; array [0..n_operations] of 1..n_obj_with_storage : operations_main_stor;
array [0..n_operations] of 1..n_obj_with_storage : operations_secondary_stor; array [0..n_operations] of 1..n_obj_with_storage : operations_secondary_stor;
array [0..n_operations] of 1..n_cargo_types : operations_cargo_t; array [0..n_operations] of 1..n_cargo_types : operations_cargo_t;
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, -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_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 set of 1..n_loading_op : involved_operations;
......
This diff is collapsed.
...@@ -795,15 +795,19 @@ public class ConversionUtil { ...@@ -795,15 +795,19 @@ public class ConversionUtil {
private void cargoOperations() throws IOException { private void cargoOperations() throws IOException {
ArrayList<ArrayList<ArrayList<Integer>>> involvedOperations = new ArrayList<>(); ArrayList<ArrayList<ArrayList<Integer>>> involvedOperations = new ArrayList<>();
ArrayList<Integer> loadingOpDelta = new ArrayList<>(); ArrayList<Integer> loadingOpDelta = new ArrayList<>();
ArrayList<Integer> loading_op_local_direction = new ArrayList<>();
ArrayList<Integer> loadingOpN = new ArrayList<>(); ArrayList<Integer> loadingOpN = new ArrayList<>();
ArrayList<Integer> loading_op_delta_of_main_obj = new ArrayList<>(); ArrayList<Integer> loading_op_delta_of_main_obj = new ArrayList<>();
ArrayList<Integer> loading_op_abs_delta = new ArrayList<>();
ArrayList<Integer> loading_op_direction = new ArrayList<>();
ArrayList<Integer> operations_main_stor = new ArrayList<>(); ArrayList<Integer> operations_main_stor = new ArrayList<>();
ArrayList<Integer> operations_secondary_stor = new ArrayList<>(); ArrayList<Integer> operations_secondary_stor = new ArrayList<>();
ArrayList<Integer> operations_cargo_t = new ArrayList<>(); ArrayList<Integer> operations_cargo_t = new ArrayList<>();
ArrayList<Integer> bunker_of_cargo_op = new ArrayList<>(); ArrayList<Integer> bunker_of_cargo_op = new ArrayList<>();
ArrayList<Boolean> is_bunker_required = new ArrayList<>();
for (int i = 0; i < nObjWithStorage; i++) { for (int i = 0; i < nObjWithStorage; i++) {
involvedOperations.add(new ArrayList<>()); involvedOperations.add(new ArrayList<>());
...@@ -826,20 +830,28 @@ public class ConversionUtil { ...@@ -826,20 +830,28 @@ public class ConversionUtil {
int cargoN = cargoNById.get(op.getCargo().getId()); int cargoN = cargoNById.get(op.getCargo().getId());
loadingOpDelta.add(-(int)op.getIntensity()); loadingOpDelta.add(-(int)op.getIntensity());
loading_op_local_direction.add(-(int)op.getIntensity() > 0 ? 1 : -1);
loadingOpN.add(i); loadingOpN.add(i);
involvedOperations.get(storageN).get(cargoN).add(loadingOpDelta.size()); involvedOperations.get(storageN).get(cargoN).add(loadingOpDelta.size());
loadingOpDelta.add((int)op.getIntensity()); loadingOpDelta.add((int)op.getIntensity());
loading_op_local_direction.add( (int)op.getIntensity() > 0 ? 1 : -1);
loadingOpN.add(i); loadingOpN.add(i);
involvedOperations.get(shipN).get(cargoN).add(loadingOpDelta.size()); involvedOperations.get(shipN).get(cargoN).add(loadingOpDelta.size());
loading_op_delta_of_main_obj.add((int)op.getIntensity()); loading_op_delta_of_main_obj.add((int)op.getIntensity());
loading_op_abs_delta.add(Math.abs((int)op.getIntensity()));
loading_op_direction.add((int)op.getIntensity() > 0 ? 1 : -1);
operations_main_stor.add(shipN + 1); operations_main_stor.add(shipN + 1);
operations_secondary_stor.add(storageN + 1); operations_secondary_stor.add(storageN + 1);
operations_cargo_t.add(cargoN + 1); operations_cargo_t.add(cargoN + 1);
bunker_of_cargo_op.add(op.getBunker().isPresent() ? mObjToN(op.getBunker().get()) + 1 : 0); bunker_of_cargo_op.add(op.getBunker().isPresent() ? mObjToN(op.getBunker().get()) + 1 : 0);
} else { } else {
loading_op_delta_of_main_obj.add(0); loading_op_delta_of_main_obj.add(0);
loading_op_abs_delta.add(0);
loading_op_direction.add(1);
operations_main_stor.add(1); operations_main_stor.add(1);
operations_secondary_stor.add(1); operations_secondary_stor.add(1);
operations_cargo_t.add(1); operations_cargo_t.add(1);
...@@ -853,9 +865,13 @@ public class ConversionUtil { ...@@ -853,9 +865,13 @@ public class ConversionUtil {
write2DArrayOfSetAs3DArray(writer, "involved_operations", involvedOperations); write2DArrayOfSetAs3DArray(writer, "involved_operations", involvedOperations);
} }
writeArray(writer, "loading_op_delta", loadingOpDelta); writeArray(writer, "loading_op_delta", loadingOpDelta);
writeArray(writer, "loading_op_local_direction", loading_op_local_direction);
writeArray(writer, "loading_op_n", loadingOpN, (Integer i) -> i + 1); writeArray(writer, "loading_op_n", loadingOpN, (Integer i) -> i + 1);
writeArray(writer, "loading_op_delta_of_main_obj", loading_op_delta_of_main_obj, Optional.of(0)); writeArray(writer, "loading_op_delta_of_main_obj", loading_op_delta_of_main_obj, Optional.of(0));
writeArray(writer, "loading_op_abs_delta", loading_op_abs_delta, Optional.of(0));
writeArray(writer, "loading_op_direction", loading_op_direction, Optional.of(1));
writeArray(writer, "operations_main_stor", operations_main_stor, Optional.of(1)); writeArray(writer, "operations_main_stor", operations_main_stor, Optional.of(1));
writeArray(writer, "operations_secondary_stor", operations_secondary_stor, Optional.of(1)); writeArray(writer, "operations_secondary_stor", operations_secondary_stor, Optional.of(1));
writeArray(writer, "operations_cargo_t", operations_cargo_t, Optional.of(1)); writeArray(writer, "operations_cargo_t", operations_cargo_t, Optional.of(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