Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
(2c)
Дискретная математика 0.88
Корнеева Н. Н.
Конспект по вопросам экзамена
Авторы:
Дарья Ковтун
Никита Карамов
conspects.karamoff.dev
Задонатить:
На сайте вы можете найти реквизиты для перевода денег. В комментарии к
платежу пишите “За конспект по дискретке”
О найденных неточностях можно сообщать в личку или любой другой удобный для вас канал связи
1.
Изоморфизм орграфов
Два графа называются изоморфными, если существует взаимно-однозначное
соответствие (биекция) между вершинами и дугами, сохраняющее
ориентированность.
2
Доказательство. Рассмотрим путь v 0 e1 v 1 e2 ... en v n , v 0 =/ v n . Возьмём некую
вершину v i на данном пути. Если она встречается на пути больше, чем один раз,
то значит, она является частью контура v i ei+1 v i+1 ... v j=i . Удалим этот контур.
Получившийся путь также будет проходить между вершинами v 0 и v n , но
вершина v i будет в нём встречаться уже однократно.
Лемма. Любой контур содержит простой контур, причём каждая вершина и дуга
этого контура принадлежат некоторому простому контуру.
3
Доказательство. Очевидно, что если граф ориентируем, то каждое из его рёбер
должно содержаться в цикле (иначе граф не будет сильно связным).
Теорема Роббинса
Теорема Роббинса. Связный неориентированный граф обладает сильно связной
ориентацией только тогда, когда он не содержит мостов.
Если же в графе мостов нет, то каждое ребро принадлежит какому-то циклу. Если
в этом цикле есть все вершины графа, то получается сильно связная ориентация.
Если нет, то находим ребро, одна из вершин которого принадлежит найденному
циклу, а другая — нет. Однако, каждое ребро принадлежит какому-то циклу,
поэтому мы можем достроить это ребро до другого цикла и объединить с
первоначальным. Так продолжаем до тех пор, пока не получим цикл, содержащий
все вершины графа. Такой граф будет обладать сильно связной ориентацией, что
и требовалось доказать.
4
2.
Способы задания орграфов
1. Матрица инцидентности
Размерность: p × q ( p — количество вершин, q — количество рёбер)
Элемент aij равен:
○ 1, если вершина под номером i — начало дуги под номером j
○ 0, если вершина под номером i не инцидентна дуге под номером j
○ -1, если вершина под номером i — конец дуги под номером j
2. Матрица смежности
Размерность: p × p
Элемент aij равен:
○ 1, если вершина под номером i смежна вершине под номером j
○ 0, если вершина под номером i не смежна вершине под номером j
Доказательство. Так как каждая дуга инцидентна двум вершинам, она добавляет
2 в сумму степеней графа — 1 для исхода и 1 для захода. Теорема доказана.
Путь в орграфе
Путь длины k — путь, содержащий в себе k .
5
1. Для l = 1 утверждение верно. Действительно, первоначальная матрица и
содержит пути длины 1.
2. Положим, утверждение верно для l − 1 . Тогда имеем матрицу Al−1 = eij ,
содержащую пути длины l − 1 .
n−1
3. Проверим для l . Согласно правилу умножения матриц, y ij = ∑ eis asj . Тогда
s=0
каждый элемент матрицы будет содержать количество путей длины l —
такие пути будут состоять из путей длины l − 1 и ещё одного ребра между
последними двумя вершинами.
Теорема доказана.
6
3.
Взвешенный орграф. Длина пути во взвешенном орграфе.
Расстояние между вершинами.
Взвешенный орграф — простой орграф, для дуг которого задана функция w .
Значение w(u, v ) — вес дуги между вершинами u и v .
n
Длиной пути v 0 v 1 v 2 ... v n называется сумма ∑ w(v i−1 , v i ) — сумма весов дуг пути.
i=1
Алгоритм
Будем искать кратчайшие пути из вершины u .
Шаг 1. Пометим l(u) = 0 , l(v i ) = ∞ , где v i — каждая из вершин, кроме u . На данном
этапе все вершины не посещены.
Шаг 2. Выберем непосещённую вершину с наименьшей меткой. Если таких
несколько, выбираем любую. Пусть выбранная нами вершина — z .
Для каждой непосещенной вершины x , в которую есть путь из z , в случае, если
l(z) + w(z, x) < l(x) , меняем метку: l(x) = l(z) + w(z, x) . Вершина z посещена.
Шаг 3 и т. д. Выполняем операцию до тех пор, пока не останется непосещённых
вершин, достижимых из u .
В конце работы алгоритма значение l(v) для каждой вершины v будет равно
длине кратчайшего пути из вершины u в вершину v .
Доказательство работы
Теорема. Пусть G — ориентированный взвешенный граф с неотрицательными
весами рёбер. s — стартовая вершина. Тогда после выполнения алгоритма
Дейкстры l(u) будет равна кратчайшему расстоянию из s в u для любого u .
Пример
Найдём кратчайшие пути из вершины под номером 1 для данного графа:
8
дуга из (1) по свойству l(x) = min( l(1) + w(1, x), l(x) ) — это вершины (2), (3), (6).
Шаг 3. Посещаем следующую вершину с наименьшей меткой — (2). Помечаем по
свойству непосещённые вершины, куда есть дуга из (2): (4).
9
Шаг 5. Посещаем вершину с наименьшей меткой — (6). Помечаем непосещённые
вершины, куда есть дуга из (6): (5).
10
Финал.
Метки вершин равны длинам кратчайших путей из вершины под номером 1.
Очевидно, что d0ij = w(i, j ) , если такое ребро существует, в противном случае
длина обозначается ∞ .
11
Пример
Найдём кратчайшие пути между всеми вершинами в данном графе:
i\j 1 2 3 4 5 6
1 0 7 9 ∞ ∞ 14
2 ∞ 0 10 15 ∞ ∞
3 ∞ ∞ 0 11 ∞ 2
4 ∞ ∞ ∞ 0 6 ∞
5 ∞ ∞ ∞ ∞ 0 ∞
6 ∞ ∞ ∞ ∞ 9 0
Заменим значения в невыделенных ячейках, если сумма значений в выделенных
ячейках в соответствующих строке и столбце меньше. На данном шаге таких
ячеек нет, так как через вершину 1 не может быть хода — у неё нет входящих дуг.
Итоговой таблицей будет таблица для d1 .
i\j 1 2 3 4 5 6
1 0 7 9 ∞ ∞ 14
2 ∞ 0 10 15 ∞ ∞
3 ∞ ∞ 0 11 ∞ 2
4 ∞ ∞ ∞ 0 6 ∞
5 ∞ ∞ ∞ ∞ 0 ∞
6 ∞ ∞ ∞ ∞ 9 0
12
i\j 1 2 3 4 5 6
1 0 7 9 22 ∞ 14
2 ∞ 0 10 15 ∞ ∞
3 ∞ ∞ 0 11 ∞ 2
4 ∞ ∞ ∞ 0 6 ∞
5 ∞ ∞ ∞ ∞ 0 ∞
6 ∞ ∞ ∞ ∞ 9 0
i\j 1 2 3 4 5 6
1 0 7 9 20 ∞ 11
2 ∞ 0 10 15 ∞ 12
3 ∞ ∞ 0 11 ∞ 2
4 ∞ ∞ ∞ 0 6 ∞
5 ∞ ∞ ∞ ∞ 0 ∞
6 ∞ ∞ ∞ ∞ 9 0
13
значение в ячейке на третьей строке в пятом столбце — 11 + 6 = 17 < ∞. Итоговой
таблицей будет таблица для d4 .
i\j 1 2 3 4 5 6
i\j 1 2 3 4 5 6
14
i\j 1 2 3 4 5 6
15
4.
Транспортная сеть и поток
Транспортная сеть — ориентированный граф, в котором выделены две вершины
— источник s (source) и сток t (target). При этом источник имеет нулевую степень
захода, сток — нулевую степень исхода, и каждая дуга имеет положительную
пропускную способность.
Пропускная способность дуги = вес дуги. Обозначается как c(u, v ) или как c(e)
Поток через разрез — сумма потоков дуг разреза из A в B минус сумма потоков
дуг разреза из B в A : ∑ f (u, v ) − ∑ f (v, u) .
u∈A, v∈B u∈A, v∈B
16
Примеры
— сеть
Свойства потока
− ( ∑ f (j, k ) − ∑ f (k, j )
k∈B k∈B
) = стали учитываться дуги A → j , но перестали учитываться дуги j → B
17
f (A, B ) + 2 ∑ f (i, j ) + 2 ∑ f (k, j ) = свойство антисимметричности потока
i∈A k∈B
f (A, B ) + 0 =
так как поток не остаётся на дугах сети
f (A, B ) .
Доказательство.
c(A, B ) − f (A, B ) = ∑ c(i, j ) − ∑ f (i, j ) = ∑ (c(i, j ) − f (i, j )) ≥ 0 (каждый поток
i∈A, j∈B i∈A, j∈B i∈A, j∈B
ограничен пропускной способностью)
Лемма доказана.
18
5.
Максимальный поток и минимальный разрез. Задача о
нахождении максимального потока
Максимальный поток — поток максимальной величины.
Докажем, что этот разрез минимальный, то есть, что его пропускная способность
совпадает с найденным нами максимальным потоком.
19
Рассмотрим прямую дугу i → j , i ∈ A, j ∈ B . На ней поток равен пропускной
способности, иначе путь был бы увеличивающим, и вершина i входила бы в A .
Таким образом, поток на прямых дугах равен пропускной способности разреза.
Поток через разрез равен потоку на прямых дугах минус поток на обратных дугах,
что в нашем случае совпадает с пропускной способностью разреза, что и
требовалось доказать.
20
6.
Алфавит, слова, язык
Алфавит — любое конечное непустое множество символов — букв.
Обозначается за X .
○ X — алфавит автомата
○ S — множество состояний автомата
○ δ — функция перехода
○ s1 — начальное состояние
○ F — множество допускающих состояний
1. С помощью таблицы
Строки в таблице — состояния автоматов.
Первый столбец — название состояния, следующие n столбцов — состояния,
в которые должен перейти автомат по соответствующему символу языка.
Заголовки столбцов — символы алфавита языка автомата.
2. С помощью графа
Автомат — орграф.
Состояния — вершины, переходы по символам — дуги.
Допускающие состояния выделяются двойным кружком или квадратом.
21
Языки, распознаваемые ДКА
Язык L распознаётся автоматом A в том случае, когда автомат, начиная работать
в начальном состоянии, под действием любых слов, принадлежащих языку L ,
приходит в допускающее состояние, а под действием слов, не принадлежащих
языку L , приходит в недопускающее состояние.
s0 = λ — пустое слово.
F = L — допускающие состояния совпадают со словами языка.
Теорема доказана.
22
минимум n + 1 случай. Так как количество состояний равно n , делаем вывод, что
два состояния совпадают. Пусть это состояния s1 δ(ai ) = s1 δ(aj ) .
Но состояния s1 δ(ai ) и s1 δ(aj ) равны, а значит δ (bi ) должна была привести либо
однозначно в допускающее состояние, либо однозначно в недопускающее.
Противоречие; теорема доказана.
23
7.
Различимость и неразличимость слов относительно языка
Слова α и β называются различимыми словом γ относительно языка L , если
одно из слов αγ и β γ принадлежит языку L , а другое — нет.
Обозначается α≁β .
Примеры
L = {a, ab, bba, abbb}
Отношение эквивалентности
Утверждение. Отношения неразличимости являются отношениями
эквивалентности
Доказательство.
24
Если (αγ)θ ∈ L , то (α)γθ ∈ L . Тогда имеем (β)γθ ∈ L , то есть (βγ)θ ∈ L . Это
выполняется для любого θ , а значит αγ ~ β γ , что и требовалось доказать.
Ранг языка
Ранг языка — максимальное количество пар неразличимых слов. Обозначается
как rk L .
αi γ ∈ L ⇒ s1 δ(αi γ) ∈ F ,
αj γ ∈ L ⇒ s1 δ(αj γ) ∈ F .
25
8.
Базис отношения неразличимости
Базис — множество W ⊆ X * такое, что
○ любые два слова из W попарно различимы
○ любое слово из X * , но не W , неразличимо с каким-нибудь словом из W
26
3. Повторяем операцию, пока в таблице не останется незаполненных ячеек.
Строки, названия которых совпадают со словами из языка, объявляем
допускающими состояниями.
27
9.
Минимальный автомат. Задача минимизации автомата
Автомат связный, если каждое его состояние достижимо из начального.
28
10.
Свойства языков распознаваемых ДКА
Тогда имеем: (s1 , s2 )δ(α) = (s1 δ 1 (α), s2 δ 2 (α)) . Это состояние является допускающим в
случае, если допускающим является s1 δ 1 (α) или s2 δ 2 (α) . То есть, автомат
распознаёт слово, если оно распознаётся первым или вторым автоматом, что и
есть объединение автоматов.
Распознаваемость дополнения
Теорема. Если язык распознаётся конечным автоматом, то его дополнение также
распознаётся конечным автоматом.
29
11.
Лемма о накачке для языков, распознаваемых ДКА
Если L распознаётся конечным автоматом, то ∃n ∈ ℕ : ∀α{|α| > n}, α = α1 α2 α3
выполняется:
○ α2 =/ λ
○ α ∈ L ⇒ α1 α2 i α3 ∈ L , i ≥ 1
○ |α1 α2 | ≤ n
Рассмотрим n + 1 различных состояний: s1 , s1 δ(x1 ), s1 δ(x1 x2 ), ..., s1 δ(x1 x2 ...xn ) . Так как
в автомате n состояний, у нас найдётся минимум два одинаковых. Пусть это будут
s1 δ(x1 ...xm ) и s1 δ(x1 ...xm+l ) , где m + l ≤ n .
Делим слово на три части: α1 = x1 ...xm , α2 = xm+1 ...xm+l , α3 = xm+l+1 ...xk .
Тогда понятно, что s1 δ(α1 ) = s1 δ(α1 α2 ) = s1 δ(α1 α2 i ) . Отсюда получаем
s1 δ(α1 α3 ) = s1 δ(α1 α2 α3 ) = s1 δ(α1 α2 i α3 ) .
30
1. α2 находится в “зоне букв a” :
aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbb
В таком случае при “накачке”, то есть, при повторении α2 мы увеличиваем
количество букв a, но не b, то есть, слово перестаёт входить в язык.
2. α2 находится в “зоне букв b” :
aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbb
Аналогично первому случаю, при “накачке” мы увеличиваем количество
букв b, но не a, то есть, слово перестаёт входить в язык.
3. α2 находится на стыке “зон”:
aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbb
В данном случае при “накачке” у нас образуется подслово ba, что
противоречит языку, то есть, слово вновь не будет входить в язык.
31
12.
Недетерминированные автоматы (НКА) и распознаваемые
ими языки
Отличия недетерминированного конечного автомата от детерминированного:
○ возможны переходы по пустым символам ( λ )
○ возможно несколько переходов из состояния по одной букве
○ возможно отсутствие переходов из состояния по некоторой букве
НКА распознаёт язык, если существует хотя бы один путь по слову из начального
состояния в допускающее, то есть, если s1 δ(α) ⋂ F =⊘
/
Так как в НКА переходы могут идти в несколько состояний, то набор состояний
ДКА можно представить как множество подмножеств множества состояний НКА:
S ′ = 2S .
Таким образом, мы имеем ДКА с большим количеством состояний, однако так же
распознающий язык, как и обычный НКА. Утверждение доказано.
32
Удаление пустых переходов происходит следующим образом:
⇒
⇒
33
«Плохой» случай для конструкции подмножеств при
детерминизации
Бывают и такие НКА, что при их детерминизации все или почти все из
состояний-подмножеств оказываются достижимыми, и приходится строить ДКА из
|2S | состояний.
34
13.
Алгоритм Бржозовского минимизации
недетерминированного автомата
Левый язык для q — язык, который из начального состояния приводит в q
Правый язык для q — язык, который из состояния q приводит в допускающее
состояние
35
14.
Конкатенация языков
Конкатенация языков — язык, словами которого являются соединённые слово из
первого языка и слово из второго языка.
LM = {αβ | α ∈ L, β ∈ M }
Автомат
Для распознавания конкатенации языков с помощью НКА нужно:
L* = {α1 α2 ...αn | αi ∈ L, n ≥ 0}
Автомат
Для распознавания итерации языка с помощью НКА нужно:
36
15.
Регулярные выражения
Регулярное выражение — способ определения языка с помощью
● констант (их ещё называют элементарными языками)
○ пустого символа ( {λ} )
○ пустого множества ( ⊘ )
○ символа, принадлежащего алфавиту ( {a} )
● операций
○ объединения символов/множеств ( + )
○ конкатенации символов/множеств ( · )
○ звёздочки Клини над символом/множеством ( * )
Приоритет операций
1. выражение в скобках
2. звёздочка Клини
3. конкатенация
4. объединение
○ LM =/ M L
- соответственно, L(M + N ) = LM + LN =/ M L + N L = (M + N )L
- однако Lλ = λL = λ и L ⊘=⊘ L =⊘
○ L +⊘= L , но L + λ =/ L
○ L + L = L
○ ⊘* = λ* = λ
○ (λ + L)* = L*
Регулярные языки
Язык называется регулярным, если его можно представить в виде регулярного
выражения, то есть, его можно задать с помощью элементарных языков и
конечного количества операций над ними.
37
Теорема Клини
Язык распознаётся конечным автоматом только тогда, когда его можно
представить в виде регулярного выражения.
1. Редукция ребра
2. Редукция вершины
3. Редукция цикла
38
1. Символ
2. Объединение
3. Конкатенация
4. Звёздочка Клини
39
16.
Автомат с магазинной памятью (МП-автомат)
Автомат с магазинной памятью — совокупность следующих семи параметров:
○ X — алфавит автомата
○ Γ — алфавит магазина
○ S — множество состояний автомата
○ δ — функция перехода
○ s1 — начальное состояние
○ z 0 — маркер дна магазина (его начальное значение)
○ F — множество допускающих состояний
Конфигурация
Конфигурация автомата представляет собой тройку (q, w, η ) , где q — текущее
состояние, w — остаток считываемого слова, η — содержимое магазина
Эти два критерия эквивалентны: для языка найдётся автомат, распознающий его
по допускающему состоянию, только тогда, когда для языка найдётся автомат,
распознающий его по пустому магазину.
41
17.
Контекстно-свободные грамматики (КСГ) и
контекстно-свободные языки (КСЯ)
[Контекстно-свободная] грамматика — совокупность следующих четырёх
параметров:
Конфигурации
Дерево разбора
Деревья разбора для контекстной грамматики G = (X, V , S , P ) это деревья,
обладающие свойствами:
S → A
A → aAb
A → λ
42
Например, слово aaabbb получается так:
S → A → aAb → a(aAb)b → a(a(aAb)b)b → a(a(aλb)b)b = aaabbb
Пример
43
18.
Связь КС-языков и языков, распознаваемых МП-автоматом
(без доказательства)
Язык является контекстно-свободным только тогда, когда он распознаётся
автоматом с магазинной памятью.
44
19.
Пример не контекстно-свободного языка (объяснить, без
строгого доказательства)
Объединение
Пересечение
Дополнение
45
20.
Машины Тьюринга
Машина Тьюринга — абстрактная модель вычислительного устройства.
Конфигурации
Машина Тьюринга задаётся множеством команд, которые описывают поведение
машины при считывании того или иного символа в том или ином состоянии.
Команда выглядит следующим образом:
qiak → qjamDn
qi — состояние, в котором находится машина
ak — символ, считываемый машиной
→ — необязательный символ, но с ним удобнее читать
qj — состояние, в которое переходит машина
am — символ, который машина запишет на месте считанного
Dn — направление, куда машина сдвинет ленту (R — вправо, L — влево, S — оставит
на месте)
Тезис Черча-Тьюринга
Любая функция, которая может быть вычислена физическим устройством, может
быть вычислена машиной Тьюринга.
46
возможность его опровержения. Однако, опровергнуть этот тезис пока так
никому и не удалось.
Для этого возьмём табличное задание ДКА. Каждая ячейка описывает, в какое
состояние должен переходить автомат при чтении того или иного символа.
Припишем к каждой ячейке команду ☐R. Для допускающих состояний добавим
команду при считывании пустого символа q0 aS, где a — любой символ алфавита
языка. Для остальных состяний добавим команду при считывании пустого
символа q0 ☐S
Таким образом, любой ДКА можно представить в виде МТ, а значит любой
регулярный язык вычислим с помощью МТ.
47
множителей на простые множители, мы можем однозначно декодировать машину
Тьюринга.
Тогда машине A можно так же подать на вход некоторое значение ленты, и она,
имея на ленте состояния машины B, сможет обработать это значение так, как это
сделала бы машина B. Таким образом машина A может эмулировать работу любых
других машин Тьюринга.
Проблема заключается в том, что при обработке некого слова, машина Тьюринга
может не остановиться, однако это невозможно предсказать заранее.
48
Бонус
Построить КС-грамматику и МП-автомат, распознающий язык
над алфавитом {а,b}
1.
{an bn | n = 0, 1, 2, ...}
грамматика — здесь
автомат — здесь
2.
Количество букв a и b одинаково
Грамматика
Если в языке есть буква a, то есть и буква b. Она может быть перед a, а может
быть после a. Мы можем рекурсивно добавлять буквы между ними или после них.
Следовательно, имеем
S → aSbS
S → bSaS
S → λ
Автомат
3.
Слова-палиндромы
Грамматика
Если в языке появляется буква, то она должна появиться и с другой стороны. При
этом в центре может появиться одна любая буква. Следовательно, имеем
S → aSa
S → bSb
S → a
S → b
S → λ
Автомат
Цикл; считываются буквы и кладутся соответствующие буквы в магазин. Пустой
переход в другое состояние (при этом снимается верхушка), там цикл снимает
буквы, если они соответствуют считанным. Из этого состяния пустой переход по
дну в допускающее.
49
4.
Слова-палиндромы чётной длины
Грамматика
Если в языке появляется буква, то она должна появиться и с другой стороны.
Следовательно, имеем
S → aSa
S → bSb
S → λ
Автомат
Цикл; считываются буквы и кладутся соответствующие буквы в магазин. Пустой
переход в другое состояние (магазин не меняется), там цикл снимает буквы, если
они соответствуют считанным. Из этого состяния пустой переход по дну в
допускающее.
5.
Сбалансированные скобки одного вида
Грамматика
Задача схожа с п. 2, только слово не может начинаться с закрывающейся скобки,
и сама она не может появиться перед открывающейся. Следовательно, имеем
S → (S)S
S → λ
Автомат
Цикл; символ ( кладёт сверху в магазин некий символ, символ ) снимает этот некий
символ. Есть пустой переход по дну стека в допускающее состояние.
6.
Сбалансированные скобки двух видов
Грамматика
Задача схожа со скобками одного вида. Скобки вида () могут быть только внутри
скобок вида []. Имеем:
S → [S]S
S → [B]S
B → (B)B
B → λ
Автомат
Цикл; символ [ кладёт сверху в магазин один символ, символ ] снимает этот
символ. Символ ( кладёт другой символ, символ ) снимает этот другой символ. Есть
пустой переход по дну стека в допускающее состояние.
50