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

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

CC BY
179
60
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Journal of new economy
ВАК
Область наук
Ключевые слова
ЛОГИСТИЧЕСКИЕ СИСТЕМЫ / ТРАНСПОРТНОЕ ОБСЛУЖИВАНИЕ / ПРОЕКТИРОВАНИЕ ТРАНСПОРТНЫХ СЕТЕЙ / СЕТЕВОЕ МОДЕЛИРОВАНИЕ / ЗАДАЧА МИНИМИЗАЦИИ ПУТИ ДЛЯ КОНЕЧНЫХ СЕТЕЙ / АЛГОРИТМ ОПТИМИЗАЦИИ / КОМПЬЮТЕРНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / ЛОГИСТИЧЕСКИЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ / LOGISTICAL SYSTEMS / TRANSPORT SERVICE / THE DESIGN OF TRANSPORT NETWORKS / NETWORK SIMULATION / A PROBLEM OF WAYS MINIMIZATION / ALGORITHM OF OPTIMIZATION / COMPUTER SOFTWARE / LOGISTICAL INFORMATION SYSTEMS

Аннотация научной статьи по математике, автор научной работы — Зырянов Александр Васильевич, Шориков Сергей Андреевич

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

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

Похожие темы научных работ по математике , автор научной работы — Зырянов Александр Васильевич, Шориков Сергей Андреевич

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

Algorithm of Transport Service Optimization on the Basis of Network Modelling1The European-Asian Institute of Management and Business

In the article one of the important components of transport logistical system – a problem of designing the transport network satisfying to set organizational conditions and optimizing chosen economic parameters is considered. Offered by the authors algorithm of the solving a problem of minimization the ways and the general scheme optimum transport service algorithm on the basis of network modelling, can form a basis for development of the corresponding computer software and to be used as a mean in logistical information systems.

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

ЗыРЯНОВ Александр Васильевич

Доктор экономических наук, профессор кафедры экономики предприятия и управления коммерческой деятельностью

Европейско-Азиатский институт управления и предпринимательства

620142, РФ, г. Екатеринбург, ул. Щорса, 54а Контактные телефоны: (343) 234-20-80, (906) 812-18-24

ШОРИКОВ Сергей Андреевич

Заместитель директора

Колледж предпринимательства и социального управления

620089, РФ, г. Екатеринбург, ул. Онежская, 2 Контактные телефоны: (343) 260-54-64, (908) 913-01-51 e-mail: [email protected]

Алгоритм оптимизации транспортного обслуживания на основе сетевого моделирования

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

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

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

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

© Зырянов А. В., Шориков С. А., 2008

программирования [2]. Данная статья основана на работах [2-3] и продолжает исследование [3].

Рассмотрим задачу минимизации пути [2]. Для заданной конечной сети без изолированных узлов и циклов, состоящей из N узлов и (г), г е 1, N = {1,2,..., N }, где N > 2, и заданных начального узла и(г) и финального узла и( у), (г,у е 1, N), заданных числовых значений йу е Я1 (здесь и далее Я1 - множество всех действительных чисел) длин ребер (если они существуют), выходящих из узла и (г) и входящих в узел и (у), (г,у е 1, N) и имеющих единственное направление, требуется найти путь, выходящий из узла и(г и заканчивающийся в узле и(у) (г Ф у), и такой, что суммарная длина образующих его ребер является наименьшей по сравнению с подобными оценками для всех других путей, начинающихся в узле и(г) и заканчивающихся в узле и(у).

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

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

Шаг 0. Формирование исходных данных

0.1. Вводится натуральное число N > 2, и формируется действительный массив узлов ио = {и(1), и(2),... ,и^)}, соответствующий ^узлам исходной сети, где узел и(1) = (г) есть начальный узел для задачи минимизации пути, а узел иN) = (у) - финальный узел для этой задачи (г Ф у); предполагается, что рассматриваемая сеть не содержит изолированных узлов.

0.2. Положим, чтоУ0 = 0, и формируются также целочисленный массив 10 = {1,2,..., N} и пустой целочисленный массив 10 = 0.

0.3. Формируются действительная матрица В с элементами йу е Я1, квадратная ^порядка, т. е. В=Щу||, г е 1,N, у е 1,N; факт принадлежности элемента йу, г е1,N, уе1,N матрице В будем обозначать через йу е В, где й.. - числовое значение длины ребра 5.., выходящего из узла и (г) и входящего в узел и (у) в случае, если такие направленны!; ребра существуют, и тогда полагается, что й,. < + <», а й = + <», т. е. предполагается однонаправленность всех ребер рассматриваемой сети (иначе - существует цикл). Если между такими узлами ребро отсутствует, то полагаем, что по определению й, = й =+ при г = у предполагаем, что й,, = йг =0. Отметим, что у сформированной таким образом матрицы В на главной диагонали расположены только нулевые элементы.

0.4. Для каждого узла и() е (У0, где г е 1, N, с помощью какого-то алгоритма (например, путем перебора всех допустимых вариантов путей) проверяется наличие циклов в исходной сети, соответствующих узлу и ( г). Тогда в случае, если для какого-то узла исходной сети и (у) (у е 1, N) существует хотя бы один цикл, алгоритм прекращается, и осуществляется переход на другой алгоритм; в случае, если для всех узлов и (у) г е 1, N исходной сети отсутствуют циклы, выполняется следующий пункт этого шага.

0.5. Формируется следующий действительный массив _К(0) ={0, +о, + о,..., + о}, состоящий из N числовых элементов (вспомогательный массив). ' N-1 ’

0.6. Осуществляется проверка исходных данных на допустимость.

1. Прямой ход алгоритма

Шаг 1. Вырожденный шаг алгоритма

1.1. Формируется следующий целочисленный массив: 11 = {1}.

1.2. Формируются следующие целочисленные массивы: 11 = 10 и 71, 11 = 10 \ 1.

1.3. Формируется следующий действительный массив:

£(1) =£(0) ={0, +о, +о,..., +о} = {г1<1), г2(1),..., г^1’}.

ч______ _____/

N -1

1.4. Формируются следующие рабочие массивы узлов:

V = {и(г)}(е; - массив узлов, состоящий из одного узла и (г), для которого уже определена длина кратчайшего пути из начального узла и (1) в узел и (г) = и (1);

и1 = {и(у)}е - массив узлов и (г), для каждого из которых еще не определена длина кратчайшего пути из узла и (1) в узел и (у).

Шаг 2. Типичный шаг алгоритма

2.1. Для каждого целочисленного индекса г е 11 формируется следующий целочисленный массив:

1(1) = { : у е 11, й . < +о, й . е В}, (1)

т. е. формируется множество целочисленных индексов у е 11, которым соответствуют узлы и(у) е и1 такие, что существует направленное ребро из узла и ( г) в узел и (у).

2.2. На основании сформированных целочисленных массивов 11 и 11(1), г е 11 формируется следующий целочисленный массив:

I(1) ={: г е 71,1(1) Ф0} (2)

т. е. формируется множество только таких индексов г е 11, что для соответствующих им узлов и(г) е У1, и только для них, существует хотя бы один узел и(у) еЦ1 (у е 1(1)) такой, что имеется направленное ребро, выходящее из узла и ( г) и входящее в узел и (у).

2.3. Формируется следующий целочисленный массив:

1(1) ={: ) е 1((1), ге I(1) }^ 1(1), (3)

1е1(1)

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

2.4. Для каждого целочисленного индекса у е 1(1) формируется следующий целочисленный массив:

I(1) = { : г е I(1), й уу < +о, й уу е В }, (4)

т. е. формируется множество только таких целочисленных индексов г е I(1) с^, которым соответствуют узлы и(г) е У1 такие, что существует направленное ребро, выходящее из узла и ( г) и входящее в узел и(у) еУ1.

2.5. Формируется следующий целочисленный массив:

12 = {у :) е 1(1), V г е I;<1), г(1) < +о, г(1) е Я(1> }, (5)

т. е. формируются только такие целочисленные индексы у е 1(1) с 11, которым соответствуют узлы и(у) еЦ1 такие, что все существующие и входящие в них направленные ребра выходят из узлов и(г) е У1 г е I(1) сI1) таких, что для них уже определена величина Г(1) - длина кратчайшего пути из узла и (1) в узел и ( г).

2.6. Для каждого целочисленного индекса у е 12 формируются целочисленный массив индексов I() = { у)} с I(1), который является подмножеством целочисленного массива и действительное число г(2) е Я1 из решения следующей конечной дискретной оптимизационной задачи:

^ ): г(е) е min{гj<1) + йуу }= г^) + й.<,) . = г(2), г(1) е Л(1), йу е в|. (6)

При этом множество I(е) и число г(2) запоминаются. Отметим, что с помощью результатов решения этой задачи для выбранного индекса у е 12 и соответствующего ему узла и(у)еи1, рассматриваемого как финальный для задачи минимизации пути,

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

2.7. Формируются следующие целочисленные массивы:

^ ^ и 12 - множество таких целочисленных индексов {г , что им соответствуют

узлы и(г) е и0 исходной сети, для каждого из которых уже решена задача минимизации пути с начальным узлом и (1) и финальным узлом и (г);

12 = 11 \ 12 - множество таких целочисленных индексов {у}, что им соответствуют узлы и(у) е и0 исходной сети, для каждого из которых еще не решена задача минимизации пути с начальным узлом и (1) и финальным узлом и (у).

2.8. Из сформированного на предыдущем шаге действительного массива -К(1) = {г1(1), г2(1),..., 411} формируется новый действительный массив _К(2) = {г1(2), г22),..., г^2)} путем замены для каждого целочисленного индекса у е 12 соответствующего элемента г/1’ на числовое значение г.(2), которое определено в п. 2.6, а остальные элементы остаются неизменными, т. е. в этом действительном массиве для всех индексов г е !2 определены числовые значения г.2) - значения длины кратчайшего пути из узла и (1) в узел и (г), а для всех остальных индексов у е 12 числовые значения г(2) = +о, т. е. для соответствующих им узлов и(у) е и0 аналогичная задача минимизации пути еще не решена.

2.9. Формируются следующие массивы узлов:

У2 = {и(г')};е; - массив узлов и(г) е и0 исходной сети, для которых уже решена задача минимизации пути с начальным узлом и (1) и финальным узлом и (г);

и2 = {и(у)}уе1 - массив узлов и(у) е и0 исходной сети, для которых уже решена задача минимизации пути с начальным узлом и (1) и финальным узлом и (у).

Продолжая процесс, описанный на этом шаге алгоритма, рассмотрим к-й шаг (2 < к < Ы).

Шаг к. Общий шаг для прямого хода алгоритма (2 < к < Ы)

Пусть на предшествующем (к - 1) шаге сформированы: множество 1к ; целочисленные массивы I, 1к ; действительный массив Я(к-1) = {г1(к-1), г2(к-1),..., гN-1)} и массивы узлов Ук-1 = {и (г)}jEIl-l, и к-1 = {и(у)}

Тогда реализацию этого шага прямого хода алгоритма можно представить в виде последовательности действий, которая аналогична действиям в соответствии с (1)-(6) на шаге 2. В результате для всех к : 2 < к < N формируются множества: 1к; целочисленные массивы 1, 1к; действительный массив Я(к) = {г1(к),г2'к),...,гN)} и массивы узлов

Vk = {и (0^-1, ик ={и (у)} уе1к-1.

Шаг N прямого хода алгоритма

В результате реализации общего шага к данного алгоритма при к = N будут сформированы следующие массивы узлов: Ун = {и(г)}(е^ =и0 - массив всех узлов исходной сети, для которых уже решена задача минимизации пути с начальным узлом и (1) и финальным узлом и (г); ин = {и( у)} .е1 =0 - пустой массив узлов. При этом для каждого узла и(г) е Ун =и0, г е^ =1, N исходной сети известны сформированные и запоминавшиеся на предыдущих шагах - множество целочисленных индексов ^ и число гуМ) е Я<м) = {г1(м), г(м),..., N)}, где множество целочисленных индексов 1(е> е I1<e) таких, что им соответствуют узлы и(г(е)), которые являются предшествующими узлу и (г) в искомом оптимальном пути для исходной задачи минимизации пути и действительное число г.'Н), равное значению величины длины кратчайшего пути из начального узла и (1) в узел и (г).

II. Обратный ход алгоритма

Шаг N + 1 алгоритма

N + 1.1. Предположим, что оптимальный путь для рассматриваемой задачи минимизации пути для исходной сети и0 = {и(1), и(2),..., иN)} состоит из и-узлов (п < N и может быть представлен в виде следующего массива узлов:

и(:) = mi)=>>, >>,..., «(£>,), M(fne))=«(N)}

и соответствующих им ребер s.(,) ,и, к е2, и, образованных следующими парами узлов:

Vi> Ч.

S(.>,.> = (u(i(e>), u(i2e))), sj(!^) = u(i2e)), u(i3e)), sj(!) jM = u^), u(;«),...,

‘1 >i2 i2 >i3 n-2 ’ И-1

S^, £) = u(i«), u(£>).

В результате реализации прямого хода алгоритма известно значение N>, которое, возможно, является длиной кратчайшего пути из узла u (1) в узел u(i(ne)) = u(N).

N + 1.2. Для финального узла u(i(ne)) = u(N) сформируем предшествующий ему узел u(i,n<->1) искомого оптимального пути, где целочисленный индекс i^, определяющий этот узел, является любым элементом (если их несколько) сформированного и запоминавшегося на прямом ходе алгоритма множества Ify = lN>, т. е. И- е/1^, причем аналогично (6) при к = N справедливо следующее равенство:

г(и> = N> = r^ + d(,> .(,> = minjr/n) + d .„>}, dw eD.

" "-1 ”-1’" ieI,w

В результате этого сформирован узел u( tf^) в искомом оптимальном пути, который предшествует финальному узлу и в общем случае является не единственным.

N + 1.3. Аналогично предыдущему пункту, для найденного узла u(i(ne\) определяется предшествующий ему узел u(in->2), соответствующий целочисленному индексу г'И-2 е 1$, причем аналогично (6) при к = и = 1 справедливо равенство:

г<(-)° = г/-)0 + d(,> .(,> = mmjr/N> + d и}, d (,> eD.

V1 V2 V2.V1 •■•■-1 •■•■-1

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

N + 1.к. (2 < к < г'И->2). Продолжая процесс, аналогичный описанному, в предыдущих пунктах этого шага для всех целочисленных индексов i^> е1к+>1, к е{и - 3, и - 4, ...,4,2}, удовлетворяющих аналогично (6), при к = к + 1 следующему соотношению

r(N> = + d.(,> > = miin{rj(N> + d (,>}, d „> eD,

4+1 к к ’4+1 iel^J) к+1 к+1

к+1

последовательно формируются соответствующие им узлы

u( ‘И->з),..., u( ;«>,..., u( i2e)>, u( .«)=u(1>,

которые в совокупности со сформированными ранее узлами u(in-2), u(i(ne\), u(i(ne)) = u(N) и соответствующими парам узлов {u(гkt->1),u(i<ke>)}, к е2,N ребрами s.M ,м образуют искомый оптимальный путь для задачи минимизации пути в исходной сети U0, т. е. в итоге формируется искомый массив узлов и{‘] = {u(1> = u(i1(e >), u(z2e)),..., u^), u(i(ne)) = u(N)} и соответствующий ему оптимальный путь:

u(1> = u(i((e>) ^u(i2e>), u(i2e>) ^u(i3e>), ...,

..., u(£>2) ^(S), u(in-1> ^u(ine>) = u(N).

Шаг N + 2. Финальный шаг алгоритма

N + 2.1. Для сформированного на предыдущем шаге алгоритма массива узлов и(Ие> = {u(1> = u(i1(e>),u(i2e>),...,u(i(ne\>,u.^) = u(N>} и соответствующих им ребер s.(,> (!>,к е2, n, образованных следующими парами узлов

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

5^.> = («(,•“>), «(£>)}, 5^.> = («<£},«(£>)),..., ^((= (и^),«О,

‘1 >‘2 ‘2 >‘3 ‘и-2 >‘и-1

} = («(£>},«<£>}},

можно вычислить числовое значение суммы длин этих ребер, образующих путь, порождаемый данным массивом узлов и(пе}, по следующей формуле:

й{е) = У й

иш ~ Т, ,■<<> .■<•> •

, ‘к ,‘к+1

кЕ1,П-1

Тогда, если й(пе> = т^н> £ Л(м>, то массив узлов и(пе} и соответствующие ему пары ребер

*.<<> .<<> = («<4^},и(1{к))), к е2, и порождают искомый оптимальный путь и оптимальное

Ik-1>Ik 7<р) К е) N >

значение результата для данной задачи, т. е. длина оптимального пути ап = ап = тК .

В противном случае (если равенство не выполняется) возможны варианты:

а) неправильно выполнен прямой ход алгоритма;

б> неправильно выполнен обратный ход алгоритма (а прямой ход алгоритма выполнен правильно);

в) и прямой, и обратный ход алгоритма выполнены неправильно.

В зависимости от ситуации необходимо перевыполнить основные этапы данного алгоритма.

N + 2.2. Найденные оптимальный путь и оптимальное значение результата для рассматриваемой задачи минимизации пути для сетей без циклов отображаются в форме, удобной для пользователя.

Конец алгоритма

Приведенный алгоритм реализации итерационного метода для решения задачи минимизации пути предлагается использовать для разработки алгоритма решения задачи формирования оптимальных транспортных маршрутов при заданном конечном наборе пунктов доставки грузов. Общая схема предлагаемого алгоритма решения этой задачи представлена в работе [3].

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

Источники

1. Транспортная логистика: учеб. для транспортных вузов / под общ. ред. Л. Б. Ми-ротина. М. : Экзамен, 2002.

2. Таха, Хемди А. Введение в исследование операций / А. Хемди Таха. М. : Вильямс, 2005.

3. Шориков, С. А. Алгоритм организации оптимального транспортного обслуживания на основе сетевого моделирования / С. А. Шориков // Информационные технологии в экономике: теория, модели и методы : сб. науч. тр. Екатеринбург: Изд-во Урал. гос. экон. ун-та, 2007.

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