Требования к представлению графов
Известны различные способы представления графов в памяти компьютера, которые различаются объемом занимаемой памяти и скоростью выполнения операций над графами.
Представление выбирается, исходя из потребностей конкретной задачи. Далее приведены два из наиболее часто используемых представления.
Указанные представления пригодны для графов и орграфов, а после некоторой модификации также и для псевдографов, мультиграфов.
Представления иллюстрируются на конкретных примерах графа G и орграфа D, диаграммы которых представлены на рис. 7.10.
Рис. 3.9. Диаграммы графа (слева) и орграфа (справа), используемых в качестве примеров
Матрица смежности
Представление графа с помощью квадратной булевской матрицы
отражающей смежность вершин, называется матрицей смежности, где
Пример
Матрица инциденций
Представление графа с помощью матрицы Н: array [l..p, l..q] of 0..1 (для орграфов Н: array [l..p, l..q] of -1..1), отражающей инцидентность вершин и ребер, называется матрицей инциденций, где для неориентированного графа:
а для ориентированного графа
Пример
2.3.Геометрическая реализация графов
Фигура F называется геометрической реализацией графа G(V,E), если существует взаимно однозначное соответствие между точками фигуры F и вершинами графа, между кривыми фигуры и ребрами, такое, что соответствующие кривые и ребра соединяют соответствующие точки и вершины.
Правильная укладка – это реализация графа, при которой разным вершинам соответствуют разные точки, а кривые, соответствующие ребрам, не проходят через точки (исключая концевые) и не пере ссекаются.
Теорема: каждый конечный граф допускает правильную укладку в трехмерном пространстве.
Граф называет планарным, если он допускает правильную укладку на плоскости.
Теорема (доказано в топологии): граф планарен, если он не имеет подграфов, изоморфных графам K5 и K3,3.
2.4.Маршруты, цепи, циклы
Определения
Маршрутом в графе G(V,E) называется чередующаяся последовательность вершин и ребер v1, e1, v2, e2, ... ,vk,ek,vk+1, в которой любые два соседних элемента инцидентны.
Это определение подходит также для псевдо-, мульти- и орграфов. Для «обычного» графа достаточно указать только последовательность вершин или только последовательность ребер.
Если v1=vk+1, то маршрут замкнут, иначе открыт.
Если все ребра различны, то маршрут называется цепью. Если все вершины цепи различны, то цепь называетсяпростой.
Замкнутая цепь называется циклом; замкнутая простая цепь называется простым циклом.
Число циклов в графе G обозначается z(G) (является инвариантом). Граф без циклов называется ациклическим.
Для орграфов цепь называется путем, а цикл - контуром.
Пример
В графе, диаграмма которого приведена на рис. 3.10:
1. v1,v3,v1,v4 - маршрут, но не цепь;
2. v1, v3, v5, v2, v3, v4 - цепь, но не простая цепь;
3. v1, v4, v3, v2, v5 - простая цепь;
4. v1, v3, v5, v2, v3, v4, v1- цикл, но не простой цикл;
5. v1,v3,v4 - простой цикл.
Рис. 3.10. Маршруты, цепи, циклы
Две вершины графа называются связанными, если существует маршрут, соединяющий эти вершины. Граф называется связным, если любая пара его вершин связанна.
Граф называется деревом, если он связен и не содержит циклов.
Эйлеровы графы
Вернемся к историческому примеру о Кенигсбергских мостах. В каком случае в графе можно найти цикл, в котором каждое ребро участвует ровно один раз?
Цикл, содержащий каждое ребро ровно один раз, называется эйлеровым. Граф, содержащий эйлеровый цикл, называется эйлеровым графом.
Теорема (критерий эйлеровости графа): конечный граф G(V,E) является эйлеровым, тогда и только тогда, когда он связен и степени всех его вершин – четны.
Цепь, содержащая каждое ребро ровно один раз, называется эйлеровой. Граф, содержащий эйлерову цепь, называется полуэйлеровым графом.
Теорема (критерий полуйлеровости графа): конечный граф G(V,E) является полуэйлеровым, тогда и только тогда, когда он связен и точно две го вершины имеют нечетную степень.
Гамильтоновы графы
Кроме эйлеровых графов рассматриваются также гамильтоновы графы.
Название «гамильтонов цикл» произошло от задачи «Кругосветное путешествие», придуманной Гамильтоном в позапрошлом веке: нужно обойти все вершины графа, диаграмма которого показана на рис. 3.11 (в исходной формулировке это были названия столиц различных стран), по одному разу и вернуться в исходную точку.
Этот граф представляет собой укладку додекаэдра.
Рис. 3.11. Задача «Кругосветное путешествие»
Если граф имеет простой цикл, содержащий все вершины графа (по одному разу), то такой цикл называетсягамильтоновым циклом, а граф называется гамильтоновым графом.
Гамильтонов цикл не обязательно содержит все ребра графа. Ясно, что гамильтоновым может быть только связный граф.
Теорема (Дирак). Если в графе G(V, E) для любой вершины v выполняется: (v) р/2, то граф G является гамильтоновым.
Рассмотрим следующую задачу, известную как задача коммивояжера. Имеется р городов, расстояния между которыми известны. Коммивояжер должен посетить все р городов по одному разу, вернувшись в тот, с которого начал. Требуется найти такой маршрут движения, при котором суммарное пройденное расстояние будет минимальным.
Очевидно, что задача коммивояжера - это задача отыскания кратчайшего гамильтонова цикла в полном графе.
Можно предложить следующую простую схему решения задачи коммивояжера: сгенерировать все р! возможных перестановок вершин полного графа, подсчитать для каждой перестановки длину маршрута и выбрать из них кратчайший. Очевидно, такое вычисление потребует огромного количества шагов.
Как известно, р! с ростом р растет быстрее, чем любой полином от р, и даже быстрее, чем 2Р. Таким образом, решение задачи коммивояжера описанным методом полного перебора оказывается практически неосуществимым даже для сравнительно небольших р.
Более того, известно, что задача коммивояжера принадлежит к числу так называемых NP-полных задач. Вкратце суть проблемы NP-полноты сводится следующему. В различных областях дискретной математики, комбинаторики, логики и т. п. известно множество задач, принадлежащих к числу наиболее фундаментальных, для которых, несмотря на все усилия, не удалось найти алгоритмов решения, имеющих полиномиальную трудоемкость. Более того, если бы удалось отыскать эффективный алгоритм решения хотя бы одной из этих задач, то из этого немедленно следовало бы существование эффективных алгоритмов для всех остальных задач данного класса. На этом основано общепринятое мнение, что таких алгоритмов не существует.
Полезно сопоставить задачи отыскания эйлеровых и гамилыоновых циклов, рассмотренные в этом и предыдущем разделах. Внешне формулировки этих задач очень похожи, однако они оказываются принципиально различными с точки зрения практического применения.
Уже давно Эйлером получено просто проверяемое необходимое и достаточное условие существования в графе эйлерова цикла. Что касается гамильтоновых графов, то для них не известно необходимых и достаточных условий. На основе необходимого и досточного условия существования эйлерова цикла можно построить эффективные алгоритмы отыскания такого цикла.
В то же время задача проверки существования гамильтонова цикла оказывается NP-полной (также как и задача коммивояжера). Известно, что почти нет эйлеровых графов, и эффективный алгоритм отыскания эйлеровых циклов редко оказывается применимым на практике.
Теорема: Эйлеровых графов почти нет (E(p) – число эйлеровых графов с p вершинами, G(p) – число всех графов с p вершинами):
.
С другой стороны, можно показать, что почти все графы гамильтоновы.
Теорема: (H(p) – число гамильтоновых графов с p вершинами, G(p) – число всех графов с p вершинами):
.
Таким образом, задача отыскания гамильтонова цикла или эквивалентная задача коммивояжера являются практически востребованными, но для них неизвестен (и, скорее всего, не существует) эффективный алгоритм решения.
2.5.Заключение
В качестве моделей графы удобно использовать в тех случаях, когда рассматриваются системы каких-либо объектов, между которыми существуют определенные связи а также в тех случаях, когда изучается структура системы, возможности ее функционирования.
В информатике графы используются в следующих разделах:
- операционные системы;
- алгоритмизация;
- структуры данных;
- моделирование и др.
4.Логика высказываний
4.1.Введение
4.2.Основные понятия
4.3.Логические операции.
4.4.Составные высказывания
4.5.Формулы логики высказываний
4.6.Законы логики (свойства логических операций)
4.7.Логическое следствие
Логика высказываний
3.1.Введение
Алгебра логики (логика высказываний) – это раздел дискретной математики, изучающий высказывания, рассматриваемые со стороны их логических значений (истинности или ложности), и логические операции над ними.
Алгебра логики возникла в середине 19 в. в трудах Дж. Буля и развивалась затем в работах Ч. Пирса, П. С.Порецкого, Б. Рассела, Д. Гильберта и др. Создание алгебры логики представляло собой попытку решать традиционные логические задачи алгебраическими методами.
С появлением теории множеств (70-е гг. 19 в.), поглотившей часть первоначального предмета алгебры логики, и дальнейшим развитием математической логики (последняя четверть 19 в. - 1-я половина 20 в.) предмет алгебры логики значительно изменился. Основным предметом алгебры логики стали высказывания.
3.2.Основные понятия
В формально-логических выводах используются истинные и ложные предложения.
Определение: повествовательное предложение, о котором можно однозначно сказать, истинно оно или ложно, называется высказыванием.
Примеры высказываний: "кит - животное", "все углы - прямые" и т. п. Первое из этих высказываний является, очевидно, истинным, а второе - ложным. Предложение "реши задачу", также как и "2+2", не является высказываем.
Определения математических понятий не являются высказываниями, т.к. это принятые соглашения.
Будем обозначать высказывания большими латинскими буквами: A, B, C,….
Элементарные, нерасчленяемые высказывания будем называть атомами.
3.3.Логические операции.
Употребляемые в обычной речи логические связки "и", "или", "если..., то...", "эквивалентно", частица "не" и т. д. позволяют из уже заданных высказываний строить новые, более "сложные" высказывания.
Аналогично тому, как в языке из простых предложений с помощью логических связок образуются сложные предложения, так и в логике высказываний из атомов можно образовывать составные высказывания.
Истинность или ложность получаемых таким образом высказываний зависит от истинности и ложности исходных высказываний и соответствующей трактовки связок как операций над высказываниями.
Рассмотрим определения логических операций, соответствующих логическим связкам.
Каждому высказывания можно сопоставить его истинностное значение, обозначаемое соответственно через И (если высказывание истинно), Л (если высказывание ложно).
Истинностное значение сложных высказываний зависит от истинностных значений высказываний, составлявших слоеное высказывание.
Эта зависимость устанавливается в данных ниже определениях я стращается в таблицах истинности.
Пусть A, В - произвольные высказывания, относительно которых не предполагается, что известно их истинностные значения.
Связке "НЕ" соответствует логическая операция отрицания, обозначение операции – знак ù или .
Определение. Отрицанием высказывания A называется высказывание (ùA), которое истинно, если A – ложно, и ложно, если A – истинно.
Таблица истинности отрицания:
A | |
И | Л |
Л | И |
Пример: A: 2*2=4 – истинное высказывание; : или 2*2 4 - ложное высказывание.
Связке "И" соответствует операция конъюнкция, обозначение операции – знак (или &).
Определение. Конъюнкцией высказываний A и B называется высказывание A B (читается "A и B"), которое истинно тогда и только тогда, когда A, B – истинно.
Таблица истинности конъюнкции:
A | B | A B |
И | И | И |
И | Л | Л |
Л | И | Л |
Л | Л | Л |
Пример: A: 5 – нечетное число; B: Пушкин родился в 1799 г – истинные высказывания; поэтому высказываниеA B: 5 – нечетное число Пушкин родился в 1799 г. – истинное высказывание.
Связке "ИЛИ" соответствует операция дизъюнкция, обозначение операции – знак .
В формально-логических выводах «или» употребляется не в исключающем смысле (в отличие от обыденной речи, где эта связка может употребляться и в исключающем смысле и в неисключающем смысле)
Определение. Дизъюнкцией высказываний A и B называется высказывание A B (читается "A или B"), которое ложно тогда и только тогда, когда A, B – ложны.
Таблица истинности дизъюнкции:
A | B | A B |
И | И | И |
И | Л | И |
Л | И | И |
Л | Л | Л |
Пример. A: 7<10, и.в. В: 3 - число четное, л.в. A B: 7<10 3 - число четное, и.в.
Связке "ЕСЛИ....ТО" соответствует логическая операция импликация, обозначение операции знак →.
Определение. Импликацией высказываний A и B называется высказывание A→B (читается "если A, то B"), которое ложно тогда и только тогда, когда A – истинно, а B – ложно.
Таблица истинности импликации:
A | B | A→B |
И | И | И |
И | Л | Л |
Л | И | И |
Л | Л | И |
Пример. A: 2*2=5, л. в. В: 2=2, и. в. A→B: 2*2=5→ 2=2. и. в.
Высказывание A называется условием или посылкой, высказывание В - заключением или следствием импликации.
Связке "ТОГДА И ТОЛЬКО ТОГДА, КОГДА" соответствует операция эквиваленция, обозначение операция – знак «.
Определение. Эквиваленцией высказываний A и В навивается высказывание, обозначаемое A«B (читается :"Aтогда и только тогда, когда В" или короче: "A эквивалентно В"), которое считается истинным только тогда, когда оба высказывания A и В имеют одинаковое истинностное значение.
Эквивалентность А«В читается также следующим образом: "Для того, чтобы A, необходимо и достаточно, чтобы В".
Таблица истинности эквиваленции:
A | B | A«B |
И | И | И |
И | Л | Л |
Л | И | Л |
Л | Л | И |
Пример. A: 7 – число простое; и.в. В: в равнобедренном треугольнике при основании углы равны, и.в. A«В - и.в.
3.4.Составные высказывания
С помощью рассмотренных в предыдущем пункте логических операций из заданной совокупности атомов (элементарных высказываний) можно строить различимо составные высказывания. Порядок выполнения действий указывается скобками.
Истинностное значение составного высказывания зависит только от истинностных значений образующих его атомов, оно может быть найдено на основании определение логических операций с помощью таблиц истинности.
Пример. .
A | B | C | |||
И | И | И | И | Л | И |
И | И | Л | И | Л | Л |
И | Л | И | Л | И | И |
И | Л | Л | Л | И | И |
Л | И | И | Л | И | И |
Л | И | Л | Л | И | И |
Л | Л | И | Л | И | И |
Л | Л | Л | Л | И | И |
3.5.Формулы логики высказываний
Основная задача логики высказываний состоит в изучении логических форм составных высказываний с помощью логических операций.
Понятие логической формы составного высказывания уточняется с помощью вводимого понятия формулы логики высказываний.
Понятие формул логики высказываний определяется следующим образом:
1. Элементарные формулы – атомы – являются формулами логики высказываний.
2. Если A, B – формулы, то , (A B), (A B), (A→B), (A«В) также являются формулами логики высказываний.
3. только те выражения являются формулами логики высказываний, для которых это следует из 1, 2.
Согласно определения, всякая формула либо атом, либо образуется из атомов в результате применения 2.
Число скобок в формулах можно уменьшить, если опустить внешнюю пару скобок и упорядочить знаки логических операций по старшинству: «, →, , , .
Знак « имеет самую большую область действия, знак самую маленькую.
Определение. Формулы логики, принимающие значение "истина" при любых значениях атомов, входящих в формулу, называется тождественно истинными (или законами логики, или тавтологиями).
Например, формула всегда тождественно истинна.
Определение. Формулы логики, принимающие всегда ложное значение, называются тождественно ложными(или противоречиями).
Например, формула - противоречие.
Определение. Формулы алгебры логики, принимающие значение «ложь» хотя бы на одном наборе значений атомов, входящих в формулу называются опровержимыми.
Определение. Формулы алгебры логики, принимающие значение «истина» хотя бы на одном наборе значений атомов, входящих в формулу называются выполнимыми.
Определение. Формулы Р и Q называются равносильными, если их истинностные значения совпадают при любом выборе истинностных значений атомов, входящих в эти формулы.
Запись Р Q означает, что формулы Р и Q равносильны.
3.6.Законы логики (свойства логических операций)
Следующие формулы являются законами логики.
1. - закон двойного отрицания.
2. - закон коммутативности конъюнкции.
3. - закон коммутативности дизъюнкции.
4. - закон ассоциативности конъюнкции.
5. - закон ассоциативности дизъюнкции.
6. - закон дистрибутивности конъюнкции относительно дизъюнкции.
7. - закон дистрибутивности дизъюнкции относительно конъюнкции.
8. - закон отрицания дизъюнкции.
9. - закон отрицания конъюнкции.
10. - закон отрицания импликации.
11. - закон выражения эквивалентности через конъюнкцию и импликацию.
12. - закон контрапозиции.
13. - закон силлогизма.
Для доказательства любого из приведенных выше законов можно использовать следующие способы:
1. Построить таблицы истинности для левых и правых частей эквивалентности и убедиться, что получены одинаковые значения для всех значений атомов.
2. Построить значение всей формулы и убедится, что формула является тавтологией.
Пример. Докажем закон отрицания конъюнкции ( ) этими способами:
1. Найдем значения для и и сравним их.
A | B | |||||
И | И | И | Л | Л | Л | Л |
И | Л | Л | И | Л | И | И |
Л | И | Л | И | И | Л | И |
Л | Л | Л | И | И | И | И |
2. Найдем значение и убедимся, что при всех значениях A и B - это истинное значение.
A | B | ||||||
И | И | И | Л | Л | Л | Л | И |
И | Л | Л | И | Л | И | И | И |
Л | И | Л | И | И | Л | И | И |
Л | Л | Л | И | И | И | И | И |
3.7.Логическое следствие
Определение. Формула B есть логическое следствие формул A1, A2, .., An, если формула B принимает истинное значение при тех же значениях, при которых истинна каждая из формул A1, A2, .., An.
Запись (A1, A2, .., An)ÞB означает, что B – логическое следствие формул A1, A2, .., An.
Пример. (A®B, A® )Þ .
Докажем данное следствие.
A | B | A®B | A® | ||
И | И | И | Л | Л | Л |
И | Л | Л | И | И | Л |
Л | И | И | Л | И | И |
Л | Л | И | И | И | И |
Из определения следует, что противоречие логически влечет любую формулу, а тавтология логически следует из любой формулы логики.
Определение. Формулы F и G называются равносильными, если они являются логическими следствиями друг друга. Обозначение: .
Проанализировав последнее определение, получаем, что формулы равносильны, если они на всех наборах значений переменных превращаются в одинаковые по истинностному значению высказывания.
Следующие теоремы связывают логическое следствие и импликацию, равносильность и эквиваленцию.
Теорема1. тогда и только тогда, когда A®B – тавтология.
Теорема2. тогда и только тогда, когда A«B – тавтология.