русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Нахождение кратчайших путей между парами вершин


Дата добавления: 2013-12-23; просмотров: 1235; Нарушение авторских прав


Алгоритмы, вычисляющие остовые деревья минимальной стоимости.

Представление графов

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

Матрица смежности – это матрица a[n, n], где n – это число элементов, а сами элементы a[i, j] равны значению метки дуги (i, j), если есть дуга из вершины i в вершину j.

Список смежности – это массив, который состоит из списков всех вершин, для каждой их которых приведены вершины смежные с ней.

Представление орграфов. Если имеется орграф (рис. 16.3), то его можно представить в виде матрицы смежности (рис. 16.4) или в виде списка смежности (рис.16.5).

Представление графов. Если имеется граф (рис. 14.6), то его можно представить в виде матрицы смежности (рис. 14.7) или в виде списка смежности (рис.14.8).

Если g=(v, e) – это помеченный граф, то остовое дерево– это такое дерево, которое содержит все вершины v графа g. Стоимость остового дерева равна сумме стоимостей всех рёбер, которые входят в него. Тогда остовым деревом минимальной стоимости является дерево, у которого стоимость минимальна (рис. 16.9).

Известны два алгоритма вычисляющие остовые деревья минимальной стоимости. Это алгоритм прима и алгоритм крускала.

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

Так, например, для графа (рис. 16.6) сначала была выбрана дуга 3→5, потом 4 →5, затем 2 →5 и, наконец, 1 →2. Т.е. Множество u={3, 4, 2, 1, 5}.

Принцип алгоритма крускала.Формируется граф. Из него выбирают минимальные компоненты, т.е дуги с минимальной по величине меткой. Сначала эти компоненты не соединены, но в процессе работы алгоритма они соединяются в остовое дерево минимальной стоимости. Данный алгоритм применяется на графах с большим числом дуг и вершин. Условием получения дерева минимальной стоимости может стать равенство u=v, как в предыдущем алгоритме.



Задачей нахождения кратчайших путей является определение для любой пары вершин (v, w) такого пути от вершины v в вершину w, который был бы минимальным среди всех возможных путей от v к w.

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

Существуют два алгоритма определения кратчайшего пути – это алгоритм дейкстры и алгоритм флойда.

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

Принцип алгоритма флойда. В результате решения задачи вычисляется матрица a[i, j] длин кратчайших путей между концевыми вершинами пути i и j, где матрица a имеет размер nrn. Здесь n – это число узлов графа, а элементы матрицы – это величины меток дуги. Подробно принцип работы этих двух методов разобран в лабораторной работе №7.

 



<== предыдущая лекция | следующая лекция ==>
Ориентированные и неориентированные графы. Алгоритмы на графах | 


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.