Архив статей журнала

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ДЛЯ РЕШЕНИЯ ОБОБЩЕННОЙ ЗАДАЧИ КОММИВОЯЖЕРА С ОГРАНИЧЕНИЯМИ ПРЕДШЕСТВОВАНИЯ (2022)
Выпуск: T. 35 № 1 (2022)
Авторы: Петунин Александр Александрович, Уколов Станислав Сергеевич, Хачай Михаил Юрьевич

В статье рассматривается обобщенная задача коммивояжера с ограничениями предшествования (PCGTSP), в которой подобно классической задаче коммивояжера (TSP) ищется замкнутый цикл минимальной стоимости, при этом множество вершин разбито на непустые попарно непересекающиеся подмножества - кластеры и каждый допустимый маршрут обязан посетить каждый из кластеров в единственной вершине. Кроме того, множество допустимых маршрутов стеснено дополнительным ограничением на порядок посещения кластеров, то есть некоторые кластеры должны посещаться раньше других. Такая задача в отличие от TSP и обобщенной задачи коммивояжера (GTSP) является слабо исследованной как теоретически, так и с точки зрения проектирования и реализации алгоритмов. В данной работе предлагаются первые специализированные алгоритмы ветвей и границ, использующие в качестве начального приближения решения, полученные при помощи недавно разработанной эвристики PCGLNS. Исходная задача PCGTSP подвергается нескольким релаксациям, в результате чего получаются несколько нижних оценок на решение исходной задачи, наибольшая из которых используется для отсечения ветвей дерева поиска и сокращения тем самым перебора. Алгоритмы реализованы в виде открытого ПО на языке программирования Python 3 с использованием специализированной библиотеки NetworkX. Производительность предложенных алгоритмов оценивается на тестовых примерах из общедоступной библиотеки PCGTSPLIB в сравнении с общеизвестным солвером Gurobi, использующим недавно предложенную авторами модель MILP, и представляется вполне конкурентоспособной даже в текущей реализации. Разработанные алгоритмы могут применяться в широком классе практических задач, например, для оптимальной маршрутизации инструмента машин листовой резки с ЧПУ, а также для оценки качества решений, получаемых другими методами.

Сохранить в закладках
СТАТИСТИЧЕСКИЙ ЭКСПЕРИМЕНТ ПО ПРОВЕРКЕ ПРАКТИЧЕСКОЙ СХОДИМОСТИ В ОДНОЙ ЗАДАЧЕ СУБМОДУЛЯРНОГО ПРОГРАММИРОВАНИЯ (2023)
Выпуск: T. 36 № 2 (2023)
Авторы: Скакодуб К. Р., Лесик Александра Ильинична, Перевозчиков Александр Геннадьевич

В статье рассматривается cтатистический эксперимент по проверке практической сходимости в одной задаче субмодулярного программирования. Предлагается постановка задачи по максимизации суммы эффективности группового назначения. Вводится понятие смешанного решения транспортной задачи о групповом назначении, когда ресурсные ограничения в среднем выполняются. Показано, что определение смешанных решений транспортной задачи о групповом назначении может быть сведено к задаче субмодулярного программирования, решаемой методом ветвей и границ с верхними оценками, основанными на субмодулярности транспортной задачи с ограничениями в виде равенств по столбцам. Полиномиальность ε-оптимальной версии метода ветвей и границ доказана лишь в отношении классической схемы решения многомерной задачи о рюкзаке. Авторы применили схему, использующую специфику задачи, поэтому для проверки гипотезы полиномиальности необходимы дальнейшие усилия, в том числе и при помощи статистических экспериментов. Основным результатом являются разработка численной реализации ε-оптимальной версии метода ветвей и границ на высокоуровневом языке программирования С++ и проведение статистического эксперимента по проверке практической сходимости самого алгоритма на основании статической транспортной задачи о групповом назначении по эффективности назначения. По результатам анализа численного эксперимента установлено, что для рассматриваемой задачи процент раскрытых в ходе работы ε-оптимального алгоритма вершин от общего числа вершин в орграфе при увеличении размерности убывает довольно быстро, что говорит о достаточной эффективности алгоритма. Гипотеза о полиномиальности не подтвердилась, так как используется не классический алгоритм решения целочисленной задачи, а специфика поставленной задачи.

Сохранить в закладках