Лекции.Орг


Поиск:




Построение логической и физической информационной модели (компьютерной). Физический уровень информационной модели




Практическая работа №4

Тема: «Применение методов «Перебора в ширину», «Перебора в глубину»

Метод поиска в глубину на графе.

Рекурсивная и не рекурсивная реализации алгоритма DFS

Цель: Сформировать представление о методе и алгоритме поиска в глубину на графе и его применении при решении задач (задачи класса сложности Р).

Результаты. После выполнения лабораторной работы должны сформироваться умения:

· находить соответствие между объектом исследования (системой) и его концептуальной информационной моделью, логическим и физическим уровнями информационной модели;

· применять рекурсивный метод поиска (перебора) вершин в глубину на графе;

· формулировать и строить абстрактный алгоритм решения задачи поиска (перебора) вершин в глубину;

· применять программирование для реализации алгоритма поиска в глубину;

· выполнять оценку трудности программы для выбранного способа представления графа;

· обосновывать принадлежность алгоритма к категории сложности Р;

· уметь применять поиск в глубину на графе при решении практических задач.

Теоретические сведения

Постановка задачи. Концептуальный уровень информационной модели

Неформальная постановка задачи

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

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

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

Построение математической модели в виде формальной системы (исчисления). Логический уровень информационной модели

 

Формальная постановка задачи (в виде формальной системы)

Связаны ли какие-либо две вершины графа или нет? Найти простой путь между двумя вершинами v и w графа (path). Путь – последовательность вершин v, …vi, vi+1, …w, между каждой парой вершин vi, vi+1 такого пути должно существовать ребро. Перечислить все вершины, связанные с заданной вершиной графа.
Граф представлен конечными множествами вершин V={v1, v2, v3, … vi,…vn} и ребер E={e1, e2, e3, …ek, …, em}. Каждое ребро задается парой смежных вершин ek=(vi,vj).

Построение алгоритма решения математической задачи (построение абстрактного вычислительного алгоритма)

Идея метода

Для отыскания такого простого пути найдем и проверим любую смежную вершину i с вершиной v – началом пути, а затем, в случае если искомая вершина конца пути w не найдена, продолжим поиск следующей смежной и не просмотренной вершины для ранее просмотренной вершины i. Переход в следующую смежную и ранее не просмотренную вершину происходит до тех пор, пока не будет найдена искомая вершина w, либо, в случае отрицательного результата поиска, не будут просмотрены все вершины графа. Если на очередном шаге у текущей вершины i не оказывается смежных и не посещенных вершин, то осуществляется возврат к предыдущей смежной вершине. Данный способ (порядок) обхода вершин носит название поиск или обход в глубину. Для запоминания порядка посещения и обеспечения возврата используем структуру стек или механизм рекурсии. Для обозначения просмотренных вершин можно использовать метки.

Построение полиномиального алгоритма (задача класса Р)
Алгоритм поиска в глубину (DFS – Depth-first search):

· Поиск начинается с произвольной фиксированной вершины v, отмечаем ее как просмотренную и помещаем в Стек.

· Извлекается вершина, находящаяся на вершине Стека, становится текущей вершиной поиска.

· Производится поиск вершины, смежной и не просмотренной с текущей вершиной. Если такая вершина находится, то ее номер также заносятся в Стек, и вершина отмечается меткой посещенная.

· Процесс поиска продолжается для каждой новой вершины поиска п.3), если смежных и не пройденных вершин нет, то извлекается и обрабатывается вершина, записанная в Стек, п. 2)

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

Построение логической и физической информационной модели (компьютерной). Физический уровень информационной модели

 

 





Поделиться с друзьями:


Дата добавления: 2016-09-03; Мы поможем в написании ваших работ!; просмотров: 380 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Ваше время ограничено, не тратьте его, живя чужой жизнью © Стив Джобс
==> читать все изречения...

776 - | 784 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.