<<
>>

3.1.2. Метод Кларка-Райта

Метод Кларка-Райта был разработан двумя британскими учеными Г. Кларком (G. Clarke) и Дж.В. Райтом (J.W. Right)[2]. Несмотря на давность разработки (метод опубликован в 1963 г.), он до сих пор остается самым популярным методом для решения данной задачи, о чем свидетельствует практика его применения.

Метод Кларка-Райта относится к числу приближенных, итерационных методов и предназначается для компьютерного решения задачи развозки. Погрешность решения не превосходит в среднем 5-10%. Достоинствами метода являются его простота, надежность и гибкость, что позволяет учитывать целый ряд дополнительных факторов, влияющих на конечное решение задачи.

Рассмотрим метод Кларка-Райта на примере. За основу возьмем исходные данные из предыдущего пункта, где предлагалась задача для самостоятельного решения (таблица 3.2). Местоположение оптовой базы и 12 получателей, а также объем поставок каждому получателю приведены на рисунке 3.3. На этом же рисунке указана и исходная схема развозки грузов. Согласно исходной схеме, для доставки груза каждому отдельному получателю организуется отдельный маршрут. Например, водитель загружает в кузов партию 450 шт. и везет ее в пункт 1, там разгружается, затем возвращается на базу, берет вторую партию 400 шт. и везет ее в пункт 2 и т.д. Таким образом, исходная схема развозки включает в себя только радиальные маршруты движения автомобиля, причем количество радиальных маршрутов совпадает с количеством получателей. В данном случае, схема развозки состоит из 12 радиальных маршрутов.

Суть метода заключается в том, чтобы, отталкиваясь от исходной схемы развозки, по шагам перейти к оптимальной схеме развозки с кольцевыми маршрутами. С этой целью вводится такое понятие, как километровый выигрыш. Обратимся к рисунку 3.4:

На рисунке 3.4 отображены две схемы развозки.

Схема развозки А (слева) обеспечивает доставку грузов в пункты 1 и 2 по радиальным маршрутам. В этом случае суммарный пробег автотранспорта равен:

LА = d01­ + d10 + d02 + d20 = 2d01 + 2d02

Схема развозки B предполагает доставку грузов в пункты 1 и 2 по кольцевому маршруту. Тогда пробег автотранспорта составляет:

LB = d01 + d12 + d02

Схема В по показателю пробега автотранспорта дает, как правило, лучший результат, чем схема А. И поэтому при переходе от схемы А к схеме В получаем следующий километровый выигрыш:

s12 = LA – LB = d01 + d02 – d12

В общем случае мы имеем километровый выигрыш:

sij = d0i + d0j – dij

где Sij – километровый выигрыш, получаемый при объединении пунктов i и j, км; d0i, doj – расстояние между оптовой базой и пунктами i и j соответственно, км; dij – расстояние между пунктами i и j, км.

Теперь вернемся к нашему примеру. Рассчитаем расстояния между пунктами 0, 1 и 3 по формуле:

км

Аналогично получаем, что d03 = 12,37 и d13 = 12,65. Тогда для пунктов 1 и 3 получаем километровый выигрыш:

s13 = 7 + 12,37 – 12,65 = 6,72 » 6,7 км.

Полученные значения заносим в следующую таблицу, где представлены расстояния между пунктами dij (правая верхняя часть матрицы) и километровые выигрыши sij (левая нижняя часть матрицы):

Таблица 3.3

Матрица расстояний и километровых выигрышей

Матрица расстояний между пунктами (dij), км
Матрица километровых

выигрышей (sij), км

0 7,0 4,0 12,4 5,1 12,0 7,3 6,1 14,8 7,3 5,0 9,2 7,3
0,0 1 11,0 12,6 9,4 8,2 11,4 13,0 13,0 8,6 11,4 2,8 8,6
0,0 0,0 2 13,9 5,8 15,3 7,3 2,2 17,0 9,2 3,0 13,2 9,2
0,0 6,7 2,5 3 17,5 7,2 7,1 14,2 4,1 19,0 11,4 15,2 5,1
0,0 2,7 3,3 0,0 4 16,4 12,0 7,8 19,7 3,6 8,5 10,4 12,4
0,0 10,8 0,8 17,2 0,7 5 11,0 16,6 5,4 16,6 13,9 10,0 7,1
0,0 2,9 4,0 12,6 0,3 8,3 6 7,2 10,8 14,6 4,5 14,2 4,0
0,0 0,0 7,8 4,2 3,4 1,6 6,2 7 17,7 11,3 2,8 15,3 10,0
0,0 8,8 1,7 23,0 0,2 21,4 11,2 3,2 8 20,6 14,9 15,1 7,8
0,0 5,7 2,1 0,6 8,8 2,8 0,0 2,0 1,4 9 11,7 8,6 14,0
0,0 0,6 6,0 6,0 1,6 3,1 7,8 8,3 4,9 0,6 10 13,9 7,2
0,0 13,4 0,1 6,4 3,9 11,3 2,3 0,0 8,9 7,9 0,3 11 11,4
0,0 5,7 2,1 14,6 0,0 12,3 10,6 3,4 14,2 0,6 5,1 5,1 12

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

Воспользуемся алгоритмом Кларка-Райта. Здесь приводится только пошаговое описание алгоритма. Демонстрация использования данного алгоритма применительно к рассматриваемой задаче приводится в таблице 5 и соответствующих комментариях к ней.

Шаг 1. На матрице километровых выигрышей находим ячейку (i*, j*) с максимальным километровым выигрышем Smax:

,

При этом должны соблюдаться следующие три условия:

1) пункты i* и j* не входят в состав одного и того же маршрута;

2) пункты i* и j* являются начальным и/или конечным пунктом тех маршрутов, в состав которых они входят;

3) ячейка (i*, j*) не заблокирована (т.е. рассматривалась на предыдущих шагах алгоритма).

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

Шаг 2. Маршрут, в состав которого входит пункт i*, обозначим как маршрут 1. Соответственно, маршрут, в состав которого входит пункт j*, обозначим как маршрут 2. Введем следующие условные обозначения:

N = {1, 2, …, n} – множество получателей; N1 (N1 Ì N) – подмножество пунктов, входящих в состав маршрута 1; N2 (N2 Ì N) – подмножество пунктов, входящих в состав маршрута 2.

Очевидно, что i* Î N1, j* Î N2 и N1 Ç N2= ? (согласно шагу 1, условие 1).

Рассчитаем суммарный объем поставок по маршрутам 1 и 2:

и ,

где qk – объем спроса k-го пункта, шт (см табл. 3).

Шаг 3. Проверим на выполнение следующее условие:

q1 + q2 £ c

где c – грузовместимость автомобиля, шт.

Если условие выполняется, то переход к шагу 4, если нет – к шагу 5.

Шаг 4. Производим объединение маршрутов 1 и 2 в один общий кольцевой маршрут X. Будем считать, что пункт i* является конечным пунктом маршрута 1, а пункт j* – начальным пунктом маршрута 2.

При объединении маршрутов 1 и 2 соблюдаем следующие условия:

Ÿ последовательность расположения пунктов на маршруте 1 от начала и до пункта i* не меняется;

Ÿ пункт i* связывается с пунктом j*;

Ÿ последовательность расположения пунктов на маршруте 2 от пункта j* и до конца не меняется.

Шаг 5. Повторяем шаги 1-4 до тех пор, пока при очередном повторении не удастся найти Smax, который удовлетворяет трем условиям из шага 1.

Шаг 6. Рассчитываем суммарный пробег автотранспорта.

Теперь рассмотрим применение этого алгоритма к рассматриваемой задаче. Весь ход последовательного решения задачи представлен в таблице 5.

Таблица 3.4

Решение задачи развозки методом Кларка-Райта

№ п/п Шаг 1 Шаг 2 Шаг 3 Шаг 4
i* j* Smax Условия q1 q2 q1+q2 £ c?

маршрута

Маршрут
1 2 3
1 2 3 4 5 6 7 8 9 10 11 12
1 8 3 23,0 + + + 200 400 + 1 0-3-8-0
2 8 5 21,4 + + + 600 150 + 1 0-3-8-5-0
3 5 3 17,2 - + + - - - - -
4 12 3 14,6 + + + 550 750 + 1 0-12-3-8-5-0
5 12 8 14,2 - - + - - - - -
6 11 1 13,4 + + + 475 450 + 2 0-1-11-0
7 6 3 12,6 + - + - - - - -
8 12 5 12,3 - + + - - - - -
9 11 5 11,3 + + + 925 1300 - - -
10 8 6 11,2 + - + - - - - -
11 5 1 10,8 + + + 1300 925 - - -
12 12 6 10,6 + + + 1300 450 - - -
13 11 8 8,9 + - + - - - - -
14 9 4 8,8 + + + 450 200 + 3 0-9-4-0
15 8 1 8,8 + - + - - - - -
16 6 5 8,3 + + + 450 1300 - - -
17 10 7 8,3 + + + 300 250 + 4 0-7-10-0
18 11 9 7,9 + + + 925 650 - - -
19 7 2 7,9 + + + 550 400 + 4 0-2-7-10-0
20 10 6 7,8 + + + 950 450 + 4 0-2-7-10-6-0

Комментарии к таблице 5

Графа 1 – номер итерации

Графы 2, 3 – номера пунктов i* и j*, которые обозначают ячейку с максимальным километровым выигрышем Smax = s(i*,j*), найденную в результате просмотра матрицы километровых выигрышей (таблица 4).

Графа 4 – значение максимального километрового выигрыша Smax

Графы 5, 6 и 7 – результаты проверки условий 1, 2 и 3 при выполнении шага 1.

“+” – положительный результат, “–” – отрицательный результат.

Графы 8 и 9 – объем перевозок по маршруту 1, в состав которого входит пункт i* (q1), и маршруту 2, в состав которого входит пункт j* (q2).

Графа 10 – проверка на условие q1 + q2 £ c, где c – грузовместимость транспортного средства. “+” – положительный результат проверки условия, “–” – отрицательный результат.

Графа 11 – порядковый номер кольцевого маршрута (всего в ходе решения получено всего четыре кольцевых маршрута, см. рис. 6).

Графа 12 – структура кольцевого маршрута, образовавшегося на данной итерации.

Рассмотрим, как происходит поэтапный поиск оптимального решения задачи.

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

L0 = 2 ´ d01 + 2 ´ d02 + … + 2 ´ d0,12 = 2 ´ 7,0 + 2 ´ 4,0 + … + 2 ´ 7,3 = 195 км

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

Итерация 1. Объединяем два радиальных маршрута: 0-8-0 (объем доставки 200 шт.) и 0-3-0 (объем доставки 400 шт.) в общий кольцевой маршрут (под № 1) 0-8-3-0 (объем доставки 600 шт.). При этом суммарный пробег автотранспорта сокращается на 23,0 км.

Итерация 2. К кольцевому маршруту № 1 – 0-8-3-0 (600 шт.) присоединяем радиальный маршрут 0-5-0 (150 шт.). При этом пункт 5 присоединяем к пункту 8, в результате чего получаем новую структуру кольцевого маршрута 0-5-8-3-0 (750 шт.). Суммарный пробег автотранспорта сокращается еще на 21,4 км.

Отметим важность соблюдения последовательности пунктов в кольцевом маршруте: именно 0-5-8-3-0, а не 0-5-3-8-0 или 0-8-3-5-0.

Если i* = 5 и j* = 8, то после объединения они должны стоять на маршруте друг за другом.

Итерация 3. Объединение пунктов 3 и 5 обеспечило бы выигрыш в 17,2 км. Но это объединение невозможно, поскольку оба пункта уже входят в состав кольцевого маршрута №1 – 0-5-8-3-0, а объединять можно пункты только из разных маршрутов. Таким образом, констатируем нарушение условия 1 и переходим к следующей итерации.

Итерация 4. К кольцевому маршруту № 1 – 0-5-8-3-0 (750 шт.) присоединяем радиальный маршрут 0-12-0 (150 шт.). При этом пункт 12 присоединяем к пункту 3, в результате чего получаем новую структуру кольцевого маршрута 0-5-8-3-12-0 (1300 шт.). Суммарный пробег автотранспорта сокращается на 14,6 км.

Итерация 5. Пункты 12 и 8 не объединяем, поскольку они уже входят в состав кольцевого маршрута 1 (нарушается условие 1).

Итерация 6. Объединяем два радиальных маршрута: 0-11-0 (475 шт.) и 0-1-0 (450 шт.) в общий кольцевой маршрут (под № 2) 0-11-1-0 (925 шт.). При этом суммарный пробег автотранспорта сокращается на 13,4 км.

Итерация 7. Пункты 3 и 6 нельзя объединить по причине нарушения условия 2. Пункт 3 входит в состав кольцевого маршрута 1, и в этом маршруте он занимает «промежуточное» положение, то есть он связан с пунктами 8 и 12: 0-5-8-3-12-0. Радиальный маршрут 0-6-0 можно было бы присоединить к кольцевому маршруту 1 со стороны его «крайних» пунктов – 5 или 12, но к «промежуточным» пунктам 3 и 8 его присоединить нельзя.

Итерации с 8 по 20 повторяют ту же логику рассуждений, что и в предыдущих 7 итерациях. Отметим только, что на итерациях 9, 11, 12, 16 и 18 объединение не производится только по причине нарушения условия q1 + q2 £ c.

Итерации с 21 по 60 уже не имеют смысла, поскольку их выполнение уже не повлечет за собой изменение плана развозки.

Суммарный километровый выигрыш за 20 итераций составляет:

S = 23,0 + 21,4 + 14,6 + 13,4 + 8,8 + 8,3 + 7,9 + 7,8 = 105,3 км

а общий пробег автотранспорта, соответственно:

L1 = L0 – S = 195 –105,3 = 89,7 км

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

,

где Li – протяженность i-го маршрута, км; r – количество маршрутов.

Рассмотрим, например, кольцевой маршрут 0-3-8-5-12-0. Протяженность маршрута определяется по формуле (см. табл. 4):

L1 = d0,12 + d12,3 + d3,8 + d8,5 + d5,0 = 7,3 + 5,1 + 4,1 + 5,4 + 12,0 = 33,9 км.

Аналогично рассчитываем протяженность остальных маршрутов. Результаты расчетов сведены в таблицу 6:

Таблица 3.5

Результат решения задачи развозки

№ п/п Маршрут Объем поставки, шт Пробег, км
1 0-12-3-8-5-0 1300 33,9
2 0-1-11-0 925 19,0
3 0-9-4-0 650 16,0
4 0-2-7-10-6-0 1400 20,8
Итого 4275 89,7

<< | >>
Источник: Черкесов А.Г.. Экономическая теория. Математические модели: Учеб. пособие. СПб.: Изд-во СПбГПУ,2003. 52 с.. 2003

Еще по теме 3.1.2. Метод Кларка-Райта:

- Авторское право - Аграрное право - Адвокатура - Административное право - Административный процесс - Арбитражный (хозяйственный) процесс - Аудит - Банковская система - Банковское право - Бухгалтерский учет - Военное право - Гражданское право и процесс - Денежное обращение, финансы и кредит - Деньги - Жилищное право - Земельное право - Избирательное право - Инвестиционное право - Информационное право - Исполнительное производство - История - История государства и права - История политических и правовых учений - Конкурсное право - Конституционное право - Корпоративное право - Криминалистика - Криминология - Маркетинг - Медицинское право - Международное право - Менеджмент - Муниципальное право - Налоговое право - Наследственное право - Нотариат - Обязательственное право - Оперативно-розыскная деятельность - Права человека - Право зарубежных стран - Право социального обеспечения - Правоведение - Правоохранительная деятельность - Предпринимательское право - Семейное право - Страховое право - Судопроизводство - Таможенное право - Теория государства и права - Трудовое право - Уголовно-исполнительное право - Уголовное право - Уголовный процесс - Философия - Финансовое право - Хозяйственное право - Хозяйственный процесс - Экологическое право - Экономика - Ювенальное право - Юридическая техника - Юридические лица -