О кратчайшем k-вершинном пути в ориентированном графе
Приводится формулировка задачи смешанного булева линейного программирования для кратчайшего пути, который проходит через заданное количество вершин ориентированного графа. Даны результаты вычислительных экспериментов с программами решения задач дискретного программирования из NEOS-солвера. Обсуждает...
Збережено в:
Дата: | 2016 |
---|---|
Автори: | , , |
Формат: | Стаття |
Мова: | Russian |
Опубліковано: |
Інститут кібернетики ім. В.М. Глушкова НАН України
2016
|
Назва видання: | Теорія оптимальних рішень |
Онлайн доступ: | http://dspace.nbuv.gov.ua/handle/123456789/113024 |
Теги: |
Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
|
Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
Цитувати: | О кратчайшем k-вершинном пути в ориентированном графе / П.И. Стецюк, Э.С. Долинский, И.И. Парасюк // Теорія оптимальних рішень: Зб. наук. пр. — 2016. — № 2016. — С. 95-102. — Бібліогр.: 5 назв. — рос. |
Репозитарії
Digital Library of Periodicals of National Academy of Sciences of Ukraineid |
irk-123456789-113024 |
---|---|
record_format |
dspace |
spelling |
irk-123456789-1130242017-02-01T03:02:40Z О кратчайшем k-вершинном пути в ориентированном графе Стецюк, П.И. Долинский, Э.С. Парасюк, И.И. Приводится формулировка задачи смешанного булева линейного программирования для кратчайшего пути, который проходит через заданное количество вершин ориентированного графа. Даны результаты вычислительных экспериментов с программами решения задач дискретного программирования из NEOS-солвера. Обсуждается формулировка задачи для нахождения кратчайшего гамильтонового пути в ориентированном графе. Наводиться формулювання задачі змішаного булевого лінійного програмування для найкоротшого шляху, який проходить через задану кількість вершин орграфа. Наведено результати обчислювальних експериментів з програмами розв'язання задач дискретного програмування з NEOS-солвера. Обговорюється формулювання задачі для знаходження найкоротшого гамільтонового шляху в орієнтованому графі. We present the formulation of the mixed Boolean linear programming problem for the shortest path, which passes through the given number of nodes of the digraph. The results of numerical experiments of solution of discrete programming problems using NEOS-solver are given. We discuss the formulation of the problem for finding the shortest Hamiltonian path in a directed graph. 2016 Article О кратчайшем k-вершинном пути в ориентированном графе / П.И. Стецюк, Э.С. Долинский, И.И. Парасюк // Теорія оптимальних рішень: Зб. наук. пр. — 2016. — № 2016. — С. 95-102. — Бібліогр.: 5 назв. — рос. XXXX-0013 http://dspace.nbuv.gov.ua/handle/123456789/113024 519.85 ru Теорія оптимальних рішень Інститут кібернетики ім. В.М. Глушкова НАН України |
institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
collection |
DSpace DC |
language |
Russian |
description |
Приводится формулировка задачи смешанного булева линейного программирования для кратчайшего пути, который проходит через заданное количество вершин ориентированного графа. Даны результаты вычислительных экспериментов с программами решения задач дискретного программирования из NEOS-солвера. Обсуждается формулировка задачи для нахождения кратчайшего гамильтонового пути в ориентированном графе. |
format |
Article |
author |
Стецюк, П.И. Долинский, Э.С. Парасюк, И.И. |
spellingShingle |
Стецюк, П.И. Долинский, Э.С. Парасюк, И.И. О кратчайшем k-вершинном пути в ориентированном графе Теорія оптимальних рішень |
author_facet |
Стецюк, П.И. Долинский, Э.С. Парасюк, И.И. |
author_sort |
Стецюк, П.И. |
title |
О кратчайшем k-вершинном пути в ориентированном графе |
title_short |
О кратчайшем k-вершинном пути в ориентированном графе |
title_full |
О кратчайшем k-вершинном пути в ориентированном графе |
title_fullStr |
О кратчайшем k-вершинном пути в ориентированном графе |
title_full_unstemmed |
О кратчайшем k-вершинном пути в ориентированном графе |
title_sort |
о кратчайшем k-вершинном пути в ориентированном графе |
publisher |
Інститут кібернетики ім. В.М. Глушкова НАН України |
publishDate |
2016 |
url |
http://dspace.nbuv.gov.ua/handle/123456789/113024 |
citation_txt |
О кратчайшем k-вершинном пути в ориентированном графе / П.И. Стецюк, Э.С. Долинский, И.И. Парасюк // Теорія оптимальних рішень: Зб. наук. пр. — 2016. — № 2016. — С. 95-102. — Бібліогр.: 5 назв. — рос. |
series |
Теорія оптимальних рішень |
work_keys_str_mv |
AT stecûkpi okratčajšemkveršinnomputivorientirovannomgrafe AT dolinskijés okratčajšemkveršinnomputivorientirovannomgrafe AT parasûkii okratčajšemkveršinnomputivorientirovannomgrafe |
first_indexed |
2025-07-08T05:04:04Z |
last_indexed |
2025-07-08T05:04:04Z |
_version_ |
1837053818918928384 |
fulltext |
Теорія оптимальних рішень. 2016 95
ТЕОРІЯ
ОПТИМАЛЬНИХ
РІШЕНЬ
Приводится формулировка задачи
смешанного булева линейного про-
граммирования для кратчайшего
пути, который проходит через
заданное количество вершин ори-
ентированного графа. Даны ре-
зультаты вычислительных экспе-
риментов с программами решения
задач дискретного программиро-
вания из NEOS-солвера. Обсужда-
ется формулировка задачи для
нахождения кратчайшего гамиль-
тонового пути в ориентирован-
ном графе.
П.И. Стецюк, Э.С. Долинский,
И.И. Парасюк, 2016
УДК 519.85
П.И. СТЕЦЮК, Э.С. ДОЛИНСКИЙ, И.И. ПАРАСЮК
О КРАТЧАЙШЕМ K-ВЕРШИННОМ
ПУТИ В ОРИЕНТИРОВАННОМ ГРАФЕ
Введение. Пусть ,n nD – полный орграф, где
n – количество вершин, а 0ijd – длина ду-
ги, направленной от вершины i к вершине
j , i j . Задано k – целое число, такое что
2 k n . Обозначим
1( , , )ki i последова-
тельность вершин в связном k -вершинном
пути, где
1, , ki i – идущие по порядку вер-
шины орграфа ,n nD . Он содержит ( 1)k дуг,
последовательно соединяющих вершины
1, , ki i . Связный k -вершинный путь, кото-
рому соответствует наименьшая суммарная
длина входящих в него ( 1)k дуг, будем
называть кратчайшим k -вершинным путем,
а его длину обозначим *
kd . Кратчайший
n -вершинный путь ( k n ) – это кратчайший
гамильтонов путь в орграфе ,n nD .
В работе [1] рассмотрена задача смешан-
ного булева линейного программирования
для нахождения кратчайшего k -вершинного
пути с зафиксированными начальной и ко-
нечной вершинами. Если они неизвестны, то
кратчайший k -вершинный путь можно
найти с помощью решения задачи смешан-
ного булева линейного программирования из
[2].
Цель этой статьи – обсуждение данной зада-
чи, ее сложности и других свойств. Мы так-
же покажем, что использование современно-
го программного обеспечения для задач дис-
кретного программирования гарантирует
нахождение k -вершинных путей для графов
с несколькими десятками вершин за время,
П.И. СТЕЦЮК, Э.С. ДОЛИНСКИЙ, И.И. ПАРАСЮК
96 Теорія оптимальних рішень. 2016
которое является достаточным для построения оперативного диалогового режи-
ма.
1. Обозначения и переменные задачи. Для того, чтобы сформулировать
задачу о кратчайшем k -вершинном пути, будем рассматривать орграф ,D
схематически показанный на рис. 1. Он включает орграф ,n nD и вершину ,a
связанную направленными дугами ( , )a i и ( , )i a с каждой вершиной i из множе-
ства вершин орграфа ,n nD .
РИСУНОК 1. Орграф D (включает орграф
,n nD и вершину a )
Если для всех 1,...,i n длины дуг ( , )a i и ( , )i a положить равными нулю, то
нахождение кратчайшего k -вершинного пути в орграфе ,n nD равносильно
нахождению в орграфе D кратчайшего цикла, который начинается и заканчи-
вается в вершине a и проходит через k вершин орграфа
, .n nD Пусть найден
кратчайший цикл для орграфа .D Тогда дуга этого цикла, исходящая из верши-
ны ,a определяет начальную вершину, а дуга, входящая в вершину ,a опреде-
ляет конечную вершину для кратчайшего k -вершинного пути в орграфе
, .n nD
При формулировке задачи будем использовать такие переменные. Булева
переменная ijx равна единице, если в цикл входит дуга, которая начинается в
вершине i и заканчивается в вершине ,j и равна нулю в противном случае (т. е.
дуга не входит в цикл). Обозначим
aix и
iax – булевы переменные такого же ти-
па, как ,ijx но для дуг из вершины a в вершину i и из вершины i в вершину .a
Количество переменных ,aix
iax и ijx равно ( 1) ( 1)n n n n n n . Булева
переменная
iy равна единице, если цикл проходит через вершину ,i и равна
нулю в противном случае. Количество таких переменных равно .n Неотрица-
тельная переменная ijz задает величину потока некоторого продукта от верши-
О КРАТЧАЙШЕМ k -ВЕРШИННОМ ПУТИ В ОРИЕНТИРОВАННОМ ГРАФЕ
Теорія оптимальних рішень. 2016 97
ны i к вершине ,j а неотрицательная переменная
aiz задает величину потока от
вершины a к вершине .i Количество этих переменных равно
2( 1) .n n n n
2. Формулировка задачи и ее свойства. Кратчайший k -вершинный цикл
в орграфе D (кратчайший k -вершинный путь в орграфе ,n nD ) – это решение
следующей задачи смешанного булевого линейного программирования: найти
*
, ,
1 1,
min
i ij ij
n n
k ij ij
y x z
i j j i
d d x
(1)
при ограничениях
1 1
1, 1
n n
ai ia
i i
x x
, (2)
1, 1,
, , 1, ,
n n
ai ji i ij ia i
j j i j j i
x x y x x y i n
, (3)
1
n
i
i
y k
, (4)
0, 1,...,ai aiz kx i n , (5)
1
n
ai
i
z k
, (6)
( 1) 0, , 1,..., ,ij ijz k x i j n i j , (7)
1, 1,
, 1, ,
n n
ai ji ij i
j j i j j i
z z z y i n
, (8)
0 1, 1, ,iy i n , (9)
0 1, 0 1, 1, , , 0 1, , 1,..., ,ai ia ijx x i n x i j n i j , (10)
0, 1,..., , 0, , 1,..., ,ai ijz i n z i j n i j . (11)
Минимизация целевой функции в (1) соответствует нахождению кратчай-
шего (минимального по длине) цикла из вершины ,a который проходит через k
вершин орграфа
, .n nD При этом
*
kd соответствует длине этого цикла, что равно-
значно длине кратчайшего k -вершинного пути в орграфе
, .n nD Чтобы обеспе-
чить связность k -вершинного цикла в орграфе ,D в задаче используется идея
моделирования задачи о потоке аналогично тому, как это сделано в работе [1].
П.И. СТЕЦЮК, Э.С. ДОЛИНСКИЙ, И.И. ПАРАСЮК
98 Теорія оптимальних рішень. 2016
Теорема [2]. Если k – целое число, удовлетворяющее неравенствам
2 k n , то для орграфа D ограничения (2) – (11) описывают все возможные
циклы, которые проходят через вершину a и через k вершин орграфа
, .n nD
Справедливость теоремы обеспечивается за счет наличия двух групп ограниче-
ний: ограничения (2) – (4), (9), (10) и ограничения (5) – (8), (11). Ограничения (2) –
(4) имеют следующее объяснение. Ограничение (4) задает в точности k вершин ор-
графа
, ,n nD через которые должен проходить цикл из вершины .a Этим вершинам
соответствуют значения 1,iy и для них ограничения (3) описывают однократный
вход в вершину и однократный выход из вершины. Ограничения (2) описывают од-
нократный выход из вершины a и однократный вход в вершину .a
Однако ограничения (2) – (4) в сочетании с булевыми ограничениями (9)
и (10) не обеспечивают связности искомого цикла. Для 3k на рис. 2 показаны
два допустимых решения, удовлетворяющие ограничениям (2) – (4). Левое из
них является связным циклом, проходящим через вершины
1 2 3, ,i i i , а правое со-
стоит из двух несвязных подциклов
3,a i и
1 2,i i .
РИСУНОК 2. Связный цикл (слева), два несвязных подцикла (справа)
Чтобы избежать подобных ситуаций и обеспечить связность искомого цик-
ла, используется группа ограничений (5) – (8), (11). Здесь ограничения (5)
гарантируют перевозку продукта между вершинами a и i только тогда, если
1,aix а ограничения (7) гарантируют перевозку продукта между вершинами i
и j только тогда, если 1.ijx Ограничения (6) и (8) означают, что из вершины
a нужно развезти k единиц продукта, оставляя ровно единицу продукта в каж-
дой из тех вершин орграфа , ,n nD через которые проходит искомый цикл.
Задача (1) – (11) является задачей смешанного булева линейного програм-
мирования. Она содержит 2 ( 1)n n переменных, из которых 2 2n n являются
О КРАТЧАЙШЕМ k -ВЕРШИННОМ ПУТИ В ОРИЕНТИРОВАННОМ ГРАФЕ
Теорія оптимальних рішень. 2016 99
булевыми, а 2n – неотрицательными, и 2 3 4n n ограничений, из которых
3 4n – линейные равенства, а 2n – линейные неравенства. Задача (1) – (11)
справедлива для неполного орграфа, если его дополнить отсутствующими дуга-
ми со значениями длин равными сумме длин всех дуг неполного орграфа.
3. О сложности задачи. Чем меньше значение величины ,k тем меньше до-
пустимых решений имеет задача (1) – (11). Поэтому, на первый взгляд, решение
задачи при 2k n должно быть проще, чем при .k n Однако для современ-
ных реализаций метода ветвей и границ в задачах дискретного линейного про-
граммирования это оказывается не так. Данный факт подтверждают результаты
вычислительных экспериментов для нахождения кратчайших путей в графе
20,20D [3] с помощью программ, имеющихся на NEOS-солвере [4]. Для описания
задачи (1) – (11) использовался язык AMPL [5].
Здесь для графа
20,20D , где вершинами являются 20 наиболее посещаемых
пунктов виноделия Малопольской винной дороги, рассчитаны все кратчайшие
пути для 2,...,20.k Значения их длин (в километрах) приведены во второй
колонке табл. 1. С третьей по седьмую колонку приводится время решения задач
(в секундах) для пяти программ из NEOS-солвера:
1t – для gurobi 6.5.0;
2t – для
cplex 12.6.2.0;
3t – для xpress-mp 26.01;
4t для cbc 2.9.4;
5t – для программы
mosek. Из табл. 1 видно, что время решения задачи (1) – (11) при 10k значи-
тельно больше, чем время решения задачи при 20k .
ТАБЛИЦА 1. Программы NEOS-солвера для кратчайших путей в графе
20,20D
k *
kd 1t
2t
3t
4t
5t
2 0.35 0.05 0.05 0.05 0.04 0.12
3 1.65 0.02 0.02 0.05 0.03 0.09
4 16.05 0.09 0.15 0.07 0.63 1.58
5 27.75 0.20 0.27 0.18 0.81 1.56
6 40.65 0.32 0.44 0.14 2.25 2.25
7 57.85 1.08 0.68 0.37 1.69 8.81
8 92.95 2.04 1.51 0.80 6.06 55.55
9 128.25 1.98 3.18 1.05 8.71 155.78
10 138.75 3.58 2.93 1.24 5.92 143.14
11 150.65 1.29 2.19 1.96 7.14 96.73
12 162.25 0.70 0.75 1.29 3.41 23.33
13 179.45 0.80 0.72 1.05 2.26 63.11
14 204.25 0.72 0.63 0.87 2.97 28.37
15 232.55 1.96 0.81 0.83 2.93 23.33
16 263.55 1.03 0.78 0.43 2.30 18.77
17 299.25 1.09 0.83 0.53 2.43 15.94
http://12.6.2.0/
П.И. СТЕЦЮК, Э.С. ДОЛИНСКИЙ, И.И. ПАРАСЮК
100 Теорія оптимальних рішень. 2016
18 346.25 1.10 0.82 0.56 1.76 14.82
19 393.85 0.60 0.66 0.31 1.34 6.05
20 447.85 0.30 0.29 0.10 1.03 2.80
Эту же тенденцию можно проследить и для нахождения кратчайших путей
в графах
100,100,D о чем свидетельствуют результаты экспериментов из табл. 2.
ТАБЛИЦА 2. Программа cplex 12.6.2.0 для кратчайших путей в графе
100,100D
k
kro100A kro100B
*
kd 1t
2t *
kd 1t
2t
10 1118.0 134.26 9.24 1125.0 125.24 12.95
20 2858.0 138.02 30.00 2719.0 71.99 29.37
30 4609.0 675.14 50.25 4397.0 116.02 37.50
40 6369.0 85.82 44.42 6366.0 220.44 48.81
50 8326.0 161.23 113.14 8464.0 387.09 132.91
60 10409.0 1192.27 116.66 10578.0 437.02 209.30
70 12548.0 280.69 142.33 12676.0 213.77 136.47
80 14700.0 380.12 119.73 14943.0 159.36 53.16
90 17012.0 307.46 82.88 17538.0 593.05 62.12
100 20405.0 654.17 43.70 20912.0 101.53 33.16
Здесь рассматриваются два известных графа kro100A и kro100B из библио-
теки TSPLIB. Для них в колонках 2 и 5 даны значения длин кратчайших путей
при значениях 10,20,...,90,100.k Здесь 1t и
2t – затраты по времени (в секун-
дах) для программы cplex 12.6.2.0 (на 04.03.2016) для двух форм записи задачи
(1) – (11). Они вычислялись с помощью функции "_solve_time". Первая форма
соответствует задаче (1) – (11) и более экономна по количеству ненулевых эле-
ментов, чем вторая форма, где ограничения (2) и (3) переписаны так, что вклю-
чают равенство для входящих в вершину и выходящих из вершины дуг.
4. Кратчайший гамильтонов путь. Если ,k n то из ограничения (4) сле-
дует, что все булевы переменные
iy равны единице, т. е. n -вершинный путь в
орграфе ,n nD совпадает с гамильтоновым путем. Нахождению кратчайшего га-
мильтонова пути соответствует решение следующей задачи смешанного булева
линейного программирования: найти
*
, ,
1 1,
min
i ij ij
n n
k ij ij
y x z
i j j i
d d x
(12)
при ограничениях
http://12.6.2.0/
http://12.6.2.0/
О КРАТЧАЙШЕМ k -ВЕРШИННОМ ПУТИ В ОРИЕНТИРОВАННОМ ГРАФЕ
Теорія оптимальних рішень. 2016 101
1 1
1, 1
n n
ai ia
i i
x x
, (13)
1, 1,
1, 1, 1, ,
n n
ai ji ij ia
j j i j j i
x x x x i n
, (14)
0, 1,...,ai aiz nx i n , (15)
1
n
ai
i
z n
, (16)
( 1) 0, , 1,..., ,ij ijz n x i j n i j , (17)
1, 1,
1, 1, ,
n n
ai ji ij
j j i j j i
z z z i n
, (18)
0 1, 0 1, 1, , , 0 1, , 1,..., ,ai ia ijx x i n x i j n i j , (19)
0, 1,..., , 0, , 1,..., ,ai ijz i n z i j n i j . (20)
Здесь ограничения (15) означают, что по дуге из вершины ,a для которой
1,aix перевозится не больше, чем n единиц продукта. Поскольку в каждой из
тех вершин орграфа ,n nD , через которые проходит путь, требуется оставлять
ровно единицу продукта, то ограничения (17) означают, что по дуге между вер-
шинами i и j , если 1ijx , достаточно перевозить не более, чем ( 1)n единиц
продукта. Если в ограничениях (17) границу на потоки по дугам сделать равны-
ми ,n то задачу для нахождения гамильтонового пути можно записать в более
экономной форме, чем задача (12) – (20). Для орграфа, включающего орграф
,n nD и «нулевую» вершину, эта задача имеет следующий вид: найти
*
, ,
1 1,
min
i ij ij
n n
k ij ij
y x z
i j j i
d d x
(21)
при ограничениях
0, 0,
1, 1, 0,1, ,
n n
ji ij
j j i j j i
x x i n
, (22)
0, , 0,1,..., ,ij ijz nx i j n i j , (23)
0
1
n
i
i
z n
, (24)
0, 1,
1, 1, ,
n n
ji ij
j j i j j i
z z i n
, (25)
0 1, 0, , 0,1,..., ,ij ijx z i j n i j . (26)
Выводы. Для нахождения кратчайшего пути, который проходит через
заданное количество вершин полного орграфа в статье рассмотрена формули-
П.И. СТЕЦЮК, Э.С. ДОЛИНСКИЙ, И.И. ПАРАСЮК
102 Теорія оптимальних рішень. 2016
ровка задачи смешанного булева линейного программирования. Она справедли-
ва для неполного орграфа, если его дополнить отсутствующими дугами, а зна-
чения длин для них установить равными сумме длин дуг неполного орграфа.
Если путь должен проходить через все вершины орграфа, то решение построен-
ной задачи определяет кратчайший гамильтонов путь в ориентированном графе.
Для небольших орграфов предложенную модель можно использовать при
выборе оптимальных маршрутов в режиме реального времени. Ее можно при-
менять и тогда, когда начальная и конечная вершины заданы. Для этого доста-
точно зафиксировать равными единице значения дуг, которые связывают вер-
шину a с начальной и конечной вершинами орграфа ,n nD .
Работа выполнена при поддержке проектов НАН Украины
(№ 0114U001055) и МОН Украины (№ 0115U001906).
П.І. Стецюк, Е.С. Долинський, І.І. Парасюк
ПРО НАЙКОРОТШИЙ k -ВЕРШИННИЙ ШЛЯХ У ОРІЄНТОВАНОМУ ГРАФІ
Наводиться формулювання задачі змішаного булевого лінійного програмування для найко-
ротшого шляху, який проходить через задану кількість вершин орграфа. Наведено результати
обчислювальних експериментів з програмами розв'язання задач дискретного програмування з
NEOS-солвера. Обговорюється формулювання задачі для знаходження найкоротшого
гамільтонового шляху в орієнтованому графі.
P.І. Stetsyuk, E.S. Dolynskyi, I.I. Parasiuk
ON THE SHORTEST K-NODE PATH IN A DIRECTED GRAPH
We present the formulation of the mixed Boolean linear programming problem for the shortest path,
which passes through the given number of nodes of the digraph. The results of numerical experi-
ments of solution of discrete programming problems using NEOS-solver are given. We discuss the
formulation of the problem for finding the shortest Hamiltonian path in a directed graph.
1. Стецюк П.И. Формулировки задач для кратчайшего k-вершинного пути и кратчайшего
k-вершинного цикла в полном графе // Кибернетика и системный анализ. – 2016. – № 1. –
С. 78 – 82.
2. Стецюк П.И., Долинский Э.С. Кратчайший k-вершинный путь в ориентированном графе
// Інформатика та системні науки (ІСН-2016): матеріали VII Всеукр. наук.-практ. конф. за
міжнародною участю (м. Полтава, 10 – 12 березня 2016 року) /за ред. Ємця О.О. –
Полтава: ПУЕТ, 2016. – С. 293 – 299.
3. Стецюк П.И., Лефтеров А.В., Федосеев А.И. Кратчайший k-вершинный путь // Компью-
терная математика. – К.: Ин-т кибернетики имени В.М. Глушкова НАН Украины. – 2015.
– № 2. – С. 3 – 11
4. NEOS Solver [Электронный ресурс]: http://www.neos-server.org/neos/solvers/. – Режим
доступа: свободный.
http://www.neos-server.org/neos/solvers/
О КРАТЧАЙШЕМ k -ВЕРШИННОМ ПУТИ В ОРИЕНТИРОВАННОМ ГРАФЕ
Теорія оптимальних рішень. 2016 103
5. Fourer R. AMPL A Modeling Language for Mathematical Programming, Second Edition /
R. Fourer, D. Gay, B. Kernighan. – Belmont: Duxburry Press, 2003. – 517 p.
Получено 12.04.2016
|