привет. я не программист, стек тильда+курсор, но тож логистическую платформу пилю, и похожую задачу решаю. допустим есть заказ из 100 позиций разного веса объема и совместимости перевозки (10 кирпича, 5 доски, 500 шифера и тд). эти позиции есть по разным ценам в зависимости от объема закупки позиции и вцелом на скаде на разных складах, есть разные виды транспорта ( в разных ТК по разным адресам по разным ценам с разной вместимостью и типом допустимого груза).
и вопрос: на каких складах какими транспортами из каких ТК и в каком порядке это перевозить. На данный момент на тестовых данных эта штука находит решения лучше человека на 2% (считал по всей россии на 5 млн скю и 100 тыс транспортов). Крч человек на 2% дороже выбирает комбинацию товары склады транспорт и маршруты. Причем я вобще в этом до сих пор не шарю хаха.
области которые изучал чтоб примерно понять: комбинаторная оптимизация с ограничениями (задача рюкзака + коммивояжора). Всякие линейные/целочисленные программирования, эвристики типа генетических алгоритмов, отжигов, нейросетки кастомные, кэтбусты от яндекса и тд показывают плохие результаты.
Лучший результат дает библиотека гугла ОР-тулс. Думаю, это как раз подходит для твоей задачи. Простыми расширениями типа постгис и поиск ближайшего не обойтись, как сказал комментатор выше. Но библиотека просто ускоряет вычисления, самое интересное тут - самому формулу придумать. что как и зачем считаем. ГПТ реализует, но придумывать какие данные считать и зачем - самый кайф. Хотя возможно все уже давно придумали за нас, повторюсь, любитель в этом.
Но уперся в проблему, что все это на синтетических данных. Надо в прод выкатывать, заставить склады обновлять цены и остатки. Крч, пока чисто теоретическое решение. Пока на паузе.
по стеку на пайтоне все. обычная комбинаторная оптимизация. для математики язык жулию юзаю, вроде побыстрее считает. ну эт чисто свой опыт, как должно быть - хз (пс: хз даже что такое реверс инжиниринг)