Подготовка к hashcode
Решаем задание 2019 года.
Таблица с результатами
Используем optaplanner. Дока, примеры.
После каждого сложного изменения src/main/kotlin/asserted.kt
Необходимые зависимости
sudo apt install maven3
Сборка и запуск
git clone git@github.com:SlNPacifist/hashcode-2019.git
cd ./hashcode-2019
mvn package appassembler:assemble
./target/appassembler/bin/app data/b_lovely_landscapes.txt
Нет смысла запускать на разных потоках решения из разных исходных позиций – это очень незначительные улучшения. Авторы рекомендуют увеличивать скорость расчёта мувов в обычном решении за счёт переноса их в отдельные треды. Чтобы это работало, нужно имплементировать на каждом муве метод rebase – он возвращает свою "копию", которую можно использовать в другом треде.