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

Вопросы по дискретке

.docx
Скачиваний:
35
Добавлен:
16.01.2016
Размер:
577.94 Кб
Скачать
  1. Множества. Основные понятия, определения. Подмножества. Равенство и мощность множеств.

Под множеством (совокупностью) М понимают набор объектов произвольной природы, которые называются элементами множества. Если число элементов конечно, множество называется конечным. В противном случае говорят о бесконечном множестве.

Множество состоит из некоторых объектов различных и различаемых, которые называются элементами множества. Например: N − Множество натуральных чисел. N0 − множество натуральных чисел и 0. Z − Множество целых чисел. Q − Множество рациональных чисел. Множество Q так же можно представить в виде множества дробей p/q , где p и q – целые числа. R − Множество действительных чисел. Одинаковые элементы, входящие во множество, не различаются и считаются один раз.

Определение. Говорят, что всякий элемент х множества М принадлежит М и пишут: хÎМ. Если же предмет х не является элементом множества М, то говорят, что х не принадлежит М и пишут: хÏМ.

Если множество А состоит из элементов а1, а2, … , ап, будем писать: а1, а2, … , ап Î А или А = {а1, а2, … , ап}. При этом порядок перечисления элементов не имеет значения.

Множества, содержащие в качестве элементов другие множества, называются семействами (классами).

Множество, не содержащее ни одного элемента, называется пустым и обозначается . Существование пустого множества – это постулат.

Если все элементы данной системы множеств принадлежат какому-то одному большому множеству, такое множество называется универсальным множеством или универсумом и обозначается U

Подмножества.

Пусть задано множество А. Множество В, состоящее из элементов множества А, называется подмножеством А. Например. A={a, w, b, c} и В={w, a, b}, тогда В А или А В (В включается в А или А включается в В).. Пустое множество является подмножеством любого множества.

Два множества называются равными, если они состоят из одних и тех же элементов. А={3, 2, а}. В={а, 3, а, 3, 2, а}. Имеем А=В. Теорема. Множество А равняется множеству В, если А является подмножеством В, а В является подмножеством А.

Количество элементов, входящих во множество, называется его мощностью. Два множества называются равномощными, если существует метод, позволяющий каждому элементу одного множества поставить в соответствие элемент другого множества.

  1. Алгебра множеств. Операции над множествами. Свойства.

Алгебра множеств –совокупность тождеств, справедливых независимо от того, какое универсальное множество и какие именно его подмножества входят в эти равенства.

1) Объединением множеств А и В называется множество, состоящее из элементов, входящих или в А, или в В. 2) Пересечение. А В. Пересечением двух множеств называется множество, состоящее из элементов, входящих и в А, и в В. 3) Разность. А\B. Разностью множеств А и В называется множество, состоящее из элементов, входящих в А, но не входящих в В. 4) Дополнение. Ā. Дополнением множества А называется множество, состоящее из элементов не входящих в А

Свойства операций

  1. Разбиение множеств на классы. Декартово произведение, степень. Свойства.

Разбиение множества на классы (классификация) означает, что данное множество А разбивается на подмножества k1, k2, … , km таких, что

Декартовым, или прямым, произведением множества А на множество В называется множество упорядоченных пар, 1-ый элемент которых принадлежит множеству А, а 2-ой – множеству В. Обозначается декартово произведение знаком . Для данных множеств получим А В={(a1, b1),( a1, b2),…,( a1, bm),…,( a2, b1),…,( an, bm)}. Мощность декартового произведения равна nm. Обозначение: |A B| = n m.

Декартова степень

Если в качестве множества В в декартовом произведении выбрать множество А, мы будем говорить о декартовом квадрате.

Декартово произведение n множеств

Набор n элементов будем называть кортежем. Декартовым произведением А1  А2 А3 …  Аn будем называть множество упорядоченных кортежей, первый элемент которых принадлежит множеству А1, второй множеству А2 и т.д.

Свойства декартового произведения

  1. Отношения. Композиция отношений. Виды отношений. Функции.

Пусть заданы два множества А и В. Найдем А В. Подмножество k А В называется отношением из множества А во множество В. Отношения задаются знаками =, <, >, ,  и т.д. Пример: А = {2,3,4}, B={1,4,3}. A B = {(2,1),(2,4),(2,3),(3,1),(3,4),(3,3),(4,1),(4,4),(4,3)}.

Выделим отношения больше (>) : k1 = {(2,1),(3,1),(4,1),(4,3)} и меньше (<) : k 2 = {(2,4),(2,3),(3,4)}.

Композицией отношений из А в В называется множество пар (а, b) таких, что, а € А, b € B и существует такое с € С, что (а, с) k1 и (с, b) k2.

виды отношений

Инъекция. Если каждый элемент множества А соответствует элементу из множества В, то отношение f называется инъективным.

Сюръекция. Если для каждого элемента y множества В существует элемент х А, соответствующий элементу y, то такое отношение f называется сюръекцией.

Биекция. Если для каждого элемента y B существует ровно один элемент х А, которому соответствует y , то такое отношение называется биективным. Биективное отношение инъективно и сюръективно. Биективное отношение имеет обратное отношение.

Выберем отношение f А В = {( a1, b1), (a2, b2),…}, состоящее из пар таких, что ai aj, i, j = 1,2,3,…, т.е. отношение, в котором все первые элементы пар различны. Такие отношения называются функциями.

  1. Комбинаторика. Основные понятия и определения. Размещения.

Задачи, в которых требуется определить количество возможных операций, называются комбинаторными. Пусть имеется группа некоторых объектов a1, a2, …, am которые мы будем называть элементами. Из этой группы элементов будем образовывать подгруппы. Такие подгруппы будем называть соединениями. Из этих соединений выделим классы, которые будем называть размещениями.

Размещениями из m элементов по n называются соединения, каждое из которых содержит n элементов, взятых из данных m и которые отличаются друг от друга или элементами, или их порядком. Предполагается, что элементы в одном размещении не повторяются.

Формула числа размещений без повторений

Или

Каждое размещение содержит одно и то же количество элементов, взятых из данных m элементов

Рассмотрим размещения из m элементов по n, в которых каждый элемент может повторяться. Такие размещения называются размещениями с повторениями:

Таким образом, так как каждый элемент попадает в комбинацию m способами, a комбинаций n, то

  1. Комбинаторика. Основные понятия и определения. Перестановки.

Задачи, в которых требуется определить количество возможных операций, называются комбинаторными. Пусть имеется группа некоторых объектов a1, a2, …, am которые мы будем называть элементами. Из этой группы элементов будем образовывать подгруппы. Такие подгруппы будем называть соединениями. Из этих соединений выделим классы, которые будем называть размещениями.

Размещения из n элементов по n, каждое из которых отличается друг от друга только порядком элементов, называются перестановками. Их число обозначается Pn: Pn = А = n·(n-1) ·(n-2) ·…·2·1, то есть Pn = n! Пример: Сколькими способами могут сесть 6 человек на 6-местную лавочку? Решение: В данном случае каждое расположение лиц на лавочке отличается от другого расположения только порядком. Поэтому мы имеем дело с перестановками: P6 = 6! = 720.

Перестановки с повторениями

  1. Комбинаторика. Основные понятия и определения. Сочетания.

Задачи, в которых требуется определить количество возможных операций, называются комбинаторными. Пусть имеется группа некоторых объектов a1, a2, …, am которые мы будем называть элементами. Из этой группы элементов будем образовывать подгруппы. Такие подгруппы будем называть соединениями. Из этих соединений выделим классы, которые будем называть размещениями.

Сочетания – это размещения, каждое из которых отличается от других хотя бы одним элементом. Другими словами, сочетания – это соединения, содержащие n элементов из данных m, отличающиеся хотя бы одним элементом.

Пример: В группе 20 студентов. Требуется выбрать 5 делегатов на конференцию. Сколькими способами это можно сделать? Решение: Так как внутри каждой пятерки делегатов перестановки дают одну и ту же пятерку, то каждая пятерка должна отличаться от других хотя бы одним делегатом. В данном случае мы должны посчитать число сочетаний из 20 по 5:

Сочетания с повторением

Пример: На почте имеются открытки четырех видов: красные, желтые, зеленые и синие. Требуется 10 открыток. Сколькими способами можно их скомбинировать? Решение: Пусть мы отобрали 4 красных, 2 желтых, 2 зеленых и 2 синих открытки. Составим кортеж из 0 и 1. Выпишем столько единиц, сколько красная открытка встречается в нашем наборе, и поставим 0: 11110. Затем добавим кортеж для желтых − 110. Получим 11110110. Добавим кортеж для зеленых и синих открыток. В последнем 0 не ставим. Получим кортеж 1111011011011. В нем 10 единиц и 3 нуля. Общая длина кортежа – 13. Таких кортежей

Общая формула

  1. Булева алгебра. Основные аксиомы, теоремы и тождества. Логические переменные и логические функции.

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

Отрицание. Высказывание , которое истинно, если р ложно, и ложно, если р истинно, называется отрицанием.

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

Дизъюнкция (логическое сложение). Дизъюнкцией двух высказываний называется высказывание, которое ложно только тогда, когда оба высказывания ложны. Задается союзом ИЛИ.

Импликация. Импликацией двух высказываний р и q называется высказывание, которое ложно только тогда, когда р – истинно, а q – ложно. ЕСЛИ р, ТО q. Обозначение:

Эквиваленция. Эквиваленцией двух высказываний р и q называется высказывание, которое истинно, если оба высказывания принимают одинаковые значения. В словесной формулировке: тогда и только тогда; необходимо и достаточно; если и только если. Обозначение: p ↔ q

Аксиомы алгебры логики

Аксиомы конъюнкции

.

Аксиомы дизъюнкции

.

Аксиомы отрицания

если , то ; если , то

Теоремы алгебры логики

Теоремы исключения констант

.

Теоремы идемпотентности (тавтологии, повторения)

.

для n переменных

.

Теорема противоречия

.

Теорема "исключённого третьего"

.

Теорема двойного отрицания (инволюции)

.

Законы алгебры логики

Ассоциативный (сочетательный) закон

.

Коммутативный (переместительный) закон

.

Дистибутивный (распределительный) закон

.

.

Законы де Моргана (законы общей инверсии или дуальности)

.

.

Закон поглощения (элиминации)

.

Закон склеивания (исключения)

.

  1. Способы задания логических функций и их разновидности.

Различают несколько способов задания ФАЛ, основными из которых являются: табличный, аналитический, цифровой, таблично-графи­че­ский, геометрический.

Табличный способ предусматривает задание ФАЛ таблицей истинности (рис. 2.2, а), в которой указывают, какие из двух возможных значений «0» или «1» принимает функция на каждом наборе аргументов.

Аналитический способ задания предполагает запись функции в виде формализованного выражения, составленного с использованием мате­матического аппарата алгебры логики.

Цифровой способ задания ФАЛ реализуется посредством записи функции в виде совокупности рабочих, запрещённых и условных наборов аргументов.

Таблично-графи­ческий или координатный способ предусматривает задание ФАЛ в виде коорди­натных карт состояний, называемых картами Карно.

Графический способ задания ФАЛ предусматривает изображение функ­ции в виде n-мерной геометрической фигуры, вершинам которой соответствуют наборы значений аргументов данной функции.

  1. Аналитическое представление логических функций в совершенных нормальных формах. СДНФ.

Представление булевой функции в форме дизъюнкции конъюнктивных термов (конституент единицы) Ki

,,

называется дизъюнктивной нормальной формой (ДНФ) этой функции.

Если все конъюнктивные термы в ДНФ являются минтермами, т. е. содержат в точности по одной все логические переменные, взятые с отрицаниями или без них, то такая форма представления функции называется совершенной дизъюнктивной нормальной формой (СДНФ) этой функции.

Пусть имеем таблично заданную функцию f (x, x, x3)

На основании формулы (2.6) получаем:

.

Как видно, при составлении СДНФ функции нужно составить дизъюнкцию всех минтермов, при которых функция принимает значение 1.

  1. Аналитическое представление логических функций в совершенных нормальных формах. СКНФ.

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

Любая булева функция (не равная тождественно 1) может быть представлена в СКНФ, причём такое представление единственно.

Дана таблица истинности

В отличие от СДНФ, при составлении СКНФ в таблице истинности логической функции нужно смотреть комбинации переменных, при которых функция принимает значение 0, и составить конъюнкцию соответствующих макстермов, но переменные нужно брать с обратной инверсией:

.

Нужно отметить, что непосредственно перейти от СДНФ функции к её СКНФ или наоборот невозможно. При попытке таких преобразований получаются функции, обратные по отношению к желаемым. Выражения для СДНФ и СКНФ функции непосредственно можно получить только из её таблицы истинности.

  1. Сущность минимизации логических функций и ее значение. Метод Квайна.

Минимальной формой логической функции в некотором базисе можно считать такую, которая содержит минимальное число суперпозиций функций базиса, допуская и скобки. Однако трудно построить эффективный алгоритм такой минимизации с получением минимальной скобочной формы.

Метод Квайна

Минимизируемая функция представляется в СДНФ, и к ней применяются все возможные операции неполного склеивания

, (2.10)

а затем поглощения

, (2.11)

и эта пара этапов применяется многократно. Таким образом, удаётся снизить ранг термов. Это процедура повторяется до тех пор, пока не останется ни одного терма, допускающего склеивание с каким-либо другим термом.

Заметим, что левую часть уравнения (2.10) сразу можно было минимизировать более простым и очевидным способом:

.

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

  1. Сущность минимизации логических функций и ее значение. Метод Мак-Класки.

Минимальной формой логической функции в некотором базисе можно считать такую, которая содержит минимальное число суперпозиций функций базиса, допуская и скобки. Однако трудно построить эффективный алгоритм такой минимизации с получением минимальной скобочной формы.

Метод Квайна - Мак-Класки.

"Метод представляет собой формализованный на этапе нахождения простых импликант метод Квайна. Формализация производится следующим образом:

  1. Все конституанты единицы из СДНФ булевой функции f записываются их двоичными номерами.

  2. Все номера разбиваются на непересекающиеся группы. Признак образования i-й группы: i единиц в каждом двоичном номере конституенты единицы.

  3. Склеивание производят только между номерами соседних групп. Склеиваемые номера отмечаются каким-либо знаком (зачеркиванием).

  4. Склеивания производят всевозможные, как и в методе Квайна. Неотмеченные после склеивания номера являются простыми импликантами.

Нахождение минимальных ДНФ далее производится по импликантной матрице, как и в методе Квайна.

  1. Сущность минимизации логических функций и ее значение. Метод Блейка-Порецкого.

Минимальной формой логической функции в некотором базисе можно считать такую, которая содержит минимальное число суперпозиций функций базиса, допуская и скобки. Однако трудно построить эффективный алгоритм такой минимизации с получением минимальной скобочной формы.

Метод Блейка - Порецкого.

" Метод позволяет получать сокращенную ДНФ булевой функции f из ее произвольной ДНФ. Базируется на применении формулы обобщенного склеивания:

Ax v B/x = Ax v B/x v AB,

справедливость которой легко доказать. Действительно,

Ax = Ax v ABx;     B/x = B/x v AB/x.

Следовательно,

Ах v В/х = Ах v АВх v В/х v АВ/х = Ах V В/х V АВ.

В основу метода положено следующее утверждение: если в произвольной ДНФ булевой функции f произвести все возможные oбобщенные склеивания, а затем выполнить все поглощения, то в результате получится сокращенная ДНФ функции f.

  1. Сущность минимизации логических функций и ее значение в картах Карно.

Минимальной формой логической функции в некотором базисе можно считать такую, которая содержит минимальное число суперпозиций функций базиса, допуская и скобки. Однако трудно построить эффективный алгоритм такой минимизации с получением минимальной скобочной формы.

Метод карт Карно

Метод карт (таблиц) Карно является более наглядным, менее трудоёмким и надёжным способом минимизации логических функций, но его использование практически ограничено функциями 3-4 переменных, максимум – 5-6 переменных.

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

  1. Кодирование информации. Задачи кодирования. Виды кодирования.

Пусть имеется некоторое множество А = { , ,…, }. Будем называть это множество алфавитом, а объекты – буквами. Кортеж из букв = , ,…, будем называть словом. Последовательность слов – S называется сообщением. Множество сообщений над алфавитом А будем обозначать А . Пусть имеется алфавит В= { , ,…, }. Задача кодирования заключается в том, что сообщение S, заданное над алфавитом А, преобразуется в сообщение S , заданное над алфавитом В (код). Функция f( ), переводящая сообщение S в S , называется кодированием. Последовательность символов , ,…, , соответствующая букве алфавита А, называется элементарным кодом этой буквы. Общее количество символов ─ длина кода. Замечание: В качестве буквы алфавита А, могут выступать и сообщения. Функция, обратная функции кодирования F ( ), называется декодированием. Задача заключается в том, чтобы произвести кодирование, удовлетворяющее некоторым условиям (порой даже взаимоисключающим друг друга). Примеры: 1. Кодирование должно допускать декодирование. 2. Произвести кодирование так, чтобы общая длина кода соответствующая сообщению S

Виды кодирования:

> Равномерное кодирование

> Алфавитное кодирование

> Кодирование с минимальной избыточностью

> Префиксное кодирование

  1. Кодирование информации. Виды кодирования. Равномерное кодирование.

Пусть имеется некоторое множество А = { , ,…, }. Будем называть это множество алфавитом, а объекты – буквами. Кортеж из букв = , ,…, будем называть словом. Последовательность слов – S называется сообщением. Множество сообщений над алфавитом А будем обозначать А . Пусть имеется алфавит В= { , ,…, }. Задача кодирования заключается в том, что сообщение S, заданное над алфавитом А, преобразуется в сообщение S , заданное над алфавитом В (код). Функция f( ), переводящая сообщение S в S , называется кодированием. Последовательность символов , ,…, , соответствующая букве алфавита А, называется элементарным кодом этой буквы. Общее количество символов ─ длина кода. Замечание: В качестве буквы алфавита А, могут выступать и сообщения. Функция, обратная функции кодирования F ( ), называется декодированием. Задача заключается в том, чтобы произвести кодирование, удовлетворяющее некоторым условиям (порой даже взаимоисключающим друг друга). Примеры: 1. Кодирование должно допускать декодирование. 2. Произвести кодирование так, чтобы общая длина кода соответствующая сообщению S

Равномерное кодирование – это кодирование, при котором каждый элементарный код имеет одинаковую длину. Например, если выбрать в качестве алфавита В цифры, то одноразрядным кодом можно закодировать 10 символов, а двухразрядными числами – 100. Пусть алфавит В содержит к букв, а длина элементарного кода n букв. Сколько символов (m) при равномерном кодировании можно закодировать? Элементарные коды ─ это кортежи из n букв, взятых из данных к, поэтому они являются размещениями с повторениями. По известной формуле их число равно m = кт (1) Поставим обратную задачу. Имеется m букв алфавита А. Сколько букв должны содержать элементарные коды при равномерном кодировании? Из формулы (1), логарифмируя, получи n = log km (2) Если же алфавит В={0,1} – двоичный, то закодировать n – битным кодом можно в силу формулы (1) имеем букв m = 2n

Из формулы (2) получим, если m – степень 2,

Если m – не степень 2, то по формуле:

Эти формулы называются формулами Хартли.

Например. Если в качестве алфавита А взять русский алфавит, который содержит 33 символа и пробел, то для 34 символов: по формуле Хартли n =|log2 34 | +1=5+1- 6 бит. При этом мы можем 6-битным кодом закодировать еще 30 символов. Такое кодирование называется избыточным. В компьютерах применяется 1-байтовое кодирование (256 символов) и оно также является избыточным.

  1. Кодирование информации. Виды кодирования. Кодирование с минимальной избыточностью.

Пусть имеется некоторое множество А = { , ,…, }. Будем называть это множество алфавитом, а объекты – буквами. Кортеж из букв = , ,…, будем называть словом. Последовательность слов – S называется сообщением. Множество сообщений над алфавитом А будем обозначать А . Пусть имеется алфавит В= { , ,…, }. Задача кодирования заключается в том, что сообщение S, заданное над алфавитом А, преобразуется в сообщение S , заданное над алфавитом В (код). Функция f( ), переводящая сообщение S в S , называется кодированием. Последовательность символов , ,…, , соответствующая букве алфавита А, называется элементарным кодом этой буквы. Общее количество символов ─ длина кода. Замечание: В качестве буквы алфавита А, могут выступать и сообщения. Функция, обратная функции кодирования F ( ), называется декодированием. Задача заключается в том, чтобы произвести кодирование, удовлетворяющее некоторым условиям (порой даже взаимоисключающим друг друга). Примеры: 1. Кодирование должно допускать декодирование. 2. Произвести кодирование так, чтобы общая длина кода соответствующая сообщению S

При равномерном кодировании общая длина кода зависит от длины сообщения. Возникает необходимость произвести неравномерное кодирование так, чтобы избыточность была минимальной. Пусть задан алфавит А, и мы назначили неравномерные коды этому алфавиту. Например, букве А – 4 – битный код; Б – 6 – битный код; Ъ – 2 – битный код; О – 7 – битный код и так далее. Ясно, что в обычном тексте Ъ встречается реже буквы О, следовательно, если мы переназначим коды: О – 2 – битный код, Ъ – 7 – битный код, то общая длина кода уменьшится. Алгоритм для сообщения S: 1) Находим частоту появления каждой буквы в заданном сообщении.

Замечание: Это кодирование применимо для данного сообщения S. Для другого сообщения частота появления букв может быть другой, следовательно, элементарные коды могут быть другими.

  1. Кодирование информации. Виды кодирования. Алфавитное кодирование. Префиксное кодирование

Пусть имеется некоторое множество А = { , ,…, }. Будем называть это множество алфавитом, а объекты – буквами. Кортеж из букв = , ,…, будем называть словом. Последовательность слов – S называется сообщением. Множество сообщений над алфавитом А будем обозначать А . Пусть имеется алфавит В= { , ,…, }. Задача кодирования заключается в том, что сообщение S, заданное над алфавитом А, преобразуется в сообщение S , заданное над алфавитом В (код). Функция f( ), переводящая сообщение S в S , называется кодированием. Последовательность символов , ,…, , соответствующая букве алфавита А, называется элементарным кодом этой буквы. Общее количество символов ─ длина кода. Замечание: В качестве буквы алфавита А, могут выступать и сообщения. Функция, обратная функции кодирования F ( ), называется декодированием. Задача заключается в том, чтобы произвести кодирование, удовлетворяющее некоторым условиям (порой даже взаимоисключающим друг друга). Примеры: 1. Кодирование должно допускать декодирование. 2. Произвести кодирование так, чтобы общая длина кода соответствующая сообщению S

Алфавитное кодирование – это кодирование, при котором каждой букве алфавита А соответствует элементарный код алфавита В. Если некоторое слово может быть представлено в виде двух частей = , то называется префиксом, а - постфиксом. Естественно, разбиение слова на префикс и постфикс чаще всего неоднозначно. Например, в слове 00110 префиксом может быть 0, или 00, или 001, или 0011.

Префиксное кодирование

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

  1. Кодирование информации. Виды кодирования. Неравенство Макмиллана.

Пусть имеется некоторое множество А = { , ,…, }. Будем называть это множество алфавитом, а объекты – буквами. Кортеж из букв = , ,…, будем называть словом. Последовательность слов – S называется сообщением. Множество сообщений над алфавитом А будем обозначать А . Пусть имеется алфавит В= { , ,…, }. Задача кодирования заключается в том, что сообщение S, заданное над алфавитом А, преобразуется в сообщение S , заданное над алфавитом В (код). Функция f( ), переводящая сообщение S в S , называется кодированием. Последовательность символов , ,…, , соответствующая букве алфавита А, называется элементарным кодом этой буквы. Общее количество символов ─ длина кода. Замечание: В качестве буквы алфавита А, могут выступать и сообщения. Функция, обратная функции кодирования F ( ), называется декодированием. Задача заключается в том, чтобы произвести кодирование, удовлетворяющее некоторым условиям (порой даже взаимоисключающим друг друга). Примеры: 1. Кодирование должно допускать декодирование. 2. Произвести кодирование так, чтобы общая длина кода соответствующая сообщению S

Пусть имеется разделимая схема - длина элементарного кода.

Неравенство Макмиллана позволяет установить будет ли имеющаяся схема кодирования разделимой (необходимое условие).

Пример: Имеется схема кодирования – азбука Морзе.

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

  1. Понятие вероятности. Отличие статической вероятности от гипотетической. Цена кодирования.

Рассмотрим некоторое событие А. Пусть при выполнении комплекса условий возможно n исходов, из которых m – благоприятных для А. Тогда вероятностью события А р (А) назовем отношение числа исходов, благоприятствующих А, к общему числу исходов:

На практике часто пользуются статистической вероятностью. Если в n испытаниях событие А произошло m раз, то статистическая вероятность

Отличие от предыдущей формулы заключается в том, что здесь n и m фактические, а не гипотетические. Пример. Пусть в алфавите А буква «ю» занимает третью позицию. Сообщение содержит n = 100 букв. Буква «ю» встречается в этом сообщении m3 = 10 раз. Тогда вероятность появления буквы «ю» равна р3 = m3 / n = 10 / 100 = 0,1.

Цена кодирования

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

Тогда ценой кодирования называется сумма произведений вероятностей на соответствующую длину кода:

  1. Алгоритм Фано префиксного кодирования. Пример.

Данный алгоритм получения префиксных кодов независимо друг от друга предложили Р. Фано и К. Шеннон, заключается он в следующем. На первом шаге все символы исходной информационной последовательности сортируются по убыванию или возрастанию вероятностей их появления (частоты их появления), после чего упорядоченный ряд символов в некотором месте делится на две части так, чтобы в каждой из них сумма частот символов была примерно одинакова. В качестве демонстрации рассмотрим уже знакомое нам слово «авиакатастрофа».

Если символы, составляющие данное слово, отсортировать по убыванию частоты их появления, то получим следующую последовательность: {а(5), т(2), в(1), и(1), к(1), с(1), р(1), о(1), ф(1)} (в скобках указывается частота повторяемости символа в слове). Далее, нам нужно разделить эту последовательность на две части так, чтобы в каждой из них сумма частот символов была примерно одинаковой (насколько это возможно). Понятно, что раздел пройдет между символами «т» и «в», в результате чего образуется две последовательности: {а(5), т(2)} и {в(1), и(1), к(1), с(1), р(1), о(1), ф(1)}. Причем суммы частот повторяемости символов в первой и второй последовательностях будут одинаковы и равны 7.

На первом шаге деления последовательности символов мы получаем первую цифру кода каждого символа. Правило здесь простое: для тех символов, которые оказались в последовательности слева, код будет начинаться с «0», а для тех, что справа — с «1».

Далее повторяем описанную процедуру для каждой из полученных таким делением последовательностей символов, поскольку каждая из них также упорядочена по частоте повторяемости символов.

В частности, последовательность {а(5), т(2)} разделится на два отдельных символа: a(5) и т(2) (других вариантов деления нет). Тогда вторая цифра кода для символа «a» — это «0», а для символа «т» — «1». Поскольку в результате деления последовательности мы получили отдельные элементы, то они более не делятся и для символа «a» получаем код 00, а для символа «т» — код 01.

Последовательность {в(1), и(1), к(1), с(1), р(1), о(1), ф(1)} можно разделить либо на последовательности {в(1), и(1), к(1)} и {с(1), р(1), о(1), ф(1)}, либо на {в(1), и(1), к(1)}, {с(1)} и {р(1), о(1), ф(1)}.

В первом случае суммы частот повторяемости символов в первой и второй последовательностях будут 3 и 4 соответственно, а во втором случае — 4 и 3 соответственно. Для определенности воспользуемся первым вариантом.

Для символов полученной новой последовательности {в(1), и(1), к(1)} (это левая последовательность) первые две цифры кода будут 10, а для последовательности {с(1), р(1), о(1), ф(1)} — 11.

Далее продолжаем описанную процедуру для каждой из полученных последовательностей до тех пор, пока в результате деления последовательностей в них будет оставаться не более одного символа.

В нашем примере (рис. 2 и 3) получается следующая система префиксных кодов: «a» — 00, «т» — 01, «в» — 100, «и» — 1010, «к» — 1011, «с» — 1100, «р» — 1101, «о» — 1110, «ф» — 1111. Как нетрудно заметить, более короткие коды не являются началом более длинных кодов, то есть выполняется главное свойство префиксных кодов.

  1. Оптимальное кодирование. Теорема об оптимальном кодировании.

Кодирование, при котором цена кодирования имеет наименьшее значение, называется оптимальным. Т.к. число вариантов кодирования конечно, то оптимальное кодирование существует.

Лемма 1. Пусть имеется распределение вероятностей (1) и оптимальная схема кодирования

(2)

что противоречит оптимальности кодирования. Значит, наше предположение неверно и

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

Теорема об оптимальном кодировании

(5)

Разъяснение: Эта теорема позволяет из оптимального кодирования алфавита, имеющего n-1 букв, составить схему оптимального кодирования для другого алфавита, имеющего n букв, если выполнено условие (4). Смысл теоремы заключается в том, что для распределения вероятностей, состоящих из двух букв, мы можем произвести оптимальное кодирование.

Например.

р1 = 0,6 ─ код 0, р2 = 0,4 ─ код 1. Разобьем р1: р1 = 0,3 + 0,3. Каждое из слагаемых поместим в нижнюю часть распределения вероятностей, а имеющемуся коду первой буквы припишем 0 и 1. Получим оптимальную схему кодирования:. р1=0,4 код 1 рP2=0,3 код 00 рP3=0,3 код 01. Далее, продолжая разбивать вероятность р1 = 0,25 + 0,15, получим новую схему оптимального кодирования р1 = 0,3 00 р2 = 0,3 01 р3 = 0,25 10 р4= 0,15 11. и т.д

  1. Помехоустойчивое кодирование

При кодировании сообщений, как правило, происходит передача закодированных сообщений. При этом в канале связи могут возникать помехи, в результате которых на выходе получается искаженное сообщение, что затрудняет его декодирование. Помехи бывают четырех видов: 1) Замена бита на другой бит. 2) Удвоение разряда. 3) Потеря разряда. 4) Комбинация этих помех. Все зависит от технических характеристик канала связи. Предположим, что канал связи таков, что для сообщения длины n – битов, в нем происходит одна ошибка замещения бита. Тогда можно произвести кодирование так, что возникшие ошибки могут быть исправлены автоматически. Одним из способов исправления таких ошибок является, так называемый, «способ голосования», то есть каждый бит заменяется тремя одинаковыми битами. И на выходе всё сообщение разбивается на тройки. Может оказаться, что в какой-то тройке два бита одинаковые, а третий нет. Следовательно, отличающийся бит неправильный. Его можно исправить. Таким образом, вся цепочка передачи сообщения может иметь вид: Сообщение – составление алфавита А

  1. Графы. Основные понятия и определения. Смежность. Виды графов. Изоморфизм. Инварианты. Подграфы.

Задача: Имеется 3 домика и 3 колодца. От каждого домика к каждому колодцу проложена тропинка. Требуется проложить тропинки так, чтобы они не пересекались. Эта задача решений не имеет. Польский математик Куратовский и советский математик Понтрягин независимо друг от друга в 1930 году доказали, что при решении этой задачи хотя бы одно пересечение будет.6.1.

Понятие графа Рассмотренная задача относится к числу классических задач теории графов, в создании которой приняли люди самых разных профессий: математик Эйлер, химик Кэли, физик Кирхгоф.

Определение. Пусть задано некоторое множество .Образуем множество Е, элементами которого являются неупорядоченные пары, составленные из элементов множества , причем

. Множество V называется множеством вершин, а множество Е – множеством ребер. Совокупность этих множеств называется графом G(V,E).

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

Смежность

Если вершина V1 принадлежит ребру е1 , то V1 и е1 называются инцидентными. Две вершины, инцидентные одному ребру, называются смежными. Два ребра, инцидентные одной и той же вершине, тоже называются смежными.

Вершина V1 смежна с вершинами V2 и V4. Ребро Е 1 является смежным с ребрами Е2, Е3, Е5. Количество ребер, инцидентных данной вершине, называется степенью вершины - d(V).

Виды графов

1)Если множество Е составлено из упорядоченных пар, то есть является подмножеством декартового квадрата, то граф называется ориентированным, или орграфом. В орграфе ребра называются дугами.

Если вершина является началом дуги, то будем говорить, что «дуга исходит из вершины». А если вершина является концом дуги, то «дуга заходит в вершину». Количество заходящих дуг называется полустепенью захода, а количество исходящих дуг – полустепенью исхода. 2) Если допустить, что элементами множества Е являются пары с одиночными вершинами, то такое ребро называется петлей, а граф – псевдографом. 3) Если допустить, что V является не множеством, а набором элементов, то есть допустимо наличие одинаковых элементов, то у нас могут появиться кратные ребра, а граф будет мультиграфом. 4) Если множество Е содержит элементы, состоящие более чем из двух вершин, то такой граф называется

Над графом можно производить различные действия: добавить, удалить ребро / вершину, изменить направление ребра ит.д. Два графа называются изоморфными, если при преобразовании не нарушается смежность. Пример изоморфных графов.

Графы характеризуются некоторыми параметрами: числом вершин, ребер, степенями вершины и так далее. Параметры, которые не меняются с преобразованием графа, называются инвариантами. Рассмотрим следующее утверждение: Если при преобразовании количество вершин, ребер и степень вершины являются инвариантами, то преобразование ─ изоморфизм. Однако, наше предложение не является теоремой. В этом нас убеждает граф 3, у которого перечисленные характеристики совпадают с характеристиками графа 1 , но эти графы не изоморфны.

  1. Графы. Понятие маршруты, цепи, циклы. Расстояние. Связность.

Задача: Имеется 3 домика и 3 колодца. От каждого домика к каждому колодцу проложена тропинка. Требуется проложить тропинки так, чтобы они не пересекались. Эта задача решений не имеет. Польский математик Куратовский и советский математик Понтрягин независимо друг от друга в 1930 году доказали, что при решении этой задачи хотя бы одно пересечение будет.6.1.

Понятие графа Рассмотренная задача относится к числу классических задач теории графов, в создании которой приняли люди самых разных профессий: математик Эйлер, химик Кэли, физик Кирхгоф.

Определение. Пусть задано некоторое множество .Образуем множество Е, элементами которого являются неупорядоченные пары, составленные из элементов множества , причем

. Множество V называется множеством вершин, а множество Е – множеством ребер. Совокупность этих множеств называется графом G(V,E).

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

Пусть задан граф G(V, E). Последовательность вершин и ребер V0 , l1 ,, V1 , …, lк V , в которой каждые два соседних элемента инцидентны, называется маршрутом. Замечание: маршрут может быть задан последовательностью вершин: V0 , V1 ,V2 ,…,Vк . Вершины V0 и ─ концы маршрута. Маршрут, в котором все ребра различны, называется цепью. Цепь, в которой все вершины различны, называется простой цепью.

Цепь, в которой начальная и конечная вершины совпадают, называется циклом. Простая цепь, в которой начальная и конечная вершины совпадают, называется простым циклом. Граф, не имеющий циклов, называется ациклическим.

Теорема. Если существует цепь, соединяющая две вершины, то существует и простая цепь, соединяющая эти вершины.

Доказательство: Пусть существует цепь V1 ,V2 ,…,Vi ,Vi+1 ,…,Vi ,…,Vk . Все вершины и ребра, расположенные между Vi и вторым вхождением Vi , можно из цепи выбросить вместе с одной из Vi . Получилась новая цепь, содержащая Vi один раз. Если в ней еще есть одинаковые вершины, поступаем так же. Получится цепь, не содержащая одинаковых вершин, то есть простая цепь. Что и требовалось доказать. Замечание: в орграфах цепь называется путем, а цикл - контуром.

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

Если для двух вершин существует цепь, то они называются связанными. Граф называется связным, если у него все вершины связны. Таким образом, если граф не связан. то из него можно выделить связные подграфы, называемые компонентами связности.

  1. Задание графов.

1)Матрица смежности. Пусть имеется граф G с n вершинами. Рассмотрим квадратную матрицу nn, элементами которой являются 0 и 1.

Эта матрица называется матрицей смежности, и она симметрична относительно главной диагонали.

3)список смежности

  1. Метод математической индукции.

Мы заметили некоторую закономерность в значениях изучаемой последовательности. Проверяем эту закономерность для n = 1. Предполагаем, что формула справедлива при некотором n и доказываем, что она справедлива для n = n + 1 . Подставляем в формулу n + 1 и получаем формулу, которой соответствует (n + 1) - ый член. Затем получаем (n + 1) - ый член, исходя из общего принципа построения последовательности. Получим формулу для n + 1. Если эти формулы совпадают, то закономерность считается доказанной. Пример:

  1. Двудольные графы. Задача о наименьшем числе аварий.

Пусть задан граф G(V, E),. Если множество вершин графа может быть разбито на два множества Х и У (V= Х У), таких, что каждая вершина множества Х смежна со всеми вершинами множества У (следовательно, каждая вершина из У смежна со всеми вершинами из Х), и все вершины каждого из этих подмножеств между собой не смежены, то такой граф называется двудольным.

Задача о наименьшем числе аварий.

Пусть множество Х – множество печей для обжига кирпича, а множество У – множество платформ для сушки кирпича. Печи соединены с платформами рельсами. В месте пересечения рельсов вагонетки могут сойти с рельса. Ясно, чем меньше пересечений, тем меньше аварий. Каково наименьшее число аварий? Поставим задачу в математическом виде. Пусть имеется двудольный граф G , где m и n – мощности множеств Х и У соответственно. Предположим, что вершины и ребра расположены в одной плоскости. В каждой точке, отличной от вершины пересекаются не более двух ребер. Оценим общее количество внутренних точек пересечения двудольного графа. Введем обозначения: J(m, n) – функция, значением которой является число таких точек пересечения. Нам известно, что граф Понтрягина – Куратоввского имеет не менее одного пересечения, т.е. справедлива

  1. Взвешенный граф. Задача о кратчайшем пути. Алгоритм Форда.

Пусть задан граф G(V, E). Если каждому ребру этого графа поставлено в соответствие некоторое число, то граф называется взвешенным. При задании взвешенных графов в матрицу смежности (или список) заносятся веса.

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

Обозначим lij ─ расстояние от i - той до смежной с ней j - той вершины. Задача о нахождении кратчайшего расстояния может быть решена прямым перебором всевозможных расстояний. Кроме кратчайшего расстояния нам необходимо еще и знание промежуточных вершин, через которые пролегает маршрут. Если n – велико, то та задача становится трудно разрешимой. Возникает необходимость в разработке более компактного алгоритма.

Алгоритм Форда

Сущность этого алгоритма заключается в том, что каждой i - той вершине ставится в соответствие некоторое число , значение которого зависит от значения предыдущей вершины и расстояния между ними. Сначала объявляется  = 0, а все остальные  = ∞:

Пусть назначена λi i - той вершине (I = 0,1,…, n). Рассмотрим все j - ые вершины, смежные с i - той. Если то полагаем

И так до тех пор, пока не дойдем до λn. Значение λn и будет значением кратчайшего пути.

  1. Задача о максимальном потоке. Теорема Форда-Фолкерсона.

Предварительно рассмотрим простую задачу. Пусть трубопровод состоит из трех труб различного сечения с пропускными способностями 10 л/мин, 5 л/мин, 7 л/мин. Вполне очевидно, что пропускная способность системы равна 5 л/мин, т.е. совпадает с наименьшей пропускной способностью труб.

Теорема. Максимальный поток сети равен минимальному потоку разреза.

  1. Связанность в графах.

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

  1. Деревья. Задача о минимальном остовном дереве. Жадный алгоритм Краскала построения кратчайшего остова.Ориентированные деревья. Упорядоченные, бинарные.

Если граф не имеет циклов, то он называется ациклическим. В связном графе мостом называется ребро, при удалении которого увеличивается число компонент связности. Если в графе q = р - 1, то граф называется древовидным. Ациклический связный граф называется деревом. Теорема. Следующие утверждения равносильны, , т.е. если для графа G выполнено любое из условий, то он дерево: 1) Граф ацикличен и связан. 2) Граф ацикличен и древовиден. 3) Граф связан и древовиден. 4) Граф ацикличен, но добавление одного ребра приводит к образованию ровно одного цикла. 5) Каждое ребро графа есть мост.

В деревьях обычно одну из вершин выделяют и называют корнем. Вершины, удаленные от корня на одно и то же расстояние образуют ярус. V0- нулевой ярус, V1, V2 – первый ярус, V3, V4, V7, V8, V9 – второй ярус, В деревьях обычно одну из вершин выделяют и называют корнем. Вершины, удаленные от корня на одно и то же расстояние образуют ярус. V0- нулевой ярус, V1, V2 – первый ярус, V3, V4, V7, V8, V9 – второй ярус

Вершины, степень которых равна 1 (висячие) называются концевыми, или листьями. На рис. 55 – это вершины , V10, V11, V12, V13, V14, V15, V16, V17, V18, V19 . Упорядоченное объединение непересекающихся деревьев называется лесом. Ясно, что лес является несвязным графом. Остовом связного графа называется подграф, содержащий все его вершины и являющийся деревом. Такое дерево называют покрывающим граф. Каждая вершина дерева называется узлом.

Задача о минимальном остовном дереве.

Эта задача довольно часто возникает на практике при строительстве линий электропередач, каналов связи, газопроводов и т.п. Задача. Пусть имеется связный взвешенный граф. Веса можно истолковывать как стоимости, расстояния и т.д. Требуется построить остов с минимальным суммарным весом. (Если граф не связный, то требуется построить минимальный лес). Существует много способов нахождения какого-нибудь остова данного графа. Например, алгоритм поиска в глубину строит остов по ребрам возврата, но этот остов может не быть кратчайшим.

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

Ориентированные деревья Орграф называется ориентированным деревом (ордеревом), если 1. существует единственный узел, полустепень захода которого равна 0 (корень), 2. полустепень захода остальных узлов равна 1, 3. все узлы достижимы из корня.

Теорема. Свойства ордеревьев. 1.Если q – число дуг, а p – число узлов оррдерева, то q = p - 1. 2. Если в оррдереве отменить ориентацию ребер, то получится свободное дерево. 3. В оррдереве нет контуров. 4. Для каждого узла существует единственный путь из корня. 5. Если в свободном дереве любую вершину назначить корнем, то получится оррдерево.

Упорядоченные деревья Если в качестве корня в ордереве выбрать какой-нибудь узел v, то множество узлов, достижимых из v образует орграф с корнем v (поддерево). Если относительный порядок поддеревьев установлен, то ордерево называется упорядоченным.

Бинарные деревья В информатике широко используются подмножества множества деревьев, в которых каждый узел является либо листом, либо образует два поддерева – левое и правое. Такой вид деревьев называется бинарным деревом. Бинарное дерево не является упорядоченным ордеревом. Например, деревья а и b различны.

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

  1. Эйлеровы циклы.

Задача о Кёнигсбергских мостах. По Кёнигсбергу протекает река Прегель, образующая два острова, связанных между собой и с берегами семью мостами. Надо разработать такой замкнутый маршрут, в котором каждый из мостов проходится один раз.

Эта задача была решена Эйлером в 1736 г. Задача сводится к построению циклического графа с 4 вершинами и 7 ребрами так, чтобы каждое ребро входило в него по одному разу. Аналогична задача о рисовании конвертов, не отрывая карандаша и не рисуя дважды одну линию

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

Доказательство: Необходимость: Пусть граф эйлеров, то есть существует или эйлерова цепь, или эйлеров цикл. И пусть имеется одна вершина с нечетной степенью, не являющаяся ни начальной, ни конечной, степень которой равна 2п+1. Тогда 2п+1 – е ребро приведет нас в эту вершину п + 1-й раз, и покинуть её мы не сможем. Следовательно, такими вершинами могут быть только начальная и конечная. Их две в случае наличия цепи и 0 в случае цикла.

Достаточность Пусть имеется две вершины с нечетной степенью. Выйдя из вершины А, мы попадем в вершины, из которых всегда можно выйти. Таким образом, все ребра, инцидентные вершинам с четной степенью, будут пройдены, имы придем к вершине В. Мы можем выйти, затем войти, но опять выйти уже не сможем. Таким образом, между А и В существует эйлерова цепь. Докажем существование эйлерова цикла для вершины А: Пусть эйлеров цикл существует для некоторых q ребер. Докажем, что он существует для q > q . Так как для любого q <q существует эйлеров цикл, а каждая вершина имеет четную степень, то существует вершина, принадлежащая обоим циклам (уже пройденному и еще нет, ребра которого не входят в 1 - ый цикл). Объединяя эти циклы, получим эйлеров цикл.

Таким образом, из теоремы Эйлера следует, что задача о Кёнигсбергских мостах и о рисовании закрытого конверта решений не имеют, т.к. вершин нечетной степени больше двух. Задача об открытом конверте решение имеет. Построение его следует начинать из вершины нечетной степени.

  1. Гамильтоновы графы. Существование (лемма). Теорема Дирака. Задача коммивояжера.

В средине 19 века ирландский математик Уильям Гамильтон опубликовал задачу о «кругосветном путешествии». Требуется обойти все вершины графа (столицы государств) по одному разу и вернуться в исходную вершину.

Если граф имеет простой цикл, содержащий все вершины графа, то этот цикл называется гамильтоновым циклом, а сам граф называется гамильтоновым графом. Гамильтонов цикл не обязательно содержит все ребра графа. Совершенно очевидно, что гамильтоновы графы являются связными. Решение задачи о «кругосветном путешествии». Находясь в любой вершине, мы можем повернуть вправо (П) или влево (Л). Условимся вместо ПП писать П2 и т.д. Тогда решение может быть задано формулой (Л3 П3 (ЛП)2)2 = ЛЛЛ ППП ЛП ЛП ЛЛЛ ППП ЛП ЛП. Решение не единственно. Можно начинать в обратном порядке. Можно сделать круговую перестановку.

Лемма. Любой граф G можно превратить в гамильтонов, добавив достаточное количество вершин и ребер. Доказательство. К вершинам v1, v2, …, vр добавим вершины u1, u2, …, uр и множество ребер {( v i ,u i)}U {( u I ,vi+11)}. Получим гамильтонов граф.

Теорема Дирака. Если в графе G степень каждой вершины d(v) ≥ р/2 (р ─ число вершин), то этот граф является гамильтоновым.

Доказательство от противного. Предположим, что граф не гамильтонов. Добавим к нему наименьшее количество п вершин uI, соединяя их со всеми вершинами v так, чтобы получился гамильтонов граф. Пусть v, u1, w, …, v – гамильтонов цикл в новом графе. G1, причем vG, u1 G1, u1G. Такая пара вершин v и u1 в гамильтоновом цикле обязательно найдется, иначе граф G был бы гамильтоновым. Тогда w G и w {u i}, иначе вершина u1 была бы не нужна. Вершина u1 была бы не нужна, если бы вершины v и w были бы смежными. Если в цикле v, u1, w, …, х, у, …, v есть вершина у, смежная с вершиной w, то вершина х несмежна с вершиной v, т.к. иначе можно было бы построить гамильтонов цикл v, х, w, у, …, v без u1. Отсюда следует, что число вершин графа G1, не смежных с v, не менее числа вершин смежных с w. Но для любой вершины w графа G имеем d(w) ≥ р/2 + п по построению и d(v) ≥ р/2 + п. Общее число вершин, смежных и несмежных с v, равно р + п -1. Получим Р + п -1 ≥ d(w) + d(v) ≥ р/2 + п+ р/2 + п = р + 2п. Итак , р+ п -1 ≥ р + 2п. Отсюда 0 ≥ п + 1, что противоречит положительности п

Задача коммивояжера Имеется р городов, связанных между собой дорогами с известными их длинами. Требуется обойти все города по одному разу так, чтобы сумма пройденных расстояний была наименьшей. Решение может быть осуществлено методом прямого перебора, что потребует рассмотрения р! вариантов с последующим выбором оптимального. Даже для небольших р это весьма затруднительно. Данная задача относится к числу, так называемых, NP задач, для которых не известен эффективный алгоритм, существенно сокращающий перебор вариантов.

Соседние файлы в предмете Дискретная математика