Тема 3. Графы.
План:
1. Основные понятия теории графов.
2. Деревья, лес.
3. Способы задания графов
4. Применения графов и сетей
Цель. Знакомство с понятием графа, как пара двух конечных множеств. Рассмотрение различных способов задания графов. Формирование умения представлять в виде графов бинарные соответствия между множествами и задавать отношения с помощью графов.
Теоретически сведения
Теория графов – один из универсальных и наглядных языков: графический, который применяется во многих областях науки и техники.
Теория графов дает исключительно удобный аппарат для моделирования структурных свойств различных систем и отношений между объектами разной природы, в том числе программных моделей.
В данном курсе математики знакомство с элементами теории графов, к сожалению, ограничится лишь некоторыми определениями и иллюстрациями к основным положениям соответствующего раздела математики.
1. Основные понятия теории графов.
Понятие графа
Впервые понятие «граф» ввел в 1936 г. венгерский математик Денни Кёниг. Но первая работа по теории графов принадлежала перу великого Леонарда Эйлера и была написана еще в 1736 г. С помощью графов изображаются схемы различных дорог, линии воздушных сообщений, газопроводов, теплотрасс, электросетей, а также микросхемы, дискретные многошаговые процессы, системы различных бинарных отношений, структурные химические формулы и другие диаграммы и схемы.
Применяются графы для решения задач химии, экономики, электротехники и автоматики. Также они широко используются в информатике и строительстве. Без графов сложно анализировать классификации в различных науках.
Графом G = (V, X) называется пара двух конечных множеств: множество точек и множество линий, соединяющих некоторые пары точек
Примеры графов изображены на рисунке, где:
а – граф со смежными вершинами; б – полный граф;
в – граф со смежными ребрами; г – граф с петлей
Основные понятие графов и их определения
Граф – множество линий X, соединяющее пары точек множества W. Точки называются вершинами (узлами) графа, линии – ребрами графа.
Если задан граф G = (V, X), то V – конечное непустое множество его вершин, X – множество его ребер.
Ребро называется инцидентным по отношению к тем вершинам, которые оно соединяет.
Две вершины графа называются смежными, если существует инцидентное им ребро.
Два ребра называются смежными, если они имеют общую вершину.
Ребра, соединяющие одну и туже пару вершин, называются кратными (параллельными) ребрами кратности, равной числу таких ребер
Степенью вершины называется число, равное числу ребер, инцидентных этой вершине. Степень вершины обозначается символом обозначается deg(A) (от англ. degree - степень).
Если вершине инцидентна петля, то степень ее равна двум: оба конца такого ребра приходят в эту вершину.
Вершина называется изолированной, если степень ее равную нулю.
Граф называется нуль – графом, если он состоит из изолированных вершин,.
Вершина графа называется висячей, если степень ее 1.
Терема 1. В графе G(V,X) сумма степеней всех его вершин – число четное, равное удвоенному числу ребер графа. Эта теорема доказывается в других курсах математики.
Пример. Пусть граф содержит 5 ребер, тогда степень этого графа равна r=5·2=10
Вершина называется четной, если ее степень есть четное число и нечетной, если степень ее есть нечетное число.
Теорема 2. Число нечетных вершин любого графа – четно.
Следствие. Невозможно начертить граф с нечетным числом нечетных вершин.
Граф G называется полным, если любые две его различные вершины соединены одним и только одним ребром. Примером полного графа есть рисунок 1б.
Полный граф определяется только своими вершинами.
Степень любой вершины полного графа, очевидно, равна k= п – 1, где п – число его вершин. Число ребер этого графа равно числу сочетаний из п по 2, т. е. т = .
Дополнением графа G(V, X) называется граф G‘(V, X‘), которой состоит из вершин первого графа и ребер, которые дополняют первый граф до полного графа. На рисунки показаны графы, которые дополняют друг друга до полного графа.
Граф называется ориентированный, если он состоит упорядоченных пар вершин (кортежи длины 2). Такой граф называется также направленным графом или орграфом.
В направленном графе ребра изображаются стрелками, идущими от первой компоненты (начало ребра) кортежа ко второй (конец ребра). См рисунок.
Ребра ориентированного графа имеют определенные фиксированные начало и конец и часто называются дугами.
Дуги орграфа называются кратными, если они имеют одинаковые начальные и конечные вершины, т.е. одинаковые направления. (соединят одну и туже пару вершин). При этом граф имеет несколько разных дуг, соединяющих одну и туже пару вершин.
Рассмотрим неориентированный граф, состоящий их n вершин. Если от некоторой вершины можно пройти к другой вершине по ребрам графа, то получим маршрут перехода. При этом для одних и тех же вершин может оказаться несколько маршрутом. При решении конкретной задачи в таких случаях приходится выбирать наиболее оптимальный маршрут.
Маршрутом называется последовательность попарно инцидентных вершин V1, V2, …, Vi неориентированного графа, т.е. последовательность ребер неориентированного графа, в которой вторая вершина предыдущего ребра совпадает с первой вершиной следующего.
Длиной маршрута называется число ребер этого маршрута.
Маршрут принято задавать как последовательность ребер, поскольку это более удобно при наличии кратных ребер.
Маршрут называется замкнутым или циклом, если начальная вершина маршрута совпадает с конечной,
Расстоянием между двумя вершинами называется минимальная длина из всех возможных маршрутов между этими вершинами при условии, что существует хотя бы один такой маршрут. Расстояние обозначается символами d( A;B)= min|A;B|=k, где вершины A и B начало и конец маршрута, k – число, равное наименьшей длине маршрута.
Поскольку рассматриваются конечные графы, минимум можно найти всегда. Формально можно ввести расстояние d(VV) = О, между любой вершиной и ей же самой, что соответствует нулевому маршруту, у которого начало и конец в одной вершине.
В маршруте одно и то же ребро может встретиться несколько раз.
Если ребро встретилось только один раз, то маршрут называется цепью. Запись вида 3-цепь означает, что между двумя точками имеется цепь – маршрут, длина которого равна 3.
В орграфе маршрут является ориентированным и называется путем. На путь сразу налагаются важные требования, являющиеся частью определения:
• направление каждой дуги должно совпадать с направлением пути;
• ни одно ребро пути не должно встречаться дважды.
Поэтому путь - упорядоченная последовательность ребер ориентированного графа, в которой конец предыдущего ребра совпадает с началом следующего и все ребра единственны.
В графе цепь, путь и цикл называются простыми, если они проходят через любую из вершин не более одного раза.
Неориентированный граф называется связным, если между любыми двумя его вершинами есть маршрут. В противном случае он называется – несвязным.
Две вершины называются связными, если существует маршрут между ними.
Понятно, что связность между вершинами является бинарным отношением. Это отношение будет отношением эквивалентности. Оно: рефлексивно – каждая вершина (включая изолированные) связна сама с собой; симметрично – любой маршрут можно представить в обратном порядке:; транзитивно – если существует маршрут АB и маршрут BC, то существует маршрут AC.
Граф G можно разбить на непересекающиеся подмножества (графы) по признаку связности, которые называются подграфами.
Вершины одного множества являются связными между собой, а вершины различных множеств – несвязны.
Все подграфы Vj (классы эквивалентности) графа G называют связными компонентами, или компонентами связности. Связный граф имеет одну компоненту связности.
В конечном связном графе всегда можно построить ориентированный цикл, проходящий через каждое ребро по одному разу в двух направлениях. Такой цикл называют способом обхода всего графа и используют при решении многих прикладных задач.
Разработаны специальные алгоритмы обхода ребер графа, которые можно использовать при решении задач вида “поиска выхода из лабиринта”.
Теорема 3. Для того чтобы связный граф G являлся простым циклом, необходимо и достаточно, чтобы каждая его вершина имела степень, равную 2.
Ребро связного графа G называется мостом, если после его удаления G станет несвязным и распадется на два связных графа G‘ и G“.
Теорема.4. Ребро графа является мостом тогда и только тогда, когда не принадлежит ни одному циклу.
Графы G‘ и G” называются изоморфными, если существует взаимно-однозначное соответствие между их ребрами и вершинами, причем соответствующие ребра соединяют соответствующие вершины.
Аналогично устанавливается изоморфизм между ориентированными графами. При этом следует помнить, что ребро является упорядоченным множеством, и надо быть особенно внимательным, соблюдая порядок.
Изоморфизм графов является отношением эквивалентности.
Это можно заметить исходя из свойств подстановок. На практике такие различные по внешним признакам изоморфные графы не различают, рассматривая их с точностью до изоморфизма.
Граф G называется планарным (плоским), если существует изоморфный ему граф G‘, в изображении которого на плоскости ребра пересекаются только в вершинах. Иными словами, у планарного графа никакие два ребра не имеют общих точек, кроме общих вершин.
Областью назовем подмножество плоскости, пересекающееся с планарным графом только по некоторому простому циклу графа, являющемуся границей области. На рисунке обозначены такие области: A,B,C.
Теорема .5 (Эйлера) Связный плоский граф с n вершинами и k ребрами разбивает плоскость на r областей (включая внешнюю), причем n – k + r =2.
На рисунке n=4, k=5, r=3, поэтому 4-5+3=2.
Путь (цикл)называются Эйлеровыми путем (циклом) , если он содержит (проходит через) все ребра только один раз.
Граф, обладающий эйлеровым циклом, называется эйлеровым или уникальным графом.
Плоские эйлеровы графы можно изобразить одним росчерком пера, причем процесс изображения начинается и заканчивается в одной вершине.
Теорема.6. Граф G является эйлеровым тогда и только тогда, когда G – связный граф, имеющий все четные вершины.
Для установления факта является ли граф уникальным, досрочно установить факт четности всех вершин графа.
Гамильтоновым путем (циклом) графа G называется путь (цикл), который проходит через каждую его вершину только один раз.
Путь графа на рисунке V4V1V2V5 – гамильтонов путь. Путь V2V4V1V2V5 – не является гамильтоновым путем
Граф, содержащий гамильтонов цикл, называется гамильтоновым.
T ф с мостами 2.2. Операции над графами
Над графами, как и над любыми множествами можно выполнять операции объединения и пересечения.
Объединением графов G1 = (A;B) и G2 = (C;D) называется граф G= G1 U G2, множество вершин которого К= AUC, а множество ребер X=(BUD)
Пересечением графов G1 = (A;B) и G2 = (C;D) называется граф G= G1∩G2, множество вершин которого К= A∩C, а множество ребер X=(B∩D).
Подграфом данного графа называется граф все вершины и ребра которого являются подмножествами множества вершин и ребер этого графа.
Обозначения подграфа, его вершин и ребер можно так, как это принято для обозначения подмножеств или ввести другие буквы. А именно, если граф A=(N;M) есть подграф графа G=(V, X), то A ÌG, причем NÌV и MÌX
Кольцевой суммой G1 = (A;B) и G2 = (C;D) называется граф G= G1 U G2, множество вершин которого К= AUC, а множество ребер X=(BUD)\ (B∩D).
2.3. Деревья. Лес. Бинарные деревья
Деревом называют конечный связный граф с выделенной вершиной (корнем), не имеющий циклов Вершины графа – дерева, называются узлами.
Для каждой пары вершин дерева – узлов - существует единственный маршрут, поэтому вершины удобно классифицировать по степени удаленности от корневой вершины. Расстояние до корневой вершины К0 называется ярусом s вершины, s= d(V0 V).
Поскольку маршрут между двумя вершинами единственный, то, применяя это свойство к смежным вершинам, можно заключить, что любая ветвь является мостом. Действительно, при удалении ребра этот единственный маршрут прерывается. Тогда граф распадается на два подграфа. В одном из них остается корневая вершина, и этот граф тоже будет являться деревом. В другом графе выделяется вершина, инцидентная удаленному мосту. Второй подграф также будет являться деревом.
Каждая висячая вершина дерева называется его листом.
Каждая не висячая вершина дерева, содержит не менее двух ребер, которые часто называются поддеревьями.
Теорема 7. Граф является деревом тогда и только тогда, когда выполняется хотя бы одно из условий:
граф G(V, X) связен и не содержит циклов;
граф G(V, X) не содержит циклов и имеет п-1 ребро;
граф G(V, X) связен и имеет п-1 ребро;
граф G(V, X) не содержит циклов, но добавление ребра между несмежными вершинами приводит к появлению одного и только одного элементарного цикла;
граф G( У, X) связный, но утрачивает это свойство после удаления любого ребра;
в графе G(V, X) всякая пара вершин соединена цепью, и только одной.
Дерево с п вершинами имеет п-1 ребро, поэтому оно будет минимальным связным графом.
Висячие вершины, за исключением корневой, называются листьями.
Лесом называется граф, полученный в результате упорядоченного объединения не пересекающихся деревьев. Так, если графы A,S.D.F – деревья, то граф G= A∪S∪D∪F есть лес
Компонентами связности леса являются деревья. Остовом связного графа G называется любой его подграф F, содержащий все вершины графа G и являющийся деревом (говорят: покрывающим его деревом»).
Если граф F есть остов леса G, то дополнения F’ до G является кодеревом.
Дерево может быть представлено расслоенным на ярусы (уровни), при этом ветвям, попавшим в один ярус, соответствует одинаковая длина пути исходного графа. Число путей в каждом дереве соответствует числу висячих вершин (листьев).
При описании деревьев принято использовать термины: отец, сын, предок, потомок.
Каждая вершина дерева называется узлом, причем каждый узел является корнем дерева, имеющего свои поддеревья Количество их не превышает числа всех узлов дерева..
Очевидно, что узел без поддеревьев называется листом и является висячей вершиной.
Узел k-го яруса называется отцом узла (k+ 1)-го яруса, если они смежные.
Узел (k+ 1)-го яруса называется сыном узла k-ro яруса.
Два узла, имеющие одного отца, называются братьями.
Вполне очевидно, что отца можно назвать предком, а сыновей – потомками.
Упорядоченным деревом называется дерево, в котором поддеревья каждого узла образуют упорядоченное подмножество.
Для упорядоченных деревьев принята терминология: старший и младший сын для обозначения соответственно первого и последнего сыновей некоторого узла.
Дерево, когда каждый узел которого является либо листом, либо образует два поддерева: левое и правое. называется бинарными деревьями и используется при делении множества на два взаимоисключающих подмножества по какому-то признаку (так называемое дихотомическое деление).
Например для бинарного дерева можно указать, что отец A, сыновья В и С, причем В – левый, а С – правый потомки ( по алфавиту и запись слева направо по строчке (ярусу дерева)
Строго бинарным деревом называется такой граф, у которого каждый узел, не являющийся листом, содержит два и только два поддерева – левое и правое.
Бинарное дерево уровня п называется полным, если каждый его узел уровня п является листом, а каждый узел уровня меньше, чем n, имеет непустое левое и правое поддеревья.
Бинарные деревья применяются в информатике для поиска одного из двух возможных вариантов ответа. Например, при поиске данных, когда необходимо сравнить каждый элемент списка с образцом, и если значения совпадают, то процесс поиска завершен, а если не совпадают, то поиск данных продолжается. Впервые понятие двоичного дерева ввел в III в. римский философ Порфирий.
Примером бинарных деревьев может служить турнирная таблица спортивных игр, например волейбол, шахматы и др.Что бы быть победителем, надо выиграть в финале, где встречаются две команды, которые победили в полуфинале, а перед этим победили в четверть финале и т.д. К таким относится также олимпийская система соревнований
Цикломатическим числом графа называется число v = m + c – n, где:
m – количество ребер;
c - количество связных компонент графа;
п – количество вершин.
Цикломатическое число дерева равно нулю. Цикломатическое число леса равно сумме цикломатических чисел составных связных компонент – деревьев и, следовательно, тоже равно нулю. Для остальных графов цикломатические числа – положительные.
Например, для полного графа, имеющего пять вершин и 10 ребер цикломатическое число равно v = 10 + 1 – 5 = 6.
4. Способы задания графа. Изоморфные графы
Графы могут задаваться следующими способами:
1. Геометрическим способом – рисунки, схемы, диаграммы,
2. Алгебраическим способом – перечислением вершин и ребер,
3. Табличным способом.
4. Матричным способом.
Человеку удобно работать с графом-рисунком, так как он может легко установить связь между вершинами в наглядном виде с помощью ребер, изображаемых непрерывными линиями. Такое геометрическое представление плоского графа называется его реализацией.
Для машинной обработки удобнее задать граф в алгебраической форме – перечислением (списком) вершин или ребер.
При переходе от алгебраического способа к геометрическому одному и тому же графу могут соответствовать различные изображения – изоморфные графы, при этом от правильного изображения зависит, например, свойство плоской реализуемости. Для этого нужно правильно задать сам граф.
Основным способом задания графа является перечисление всех его вершин и ребер. Но такое представление, во-первых, несимметрично (с ним трудно работать, особенно ЭВМ), во-вторых, для указания каждого ребра нужно еще раз выписывать соответствующие вершины, что плохо с точки зрения сжатия и хранения информации.
При задании графа таблицей составляется таблица, состоящей из п строк (вершины) и т столбцов (ребра). На пересечении строк и столбцов пишутся соответствующие знаки, которые показывают отношение (инцидентность) вершины и ребра. Это может быть знаки “+” и “-”, числа 0,1,-1 и др.
Главным во всех способах задания графа (диаграммой, матрицей, таблицей) является указание соответствия между множествами п вершин Vt к т ребер X-t.
Пусть дан граф G(V, X), где V= {V1, V2 …Vn} – вершины, а Х= {Х1, Х2 .,., Хm} – ребра, среди которых могут и кратные ребра (есть вершины, которые соединяет несколько ребер).
Матрицей инцидентности данного графа будет таблица, состоящая из n строк (вершины) и т столбцов (ребра).
При рассмотрении неориентированного графа на пересечении строк и столбцов ставится число 1, если соответствующие вершина и ребро инцидентны и ставится число 0, они не инцидентны.
При рассмотрении ориентированного графа на пересечении строк и столбцов ставится число 1, если из вершины выходит соответствующее ее ребро. Если в вершину входит ребро, то ставят число -1. Если вершина не инцидентна ребру и, то ставится число 0
Очевидно, что в каждом столбце матрицы инцидентности должно быть только два ненулевых числа, так как ребро инцидентно двум вершинам. Число ненулевых элементов каждой строки – степень соответствующей вершины.
Матрицы инцидентности прямоугольные, если число строк и столбцов различно. Если число вершин и ребер в графе одинаковое, то получается квадратная матрица.
Матрицу можно сделать квадратной для любого графа без кратных ребер. В таких случаях строки и столбцы изображают вершины. На пересечении строк и столбцов ставится число 1, если соответствующие вершины соединены ребром и ставится число 0, если вершины не соединены.
Для неориентированного графа ребра одновременно принадлежат или не принадлежат графу, так как символизируют одно и то же ребро. Матрица смежности неориентированного графа является симметрической и не меняется при транспонировании.
Хотя формально каждая вершина всегда смежная сама с собой, в матрице смежности мы будем ставить 0, если у нее нет петли, и 1, если есть одна петля.
Если граф имеет матрицу смежности и не имеет петель, на главной диагонали у него всегда стоят нули.
Задание Составить таблицу и матрицу инцидентности для орграфа, изображенного на рисунке, который имеет 3вершины и 4 ребра.
Ответ.
|
Таблица инцидентности орграфа
| Вершины | Ребра | |||
| s | t | г | и | |
| V1 | -1 | 0 | 1 | 0 |
| V2 | 0 | 1 | -1 | 1 |
| V3 | 1 | -1 | 0 | -1 |
Задание Для графа, изображенного на рисунке записать таблицу и матрицу смежности
Ответ
| Таблица смежности | ||||
| Вершины | A | B | C | D |
| A | 0 | 1 | 0 | 1 |
| B | 1 | 0 | 1 | 1 |
| C | 0 | 1 | 0 | 0 |
| D | 1 | 1 | 0 | 0 |
Матрица смежности
Граф с кратными ребрами (особенно орграф) сложно задать с помощью матрицы смежности. Для ориентированного графа данное определение графа без кратных ребер является частным случаем графа с кратными ребрами при кратности любого ребра, равной 1 или 0.
Сетевые модели представления информации и сети.
Граф называется взвешенным или сетью, если каждому его ребру поставлено в соответствие некоторое число (вес). Взвешенными графами могут быть схемы в электронике, электрические схемы, карты автомобильных и железных дорог и др. Например, на картах автодорог вершины являются населенными пунктами, ребра – дорогами, а весом – числа, равные расстоянию между населенными пунктами.
В строительстве сетевые графы применяются для наглядного изображения некоторого комплекса работ или производственных процессов. Ребрам графа могут соответствовать числа, означающие длину, уклон, запланированное время и другие характеристики.
Например, последовательность работ для монтажа каркаса здания изображена в виде графа, изображенного на рисунке
Числами обозначены технологические операции:
1 – рытье котлована;
2 – монтаж фундамента;
3 – завоз металлоконструкций;
4 – монтаж подъемного крана;
5 – монтаж каркаса здания.
На следующем рисунке изображен сетевой граф некоторого комплекса работ в виде взвешенного графа с указанием времени, затраченного на выполнение этой работы (в минутах).
В основе процесса планирования лежит некоторый сценарий, представляющий собой сеть, состоящую из вершин – пошагового описания действий и дуг – отношений между ними. Такой граф дает возможность, сравнивая альтернативы, планировать действия для достижения поставленной цели.
Сети широко используются в качестве моделей для представления знаний в интеллектуальных системах. Сетевая модель представления информации основана на том, что любые знания можно рассматривать как множества объектов (понятий) и связи между ними (отношения).
Понятия-объекты и другие элементы предметной области могут быть графически изображены в виде вершин, а отношения между ними – в виде дуг, связывающих эти вершины. Такое графическое представление информации (знаний) в интеллектуальных системах носит название семантических сетей. Они являются универсальным средством для представления знаний в интеллектуальных системах.
Понятия, входящие в сети, можно описать с помощью фрейма.
Фреймом называется минимально возможное описание сущности некоторого явления, объекта, события или процесса. Состоит фрейм из набора стандартных единиц – слотов, содержащих определенный минимум информации о его содержании и назначении.
Семантическая сеть в виде некоторой совокупности фреймов нуждается в указании отношения между ее вершинами, что тоже возможно осуществить в виде слота.
Семантические сети широко применяются в информатике, например, для операций поиска по образцу, где в виде сетей представляется база данных. Результат такого поиска можно изобразить графом. Используются сети и для графической иллюстрации системы отношений базы данных.
Широко применяются сети для графического изображения различных логических схем в теории автоматов, например схемы с памятью, у которых каждый узел – функция алгебры логики
Для формального описания совокупности процессов, протекающих одновременно, используют сети Петри. Они представляют собой ориентированные графы, состоящие из вершин двух видов: некоторых позиций и переходов, причем позиции изображают кружочками, а переходы – «планками»
Сети Петри предназначены для описания действия дискретных процессов во времени. Такие сети дают возможность моделировать ситуации протекания параллельных процессов, прослеживать возможные варианты их взаимодействия, выявлять нежелательные ситуации. Также в виде сетей изображаются схемы устройств, например радиоприемника или телевизора.
6. Применение графов и сетей
Сети получили широкое практическое применение потому, что они являются естественным и удобным способом изображения и дальнейшего анализа различных сложных систем.
Одним из первых применений сетевого изображения было создание американскими учеными баллистических ракет “Поларис” для оснащения атомных подводных лодок военно-морского флота США. В реализации этого грандиозного проекта участвовали 600 фирм из 48 штатов. Сам сетевой граф содержал 10000 событий.
В основе системы планирования и управления лежат в США система “Перт”, а в нашей стране – “СПУ”, широко и успешно применяющие графы, так как они позволяют обрабатывать на ЭВМ проекты с большим количеством событий.
С помощью графов-деревьев решают задачи планирования (дерево целей, дерево переборов вариантов).
Графы используют также для иллюстрации классификаций в различных областях знаний при построении иерархических структур сложных систем. Такие графы часто называют блок-схемами.
Примеры блок схем
Так как иерархические структуры представляют собой подчиненные отношения (подмножества), то графически их можно изобразить либо в виде графа-дерева, либо с помощью кругов Эйлера
Аналогично устроена любая административно-территориальная структура: республика, области, районы, населенные пункты. По путям этих деревьев движутся информационные потоки: сверху вниз – распоряжения, руководящие указания, снизу вверх – отчеты о работе, оперативная информация. Так как путь от листа к корню единственный, то его можно использовать для опознания компонентов системы.
Например, почтовый адрес представляет собой «путь в дереве», аналогичный административно-территориальному. В разделе “Кому” указывается страна, республика, область, район, населенный пункт, улица, дом, квартира.
Аналогично классифицируют объекты в любой науке. Получаемая классификация служит примером иерархической структуры. Например, в биологии: класс, отряд, семейство, род, вид.
Соответствующий граф содержит элементы разных уровней, корень – класс, а листья – отдельные виды животных.
Иногда связи между объектами образуют не дерево, но все же их можно представить в виде графа. Это бывает в тех случаях, когда, например, происходит подчинение не одному, а нескольким независимым службам (соподчинение между собой).
В информатике иерархические структуры применяют при описании базы данных, вычислительных сетей, сетей связи, организационных систем. С помощью графа можно графически изображать родословные (генеалогическое дерево или древо).
Задание. Изобразить с помощью блок-схемы иерархическое представление видов вычислительных машин. Вычислительные машины делятся на аналоговые, цифровые, комбинированные. Цифровые машины делятся смешанные, оптоэлектрические, механические, электронные
Бинарный поиск.
Бинарные деревья применяются в информатике для одной из самых распространенных в прикладных науках операций – поиску. К нему прибегают, когда необходимо найти в некотором упорядоченном массиве (множестве) определенную информацию. Например, в телефонном справочнике – номер какого-нибудь абонента, в словаре – определенное слово, в файле – сведения о зарплате сотрудников некоторого предприятия, сведения о зарплате отдельного работника и т.д.
Последовательный, или линейный, поиск является наиболее общим и простым методом выявления интересующей информации: каждый элемент множества проверяется на соответствие заданным условиям. Если множество неупорядочено, то такой процесс будет носить случайный характер. Если множество было предварительно упорядочено (распределение по алфавиту фамилий в телефонном справочнике, слов в словаре, распределение служащих предприятия по табельным номерам в информации о зарплате), то удобнее использовать другой, более эффективный метод – бинарный поиск.
Бинарный поиск основан на методе половинного деления. Поиск начинается с середины множества. Если первый же элемент удовлетворяет условию, то процесс поиска завершен, если не удовлетворяет, то процесс продолжается в любой из половин. Если искомый элемент так и не найден, то анализируется вторая половина до тех пор, пока не обнаружится соответствие найденного элемента заданным условиям. Бинарные деревья необходимы, когда делается выбор одной альтернативы из двух.
Пусть надо найти дубликаты всех чисел в некотором списке. Можно применить сравнение каждого числа с предшествующим на предмет «был – не был». Но тогда необходимо большое число сравнений. Использование бинарных деревьев (БД) укорачивает процедуру сравнения. Считывается новое число и помещается в узел – будущий корень нового БД. Каждое последующее число из списка сравнивается с числом в корне БД. Если эти значения совпадают, то дубликат найден, если число меньше корня, то процесс продолжается в правом поддереве, если больше – в левом поддереве.
Различные виды графов и деревьев находят широкое применение в учебном процессе. Поэтому первоначальные сведения о них необходимы для успешного обучения в различных областях, так как с их помощью часто передается учебная информация. Например, основные классы ЭВМ можно изобразить в виде графа.
На процедуре бинарного поиска с использованием графа-дерева основана работа ЭВМ с базой данных. Информация о базе может быть представлена несколькими способами, в том числе матричным. Так называемые реляционные базы хранят различную информацию в форме таблиц, причем порядок строк и столбцов задается при вводе данных. В базах возможна длительная работа с информацией, ее реорганизация и обновление. С помощью автоматического поиска данных происходит их отбор на основании запроса по определенным характерным признакам.
Запросы в виде сложносоставных высказываний образуются из простейших с помощью логических связок и ряда логических операций. Все методы работы с информацией – поиск, обработка и накопление – основаны на широком применении законов математической логики, знание которой необходимо для понимания принципов работы вычислительных машин, различных электронных устройств.
Логикой называют науку о законах и формах правильного мышления.
А разве можно научиться мыслить правильно? Что значит правильное и неправильное мышление? Возможно ли постичь секреты идеально точных рассуждений?
Познакомившись с первыми разделами дискретной математики, вы, конечно, обратили внимание на множество новых понятий и их определений.
Так ли уж важно определять новые понятия и требовать точности формулировок?
На эти и другие неожиданные вопросы попытаемся ответить в следующей главе, которая приоткроет дверь в хранилище человеческой мудрости – первоначальные представления об основах логики как классической, так и математической. Причем связь между логикой и математикой не случайна: на протяжении двух с половиной тысячелетий они не только параллельно развивались, но и обогащали друг друга. Недаром над входом в философскую школу Платона – Академию – было начертано: «Пусть сюда не входит тот, кто не знает геометрии». Построение математики, в первую очередь геометрии, как точной науки, имеющей достоверные выводы, дает возможность учиться на ее примерах логически мыслить. И это делали еще древнегреческие философы. Знание законов логики, философских законов, например диалектики, помогает при изучении самой математики, так как способствует установлению предельно обобщенного, системного взгляда на отношения в окружающем мире как в природе, так и в обществе.
Практические задания
1. Решите задачи «о переправах», изобразите решение графом.
1. Три генерала – Строгий, Лихой и Грозный – со своими адъютантами переправлялись через реку с помощью двухместной лодки. Адъютант может либо перевозить своего генерала, либо переправляться с другим адъютантом. Однако ни один из генералов не разрешил своему адъютанту ни оставаться с другим генералом вдвоем на берегу, ни переправляться с ним через реку. Как они переправились через реку?
2. Трое мужчин и три женщины должны переправиться через реку. У них была одна лодка, которая вмещала только двух человек. Грести умели все мужчины и только одна женщина. Кроме того, женщины требовали, чтобы ни на одном берегу не оставалось больше женщин, чем мужчин. Как им переправиться через реку?
3. Муж, жена и двое детей должны переправиться на противоположный берег реки при помощи лодки. Муж и жена весят по 100 кг, а дети – по 50. Как им быть, если лодка вмещает до 100 кг и каждый из них умеет грести?
4. Человеку необходимо было переправить через реку с помощью лодки волка, козу и капусту. В лодке мог поместиться только человек, а с ним или волк, или коза, или капуста. Но если оставить волка с козой без человека, то волк съест козу, если оставить козу с капустой, то она съест капусту, а в присутствии человека никто никого не ел. Человек все-таки перевез через реку и волка, и козу, и капусту. Как он это сделал?
2. Задачи на поиск «фальшивой монеты» решите с помощью графов.
1. Из 9 монет одна фальшивая (более легкая). Как двумя взвешиваниями на чашечных весах определить фальшивую монету?
2. Из 80 одинаковых по виду монет одна более легкая (фальшивая). Как четырьмя взвешиваниями на чашечных весах определить фальшивую?
3. Из 28 монет одна более легкая. Как при помощи 4 взвешиваний определить ее?
4. Из 27 монет одна более легкая. Как при помощи 3 взвешиваний определить ее?
5. Из 81 монеты одна более легкая. Показать, что 4 взвешиваний достаточно, чтобы ее определить.
6. Из 82 монет одна более легкая. Какое наименьшее число взвешиваний необходимо для определения этой монеты?
7. Из т одинаковых по виду монет одна фальшивая (более легкая). Указать наименьшее число взвешиваний, необходимых для определения фальшивой монеты.
Требования к знаниям умениям и навыкам.
Студенты должны знать определение графа. Уметь строить графы отношений. Понимать применимость графов для решения определенных задач.