Научная статья на тему 'Алгоритм выбора самого дешевого пути'

Алгоритм выбора самого дешевого пути Текст научной статьи по специальности «Математика»

CC BY
121
10
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
МАТЕМАТИКА / СЕТИ / ТРАНСПОРТ

Аннотация научной статьи по математике, автор научной работы — Жабелов Самат Тахирович, Кетов Мухамед Леонович, Хуранова Лиана Зауровна, Тхамадоков Мурат Азреталиевич, Лосанова Марианна Арсеновна

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

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

Похожие темы научных работ по математике , автор научной работы — Жабелов Самат Тахирович, Кетов Мухамед Леонович, Хуранова Лиана Зауровна, Тхамадоков Мурат Азреталиевич, Лосанова Марианна Арсеновна

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

Текст научной работы на тему «Алгоритм выбора самого дешевого пути»

ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

АЛГОРИТМ ВЫБОРА САМОГО ДЕШЕВОГО ПУТИ Жабелов С.Т.1, Кетов М.Л.2, Хуранова Л.З.3, Тхамадоков М.А.4, Лосанова М.А.5, Костюшина Д.С.6

1 Жабелов Самат Тахирович - студент, кафедра информатики и технологии программирования;

2Кетов Мухамед Леонович - студент, кафедра прикладной информатики, Институт информатики, электроники и компьютерных технологий, Кабардино-Балкарский государственный университет;

3Хуранова Лиана Зауровна - студент, кафедра управления и экспертизы недвижимости, строительный факультет, Кабардино-Балкарский аграрный университет;

4Тхамадоков Мурат Азреталиевич - студент, кафедра прикладной информатики, Институт информатики, электроники и компьютерных технологий;

5Лосанова Марианна Арсеновна - магистр, кафедра социальной работы, Институт социальной работы, сервиса и туризма, Кабардино-Балкарский государственный университет, г. Нальчик;

6Костюшина Дарья Сергеевна - студент, кафедра систем автоматизированного проектирования, Институт пути, строительства и сооружений Российский университет транспорта, г. Москва

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

Ключевые слова: математика, сети, транспорт.

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

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

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

Рис. 1. Определение наиболее дешевых путей: а — сеть с исходной вершиной 1 и указанными ценами ребер; б — конец шага 1 в алгоритме наиболее дешевого пути; в — конец шага 2; г — конец шага 3; д — конец фазы I; е — конец шага 1 фазы II

Цена ребра (у) обозначается c (уХ так что, к примеру, с (4,6) =2. Каждой вершине i мы припишем две метки P(i) и ^А), временные значения которых будут меняться на всем протяжении алгоритма. Окончательное, постоянное значение P*(i) — это предшествующая вершина, или вершина, непосредственно находящаяся перед вершиной i на самом дешевом пути, а окончательное, постоянное значение К* (^ — цена самого дешевого пути от начала до вершины ^ Алгоритм состоит из двух фаз (этапов): прямого поиска, когда мы идем из начала по всем направлениям, постоянно помечая вершины в порядке возрастания их цены, и обратного поиска, когда, собственно, и определяются наиболее дешевые пути [2].

Алгоритм выбора самого дешевого пути

Фаза I. Прямой поиск

Шаг 1:

а) отметить начальную вершину Р = 0, ^0;

б) объявить начальную вершину маркированной постоянно с Р* = 0, К*=0, отмечая это чертой или штрихом;

в) приписать метки всем другим вершинам (рис. 4.6,6) с временными значениями P(i)= 0 и = oo (или некоторому числу, много большему, чем заданные цены ребер). [3]

Шаг 2:

а) для всех ребер (у), соединяющих заштрихованную вершину ! с незаштрихованной вершиной 1, вычислить сумму + ^у) и в том и только в том случае, когда она меньше текущего значения значение суммы принять за новое значение a ! взять за новое значение P(j); в противном случае метки не менять;

б) незаштрихованную вершину с наименьшим значением К-метки, скажем j, заштриховать: две ее метки P(j) и K(j) объявляются постоянными и обозначаются P*(j) и ^ф. (См. рис. 1, на котором вершина ! = 3 маркирована постоянно.)

Шаги 3, 4... Шаг 2 повторяется (если нет ребер, соединяющих заштрихованную вершину с незаштрихованной, то часть «а» опускается) до тех пор, пока все вершины не будут иметь постоянных меток (рис. 4.6, г, д).

В конце фазы I значение ^^ для каждой вершины ! является ценой самого дешевого пути из начальной вершины в вершину ^

Фаза II. Обратный поиск

Шаг 1. Для каждой вершины ! (за исключением начальной) ребро (Г^), 0, т.е. ребро, соединяющее предшествующую ! вершину P*(i) с ^ отмечается двумя короткими перпендикулярными линиями и объявляется критическим.

Множество критических ребер образует дерево наиболее дешевых путей для начальной вершимы (рис. 1, e).

Шаг 2. Для определения наиболее дешевого пути от начала к любой вершине ! осуществляется обратный поиск от ! к предшествующей ей вершине P*(i), затем от этой вершины — к ее предшественнице и так до тех мор, пока не достигается начальная вершина. [4]

Об этом алгоритме нужно заметить следующее.

1. Его труднее объяснить, чем научиться им пользоваться! Читателю нужно взять карандаш и резинку и поработать над сетью, представленной на рис. 2.

2. В алгоритме может возникнуть неопределенность, когда в фазе I на шаге 2б происходит совпадение (соединение двух путей равной цены). Это совпадение можно разрешить любым произвольным выбором, например, всегда выбирать вершину с меньшим номером. Так, на рис. 1 ,г вершины 4 и 5 обе имеют К-метки, равные 2; мы выбираем вершину 4 и объявляем ее маркированной постоянно.

3. В конце фазы I значения К* дают цены самых дешевых путей; фаза II определяет эти пути, хотя для малых сетей они к этому времени уже очевидны.

4. В атласе лучших маршрутов «из» и «в» города, который выпускается автомобильной ассоциацией, дается такой совет: «Иногда линию маршрута легче проследить от Вашего пункта назначения назад в исходный пункт». Прямо обратный поиск!

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

6. Задачу о самом дешевом пути можно сформулировать и на языке динамического программирования и эта формулировка особенно удобна для строгого доказательства справедливости алгоритма [5].

3.6 4,8 6,9 8,10

0,0 2,5 3,6 5,10

Рис. 2. Определение наиболее дешевых путей: а — сеть с исходной вершиной 1 и указанными ценами ребер; б — конец шага 1 фазы II в алгоритме самого дешевого пути

Список литературы

1. Афанасьев Л.Л. и др. Единая транспортная система и автомобильные перевозки. М.: Транспорт, 1984. 465 с.

2. Аникин Б.А., Тяпухин А.П. Коммерческая логистика: Учеб. М.: ТК Велби. Изд-во Проспект, 2005. 432 с.

3. Бауэрсокс Дональд Дж., Клосс Дейвид Дж. Логистика: интегрированная цепь поставок. М: Олимп-Бизнес, 2001. 640 с.

4. Безуглова М.А. Транспортные услуги в международной торговле: Учебн. пособие. Мурманск: Изд-во МГТУ, 2001. 91 с.

5. Беленький А.С. Исследование операций в транспортных системах: идеи и схемы методов оптимизации планирования. М.: Мир, 1992. 582 с.

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