# Внутрипортовое планирование
Описание сведения к minizinc-у можно найти в "Планирование портовых операций.docx".
Некоторая статистика (по временам нахождения решений) размещается в "Статистика.docx".
Для корректной работы следует установить MiniZinc driver (https://www.minizinc.org/software.html) как минимум для запуска прилагающегося solver-а Chuffed и транслятора с MiniZinc в FlatZinc.
В Windows путь к minizinc.exe и mzn2fzn.exe следует добавить в переменную "PATH".
### Сборка
Для создания jar-архива необходимо запустить
+ Make.bat - для Windows.
+ Makefile - для Linux.
### Запуск
`java -jar Conversion.jar solve [-ct ] [-fzs | -s ] `
где
+ \ - файл с исходными данными, в него же будет дописан результат.
+ \ - тип сведения, может быть
- "Without splitting" - операции грузообработки всегда выполняются полностью, ограничения из constraints/conversion_2.mzn. Вариант по умолчанию.
- "With splitting" - интенсивность операции может изменятся от 1 до её максимального значения, ограничения из constraints/conversion_2_with_partial_cargo_operations.mzn.
- "Greedy v2" - "жадный алгоритм", ограничения из conversion_2_greedy_v2.mzn.
+ \ - Путь к исполняемому файлу FlatZinc-solver-а.
+ \ Тип solver-а из предопределённого списка :
- "Chuffed" (по умолчанию)
- "OrTools"
### Тестирование
Проверенные тесты находятся в tests/with_typing . Их последовательный запуск:
`java -jar Conversion.jar testing [-ct ] [-d ] [-fzs | -s ]`
где
+ \ - тип сведения, такой же что и при запуске.
+ \ - директория с тестами, по умолчанию "tests/with_typing"
+ \ и \ - определяют solver в таком же формате, как и при запуске, который будет использован для всех тестов.
### Сведение к формату MiniZinc
`java -jar Conversion.jar tippToMzn [-ct ] [-o ]`
где
+ \ - файл с исходными данными.
+ \ - тип сведения, такой же что и при запуске.
+ \ - директория, в которую будет записан ответ - файлы conversion.mzn и minizinc_data.dzn. По умолчанию текущая.
### Интерпритация результатов solver-ов
`java -jar Conversion.jar resolve_results `
где
+ \ - файл с выводом solver-а.
+ \ - файл с задачей, для которой найдено решение. В него же и будут запинаны результаты.