Вісник Придніпровської державної академії будівництва та архітектури, 2015, № 11 (212)
ISSN 2312-2676
УДК624.953.014.2.004.15
МОДЕЛИРОВАНИЕ КОМБИНАТОРНЫХ ЗАДАЧ НА ГРАФАХ В ТЕРМИНАХ ЗАДАЧИ МАТЕМАТИЧЕСКОГО ПРОГРАММИРОВАНИЯ
СЕМЕНЕЦ С. Н.1*, к. т. н, доц.,
НАСОНОВА С. С.2* , к .т. н, доц.
1 Кафедра прикладной математики, Г осударственное высшее учебное заведение «Приднепровская государственная академия строительства и архитектуры», ул. Чернышевского, 24-а, 49600, Днепропетровск, Украина, тел. +38(056)756-34-10, e-mail: semenets.serg@list.ru, ORCID ID: 0000-0003-0477-8795
2 Кафедра высшей математики, Государственное высшее учебное заведение «Украинский государственный химикотехнологический университет», пр. Гагарина, 8, 49005, Днепропетровск, Украина, тел. +38 (0562) 47-24-64,
e-mail: ms.nasonova@list.ru, ORCID ID: 0000-0002-0920-7417
Аннотация. Постановка проблемы. Различают три основных подхода к решению комбинаторных задач на графах. Первый предусматривает разработку соответствующих алгоритмов на основе методов теории графов. Второй и третий подходы основаны на приведении исходной задачи, сформулированной в терминах графов, к задаче оптимизации. При этом для решения полученной задачи оптимизации в рамках второго подхода разрабатываются соответствующие алгоритмы оптимизации, а в рамках третьего - используются прикладные компьютерные технологии, инструментальная среда которых адаптирована к решению задач оптимизации. Для компьютерной реализации первого и второго подходов требуется специальное программное обеспечение, разработка которого доступна далеко не каждому пользователю. Кроме того, в случае уточнения постановки той или иной типовой задачи на графах (например, путем введения дополнительных ограничений) обычно оказывается необходимой модификация известных алгоритмов ее решения и соответствующая ревизия программного обеспечения. Все это в значительной мере затрудняет на практике проведение численных экспериментов на графовых моделях. Наиболее удобным для широкого круга пользователей является третий подход к решению комбинаторных задач на графах, поскольку он не требует для своей компьютерной реализации разработки специальных алгоритмов и соответствующего программного обеспечения. Однако вопросы согласования получаемой модели оптимизации и возможностей применяемой компьютерной технологии требуют дальнейшей научной и практической проработки. В данной статье рассматривается один из возможных способов реализации третьего подхода к решению комбинаторных задач на графах, предусматривающий приведение исходной графовой модели к задаче математического программирования и последующее решение последней в инструментальной среде надстройки MS Excel «Поиск решения». Цель статьи - показать результативность и достаточную общность такого способа решения комбинаторных задач на графах. Выводы. Полученные в статье результаты показывают, что многие комбинаторные задачи, сформулированные в терминах графов, могут быть достаточно легко переформулированы в виде задачи математического программирования. Получаемая при этом оптимизационная модель, как правило, оказывается линейной относительно неизвестных. Для численной реализации таких моделей хорошо приспособлена надстройка MS Excel «Поиск решения», что делает табличный процессор Excel эффективной компьютерной технологией решения комбинаторных задач на графах даже в случае их достаточно большой размерности.
Ключевые слова: граф, модель, оптимизация, комбинаторные задачи на графах, задача математического программирования.
МОДЕЛЮВАННЯ КОМБІНАТОРНИХ ЗАДАЧ НА ГРАФАХ У ТЕРМІНАХ ЗАДАЧІ МАТЕМАТИЧНОГО ПРОГРАМУВАННЯ
СЕМЕНЕЦЬ С. М.1*, к. т. н, доц,
НАСОНОВА С. С.2* , к. т. н, доц.
1 Кафедра прикладної математики, Державний вищий навчальний заклад «Придніпровська державна академія будівництва та архітектури», вул. Чернишевського, 24-а, 49600, Дніпропетровськ, Україна, тел. +38 (056) 756-34-10,
e-mail: semenets.serg@list.ru, ORCID ID: 0000-0003-0477-8795
2* Кафедра вищої математики, Державний вищий навчальний заклад «Український державний хіміко-технологічний університет», пр. Гагаріна, 8, 49005, Дніпропетровськ, Україна, тел. +38 (0562) 47-24-64, e-mail: ms.nasonova@list.ru, ORCID ID: 0000-0002-0920-7417
Анотація. Постановка проблеми. Розрізняють три основні підходи до вирішення комбінаторних задач на графах. Перший передбачає розроблення відповідних алгоритмів на основі методів теорії графів. Другий і третій підходи засновані на приведенні вихідної задачі, сформульованої в термінах графів, до задачі оптимізації. При цьому для розв’язання отриманої задачі оптимізації у рамках другого підходу розробляються відповідні алгоритми оптимізації, а у рамках третього застосовуются прикладні комп'ютерні технології, інструментальне середовище яких адаптоване до розв’язання таких задач. Для комп'ютерної реалізації першого і другого підходів потрібне спеціальне програмне забезпечення, розроблення якого доступне далеко не кожному користувачеві. Крім того, у
73
Вісник Придніпровської державної академії будівництва та архітектури, 2015, № 11 (212)
ISSN 2312-2676
разі уточнення постановки тієї або іншої типової задачі на графах (наприклад, шляхом уведення додаткових обмежень) зазвичай виявляється необхідною модифікація відомих алгоритмів її розв’язання і відповідна ревізія програмного забезпечення. Усе це значною мірою утрудняє на практиці проведення числових експериментів на графових моделях. Найбільш зручним для широкого кола користувачів є третій підхід до розв’язання комбінаторних задач на графах, оскільки він не вимагає для своєї комп'ютерної реалізації розроблення спеціальних алгоритмів і відповідного програмного забезпечення. Проте питання узгодження отриманої моделі оптимізації і можливостей вживаної комп'ютерної технології вимагають подальшого наукового і практичного опрацювання. У даній статті розглядається один із можливих способів реалізації третього підходу до розв’язання комбінаторних задач на графах, що передбачає приведення вихідної графової моделі до задачі математичного програмування і подальше розв’язання останньої в інструментальному середовищі надбудови MS Excel «Пошук рішення». Мета статті - показати результативність і достатню спільність такого способу розв’язання комбінаторних задач на графах. Висновки. Отримані в статті результати показують, що багато комбінаторних задач, сформульованих у термінах графів, можуть бути досить легко переформульовані у вигляді задачі математичного програмування. Отримана при цьому оптимізаційна модель, як правило, виявляється линійною щодо невідомих. Для числової реалізації таких моделей добре адаптована надбудова Excel «Пошук рішення», що робить табличний процесор Excel ефективною комп'ютерною технологією розв’язання комбінаторних задач на графах навіть у разі їх досить великої розмірності.
Ключові слова: граф, модель, оптимізація, комбінаторні задачі на графах, задача математичного програмування
DESIGN OF COMBINATORICS TASKS ON COLUMNS IN TERMS OF TASK MATHEMATICAL PROGRAMMING
SEMENETS S. N.1*, Cand. Sc. (Tech), Ass. Prof.,
NASONOVA S. S.2*, Cand. Sc. (Tech)., assoc. Prof.
1 Department of the applied mathematics, State Higher Education Establishment «Pridneprovs’ka State Academy of Civil Engineering
and Architecture», 24-A, Chernishevskogo str., Dnipropetrovsk 49600, Ukraine, тел. +38 (056) 756-34-10,
e-mail: semenets.serg@list.ru, ORCID ID: 0000-0003-0477-8795
2 Department of higher mathematics, State Higher Education Establishment «Ukrainian State chemical - technological university»,
Gagarin str., 8, Dnipropetrovsk 49005, Ukraine, tel. +38(0562) 47-24-64, e-mail: ms.nasonova@list.ru,
ORCID ID: 0000-0002-0920-7417
Summary. Raising of problem. To the decision of combinatorics tasks on columns distinguish three basic approaches. The first envisages development of corresponding algorithms on the basis of methods of theory of the graphs. Second and third approaches are based on bringing the initial task over, set forth in terms of counts, to the task of optimization. Thus for the decision of the got task of optimization within the framework of the second approach the proper algorithms of optimization are developed, and within the framework of the third - the applied computer technologies the instrumental environment of which is adapted to the decision of tasks of optimization are used. For computer realization of the first and second approaches the special software development of which is accessible to far not every user is required. In addition, in the case of clarification of raising of one or another model task on columns (for example, by introduction of additional limitations) usually modification of the known algorithms of its decision and proper revision of software appears necessary. All this makes it very difficult in practice, the implementation of numerical experiments on a graph model. The most convenient for a wide range of users is a third approach to the solution of combinatorial problems on graphs, since it does not require for its computer implementation, the development of specific algorithms and software. However, issues of harmonization and optimization of the resulting model the ability to apply computer technology require further research and practical study. In this article one of possible methods of realization of the third going is examined near the decision of combinatorics tasks on columns, envisaging bringing an initial count model over to the task of the mathematical programming and subsequent decision of the last in an instrumental environment building on of Excel "Solver". Purpose of the article - to show effectiveness and sufficient community of such method of decision of combinatorics tasks on columns. Conclusion. The results got in the article show that many combinatorics tasks set forth in terms of counts, it is undifficult reformulate as a task of the mathematical programming. The optimization model got here, as a rule, appears linear relatively unknown. For numeral realization of such models building on of MS Excel is well adjusted "Solver", that does the tabular processor of Excel effective computer technology of decision of combinatorics tasks on columns even in case of their large enough dimension.
Keywords: graph, model, optimization, combinatorial problems on graphs, mathematical programming problem
Постановка проблемы. Комбинаторными задачами на графах называются задачи пересчета и перечисления, сформулированные в терминах графов. При этом граф вы-
ступает в роли модели исследуемого объекта, а решение конкретной задачи сводится к поиску некоторого подграфа, пути, цикла, множества вершин или ребер, обладающих тре-
74
Вісник Придніпровської державної академії будівництва та архітектури, 2015, № 11 (212)
ISSN 2312-2676
буемыми свойствами. Обычно эти требования задаются в виде некоторого критерия выбора наилучшего в определенном смысле решения из множества возможных. Тем самым, комбинаторные задачи на графах по своей сути -это задачи принятия решений. В настоящее время различные графовые модели широко используются для формализации многих прикладных задач как технического, так и экономического характера [1-4], а разработка эффективных методов численной реализации таких моделей представляет теоретический и практический интерес [2; 6].
Различают три основных подхода к решению комбинаторных задач на графах. Первый предусматривает разработку соответствующих алгоритмов на основе методов теории графов [4-8]. Второй и третий подходы основаны на приведении исходной задачи, сформулированной в терминах графов, к задаче оптимизации [9; 11]. При этом для решения полученной задачи оптимизации в рамках второго подхода разрабатываются соответствующие алгоритмы оптимизации, а в рамках третьего - используются прикладные компьютерные технологии, инструментальная среда которых адаптирована к решению таких задач.
Для компьютерной реализации первого и второго подходов требуется специальное программное обеспечение, разработка которого доступна далеко не каждому пользователю. Кроме того, в случае уточнения постановки той или иной типовой задачи на графах (например, путем введения дополнительных ограничений) обычно оказывается необходимой модификация известных алгоритмов ее решения и соответствующая ревизия программного обеспечения. Все это в значительной мере затрудняет проведение на практике численных экспериментов на графовых моделях.
Наиболее удобным для широкого круга пользователей является третий подход к решению комбинаторных задач на графах, поскольку он не требует для своей реализации разработки специальных алгоритмов и соответствующего программного обеспечения. Однако вопросы согласования получаемой модели оптимизации и возможностей применяемой компьютерной технологии для ее реа-
лизации требуют дальнейшей научной и практической проработки.
В данной статье рассматривается один из возможных способов реализации третьего подхода к решению комбинаторных задач на графах, предусматривающий приведение исходной графовой модели к задаче математического программирования и последующее решение последней в инструментальной среде надстройки MS Excel «Поиск решения». Цель статьи - показать результативность и достаточную общность такого способа решения комбинаторных задач на графах.
Основная часть. В данной статье рассматриваются четыре классические графовые модели, которые приводятся к задаче математического программирования, а для численного решения последней используется MS Excel.
1. Задача о наименьшем доминирующем множестве вершин
Задача о наименьшем доминирующем множестве вершин графа формулируется следующим образом. Пусть G = {V, Щ - некоторый граф, который задан множеством своих вершин V и матрицей смежности S . Требуется найти доминирующее множество вершин графа, имеющее наименьшее число элементов. (Доминирующим множеством вершин U графа G = (V, Щ называется такое
подмножество множества вершин V , что для каждой вершины vi, не входящей в U , существует ребро, соединяющее хотя бы одну вершину множества U с вершиной vt). Если трактовать вершины графа как охраняемые объекты, а элементы матрицы смежности sj}.
рассматривать как заданные бинарные параметры, равные 1, если объект v j виден (может контролироваться) из объекта vi , и равные 0 - в противном случае, то получим известную задачу о часовых, в которой требуется расставить часовых по охраняемым объектам так, чтобы все объекты были взяты под контроль при минимальном количестве часовых.
Пусть n - число вершин графа G; xi (i = 1, n)- бинарная переменная, равная 1,
75
Вісник Придніпровської державної академії будівництва та архітектури, 2015, № 11 (212)
ISSN 2312-2676
если вершина v, входит в минимальное доминирующее множество, и равная 0 - в противном случае. Тогда задачу о наименьшем доминирующем множестве вершин графа можно записать в виде следующей оптимизационной модели:
xt ^ min
i=1
n __
Е xisv -1 j=1 n;
i=1
x, є {0,1}, i = 1, n.
Данная модель - это задача линейного целочисленного программирования. Целевой функцией определяется число вершин, включенных в доминирующее множество. Первая группа из n ограничений - это условия того, что каждая вершина, не входящая в доминирующее множество, должна иметь общее ребро хотя бы с одной вершиной из доминирующего множества. Вторая группа из n ограничений - это условия двоичности переменных x, .
В качестве примера найдем наименьшее доминирующее множество вершин графа G1, показанного на рисунке 1. Модель оптимизации при этом содержит 7 неизвестных, а ее численная реализация в инструментальной среде MS Excel дала следующие результаты: x1 = 0 ; x2 = 1; x3 = 0 ; x4 = 0; x5 = 0 ; x6 = 0;
x7 = 0. Это значит, что наименьшее доминирующее множество вершин графа G1 состоит из вершин 2 и 6, т. е. Umin = {2,6}.
Следует отметить, что полученное оптимальное решение не является единственным, поскольку граф G1 имеет еще одну пару вершин {2,4}, также образующую доминирующее множество.
2. Задача о кратчайшем пути
Задача о кратчайшем пути на графе формулируется следующим образом. Пусть G = (У, Ж) - связный граф, который задан
множеством своих вершин У и матрицей смежности S . Известна весовая матрица графа P, элементы которой pij задают вес
(обычно трактуемый как длина) соответствующих ребер. Даны две произвольные вершины vt, vq є У . Требуется найти путь наименьшего веса (кратчайший путь) из vt в vq.
Сформулируем задачу о кратчайшем пути как задачу математического программирования. Пусть n = |У| - число вершин графа; x- -
бинарная переменная, равная 1, если ребро (i, j) с Ж принадлежит оптимальному маршруту из vt в vq, и равную 0 - в противном
случае. Тогда, учитывая то, что все маршруты из vt в vq, содержащие циклы, заведомо не
являются оптимальными, задачу о кратчайшем пути можно записать в виде следующей оптимизационной модели:
n n
ЕЕ xjPjsj ^ min
i=1 j=1
n n
Е xs =0; Е xjsj =1;
i=1 j=1
nn
Е x4s>q =1; Е — =0;
i=1 j=1
n n __
Е x*s* = Е j-, k =1 n k *t, k * q;
i=1 j=1
n n __
Еxksik+Еxkjskj <2, k =1, n k * t, k * q;
i=1 j=1
x- Є {0,1}, i, j є 1, n.
Данная модель относится к классу задач линейного целочисленного программирования. Целевой функцией задается вес маршрута, связывающего вершины vt и vq. Первая
пара ограничений - это условия того, что степень входа начальной вершины должна быть равна 0, а степень выхода равна 1. Вторая пара ограничений - это условия того, что степень входа конечной вершины должна быть равна 1, а степень выхода равна 0. Следующие две группы ограничений - это балансо-
76
Вісник Придніпровської державної академії будівництва та архітектури, 2015, № 11 (212)
ISSN 2312-2676
вые условия для промежуточных вершин. Смысл их состоит в том, что для каждой промежуточной вершины, через которую проходит маршрут, должно выполняться условие равенства входящих и выходящих ребер и при этом количество инцидентных ребер не может быть больше 2 (в любую промежуточную вершину можно зайти и выйти из нее только 1 раз). Последняя группа ограничений задает условия двоичности переменных х..
Решением сформулированной задачи являются оптимальные значения неизвестных х..,
которые определяют ребра графа, составляющие кратчайший путь из vt в vq, и, соответственно, вес этого маршрута.
2 3 4
Рис. 2. Граф G2
Таблица 1
Весовая матрица графа G2
1 2 3 4 5 6 7 8 9
1 10 5 1
2 15 5
3 40 10
4 20 5
5 20 25
6 25
7 10 10
8 20 15
9 25 30
В качестве примера рассмотрим задачу выбора кратчайшего пути из вершины 1 в вершину 5 на смешанном графе G2, изображенном на рисунке 2. Весовая матрица, задающая длину ребер, показана в таблице 1.
Задача выбора кратчайшего пути на графе G2 имеет 16 неизвестных. Ее решение в среде MS Excel привело к следующим результатам:
X12 = 1; X18 : =0; X19 = 0; X23 = 1; X29 =0
X87 = 0; X89 = 0; X93 = 0; X97 =0; X37 =1
х73 = 0; X34 =0; X46 =0; X45 =0; X76 =1
X65 = 1.
Таким образом, получили такой кратчайший маршрут, связывающий вершины 1 и 5: 1-2-3-7-6-5 (см. рис. 2). Его протяженность равна 70.
3. Задача о кратчайшем гамильтоновом цикле
Задача о кратчайшем гамильтоновом цикле на графе формулируется следующим образом. Пусть G = V, E - простой связный граф,
имеющий, по крайней мере, два гамильтоновых контура, задан множеством своих вершин V и матрицей смежности S. Известна весовая матрица графа P, элементы которой р . задают вес соответствующих ребер. Требуется найти гамильтонов цикл наименьшего веса (кратчайший гамильтонов цикл). Если интерпретировать вершины как населенные пункты, ребра - как дороги, их соединяющие, а вес р.. - как длину соответствующей дороги, то получим известную задачу коммивояжера, в которой бродячему торговцу требуется обойти несколько городов и вернуться обратно, посещая каждый город только 1 раз, и при этом затратить минимальное время на переходы.
Сформулируем задачу о кратчайшем гамильтоновом цикле как задачу математического программирования. Пусть n = |V| - число вершин графа; I = 1, n; J - некоторое подмножество множества I ( J с I); х . - бинарная переменная, равная 1, если ребро (i, j) из E принадлежит оптимальному гамильтонову контуру, и равную 0 - в противном случае. Тогда задачу о кратчайшем гамильтоновом цикле можно записать в виде следующей оптимизационной модели:
n n
ЕЕ xjPjsj ^ min
i=1 j=1
n
Е .=1.Є I;
j=1
n
Е xa =1.Є I;
j=1
Е Е хл -1,2 - И -n - 2J с I;
ieI jeI\И
х. U j Є I.
77
Вісник Придніпровської державної академії будівництва та архітектури, 2015, № 11 (212)
ISSN 2312-2676
Данная модель - это задача линейного целочисленного программирования. Целевой функции задается вес гамильтонова контура. Первая группа из n ограничений - это условия того, что степень входа каждой вершины должна быть равна 1 (в любую вершину можно войти только 1 раз). Вторая группа из n ограничений - это условия того, что степень выхода каждой вершины должна быть равна 1 (из любой вершины можно выйти только 1 раз). Следующая группа ограничений - это условия, исключающие возможное появление неполных циклов. Последняя группа ограничений задает условия двоичности переменных . Решением сформулированной задачи
являются оптимальные значения неизвестных хц, которые определяют ребра графа, образующие гамильтонов цикл наименьшего веса.
В качестве примера рассмотрим задачу выбора кратчайшего гамильтонова цикла на полном графе G3, изображенном на рисунке 3. Весовая матрица, задающая длину ребер, показана в таблице 2.
2
Рис. 3. Граф G3
Задача выбора кратчайшего гамильтонова цикла на графе G3 имеет 20 неизвестных. Ее решение в среде MS Excel привело к сле-
х — о х — 0
дующим результатам: 12 ; 13 ;
Х14 — 0 . > Х15 — 1 . > х21 — 0. > х23
Х25 — 0 . > х31 —0 . х32 * —1 . > х,
х41 — 1. > Х42 — 0 . > Х43 = 0 . > Х45
х52 — 0 . Х53 — 1. Х54 —0
v24
34
*35
51
Таким образом, получили такой кратчайший гамильтонов цикл: 1-5-3-2-4-1 (см. рис. 3). Его протяженность равна 60.
Таблица 2
Весовая матрица графа G3
1 2 3 4 5
1 30 35 10 15
2 30 10 15 40
3 35 10 35 10
4 10 15 35 20
5 15 40 10 20
4. Задача о максимальном потоке в сети Транспортной системой называется транспортная инфраструктура, включающая в себя транспортные узлы (терминалы) и транспортные коммуникации (коридоры), предназначенная для транспортировки некоторого продукта ( продукт здесь понимается в широком смысле, это может быть, например, нефть, газ, лес, поезда, вагоны, пароходы, самолеты и т. д.). Транспортные коммуникации служат для перемещения продукта, а транспортные узлы - для перераспределения (гру-зо)потока продукта. Сеть (или транспортная сеть) - это связный ориентированный взвешенный граф. Сети (их вершины обычно называют узлами) традиционно используются для моделирования транспортных систем. При этом ребрам ставятся в соответствие транспортные коммуникации, а вершинам (узлам) - транспортные узлы. Истоком в сети называется узел, степень входа которого равна 0. Исток рассматривается как источник, из которого выходит продукт. Стоком в сети называется узел, степень выхода которого равна 0. Сток рассматривается как приемник, в который приходит продукт. Пропускной способностью ребра (i, j) называется максимальное количество продукта pij., которое может
пропустить ребро за единицу времени. Аналогично, пропускной способностью сети называется максимальное количество продукта, которое может пропустить сеть за единицу времени. Поток в сети - это функция, которая каждому ребру сети (i, j) ставит в соответствие неотрицательное число xjj < ptj, равное
фактическому количеству продукта, проходящего через ребро за единицу времени. Величина потока в сети оценивается количеством продукта, входящего в сток за единицу времени. Поток называется максимальным, если его величина равна пропускной способ-
78
Вісник Придніпровської державної академії будівництва та архітектури, 2015, № 11 (212)
ISSN 2312-2676
ности сети.
Задача о максимальном потоке в сети формулируется следующим образом. Пусть G = V, E - сеть, которая определена множеством своих узлов V , матрицей смежности S и весовой матрицей P, элементы которой pjj
задают пропускную способность соответствующих ребер. Заданы исток и сток сети, соответственно узлы vt vq. Требуется найти
максимальный поток в сети.
Сформулируем задачу о максимальном потоке в сети как задачу математического программирования. Пусть n = |V| - число узлов сети; Ху (0 <Ху < Ру )- переменная, равная
фактическому количеству продукта, проходящего через ребро (i, у) с E за единицу времени. Тогда задачу о максимальном потоке можно записать в виде следующей оптимизационной модели:
n
Е XiqSiq ^ тІП
i= 1
n n
у = Е xiqsiq;
j=1 i=1
n n __
Е x*s>k = Е У-, k =1 n k *t, k * q;
i =1 j = 1
0 < xj < pj, i, j є 1, n.
Данная модель - это классическая задача линейного программирования. Целевая функция определяет величину потока в сети. Первое ограничение - это условия того, что количество продукта, выходящего из истока, должно быть равно количеству продукта, заходящему в сток (рассматривается идеальная сеть без потерь).
Следующая группа из n - 2 ограничений - это балансовые условия для промежуточных узлов. Смысл их состоит в том, что в каждой промежуточный узел должно войти и выйти из него одинаковое количество продукта.
Последняя группа ограничений - это граничные условия значений неизвестных xtj .
Решением сформулированной задачи являются оптимальные значения неизвестных Х у ,
которые определяют количество продукта,
проходящего через соответствующие ребра, а также величину максимального потока в сети. В качестве примера найдем максимальный поток сети, показанной на рисунке 4. Пропускная способность ребер задана весовой матрицей (табл. 3.).
Таблица 3
Весовая матрица сети G4
1 2 3 4 5 6 7 8 9 10
1 20 20
2 30
3 20
4 15 30
5 5 10
6 10
7 20
8 30
9 20 20
10
2 20 4 20 7
Рис. 4. Сеть G4
Задача о максимальном потоке на графе G4 имеет 13 неизвестных. Ее решение в среде MS Excel привело к следующим результатам:
x12 = 20; x13 = 15; x24 = 20 ; x35 = 15; x47 = 20;
x46 = 0 ; x58 = 10 ; x56 = 5 ; x69 = 5 ; x97 = 0 ;
x710 = 20; x98 = 5; x810 = 15. Таким образом, пропускная способность сети G5 равна x710 + x810 = 35. Соответствующее этой величине пропускной способности распределение продукта по ребрам показано на рисунке 4.
Выводы. Полученные в статье результаты показывают, что многие комбинаторные задачи, сформулированные в терминах графов, могут быть достаточно легко переформулированы в виде задачи математического программирования. Получаемая при этом оптимизационная модель, как правило, оказывается линейной относительно неизвестных. Для численной реализации таких моделей хо-
79
Вісник Придніпровської державної академії будівництва та архітектури, 2015, № 11 (212)
ISSN 2312-2676
рошо приспособлена надстройка MS Excel технологией решения комбинаторных задач
«Поиск решения», что делает табличный про- на графах даже в случае их достаточно боль-
цессор Excel эффективной компьютерной шой размерности.
ВИКОРИСТАНІ ДЖЕРЕЛА
1. Современная логистика / Джеймс С. Джонсон, Дональд Ф. Вуд, Дэниел Л. Вордлоу, Поль Р. Мэрфи-мл. ; [пер. с англ. А. И. Мороза, С. Г. Тригуб]. - 7-е изд. - Москва : Вильямс, 2002. - 615 с.
2. Ловас Л. Прикладные задачи теории графов. Теория паросочетаний в математике, физике, химии / Л. Ловас, М. Пламмер ; пер. с англ. Г. П. Гаврилова [и др.] ; под ред. Г. П. Гаврилова. - Москва : Мир, 1998. - 653 с. : ил.
3. Касьянов В. Н. Графы в программировании: обработка, визуализация и применение / В. Н. Касьянов, В. А. Евстигнеев. - Санкт-Петербург : БХВ-Петербург, 2003. - 1104 с. - (Научное издание).
4. Костюкова Н. И. Графы и их применение. Комбинаторные алгоритмы для программистов / Н. И. Костюкова. -Москва, 2007. - 310 с. - (Основы информационных технологий).
5. Майника Э. Алгоритмы оптимизации на сетях и графах : пер. с англ. / Э. Майника. - Москва : Мир, 1981. -323 с.
6. Алгоритмы: построение и анализ : пер. с англ. / Т. Кормен, Ч. Лейзерсон, Р. Ривест, K. Штайн. - Москва : Вильямс, 2006. - 1296 с.
7. Зыков А. А. Основы теории графов / А. А. Зыков. - Москва : Вузовская книга, 2004. - 664 с.
8. Горбатов В. А. Фундаментальные основы дискретной математики. Информационная математика / В. А. Горбатов. - Москва : Наука : Физматлит, 2000. - 544 с.
9. Берж К. Теория графов и ее применение / К. Берж ; пер. с фр. и послесл. А. А. Зыкова ; под ред. И. А. Вайнштейна. - Москва : Иностран. лит., 1962. - 319 с.
10. Кофман А. Введение в прикладную комбинаторику / Кофман А. ; пер. с фр. В. П. Мякишева, В. Е. Тараканова ; под. ред. Б. А. Севастьянова. - Москва : Наука, 1975. - 479 с.
11. Ахо А. Построение и анализ вычислительных алгоритмов : пер. с англ. / А. Ахо, Дж. Хопкрофт, Дж. Ульман ; пер. с англ. А. О. Слисенко ; под ред. Ю. В. Матиясевича. - Москва : Мир, 1979. - 536 с.
12. Басакер Р. Конечные графы и сети : пер. с англ. / Р. Басакер, Т. Саати. - Москва : Наука, 1974. - 368 с.
REFERENCES
1. Johnson J.C., Wood D.F., Vordlou D.L. and Murphy-ml P.R. Sovremennaya logistika [Modern Logistics]. Moskow: Vil'yams, 2002, 615 p. (in Russian).
2. Lovas L. and Plammer M. Prikladnye zadachi teorii grafov. Teoriya parosochetaniy v matematike, fizike, khimii [Applicated tasks of graph theory. Matchings theory in mathematics, physics, chemistry]. Moskow: Mir, 1998, 653 p. (in Russian).
3. Kas'yanov V.N. and Evstigneev V.A Grafy v programmirovanii: obrabotka, vizualizatsiya i primenenie [Graphs in programming: processing, visualization and application]. Sankt-Peterburg: BKHV Peterburg, 2003, 1104 p. (in Russian).
4. Kostyukova N.I. Grafy i ikh primenenie. Kombinatornye algoritmy dlya programmistov [Graphs and their application. Combinatorial algorithms for programmers]. Moskow, 2007, 310 p. (in Russian).
5. Majnika E. Algoritmy optimizatsii na setyakh i grafakh [Optimization algorithms on networks and graphs]. Moskow: Mir, 1981, 323 p. (in Russian).
6. Kormen T., Lejzerson Ch., Rivest R. and Shtain K. Algoritmy: postroenie i analiz [The algorithms for working with graphs]. Moskow: Vil'yams, 2006, 1296 p. (in Russian).
7. Zykov A.A. Osnovy teorii grafov [Fundamentals of graph theory]. Moskva: Vuzovskaya kniga, 2004, 664 p. (in Russian).
8. Gorbatov V.A. Fundamental’nye osnovy diskretnoy matematiki. Informatsionnaya matematika [Fundamentals of discrete mathematics. Information Mathematics]. Moskow: Nauka, Fizmatlit, 2000, 544 p. (in Russian).
9. Berzh K. Teoriya grafov i ee primenenie [Graph theory and its applications]. Moskow: Inostran. lit., 1962, 319 p. (in Russian).
10. Kofman A. Vvedenie v prikladnuyu kombinatoriku [Introduction to applied combinatorics]. Moskow: Nauka, 1975, 479 p. (in Russian).
11. Akho A., Khopkroft D. and Ul'man D. Postroenie i analiz vychislitel’nykh algoritmov [Construction and analysis of computational algorithms]. Moskow: Mir, 1979, 536 p. (in Russian).
12. Basaker R. and Saati T. Konechnye grafy i seti [Finishing graphs and networks]. Moskow: Nauka, 1974, 368 p. (in Russian).
Рецензент: д-р т. н., проф. Н. М. Ершова
Надійшла до редколегії: 29.08.2015 р. Прийнята до друку: 18.10.2015 р.
80