Оптимизировать подключения и развилки по стоимости и длине сети
Изолированные улучшения маршрута отклоняли выгодные варианты: перенос группы потребителей увеличивал диаметр общего подвода и делал его прежнюю геометрию недопустимой. Завершающий поиск теперь совместно меняет подключение поддерева, положение развилки, соседние ветви и геометрию подводов после пересчёта диаметров. Координаты выводятся из нового GeoJSON; идентификаторы и точки пользовательского примера не зашиты.
Добавлены общие проходы спрямления, переподключения конечных целей, переноса развилок и удаления лишних камер. Все принимаемые варианты проходят полный пересчёт расхода, диаметров, стоимости и независимую проверку геометрии. Набор подключённых целей и корневые врезки сохраняются. Интерфейс новых расчётов выбирает SCORE; явно выбранный CORRIDOR_PRIORITY сохраняется. Название результата больше не накапливает названия промежуточных операций.
Обычные проходы получают до 8000 проб, совместный перенос — до 4000 дополнительных при настройке maxSearchNodes=8000. Отчёт содержит обе квоты, фактическое число проб и попыток поправки подводов, охват узлов и признак ограниченного поиска. Глобальная оптимальность не заявляется. Правила геометрии, справочники и данные не ослаблены.
На сохранённой проверенной сети общий этап самостоятельно сократил длину с 1550,858 до 1517,768 м и расчётную стоимость строительства с 229,819 до 224,490 млн руб.; все 16 подключённых целей и 3 корневые врезки сохранены, ошибок независимой проверки нет. Точка16 остаётся отклонённой по FORBIDDEN_CLEARANCE конечного подхода. Синтетический пример и его повёрнутая/перенесённая версия с другими ID подтверждают исправление для другой геометрии, включая прямой подвод DN150→DN200.
Исправлен отрицательный контроль CI для полилиний: тестовое разбиение сохраняет все вершины и измеренную длину, а проверка ложного сброса допустимой непрерывной длины по-прежнему отклоняет мутацию с исходной причиной. Проверено на фактическом экспорте ранее упавшего job73223.
Проверки: 5 тестов нового этапа, 7 интеграционных тестов уточнения сети, прежние 13 локальных тестов и 18 тестов mutation evidence; полный pipeline10846 PASS, в том числе Maven379/379 и Gradle379/379 без skips; полный прямой расчёт исходного GeoJSON PASS за724,44с,1517,768м/224,490млн руб. По отношению к прежнему SCORE:−175,187м и−9,888млн руб. Документация: docs/current/economic-network-refinement.md.
Beads недоступен через назначенный SSH-вход arkadiy/codex; карточка не обновлена, локальная замена трекера не создавалась. Инженерная и продуктовая приёмка не подменяются CI.
Полный HTTP-расчёт той же загрузки также завершён:1545,547м/224,662млн руб.,16/17подключены. Его исходная топология отличается от прямого benchmark; около11 правая камера уже является потомком перемещаемой группы, поэтому текущая операция не может перепитать всю группу через неё без цикла. Перебор разрезания/переориентации нескольких ветвей остаётся ограничением. Результат1517,768м не выдаётся за результат HTTP-приложения.