Telegram-бот: графы и оптимизация
Telegram-бот, который решает задачи по графам, матрицам и оптимизации и показывает решение по шагам, чтобы его было легко проверить.
Что умеет: 12 алгоритмов, среди них Брон-Кербош, раскраска графа, венгерский алгоритм, Форд-Беллман, Прим, Робертс-Флорес, максимальный поток, гамма-алгоритм укладки, транспортная задача методом потенциалов, backpropagation и свёрточная сеть. Матрица вводится построчно в чате, парсер понимает матрицы весов и списки смежности, ответ приходит выровненными таблицами с промежуточными матрицами, путями и итогом.
Под капотом: вычислительное ядро отделено от бота общим интерфейсом Algorithm; команды подключаются через реестр одним классом; машина состояний ведёт многошаговый диалог и переживает перезапуск; расчёты идут в пуле потоков с таймаутом и лимитом ввода. Модель графов с поиском мостов и компонент связности покрыта тестами JUnit.
Стек: Java 21, TelegramBots API, Maven, CompletableFuture, Logback, JUnit