Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР_1

.pdf
Скачиваний:
5
Добавлен:
27.03.2015
Размер:
91.49 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Кафедра экономической информатики

Реферат на тему «Применение теории графов в информатике»

Факультет: бизнеса Группа: Выполнили: Проверил:

Новосибирск

2014

 

 

СОДЕРЖАНИЕ

Введение .......................................................................................................................................................

3

1

Определение и области применения.......................................................................................................

4

2

Изображение графов на плоскости .........................................................................................................

5

3

Схема алгоритма .......................................................................................................................................

6

Заключение.................................................................................................................................................

10

Список использованных источников.......................................................................................................

11

2

ВВЕДЕНИЕ

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

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

3

1 ОПРЕДЕЛЕНИЕ И ОБЛАСТИ ПРИМЕНЕНИЯ

В общем смысле граф представляется как множество вершин (узлов), соединённых рёбрами. В строгом определении графом [1] называется пара множеств

 

G = A,V ,

(1.1)

 

 

 

 

 

 

где A = {ai } — множество вершин графа, i =

1, N

, V = {vk } — множество рёбер (дуг) графа,

j = 1, M ,

N — число вершин, M — число дуг.

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

4

2 ИЗОБРАЖЕНИЕ ГРАФОВ НА ПЛОСКОСТИ

При изображении графов на рисунках чаще всего используется следующая система обозначений: вершины графа изображаются точками или, при конкретизации смысла вершины, прямоугольниками, овалами и др., где внутри фигуры раскрывается смысл вершины (графы блоксхем алгоритмов). Если между вершинами существует ребро, то соответствующие точки (фигуры) соединяются линией или дугой. В случае ориентированного графа дуги заменяют стрелками, или явно указывают направленность ребра. Иногда рядом с ребром размещают поясняющие надписи, раскрывающие смысл ребра, например, в графах переходов конечных автоматов. Различают планарные и непланарные графы. Планарный граф — это граф, который можно изобразить на рисунке (плоскости) без пересечения рёбер (простейшие — треугольник или пара связанных вершин), иначе граф непланарный [2]. В том случае, если граф не содержит циклов (содержащих по крайней мере один путь однократного обхода рёбер и вершин с возвратом в исходную вершину), его принято называть «деревом». Важные виды деревьев в теории графов — бинарные деревья, где каждая вершина имеет одно входящее ребро и ровно два выходящих, или является конечной — не имеющей выходящих рёбер и содержит одну корневую вершину, в которую нет входящего ребра.

Не следует путать изображение графа с собственно графом (абстрактной структурой), поскольку одному графу можно сопоставить не одно графическое представление. Изображение призвано лишь показать, какие пары вершин соединены рёбрами, а какие — нет. Часто на практике бывает трудно ответить на вопрос, являются ли два изображения моделями одного и того же графа или нет (другими словами, изоморфны ли соответствующие изображениям графы). В зависимости от задачи, одни изображения могут давать более наглядную картину, чем другие.

5

3 СХЕМА АЛГОРИТМА

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

Правила выполнения схем определяются следующими документами:

ГОСТ 19.701-90. Схемы алгоритмов, программ, данных и систем. Условные обозначения

иправила выполнения. Для программной документации (устарели, заменяются ГОСТ 19.701-90).

ГОСТ 19.002-80. Схемы алгоритмов и программ. Правила выполнения.

ГОСТ 19.003-80. Схемы алгоритмов и программ. Обозначения условные графические. Данные документы в частности регулируют способы построения схем и внешний вид их

элементов.

Основные элементы схем алгоритма представлены в табл. 3.1. Пример блок-схемы алгоритма представлен на рис. 3.1.

Блок-схему алгоритма можно формализовать в виде графа. Граф-схема алгоритма (ГСА) — конечный связный ориентированный граф (1.1), вершины которого соответствуют операторам, а дуги задают порядок следования вершин (операторов) алгоритма. В более широком смысле вершинам графа соответствуют не только операторные вершины, но и условные, начальная и конечная вершины и так далее.

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

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

6

Start

Read N

M = 1

F = 1

F = F·M

no

M = M+1

M==N?

yes

Print F

End

Рисунок 3.1 — Пример блок-схемы алгоритма вычисления факториала числа N

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

7

Таблица 3.1 — Основные элементы схем алгоритма

Наименование

 

 

Обозначение

 

 

Функция

 

 

 

 

 

 

 

 

 

Блок начало-конец

 

 

 

 

 

 

Элемент отображает выход во внешнюю среду и

(пуск-остановка)

 

 

 

 

 

 

вход из внешней среды (наиболее частое

 

 

 

 

 

 

 

применение — начало и конец программы).

 

 

 

 

 

 

 

Внутри фигуры записывается соответствующее

 

 

 

 

 

 

 

действие.

 

 

 

 

 

 

 

 

 

 

 

 

Блок действия

 

 

 

 

 

 

Выполнение одной или нескольких операций,

 

 

 

 

 

 

 

обработка данных любого вида (изменение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

значения данных, формы представления,

 

 

 

 

 

 

 

расположения). Внутри фигуры записывают

 

 

 

 

 

 

 

 

 

 

 

 

 

 

непосредственно сами операции.

 

 

 

 

 

 

 

 

 

 

 

 

Логический блок

 

 

 

 

 

 

Отображает

решение

или

функцию

(блок условия)

 

 

 

 

 

 

переключательного типа с одним входом и

 

 

 

 

 

 

 

двумя или более альтернативными выходами, из

 

 

 

 

 

 

 

которых только один может быть выбран после

 

 

 

 

 

 

 

вычисления условий, определенных внутри

 

 

 

 

 

 

 

этого элемента. Вход в элемент обозначается

 

 

 

 

 

 

 

линией, входящей обычно в верхнюю вершину

 

 

 

 

 

 

 

элемента. Если выходов два или три, то обычно

 

 

 

 

 

 

 

каждый выход обозначается линией, выходящей

 

 

 

 

 

 

 

из оставшихся вершин (боковых и нижней).

 

 

 

 

 

 

 

Если выходов больше трех, то их следует

 

 

 

 

 

 

 

показывать одной линией, выходящей из

 

 

 

 

 

 

 

вершины (чаще нижней) элемента, которая

 

 

 

 

 

 

 

затем

разветвляется.

Соответствующие

 

 

 

 

 

 

 

результаты

вычислений

могут

записываться

 

 

 

 

 

 

 

рядом с линиями, отображающими эти пути.

 

 

 

 

 

 

 

 

Предопределённый процесс

 

 

 

 

 

 

Блок отображает выполнение процесса,

 

 

 

 

 

 

 

состоящего из одной или нескольких операций,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

который определен в другом месте программы

 

 

 

 

 

 

 

(в подпрограмме, модуле). Внутри блока

 

 

 

 

 

 

 

 

 

 

 

 

 

 

записывается название процесса и передаваемые

 

 

 

 

 

 

 

в него данные.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

Продолжение таблицы 3.1

 

 

 

 

 

 

Наименование

Обозначение

 

 

Функция

 

Данные

 

Преобразование данных в форму, пригодную

(ввод-вывод)

 

для обработки (ввод) или отображения

 

 

результатов обработки (вывод).

 

 

 

 

Соединитель

 

Символ отображает вход в часть схемы и выход

 

 

из другой части этой схемы. Используется для

 

 

обрыва линии и продолжения её в другом месте,

 

 

чтобы избежать излишних пересечений или

 

 

слишком длинных линий, а также, если схема

 

 

состоит

из

нескольких

страниц.

 

 

Соответствующие

соединительные

символы

 

 

должны иметь одинаковое (при этом

 

 

уникальное) обозначение.

 

 

 

 

 

 

 

9

ЗАКЛЮЧЕНИЕ

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

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

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]