ДонНТУ   Портал магистров

Реферат по теме выпускной работы

Содержание

Введение

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

Бурное развитие вычислительной техники позволяет решать все более сложные теоретические и прикладные задачи, в свою очередь требует совершенствования методов их решения. Широкое распространение технологии параллельных и распределенных вычислений позволяет по-новому взглянуть на решение многих задач, а также на методы и алгоритмы, раньше казались бесперспективными из-за высокой вычислительной сложности. В задачи высокой вычислительной сложности относятся частности задачи оптимизации. Одной из таких задач является задача поиска кратчайшего пути на графе. Задача имеет много практических применений, в их число можно отнести поиск кратчайшего пути между городами, поиск пути передачи информации, который обеспечивает минимальную стоимость и минимальное количество времени передачи или максимальную надежность при распространении информации в разветвленной сети.
    Целью магистерской работы является разработка метода поиска кратчайших путей в помеченном двухуровневом графе и программная реализация разработанного метода.

1. Цель и задачи исследования, планируемые результаты

Объектом исследования в работе является двухуровневый граф с N вершинами. Каждая вершина графа первого уровня выступает графом второго уровня с M вершинами.

Предметом исследования является метод поиска кратчайших путей в помеченном двухуровневом графе.

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

Входными данными для метода является помеченный двухуровневый граф, выходными данными является пометка кратчайшего пути между заданными вершинами, а также качество этого пути.

2. Актуальность темы

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

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


3. Общие сведения о графах

Граф  это совокупность объектов со связями между ними. Объекты рассматриваются как вершины, или узлы графа, а связи  как дуги, или ребра.

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

Граф G  это упорядоченная пара G = (V; E), для которой выполняются следующие условия: V  множество вершин или узлов E  множество пар (в случае неориентированного графа  неупорядоченных) вершин, которые называют ребрами V и E обычно считаются конечными множествами.

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

Неориентированный граф  это граф (рисунок 3.1), для каждого ребра которого несуществен порядок двух его конечных вершин.

                                                      Помеченный неориентированный граф         

 

                                       Рисунок 3.1  Пример помеченного неориентированного графа

Ориентированный граф  это граф, для каждого ребра которого существенен порядок двух его конечных вершин (рисунок 3.2).


                                                       Ориентированный граф          

 

                                                   Рисунок 3.2  Пример ориентированного графа

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

                                                        Смешанный граф        

 

                                                     Рисунок 3.3  Пример смешанного графа

                                                   Смешанный граф с петлями           


                                           Рисунок 3.4  Пример смешанного графа с петлями

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

Степень вершины  количество ребер графа G, инцидентных вершине x.

Вес ребра  значение, поставлены в соответствие данному ребру взвешенного графа. Обычно вес  действительное число, в таком случае его можно интерпретировать как «длину» ребра.

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

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

Дуги, имеющие общие конечные вершины, называются смежными.

Путь (или цикл) называют простым, если ребра в нем не повторяются; элементарным, если он простой и вершины в нем не повторяются. Ориентированным путем в орграф называют конечную последовательность вершин V i, для которой все пары (Vi, V i + 1) есть (ориентированными) ребрами.

Длиной пути (машрут) во взвешенном графе называют сумму длин звеньев этого пути (машрут).

Количество k ребер в пути называется длиной пути. Говорят, что этот путь соединяет вершины v1 и vk +1 или ведет с вершины v1 в вершину vk +1.Путем длины 0 считается последовательность, состоящая из единственной вершины. Путь, в котором все ребра попарно различны, называется цепью. Путь, в котором все промежуточные вершины попарно различны, называется простой цепью. Путь называют циклом, если в нем первая и последняя вершины совпадают.


4. Обзор существующих алгоритмов для поиска кратчайшего пути в графе

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

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

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

поиск кратчайших путей между всеми вершинами графа осуществляется с помощью алгоритма Флойда;

 найти минимальный путь в графе с ребрами единичной длины позволяет волновой алгоритм.

5. Метод построения кратчайших путей в двухуровневом графе

Рассматриваются  неорграфы с конечным множеством вершин Q и ребер E, не имеющие петель. Ребро это пара вершин (q, u). Ребра графа G отмечено метками из множества Y, выделено начальную вершину и множество финальных вершин. Таким образом, G = (Q, E, Y, ρ, q0, F), где

Q  конечное множество вершин графа G;

E  множество ребер графа G;

Y  множество пометок ребер графа G;

ρ: E → Y  функция разметки ребер графа G;

q0  начальная вершина графа G;

F множество финальных вершин графа G.

Граф G будем называть графом первого уровня. Каждая  Q графа G является графом Gi  графом второго уровня без  петель и кратных дуг, в котором вершины и ребра отмечено метками из множеств M и P соответственно. Так, Gi = (Ti, Di, Mi, Pi, μ, t, n0, fi), где:

Ti  конечное множество вершин графа Gi;

Di  множество дуг графа Gi;

Mi  множество пометок вершин графа Gi;

Pi  множество пометок дуг графа Gi;

μ: T → M  функция разметки вершин графа Gi;

t: D → P  функция разметки дуг графа Gi;

n0  начальная вершина графа Gi;

fi  финальная вершина графа Gi.

Вершина графа Gi имеет следующий вид: (qi; tj), где qi  номер вершины графа G, а tj  номер вершины графа Gi. Дуга графа G объединяет уникальную пару вершин различных графов Gi.

Каждой вершине qi графа G поставим в соответствие число Z (qi)  качество этой вершины.

Путем в графе G назовем конечную последовательность l = q1 e1 q2 e2ek-1 qk, где ei – дуга, началом которой есть вершина qi, а концом – qi+1

Путем в графе Gi назовем конечную последовательность s = (q1; ti) d1 (q2; tj) d2 ... dk-1, где di  дуга, началом которой является вершина (qi; tj).

Отметка пути s  это последовательность отметок w (s) = m1 p1 m2 p2 ... pk-1 mk, где mi = μ (Ti), pi = t (di).

Генеральным путем назовем последовательность I = (q1; ti) x1 (q2; tj) x2 ...(qk; tn) xk-1, где (qk; tn) принадлежит Ti, а xi может быть дугой ei графа G или дугой di графа Gi .

Отметка пути I  это последовательность отметок w (I) = a1 b1 a2 b2 ... bk-1 ak, где ai = μ (Ti), bi = ρ (ei) или bi = t (di).

Весом генерального пути I между вершинами qi и qj, будем называть вес пути между вершинами (qi; tn) и (qj; tm) и определим ее величину по формуле на рисунке 5.1.

                                                 Вес пути                                           
Рисунок 5.1 Формула веса генерального пути
 
                                     

Качество генерального пути I определим через величину dis (I) по формуле на рисунке 5.2.

                          Качество пути               
       Рисунок 5.2 Формула качества генерального пути  
                          

Для вершины qi определим множество Pre (qi) = (qj | (qj, qi) = ei) и множество Post (qi) = (qj | (qi, qj) = ei).

Метод построения кратчайших путей в двухуровневом графе.

Входные данные: замечен двухуровневый граф G с начальным и множеством финальных вершин.

Выходные данные: одна или несколько пометок кратчайших путей, качество этих путей.

Шаг 1.

1.1) Для неориентированных графов G для каждого ребра между парой вершин qi и qj вводится две дуги: (qi, qj) и (qj, qi).

1.2) В список вершин графа G вводится фиктивная конечная вершина fin, а в список дуг  дуга с каждой финальной вершины qi в вершину fin. Эта дуга обозначается отметкой μ (qi; tj).

1.3) Создаем представление графа G в виде списка дуг с их отметками и весом, при этом отметки соответствующих вершин графов Gi переносятся на дуги графа G (например, если пометками двух вершин и дуги между ними будут соответственно (qi, tn), (qj, tm) и xw, то после переноса пометок вершин на дугу, пометка дуги будет иметь следующий вид: (qi, tn ) xw (qj, tm).

1.4) Для каждого ребра графа Gi между парой вершин (qi; tn) и (qj; tm) вводится две дуги: ((qi; tn) (qj; tm)) и ((qj; tm) ((qi; tn)), при этом отметки вершин переносятся на дуги.

Шаг 2. If в графе G существует хоть одна вершина, не является начальной или финальной, из которой выходит хоть одна дуга в финальную, then go to Шаг 3, else go to Шаг 7.

Шаг 3. Выбираем qi = Pre (fin) q: = qi.

Шаг 4. If q ≠ q0 then удаляем вершину q и все входящие и исходящие из нее дуги. If при этом есть некоторый путь qi ek qe qj, где qi = Pre (q) и qj = Post (q),  then в граф добавляется дуга (qi, qj) с отметкой ek  полученной с помощью операции соединения пометок. Else, если q = q0 go to Шаг 2.

Шаг 5. Удаляем те петли, в пометки которых начало и конец совпадают.

Шаг 6.  Замена оператора соединения

На пунктах 4  6 происходит удаление одной вершины.

Для вершин, пометки которых соеденены оператором соединения (наприклад, (qi; tn) W (qi; tm)) работает алгоритм [5], который ищет оптимальний путь  между этими  вершинами (например, между tn і tm, где tn – определим как начальную вершину, а tm – как финальную). Для этого создадим представление соответственного графа Gi ( tn, tm ) в виде списка дуг с их от метками и весом.

If в результате работи алгоритма [5] оптимальный путь найден, then пометкой этого пути заменяем  оператор «W» вместе с двумя пометками, которые он соединяет.

If оптимальних путей несколько , then в список дуг графа G добавляется такая же дуга, но, соответственно, с другой пометкой.

Else, если пути не существует, then удаляем дугу (qi, qj).

Шаг 7. Удаляем все вершины, которые не являются начальной или финальной и все входящие и исходящие из них дуги. В результате получаем граф, состоящий всего из двух вершин: начальной и финальной.

Вычисляем качество пути QPath для всех дуг графа G, которые объединяют эти вершины. Выберем наименьшее значение QPath, которое и определяет оптимальный путь в графе. Если наименьших значений QPath несколько, то результатом будет несколько путей с этими значениями.

Пример работы метода построения кратчайшего пути в двухуровневом графе представлен на рисунке 5.3.

                               Пример работы метода построения кратчайшего пути в двухуровневом графе

                Рисунок 5.3 – Пример работы метода на двухуровневом графе состоящем из трех вершин
                                         (анимация: 25 кадров, 5 циклов повторения, 166 килобайт)

Выводы

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

В результате применения метода получаем одну или несколько заметок для оптимальных путей и качество этих путей в графе G.

Легко видеть, что в случае, когда все графы Gi имеют по одной вершине, разработанный метод совпадает с ранее разработанным алгоритмом поиска кратчайшего пути в помеченном графе методом локальной редукции графа [5]. Таким образом, предложенный метод является существенным обобщением ранее разработанного алгоритма. Обобщение заключается в следующем:

1) Каждая вершина графа G является графом Gi.

2) Проводится вычисления качества пути с учетом веса пометки каждой вершины на этом пути и пометки веса каждого ребра в то время, как в [5] выполняется только вычисления веса отметок ребер в пути.

3) Используется алгоритм [5] для графов Gi.

В дальнейшем планируется усовершенствование разработанного метода и его программная реализация

При написании данного реферата магистерская работа еще не завершена. Окончательное завершение: декабрь 2014 года. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.

Список источников

1. Ногина Н.В. Синтез регулярного выражения языка, порожденного помеченным графом, методом его локальной редукции / Н.В. Ногина,  И.С. Грунский // Искусственный интеллект. – 2012. – №3. – с. 348-353.

2.     Кристофидес, Н. Теория графов: алгоритмический подход / Н. Кристофидес.  М.: Мир, 1978.  430 с.

3.   Ахо А. Построение и анализ вычислительных алгоритмов / А. Ахо, Дж. Хопкрофт, Дж. Ульман. – М.: Мир, 1979. – 536 с.

4.  Батищев Д.И. Многоуровневая декомпозиция гиперграфовых структур / Батищев Д.И., Старостин Н.В., Филимонов А.В. // Прилож. к журналу «Информационные технологии» №5(141). – М.: Новые технологии. – 2008. 32 с.

5.   Ногина Н.В. Построение кратчайшего пути в помеченном графе при помощи локальной редукции графа / Н.В. Ногина, А.В. Билык // Сучасна інформаційна Україна: інформатика, економіка, філософія:  матеріали доповідей конференції, 26 квітня 2012 року. – Донецьк, 2012. – 316 с. – С. 76-79.

6. Бєлов В.Теорія графів / Бєлов В.– М. : Питер,1968. – 304 с.
Полат Е.С. Новые педагогические и информационные технологии / Полат Е.С. – М. :
Akademia, 1999. – 401с.

7. Кузнєцов О.П. Дискретная математика для инженера / Кузнєцов О.П. – М. : Энергоатомиздат, 1988. – 703 с.

8. Оре О. Теорія графів / Оре О. – М. : Наука, 1980. – 340 с.

9. Смольяков Е.Р. Введение в теоpию гpафов / Смоляков Е.Р. – М. : МГТУ, 1992. – 705 с.

10. Hечепуpенко М.И. Алгоpитмы и пpогpаммы pешения задач на гpафах и сетях / Hечепуpенко И.М. – М. : Hаука, 1990. – 202 с.

11. Романовский И.В. Алгоpитмы pешения экстpемальных задач / Романовский И.В. – М. : Hаука, 1977. – 506 с.

12. Землянухин В.Н. Задачи оптимизации на графах / В.Н. Землянухин, Л.Н. Землянухина. – М. : Наука, 2009. – 677 с.

13. Евстигнеев В.А. Графы в программировании: обработка, визуализация и применение / В.А. Евстигнеев, В.Н. Касьянов. – М. : Наука, 1999. – 266 с.

14. Новиков Ф.А. Дискретная математика / Новиков Ф.А. – М. : Питер, 2001. – 301 с.

15. Интернет  источник. Алгоритмы на графах