Студопедия — Анализ предметной области. Для представления графа в программе была выбрана матрица смежности как самый универсальный способ представления
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Анализ предметной области. Для представления графа в программе была выбрана матрица смежности как самый универсальный способ представления






Для представления графа в программе была выбрана матрица смежности как самый универсальный способ представления. Для корректной работы программы в каталоге, в котором находится программа должен находиться файл с названием “matrix.txt” в котором должна быть представлена матрица смежности графа размерностью 6*6. Возможно размещение в одном файле нескольких матриц, а затем загрузку из файла необходимой матрицы. Пример оформления матриц:

0 6 2 5 0 0

6 0 5 0 3 0

2 5 0 5 1 4

5 0 5 0 0 2

0 3 1 0 0 2

0 0 4 2 2 0

 

0 1 0 1 0 0

0 0 1 0 0 0

0 0 0 1 0 0

0 0 1 0 0 0

0 0 0 0 0 1

0 0 0 0 0 0

 

Реализованные алгоритмы:

1. Поиск самого короткого цикла в графе

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

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

2. Обход графа в глубину

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

3. Построение минимального остовного дерева по алгоритму Прима

Построение производится с заданной вершины по принципу нахождения минимального веса ребра от текущей вершины. Вершина начальная добавляется в остовное дерево и помечается как “пройденная”. Далее по матрице смежности находится минимальный вес ребра исходящий из этой вершины. Как только он найден следуем по этому ребру в вершину делаем ее текущей и также помечаем как “пройденную”. За тем повторяем весь алгоритм снова до тех пор пока не останется не “пройденных” вершин

4. Поиск кратчайшего пути от заданной вершины до всех остальных по алгоритму Дейкстры.

На первом этапе в массив кратчайших расстояний записывается вес ребра,если таковой существует от заданной вершины до остальных если же прямого пути нет то записывается “бесконечность”. На следующих этапах происходит нахождение пути от заданной вершины через все остальные по формуле: D[v]:=min(D[v],D[w]+C[w,v])

D[1..n]- массив содержащий кротчайшие пути от исходной вершины до остальных

S[]- массив(множество) посещенных вершин

w-добавленная в S вершина

 


Вывод

Теория графов находит применение, например, в геоинформационных системах (ГИС). Существующие или вновь проектируемые дома, сооружения, кварталы и т. п. рассматриваются как вершины, а соединяющие их дороги, инженерные сети, линии электропередачи и т. п. — как рёбра. Применение различных вычислений, производимых на таком графе, позволяет, например, найти кратчайший объездной путь или ближайший продуктовый магазин, спланировать оптимальный маршрут. Также графы применяются в химии, информатике и программировании, экономике, логистике и схемотехнике.

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

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

Используемая литература

1. Алексеев В. Е., Таланов В. А. Графы и алгоритмы. Структуры данных. Модели вычислений. – М.: Бином, 2006.

2. Ахо А., Хопкрофт Д., Ульман Д. Структуры данных и алгоритмы. — М.: Издательский дом «Вильямс», 2001.

3. Вирт Н. Алгоритмы и структуры данных. – СПб.: Невский диалект, 2008.

4. Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи: Пер. с. англ. — М.: Мир, 1982.

5. Иванов Б.Н. Дискретная математика. Алгоритмы и программы: Учебное пособие. – М.: Лаборатория базовых знаний, 2003.

6. Кнут Д. Искусство программирования для ЭВМ. Том 1: Основные алгоритмы. – М.: Мир, 1976. – 736 с. (3-е изд.: Уч. пос. – М.: Издательский дом «Вильямс», 2000.

7. Кнут Д. Искусство программирования для ЭВМ. Том 3: Сортировка и поиск. - М.: Мир, 1978. – 846 с. (2-е изд.: Уч. пос. – М.: Издательский дом «Вильямс», 2000.

8. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. — М.: МЦНМО, 1999.

9. Красиков И. В., Красикова И. Е. Алгоритмы. Просто как дважды два. – М.: Эксмо, 2007.

10. Лэнгсам Й. Огенстайн М., Тененбаум А. Структуры данных для персональных ЭВМ. – М.: Мир, 1989.

11. Макконелл Дж. Основы современных алгоритмов. 2-е дополненное издание. – Москва: Техносфера, 2004.

12. Окулов С. М. Программирование в алгоритмах. – 2-е изд., доп. – М.: БИНОМ. Лаборатория знаний, 2006.

13. Таха Х. Введение в исследование операций. — М.: Издательский дом «Вильямс», 2001.

14. Ускова О.Ф. и др. Программирование алгоритмов обработки данных: Учебное пособие. – СПб: БХВ-Петербург, 2003.


 







Дата добавления: 2015-06-15; просмотров: 619. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

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

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

Классификация и основные элементы конструкций теплового оборудования Многообразие способов тепловой обработки продуктов предопределяет широкую номенклатуру тепловых аппаратов...

Именные части речи, их общие и отличительные признаки Именные части речи в русском языке — это имя существительное, имя прилагательное, имя числительное, местоимение...

ТРАНСПОРТНАЯ ИММОБИЛИЗАЦИЯ   Под транспортной иммобилизацией понимают мероприятия, направленные на обеспечение покоя в поврежденном участке тела и близлежащих к нему суставах на период перевозки пострадавшего в лечебное учреждение...

Кишечный шов (Ламбера, Альберта, Шмидена, Матешука) Кишечный шов– это способ соединения кишечной стенки. В основе кишечного шва лежит принцип футлярного строения кишечной стенки...

Принципы резекции желудка по типу Бильрот 1, Бильрот 2; операция Гофмейстера-Финстерера. Гастрэктомия Резекция желудка – удаление части желудка: а) дистальная – удаляют 2/3 желудка б) проксимальная – удаляют 95% желудка. Показания...

Studopedia.info - Студопедия - 2014-2024 год . (0.009 сек.) русская версия | украинская версия