Методы определения связности вершин графа
|   курсовые работы, Математика Объем работы: 30 стр. Год сдачи: 2013 Стоимость: 500 руб. Просмотров: 966  |   |  | 
Оглавление
Введение
Заключение
Заказать работу
ВВЕДЕНИЕ 3
 1 Основные понятия и определения теории графов 5
 1.1 Понятие сложности алгоритмов . . . . . . . . . . . . . . . . . 7
 2 Методы определения связности вершин графа 9
 2.1 Обход вершин графа в глубину . . . . . . . . . . . . . . . . . . 10
 2.2 Обход вершин графа в ширину . . . . . . . . . . . . . . . . . . 11
 3 Динамическое распределение памяти и списки 13
 3.1 Описание списков с использованием указателей . . . . . . . . 15
 3.2 Реализация алгоритмов обхода вершин, основанная на дина-
 мических связанных списках . . . . . . . . . . . . . . . . . . . 23
 4 Примеры применения программ для определения связности
 графа 25
 ЗАКЛЮЧЕНИЕ 28
 Список литературы 29
 2
Многие прикладные задачи легко сформулировать в терминах такой
 структуры данных, как граф [1, 2, 3]. Для ряда подобных задач хорошо изу-
 чены эффективные (полиномиальные) алгоритмы их решения. Алгоритмы
 на графах полезны при решении ряда сложных и важных задач. Свойства
 графов активно используются для решения задач на сетевых системах (неф-
 тепроводах, газопроводах, электросетях и т.п.), в решении сложных задач
 на многопроцессорных вычислительных системах. Граф алгоритма позво-
 ляет получить представление о том, как распространяется и преобразуется
 информация при его реализации [4], что особенно важно для оптимизации
 параллельных вычислительных алгоритмов. Перспективным направлением
 решения сложных задач теории графов являются имитационные методы,
 основанные на природных механизмах принятия решений (клеточных авто-
 матах, муравьиных алгоритмах, генетических алгоритмах и др.) [5].
 Долгое время задачи теории графов решались вручную. В настоящее
 время с появлением компьютеров компьютерное моделирования резко рас-
 ширило сферу своего применения в различных областях знания, в том числе
 в теории графов, появилась возможность написания специальных программ
 на алгоритмических языках.
 Любая компьютерная программа предназначена для обработки данных,
 от способа организации которых зависят алгоритмы работы, поэтому вы-
 бор структур данных должен предшествовать созданию алгоритмов. Лю-
 бой язык программирования содержит стандартные способы организации
 данных – основные и составные типы. Наиболее часто в программах ис-
 пользуются массивы, структуры и их сочетания, например, массивы струк-
 тур [6]-[11].
 Общая стратегия поиска на графах разрабатывается и применяется к
 фундаментальным задачам связности, в том числе к задаче отыскания крат-
 чайшего пути, построения минимального остовного дерева, к задаче о по-
 токах в сетях и задаче о паросочетаниях. Унифицированный подход к этим
 алгоритмам показывает, что в их основе лежит одна и та же процедура, и...
Развитие вычислительной техники и программирования сопровождалось
 эволюцией представлений о роли данных, взглядов на их организацию. В
 большинстве случаев одним из доминирующих свойств компьютеров явля-
 ется способность хранить огромные объемы информации, к которым мож-
 но просто обратиться. Информация, подлежащая обработке, в некотором
 смысле представляет абстракцию некоторого фрагмента реального мира.
 Мы говорим о данных как об абстрактном представлении реальности, по-
 скольку некоторые свойства и характеристики реальных объектов при этом
 игнорируются как несущественные для данной задачи.
 Суть всех алгоритмов состоит в том, что они описывают обработку дан-
 ных, преобразование некоторых начальных данных в конечные. Какие-то
 данные алгоритм (программа) может использовать как промежуточные.
 Естественно, что представление и организация данных имеет при разработ-
 ке алгоритма первостепенное значение. Вопрос о том, как должны быть ор-
 ганизованы данные, необходимо решать до того, как начинается разработка
 алгоритма (программы). Ведь прежде, чем выполнить какие-либо операции,
 нужно иметь объекты, к которым они применяются, и четко представлять
 себе структуру объектов, которые будут получены.
 Представление данных определяется, исходя из средств и возможностей,
 допускаемых компьютером и его программным обеспечением. Однако очень
 важную роль играют и свойства самих данных, операции, которые должны
 выполняться над ними. С развитием вычислительной техники и программи-
 рования средства и возможности представления данных получили большое
 развитие и теперь позволяют использовать как простейшие неструктури-
 рованные данные, так и данные более сложных типов, которые обладают
 некоторой организацией.
 В данной работе приведены алгоритмы определения связности вершин
 графа, основанные на классических алгоритмах обхода вершин, имеющих
 универсальное применение. Представлена программная реализация на язы-
 ке Pascal. Рассмотрено применение динамических типов...
После офорления заказа Вам будут доступны содержание, введение, список литературы*
*- если автор дал согласие и выложил это описание.