Научная статья на тему 'Метод Литтла со штрафами для решения задачи о развозке'

Метод Литтла со штрафами для решения задачи о развозке Текст научной статьи по специальности «Математика»

CC BY
431
78
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЗАДАЧА КОММИВОЯЖЕРА / ЗАДАЧА О РАЗВОЗКЕ / МЕТОД ЛИТТЛА

Аннотация научной статьи по математике, автор научной работы — Борханов Ильнар Фирсорович, Фазылов Валерий Рауфович

В работе рассматривается задача о развозке, известная как Capacitated Vehicle Routing Problem (СVRP). Для решения этой задачи предлагается модификация метода Литтла для задачи коммивояжера, в которой матрица стоимостей изменяется по ходу решения задачи в соответствии с условиями CVRP.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Метод Литтла со штрафами для решения задачи о развозке»

УЧЕНЫЕ ЗАПИСКИ КАЗАНСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА

Том 150, кн. 4

Физико-математические пауки

2008

УДК 519.17

МЕТОД ЛИТТЛА СО ШТРАФАМИ ДЛЯ РЕШЕНИЯ ЗАДАЧИ О РАЗВОЗКЕ

PI. Ф. Борхапов, В. Р. Фазылов

Аннотация

В работе рассматривается задача о развозке, известная как Capacitated Vehicle Routing Problem (CVRP). Для решения этой задачи предлагается модификация метода Литтла для задачи коммивояжера, в которой матрица стоимостей изменяется по ходу решения задачи в соответствии с условиями CVRP.

Ключевые слова: задача коммивояжера, задача о развозке, метод Литтла.

Задача о развозке, впервые сформулированная Данцигом и Рамсером [1] в 1959 г., заключается в следующем. Даны п пунктов с номерами от 1 до п, пункт с номером 1 является базовым. Каждый небазовый пункт г (г = 2,... ,п) характеризуется неотрицательным объемом заявки ^, а в базовом пункте имеются одинаковые транспортные средства вместимостью Л каждое. Для любой пары пунктов (г,известна стоимость переезда . Требуется построить набор маршрутов наименьшей суммарной стоимости, такой, чтобы каждый маршрут начинался и заканчивался в базовом пункте, каждый пункт был посещен только один раз и суммарная заявка по любому маршруту не превышала Л.

Известен вариант задачи о развозке, в котором прежде всего требуется минимизировать количество маршрутов (задача определения минимального количества маршрутов эквивалентна задаче определения минимального количества одинаковых контейнеров, достаточного для упаковки заданного набора грузов), а затем найти набор маршрутов минимальной суммарной стоимости при известном количестве маршрутов. Задачу о развозке с известным количеством маршрутов можно свести к задаче коммивояжера введением соответствующего количества дублей базового пункта.

Но для нашей задачи такой подход представляется неперспективным, так как для нее заранее неизвестно количество маршрутов в оптимальном решении задачи, а значит, и неизвестно, сколько нужно ввести дублей базового пункта. Нами предлагается метод сведения задачи о развозке к задаче коммивояжера без введения дублей базового пункта и метод решения задачи о развозке, основанном на хорошо известном методе Литтла [2].

1. Основная идея предлагаемого метода

Метод Литтла для задачи коммивояжера базируется на двух процедурах: приведение матрицы стоимостей и выбор дуги для разбиения множества маршрутов на подмножества (выбор дуги для ветвления).

1.1. Приведение матрицы стоимостей. Суть этой процедуры приведения матрицы стоимостей заключается в вычитании некоторых констант из строк и столбцов матрицы стоимостей с целыо получения приведенной матрицы неотрицательной матрицы, в каждой строке и столбце которой имеется, по крайней мере, один нулевой элемент. В [2] приведение матрицы стоимостей предлагается осуществлять как последовательность операций приведения строк и столбцов, операция приведения строки (столбца) заключается в вычитании минимального элемента строки (столбца) из всех элементов строки (столбца).

В методе Литтла сумма констант приведения используется в качестве нижней оценки стоимостей маршрутов задачи коммивояжера с данной матрицей стоимостей переездов. В связи с этим заметим, что в работе [3] предложен другой способ приведения матрицы стоимостей, названный оптимальным приведением,, который дает максимально возможную сумму констант приведения для дайной матрицы и хорошо зарекомендовал себя при решении задач коммивояжера [4].

1.2. Выбор дуги для ветвления. Одна из идей метода Литтла заключается в иерархическом разбиении множества маршрутов на подмножества, вплоть до подмножеств, состоящих из одного маршрута. Это разбиение можно представить в виде дерева перебора маршрутов, каждый узел которого соответствует некоторому подмножеству маршрутов.

Дерево перебора решений обеспечивает возможность полного перебора всех маршрутов, но узел дерева в методе Литтла может быть признан бесперспективным на основании вычисляемой с помощью процедуры приведения матрицы нижней оценки стоимости всех маршрутов, соответствующих этому узлу, и имеющегося на момент просмотра узла лучшего из решений (рекорда).

Множество маршрутов, соответствующее узлу, не признанному бесперспективным. разбивается на два подмножества маршрутов: содержащих некоторую дугу (г, о) и не содержащих этой дуги. Так как вариантов выбора дуги может много, то на каждом этапе метода Литтла нужно проводить выбор в каком-то смысле «хорошей» дуги.

В методе Литтла выбор дуги производится следующим образом. Для каждой дуги, имеющей пулевую стоимость (в приведенной матрице), вычисляется оценка дуги (нижняя оценка прироста стоимостей маршрутов подмножества маршрутов, но включающих данную дугу) и выбирается дуга с наибольшей оценкой. Оценка дуги может быть получена как сумма констант приведения матрицы, полученной из текущей матрицы заменой соответствующего нуля на бесконечность. Так как в методе Литтла приведение матрицы производится последовательным приведением строк и столбцов, то оценка нуля, соответствующего дуге (г,о), вычисляется как сумма минимальных элементов строки г и столбца о при условии временной замены оцениваемого нуля на бесконечность.

Основная идея предлагаемого в работе метода решения задачи о развозке путем сведения к задаче коммивояжера заключается в замене по мере необходимости прямого переезда г ^ о та транзитный переезд через базовый пункт г ^ 1 ^ о, что соответствует замене элемента ш^ в матрице стоимостей на шц + шу. Очевидно, что транзитный переезд означает завершение одного маршрута и начало другого, а необходимость изменения стоимости дуги появляется в случае, когда фиксация этой дуги приводит к нарушению ограничения по вместимости транспортного средства.

Заметим, что в ходе решения задачи методом Литтла исходная матрица стоимостей в ходе вычислений подвергается изменениям, и поэтому для проведения корректной замены прямого переезда на транзитный следует предварительно по

исходной матрице стоимостей Ш вычислить штрафы по формуле:

Ргз = Шг 1 + шу - ш^, г = 2, . .., п, ] = 2,. . ., п, г = о, (1)

и при необходимости добавлять к текущей стоимости дуги (г,о) ее штраф .

Дугу до изменения ее стоимости будем называть обычной, а после изменения ее стоимости оштрафованной. Опишем процедуру изменения матрицы стоимостей подробнее.

Рассмотрим некоторый узел дерева перебора решений. Этому узлу соответствует частичное решение задачи о развозке, определенное набором зафиксированных дуг. Эти дуги соединяют пункты в цепочки. Пункты, не входящие ни в одну из выбранных дуг. будем считать тривиальны,ми цепочками, состоящими из одного пункта.

Сопоставим начальному и конечному пункту каждой цепочки загрузку по правилам:

1) если начальный или конечный пункт является базовым, то его загрузка равна нулю:

2) загрузка пункта, не являющегося базовым и соответствующего тривиальной цепочке, равна его заявке:

3) для начального пункта нетривиальной цепочки, но являющегося базовым, загрузка вычисляется последовательным суммированном заявок пунктов по цепочке то тех пор. пока не встретится базовый пункт или переезд по оштрафованной дуге:

4) для конечного пункта нетривиальной цепочки загрузка вычисляется последовательным суммированном заявок пунктов обратным движением по цепочке до тех пор. пока не встретится базовый пункт или переезд по оштрафованной дуге.

1.3. Процедура штрафования дуг. Процедура штрафования дуг заключается в следующем. Перебираем все незафиксированные обычные дуги. Выбор каждой такой дуги (г,о) означает соединение двух цепочек с концом г и началом о соответственно. Если суммарная загрузка пунктов г и о превышает вместимость транспортного средства Б, то прямой переезд по дуге (г, о) невозможен и дуга оштрафовываотся. Оштрафованные дуги остаются оштрафованными для всех узлов дерева перебора решений, порожденных рассматриваемым узлом.

2. Метод Литтла для задачи о развозке

Основной частью предлагаемого метода решения задачи о развозке является рекурсивная процедура УЗЕЛ (А, 5, Р), которая содержит в себе рекурсивную часть метода Литтла. дополненную с учетом специфики задачи о развозке (шаг 5). Параметры процедуры:

А - текущая матрица стоимостей переездов;

5 - сумма констант приведения матрицы стоимостей задачи, па которое отличается стоимость решений по матрице цен задачи от стоимости тех же решений по матрице текущей матрице стоимостей:

р - множество зафиксированных дуг.

2.1. Описание метода.

1. Получим допустимое решение задачи о развозке любым эвристическим алгоритмом, примем его за рекорд и положим значение переменной Д равным стоимости этого решения либо равным то.

2. Составим тривиальные цепочки, состоящие из одиночных пунктов 1, 2,..., п. Вычислим загрузки начального и конечного пунктов этих цепочек.

3. Вычислим штрафы дуг согласно (1).

4. Применим процедуру штрафования к исходной матрице стоимостей Ш, примем полученную матрицу А в качестве начальной матрицы стоимостей и вызовем процедуру УЗЕЛ (А 0, 0).

5. Останов: последний рекорд является оптимальным решением задачи.

2.2. Процедура УЗЕЛ.

1. Если |Г | = п — 2, то оставшиеся две дуги фиксируются однозначно, иначе перейдем к шагу 2 (напомним, что для конечного множества Г через |Г | обозначается число элементов в этом множестве). Если фиксация этих дуг приводит к нарушению ограничений по вместимости транспортного средства, то штрафуем дугу, которой соответствует меньший штраф. Формируем решение задачи о развозке. Если полученное решение имеет меньшую стоимость, чем Д, то примем это решение за рекорд и положим значение Д равным стоимости нового рекорда. Выходим из процедуры.

А

значим через В, а сумму констант приведения - через в. Если Б + в > Д, то рассматриваемое множество решений не содержит решения лучшего, чем рекорд, и выходим из процедуры.

3. Выберем дугу, применив процедуру выбора дуги для ветвления. Обозначим ее через (г,, а ее оценку - через V.

В

цей В'), в которой зафиксирована дуга (г,запретив дуги, выбор которых стал невозможным в связи с фиксацией дуги (г, . Скорректируем загрузки начального

и конечного пунктов цепочки, содержащей выбранную дугу (г, _?') (см. п. 1.2). В'

6. Вызовем УЗЕЛ(В', Б + в, Г и{(г,^)})-

7. Если Б + в + V > Д, то подзадача задачи с запрещенной дугой (г, не содержит решения лучшего, чем рекорд, и выходим из процедуры.

В

В''), в которой запрещена дуга (г,. 9. Вызовем УЗЕЛ(В'',Б + в, Г).

Теорема 1. Если матрица стоимостей удовлетворяет условию

»у < »¡1 + »у, г = 2, . .., п, ] = 2, ...,п, г = (2)

то .метод Литтла с описанной процедурой модификации стоимостей дуг находит оптимальное решение задачи о развозке.

Доказательство. Предварительно заметим, что из любого допустимого решения задачи коммивояжера с матрицей Ш можно получить некоторое множество допустимых решений задачи о развозке, оштрафовав соответствующие дуги, и наоборот, любое допустимое решение задачи о развозке можно представить как некоторое решение задачи коммивояжера с соответствующими оштрафованными дугами. Так как штрафы вводятся только по тем дугам, добавление которых в текущий частичный маршрут невозможно без нарушения ограничений задачи о развозке, то тем самым все недопустимые с точки зрения задачи о развозке пополнения текущего частичного решения задачи коммивояжера, получаемые фиксацией одной дуги, заменяются на допустимые.

В силу условия (2) все штрафы (см. (1)) будут неотрицательными, поэтому штрафование дуг не уменьшает элементы матрицы стоимостей. Следовательно,

Табл. 1

Время решения задачи

Задача Обычное приведение Оптимальное приведение

Дубли Штрафы Улучшение Дубли Штрафы Улучшение

eil 13 308 9 34.22 1962 17 115.41

E-nl5-k3 12 3 4 152 4 38

E-nl8-k3 58 14 4.14 859 28 30.68

E-n22-k4 3169 1401 2.26 21600 2266 9.53

E-n23-k3 423 107 3.95 11351 78 145.53

P-nl9-k2 580 25 23.2 4922 27 182.3

P-n20-k2 2528 44 57.45 8856 38 233.05

P-n21-k2 1075 20 53.75 2570 12 214.17

P-n22-k2 3915 63 62.14 13411 35 383.17

нижняя оценка стомостей решений для любого узла дерева перебора решений будет нижней оценкой и для любого порожденного узла, что гарантирует невозможность ложного отсечения узла дерева перебора решений, содержащего решения лучшего, чем рекорд.

Таким образом, метод Литтла со штрафами потенциально обеспечивает возможность просмотра всех допустимых решений задачи о развозке, отсекая лишь заведомо бесперспективные подмножества решений. Следовательно, он дает оптимальное решение задачи о развозке, что и требовалось доказать. □

Замечание 1. Нетрудно доказать, что если добавить ко всем элементам первой строки исходной матрицы стоимостей W достаточно большое число M, то метод Литтла со штрафами даст решение задачи о развозке с ранжированными минимизируемыми критериями:

1) количество маршрутов:

2) суммарная стоимость маршрутов.

Заметим также, что для задачи с ранжированными критериями условие (2) становится несущественным, так как его выполнение можно обеспечить, выбрав

M

3. Численные эксперименты

Для проведения численных экспериментов были взяты небольшие задачи из хорошо известной библиотеки тестовых задач OR-Library. расположенной по адресу http://people.brunel.ac.uk/ ~mastjjb/jeb/info.html.

В табл. 1. 2 приведены результаты работы двух алгоритмов: метод Литтла для решения задачи о развозке путем добавления дубликатов базового пункта (колонка «Дубли») и метод Литтла со штрафованием дуг (колонка «Штрафы»). В колонке «Улучшение» указывается, во сколько раз алгоритм со штрафами улучшил показатели алгоритма с дублями. В качестве показателей приводятся время решения задачи (табл. 1. единица секунды) и количество просмотренных узлов дерева решений (табл. 2. единица тысяча просмотров). Данные даются для метода Литтла с обычным приведением матрицы стоимостей (последовательным приведением по строкам н столбцам) и оптимальным приведением матрицы.

Как видно из приведенных показателей, метод Литтла со штрафованием дуг в большинстве случаев показал себя лучше, чем метод с добавлением дубликатов пунктов. Заметим также, что сравнивая результаты применения обычного и

Табл. 2

Количество просмотренных узлов дерева перебор решений

Задача Обычное приведение Оптимальное приведение

Дубли Штрафы Улучшение Дубли Штрафы Улучшение

еП13 22418 1190 18,84 79371 1891 41.97

Е-п15-кЗ 63 450 0.14 6258 443 14.13

Е-п18-кЗ 2418 1653 1.46 25239 2738 9.22

Е-п22-к4 97523 142469 0.68 600650 163049 3.68

Е-п23-кЗ 13313 12465 1.07 293035 7068 41.46

Р-п19-к2 25475 3099 8.22 134388 2492 53.93

Р-п20-к2 104028 5557 18.72 201245 3827 52.59

Р-п21-к2 41213 2441 16.88 55826 1061 52.62

Р-п22-к2 143261 7651 18.72 265489 3145 84.42

оптимального приведений, видим, что оптимальное приведение иногда заметно проигрывает обычному.

4. Улучшающие приемы для метода Литтла со штрафами

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Численные эксперименты, результаты которых приведены в предыдущем разделе, показали, что вышеописанный метод Литтла со штрафами недостаточно эффективен для рассматриваемой в работе задачи, поэтому в этом разделе рассмотрим пути повышения эффективности метода.

4Л. Прежде всего заметим, что низкая эффективность описанного метода объясняется тем, что одно и то же решение задачи о развозке может быть получено из разных маршрутов коммивояжера. Например, 6 маршрутов задачи коммивояжера:

1 - 2 - 3 -- 4 - у 5 - 1, 1- 2 - 3 -- 5 -- 4- 1,

1 - 4 -- 2 - 3 р 5- 1, 1- 4 -- 5 — 2- 3- 1,

1- 5 -- 2 - 3 р 4- 1, 1- 5 — 4 — 2- 3- 1,

где "р" над стрелкой означает оштрафованную дугу, соответствуют одному и тому же решению задачи о развозке:

1 — 2 — 3 — 1, 1 — 4 — 1, 1 — 5 — 1.

Из приведенного примера видно, что разные маршруты задачи коммивояжера, соответствующие одному и тому же решению задачи о развозке, отличаются лишь перестановкой маршрутов в решении задачи о развозке.

Поэтому для исключения повторного формирования одинаковых решений задачи о развозке предлагается следующее: в шаге 8 процедуры УЗЕЛ в случае, когда выбранная для ветвления дуга (г,.?) является оштрафованной, дополнительно к запрету дуги (г, (правая ветвь дерева перебора решений) следует запретить все оштрафованные дуги, исходящие из пункта г или входящие в пункт ], а также дуги (г, 0) и (0,_?'). Такая модификация метода может уменьшить количество повторных просмотров решений задачи о развозке. Заметим, что если обеспечить запрет оштрафованных дуг, исходящих из пункта г или входящих в пункт и во всех узлах дерева перебора решений, порожденных текущим узлом, то просмотр одинаковых решений задачи о развозке, соответствующих разным маршрутам коммивояжера, будет исключен полностью.

4.2. Другим путем повышения эффективности метода Литтла со штрафами является изменение правила выбора дуги для ветвления. Мы предлагаем осуществлять выбор дуги в следующем порядке:

1) если существуют обычные дуги с пулевой стоимостью, но связанные с базовым пунктом, то среди них выбирается дуга с максимальной оценкой:

2) если существуют дуги с нулевой стоимостью, связанные с базовым пунктом, то среди них выбирается дуга с максимальной оценкой:

3) среди оштрафованных дуг с нулевой стоимостью выбираем дугу с максимальной оценкой.

Благодаря такому порядку выбора дуги оштрафованные дуги будут выбираться преимущественно в конце формирования маршрута коммивояжера.

Теорема 2. Если матрица стоимостей, соответствующая узлу дерева перебора решений, будет состоять только из оштрафованных и запрещенных дуг, то стоимость любой незапрещенной дуги после приведения будет равна нулю.

Доказательство. Заметим, что стоимость оштрафованной дуги (i,j) по исходной матрице стоимостей равна wij + pj. Поэтому, согласно (1), справедливо

Wij + Pij = Wij + Wjl + Wlj - Wij = Wjl + Wlj .

А так как других дуг, кроме оштрафованных, нет, то после приведения матрицы все

нозапрощонныо дуги будут иметь нулевую стоимость, что и требовалось доказать.

На основании теоремы 2 можно утверждать, что в случаях, удовлетворяющих условию теоремы, любая фиксация нозапрощонных дуг, дающая решение задачи коммивояжера, будет давать нулевой прирост стоимости решения, а значит, можно достроить маршрут коммивояжера любым допустимым набором дуг, зафиксировать полученное решение в качестве рекорда и выйти из процедуры УЗЕЛ.

Заметим, что для реализации этой идеи, кроме изменения правила выбора дуги, нужно внести и соответствующее добавление в шаг 3 процедуры УЗЕЛ.

4.3. Следующее предложение по улучшению метода состоит в том, что в начале шага 2 процедуры УЗЕЛ перед приведением матрицы стоимостей запрещаем все дуги, для которых выполняется условие

S + a,ij > R,

где aij - текущая стоимость дуги, так как выбор этой дуги не может привести к получению решения, лучшего, чем рекорд. Такая добавка в шаг 2 уменьшает количество вызовов процедуры УЗЕЛ.

4.4. В основе следующей идеи лежит свойство оптимального решения задачи о развозке: оптимальное решение задачи о развозке состоит из маршрутов, каждый из которых является циклом минимальной стоимости, проходящим через все пункты маршрута.

Это свойство можно использовать для улучшения метода следующим образом:

1) в шаге 1 процедуры УЗЕЛ при получении очередного рекорда нужно провести оптимизацию всех маршрутов, решив соответствующие задачи коммивояжера небольшой размерности, и принять в качестве рекорда оптимизированное решение задачи о развозке:

Табл. 3

Отношения времени выполнения при обычном приведении

Задача Модиф. 1 Модиф. 2 Модиф. 3 Модиф. 4 Модиф. 5 Все модиф.

еП13 1.08— 2.15— 1.02— 1.81 6.74- 2.46-

Е-п15-кЗ 1.02 1.39— 1.02— 1.26 1.35 1.09

Е-п18-кЗ 1.09 1.38— 1.01 1.2 1.59 1.27-

Е-п22-к4 1.22— 1.04— 1.01 1.18 1.29 1.85-

Е-п23-кЭ 1.08 1.08 1.01- 3.37 1.01 1.92

Р-п19-к2 1.69 1.16 1.06 1.7 4.07- 5.6-

Р-п20-к2 1.04 1.19— 1.01- 1.62 9.76- 12.17-

Р-п21-к2 1.03 1.47— 1.01- 1.44 9.81- 15.09-

Р-п22-к2 1.03 1-2— 1.01- 1.31 17.38- 27.09-

2) между шагами 5 и 6 процедуры УЗЕЛ нужно добавить следующий дополнительный шаг: выявим все новые завершенные маршруты задачи о развозке, образовавшиеся после фиксации дуги (г, 3); если такие маршруты есть (а их может быть не более двух), то проведем их оптимизацию, решив соответствующие задачи коммивояжера, и в случае, если хотя бы один маршрут будет улучшен, перейти к шагу 7, минуя шаг 6, так как подмножество решений с фиксированной дугой (г, з) заведомо но содержит оптимального решения.

4.5. Наконец, рассмотрим возможность существенного улучшения нижней оценки. Для задачи о развозке т - нижняя оценка количества маршрутов в оптимальном решении но меньше, чем суммарная заявка пунктов, поделенная на

т

тов, потребуется зафиксировать (т — 1) оштрафованных дуг. Пусть при текущем вызове процедуры УЗЕЛ во множестве зафиксированных дуг Р имеется к оштрафованных дуг. В конец шага 2 процедуры УЗЕЛ добавим вычисление минимальной стоимости т — к — 1 назначений по матрице В, образованной из матрицы В штрафованием всех обычных дуг. не связанных с базовым пунктом, и запретом всех дуг. связанных с базовым пунктом. Для этого нужно решить следующую задачу:

п п ¿=2 3=2

п

x¿j < 1, г = 2,. . ., п,

3=2 п

< 1 3 = 2, ...,п,

¿=2 пп

x¿j = т — к — 1,

¿=2 3=2

x¿j е{0;1}, г = 2, ...,п, з = 2,..., п.

Обозначим оптимальное значение целевой функции этой задачи через д и проверку условия Б + в > йв шаге 2 процедуры УЗЕЛ заменим на проверку условия

Б + в + д > Д. Очевидно, что при запрете любой дуги в матрице В оптимальное

д

заменить проверку условия Б + в + V > Дв шаге 2 процедуры УЗЕЛ па проверку

Табл. 4

Отношения времени выполнения при оптимальном приведении

Задача Модиф. 1 Модиф. 2 Модиф. 3 Модиф. 4 Модиф. 5 Все модиф.

еП13 1.38— 5.34- 1.14- 1.4 5.49- 3.98-

Е-п15-кЗ 1.09— 1.35- 1.02- 1.31 1.55 1.24

Е-п18-кЗ 1.14— 1.36- 1 1.24 1.46 1.16

Е-п22-к4 1.13- 1.88- 1.03- 1.1 1.38 1.04-

Е-п23-кЗ 1.13- 1.15 1.01- 1.95 1.55- 1.44

Р-п19-к2 1.08- 1.58- 1.01 1.54 6.36- 9.52-

Р-п20-к2 1.05- 1.05- 1 1.26 12.92- 26.1-

Р-п21-к2 1.01- 1.01 1.02- 1.75 15.74- 23.33-

Р-п22-к2 1.05 1.19 1.03- 1.42 24.97- 42.34-

Табл. 5

Отношения количеств просмотров узлов при обычпом приведении

Задача Модиф. 1 Модиф. 2 Модиф. 3 Модиф. 4 Модиф. 5 Все модиф.

еП13 1.16- 2.54- 1.02 1.07- 63.96- 27.98-

Е-п15-кЗ 1.01- 1,64- 1 1.02- 5,37- 7.37-

Е-п18-кЗ 1.03- 1,54- 1 1.02- 5- 10.95-

Е-п22-к4 1.32- 1,13- 1 1.04- 7.84- 22.72-

Е-п23-кЗ 1.05 1,02- 1 1 7.99- 5.12-

Р-п19-к2 1.61 1,04 1 1.01- 20.58- 31.13-

Р-п20-к2 1 1.3- 1 1.08- 48.45- 71.05-

Р-п21-к2 1 1.62- 1 1.2- 54.59- 93.75-

Р-п22-к2 1 1.27- 1 1.36- 106.71- 177.92-

Табл. 6

Отношения количеств просмотров узлоа при оптимальном приведении

Задача Модиф. 1 Модиф. 2 Модиф. 3 Модиф. 4 Модиф. 5 Все модиф.

еП13 1.45- 9.12- 1 1.09- 36.38- 36.24-

Е-п15-кЗ 1.13- 1.77- 1 1.02- 3.99- 5.62-

Е-п18-кЗ 1.26- 1.83- 1 1.07- 4.02- 5.7-

Е-п22-к4 1.34- 2.6- 1 1.1- 4.44- 8.76-

Е-п23-кЗ 1.21- 1.09- 1 1.08- 9.9- 4.5-

Р-п19-к2 1.15- 1.36 1 1.2- 22.19- 35.64-

Р-п20-к2 1.09- 1.31- 1.04 1.33- 55.78- 138.19-

Р-п21-к2 1.05- 1.16- 1 1.16- 82.34- 126.08-

Р-п22-к2 1.01- 1.06 1 1.47- 126.93- 244.76-

условия Б + в + V + д > Е. Заметим, что задача поиска т назначений по матрице размерности п х п при т < п отличается от классической задачи о назначениях, и решить ее можно сведением к задаче поиска заданного потока V минимальной стоимости в графе.

5. Численные эксперименты с модифицированными алгоритмами

В табл. 3 6 приведены результаты численных экспериментов по методам, использующим все предложенные модификации по отдельности, а также по методу, включающему все модификации, относительно результатов исходного метода со штрафами. Знак плюс после значения означает улучшение соответствующего показателя, а знак минус ухудшение.

Результаты тестовых расчетов показывают, что предложенные приемы в целом приводят к уменьшению времени решения задач. Исключение составляет прием 4, использование которого хотя и привело к уменьшению количества просмотренных узлов, но увеличило время решения задач, что можно объяснить недостаточно быстрым решением вспомогательных задач коммивояжера. Нетрудно также заметить. что наибольшую автономную эффективность продемонстрировал прием 5. По-видимому, это объясняется тем, что он существенно увеличивает нижнюю оценку целевой функции для подмножеств решений, и это вызывает отсечение бесперспективных множеств на более ранней стадии.

Работа выполнена при финансовой поддержке Российского фонда фундаментальных исследований (проект Х- 07-01-00674-а).

Summary

I.F. Burhanuv, V.R. Fazylov. Little's Method with Penalties for the Decision of Capacitated Vehicle Routing Problem.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

The paper considers the problem known as Capacitated Vehicle Routing Problem (CVRP). For solving this problem, it is offered to use updated Little's method for traveling salesman problem, in which the cost matrix changes during the solving of a problem according to CVRP conditions.

Key words: traveling salesman problem, capacitated vehicle routing problem. Little's method.

Литература

1. Dantzig G.B., Ramser J.H. The Truck Dispatching Problem // Manag. Sci. 1959. V. 6, No 1. P. 80 91.

2. Литтл Д.Ж., Мурти К., Суиии Д., Кэрел К. Алгоритм решения задачи коммивояжера // Экономика и матем. методы. 1965. Т. 1. Вып. 1. С. 94 107.

3. Борхаиоо И.Ф., Фазы,лов В.Р. Об оптимальном приведении матрицы стоимостей // Учен. зап. Казап. уп-та. Сер. Физ.-матем. пауки. 2006. Т. 148, кп. 2. С. 18 22.

4. Борхаиоо И.Ф., Фазы,лов В.Р. Метод Литтла с оптимальным приведением матрицы // Учеп. зап. Казап. уп-та. Сер. Физ.-матем. пауки. 2006. Т. 148, кп. 4. С. 13 22.

Поступила в редакцию 11.06.08

Ворханов Ильнар Фирсорович аспирант кафедры экономической кибернетики Казанского государственного университета.

Фазылов Валерий Рауфович доктор физико-математических паук, заведующий кафедрой экономической кибернетики Казанского государственного университета. E-mail: Valery.Fazylov Qksu.ru

i Надоели баннеры? Вы всегда можете отключить рекламу.