Ответы на вопросы к экзамену 2011
.pdf2011
Ответы к вопросам по дискретной математике
Экзамен-2011
Вопрос №1. Поиск в глубину. ................................................................................................................................... |
2 |
Вопрос №2. Поиск в ширину. ................................................................................................................................... |
2 |
Вопрос №3. Алгоритм Краскала. .............................................................................................................................. |
2 |
Вопрос №4. Алгоритм Прима. .................................................................................................................................. |
3 |
Вопрос №5. Алгоритм Дейкстра. .............................................................................................................................. |
3 |
Вопрос №6. Алгоритм Флойда. ................................................................................................................................ |
4 |
Вопрос №7. Поток в транспортной сети. .................................................................................................................. |
4 |
Вопрос №8. Алгоритм нахождения полного потока в транспортной сети. ............................................................. |
5 |
Вопрос №9. Орграф приращений.............................................................................................................................. |
6 |
Вопрос №10. Разрез. Пропускная способность разреза............................................................................................ |
6 |
Вопрос №11. Алгоритм нахождения максимального потока в транспортной сети. ................................................ |
7 |
Вопрос №12. Высказывание. Логические операции. Приоритет операций. Формулы алгебры высказываний. .... |
8 |
Вопрос №13. Равносильности формул..................................................................................................................... |
10 |
Вопрос №14. Закон двойственности. ....................................................................................................................... |
11 |
Вопрос №15. Тождественно истинные и ложные формулы.................................................................................... |
11 |
Вопрос №16. Нормальные формы. .......................................................................................................................... |
12 |
Вопрос №17. Совершенные нормальные формы. ................................................................................................... |
12 |
Вопрос №18. Представление булевой функции формулой алгебры высказываний. Таблицы истинности. .......... |
15 |
Вопрос №19. Алгебра Жегалкина. ........................................................................................................................... |
17 |
Вопрос №20. Дифференцирование булевых функций. ........................................................................................... |
18 |
Вопрос №21. Разложение булевой функции в заданной точке пространства......................................................... |
22 |
Вопрос №22. Теорема о функциональной полноте (теорема Поста). Примеры функционально-полных базисов. |
|
.................................................................................................................................................................................. |
23 |
Вопрос №25. Метод Квайна – Мак-Класски............................................................................................................ |
23 |
Вопрос №27. Понятие конечного автомата. Автоматы Мили и Мура. ................................................................... |
25 |
Вопрос №28. Способы задания конечного автомата. .............................................................................................. |
26 |
Вопрос №31. Представление конечных автоматов матрицами соединений. .......................................................... |
27 |
Вопрос №32. Дерево конечного автомата. .............................................................................................................. |
27 |
Вопрос №33. Основные формулы комбинаторики.................................................................................................. |
28 |
Вопрос №34. Биномиальные коэффициенты. Бином Ньютона. .............................................................................. |
31 |
Вопрос №35. Алфавитное кодирование. Таблица кодов. ........................................................................................ |
31 |
Описание задач в примерах. .................................................................................................................................... |
33 |
Тип 1. Кодирование.................................................................................................................................................. |
33 |
Тип 2. Теория чисел (НОК, НОД). ........................................................................................................................... |
33 |
Список теорем для сдачи. ........................................................................................................................................ |
33 |
Утверждение 5.2....................................................................................................................................................... |
33 |
Теорема 5.1 (теорема Форда-Фалкерсона)............................................................................................................... |
34 |
Теорема 6.2 (о приведении к ДНФ). ........................................................................................................................ |
35 |
Теорема 6.3 (о приведении к КНФ).......................................................................................................................... |
36 |
Теорема 6.4............................................................................................................................................................... |
36 |
Теорема 6.6............................................................................................................................................................... |
38 |
Теорема 6.9. (о разложении функции по переменным) ........................................................................................... |
38 |
Следствие 6.1............................................................................................................................................................ |
39 |
Теорема 6.10 (о СДНФ булевой функции)............................................................................................................... |
39 |
Теорема 6.11 (о СКНФ булевой функции)............................................................................................................... |
40 |
Теорема 6.13. ............................................................................................................................................................ |
40 |
1
Вопрос №1. Поиск в глубину.
Поиск в глубину (англ. Depth-first search, DFS) — один из методов обхода графа. Алгоритм поиска описывается следующим образом: для каждой непройденной вершины необходимо найти все не пройденные смежные вершины и повторить поиск для них. Используется в качестве подпрограммы в алгоритмах поиска одно- и двусвязных компонент, топологической сортировки.
Пусть задан граф G = (V,E), где V — множество вершин графа, E — множество ребер графа. Предположим, что в начальный момент времени все вершины графа окрашены в белый цвет. Выполним следующие действия:
1)Из множества всех белых вершин выберем любую вершину, обозначим еѐ v1.
2)Выполняем для неѐ процедуру DFS(v1).
3)Перекрашиваем еѐ в чѐрный цвет.
4)Повторяем шаги 1-3 до тех пор, пока множество белых вершин не пусто.
Процедура DFS (параметр — вершина u \in V)
1)Перекрашиваем вершину u в серый цвет.
2)Для всякой вершины w, смежной с вершиной u, выполняем следующие два шага:
а. Если вершина w окрашена в белый цвет, выполняем процедуру DFS(w).
б. Окрашиваем w в чѐрный цвет.
Вопрос №2. Поиск в ширину.
Поиск в ширину (BFS, Breadth-first search) — метод обхода и разметки вершин графа.
Поиск в ширину выполняется в следующем порядке: началу обхода s приписывается метка 0, смежным с ней вершинам — метка 1. Затем поочередно рассматривается окружение всех вершин с метками 1, и каждой из входящих в эти окружения вершин приписываем метку 2 и т. д.
Если исходный граф связный, то поиск в ширину пометит все его вершины. Дуги вида (i, i+1) порождают остовный бесконтурный орграф, содержащий в качестве своей части остовное ордерево, называемое поисковым деревом.
Легко увидеть, что с помощью поиска в ширину можно также занумеровать вершины, нумеруя вначале вершины с меткой 1, затем с меткой 2 и т. д.
Вопрос №3. Алгоритм Краскала.
2
Алгоритм Крускала (или алгоритм Краскала) — алгоритм построения минимального остовного дерева взвешенного связного неориентированного графа.
Вначале текущее множество рѐбер устанавливается пустым. Затем, пока это возможно, проводится следующая операция: из всех рѐбер, добавление которых к уже имеющемуся множеству не вызовет появление в нѐм цикла, выбирается ребро минимального веса и добавляется к уже имеющемуся множеству. Когда таких рѐбер больше нет, алгоритм завершѐн. Подграф данного графа, содержащий все его вершины и найденное множество рѐбер, является его остовным деревом минимального веса.
Дополнительные определения.
Минимальное остовное дерево (или минимальное покрывающее дерево) в связанном, взвешенном, неориентированном графе — это остовное дерево этого графа, имеющее минимальный возможный вес, где под весом дерева понимается сумма весов входящих в него рѐбер.
Остовное дерево связного неориентированного графа — ациклический связный подграф данного графа, в который входят все его вершины. Неформально говоря, остовное дерево состоит из некоторого подмножества рѐбер графа, таких, что из любой вершины графа можно попасть в любую другую вершину, двигаясь по этим рѐбрами, и в нѐм нет циклов, то есть из любой вершины нельзя попасть в саму себя, не пройдя какое-то ребро дважды.
Вопрос №4. Алгоритм Прима.
Алгоритм Прима — алгоритм построения минимального остовного дерева взвешенного связного неориентированного графа.
Построение начинается с дерева, включающего в себя одну (произвольную) вершину. В течение работы алгоритма дерево разрастается, пока не охватит все вершины исходного графа. На каждом шаге алгоритма к текущему дереву присоединяется самое лѐгкое из рѐбер, соединяющих вершину из построенного дерева, и вершину не из дерева.
Вопрос №5. Алгоритм Дейкстра.
Алгоритм можно использовать в тех случаях, когда веса всех дуг неотрицательны. Определим весовую матрицу W, чьи элементы задаются формулой.
( |
) |
{ |
( |
) |
Обозначим через s начальную вершину орграфа, от которой можно найти кратчайшие пули до всех остальных вершин.
3
В |
течение работы алгоритма каждой вершине v орграфа присваивается |
число , |
-, равное расстоянию от s до v. |
Вопрос №6. Алгоритм Флойда.
Рассмотрим более общую ситуацию. Будем считать, что в графе D допускаются дуги отрицательного веса. Опишем алгоритм кратчайших путей между всеми парами вершин графа при условии, что в графе нет отрицательных контуров, т.е. замкнутых путей отрицательного веса. Если в графе D есть цикл с отрицательным весом, то решения поставленной задачи не существует, т.к. можно «накручивать» на этом цикле сколь угодно короткий путь.
Определим весовую матрицу W, чьи элементы wij задаются формулой
|
если i j, |
0, |
|
|
|
wij d, |
если (i, j) дуга веса d, |
|
иначе. |
, |
|
|
|
В алгоритме используются матрицы W0,…,Wn и Р0,…,Рп. Матрица Wk содержит веса кратчайших путей, проходящих только через вершины 1,2,…,k.
В матрице Pk элемент pijk - номер вершины, предшествующий вершине j в
текущем (i, j)-пути. Рассмотрим алгоритм.
1. W0=W; k:=1; Р0=[ pij0 ],
|
|
если w , |
0 |
i, |
|
|
ij |
|
где pij |
|
если w . |
|
0, |
|
|
|
ij |
|
2. |
i, j 1,...,n |
выполнить: |
если |
wk 1 wk 1 |
wk 1 |
, то |
wk |
wk 1 |
; |
||||
|
|
|
|
|
|
|
ij |
|
ik |
kj |
|
ij |
ij |
|
pk |
pk 1 |
. Иначе wk wk 1 wk 1 |
; |
pk pk 1 . |
|
|
|
|
|
|
|
|||
ij |
ij |
ij |
ik |
kj |
|
ij |
kj |
|
|
|
|
|
|
|
|
3. |
Если для некоторого |
l , |
1 l n |
wk |
0 |
(по диагонали матрицы Wk |
|||||||
|
|
|
|
|
|
|
ll |
|
|
|
|
|
|
|
появляются отрицательные значения), то конец (в графе имеется отрицательный контур). Иначе перейти к пункту 4.
4). k : k 1. Если k n 1, то конец. W n – матрица весов кратчайших путей. С помощью матрицы P n кратчайший (i, j) -путь определяется следующим образом:
P(i, j) (i,..., j , j , j , j) , j pn , j pn ,...
3 2 1 1 ij 2 ij1
Иначе перейти к пункту 2.
Вопрос №7. Поток в транспортной сети.
Основные определения.
4
Транспортной сетью называется орграф D = (V, X) (V={v1,…,vn} –
множество вершин, Х – множество дуг), для которого выполняются условия:
1)существует одна и только одна вершина v1, называемая источником, такая, что D – 1(v1) = , т.е. ни одна дуга не заходит в v1;
2)существует одна и только одна вершина vn, называемая
стоком, такая, что D(vn) = , т.е. из vn не исходит ни одной дуги;
3) каждой дуге x X поставлено в соответствие целое число
с(x) 0, называемое пропускной способностью дуги.
Вершины в транспортной сети, отличные от источника и стока,
называются промежуточными.
Величиной потока в транспортной сети D называется величина , равная сумме потоков по всем дугам, заходящим в vn, или, что то же самое в силу утверждения, – величина, равная сумме потоков по всем дугам,
исходящим из v1, т.е. |
|
|
|||
|
|
|
(v,vn ) |
(v1,v). |
|
|
|
||||
|
|
v D 1 (vn ) |
v D(v1 ) |
|
|
Пусть |
– допустимый поток в транспортной сети D. Дуга |
x X |
называется насыщенной, если поток по ней равен ее пропускной способности, т.е. если (x) c(x) .
Поток называется полным, если любой путь в D из v1 в vn содержит, по крайней мере, одну насыщенную дугу.
Поток называется максимальным, если его величина принимает максимальное значение по сравнению с другими допустимыми потоками в транспортной сети D.
Из этого следует, что максимальный поток обязательно является полным. Иначе в D существует некоторая простая цепь из v1 в vn, не содержащая насыщенных дуг. Тогда можно увеличить как минимум на единицу потоки по всем дугам цепи , вследствие чего увеличится как минимум на единицу и , что противоречит условию максимального потока. Обратное неверно, т.е. существуют полные потоки, которые не являются максимальными.
Вопрос №8. Алгоритм нахождения полного потока в транспортной
сети.
Рассмотрим один из алгоритмов построения полного потока в
транспортной сети D. |
|
a. Полагаем x X |
(x) 0 , т.е. начинаем с нулевого |
потока. Полагаем D' D . |
|
|
5 |
b. Удаляем из орграфа D' все дуги, являющиеся насыщенными при потоке в транспортной сети D. Полученный орграф снова обозначаем через D' .
c. Ищем в D' простой путь из v1 в vn. Если такого пути нет, то – искомый полный поток в транспортной сети D. В противном случае переходим к пункту 4.
d.Увеличиваем поток (x) по каждой дуге x из на
одинаковую величину a 0. В качестве а выбираем такое целочисленное значение, чтобы, по крайней мере, одна дуга из оказалась насыщенной, а потоки по остальным дугам из не должны превышать их пропускных способностей. При этом величина потока также увеличивается на а, а сам поток в транспортной сети D остается допустимым. После этого переходим к пункту 2.
Вопрос №9. Орграф приращений.
Для транспортной сети D и допустимого потока введем орграф приращений I(D, ). Множество вершин этого орграфа совпадает со множеством вершин транспортной сети. Каждой дуге x = (v, w) X транспортной сети D в орграфе приращений соответствуют две дуги: x = (v, w)
– дуга, совпадающая по направлению с дугой транспортной сети, и x = (w, v) – дуга, противоположная по направлению дуге транспортной сети. Припишем этим дугам орграфа приращений I(D, ) длину l:
|
|
|
0, если (x) c(x) |
(для ненасыщенных дуг); |
|
l(x) |
|
(5.4) |
, если (x) c(x) |
(для насыщенныхдуг); |
|
|
|
|
0, если (x) 0 (если поток по дуге х больше0); |
|
|
l(x ) |
|
(5.5) |
, если (x) 0 |
(если поток по дуге х равен 0). |
|
В этом случае орграф приращений является нагруженным. При этом видно, что длина любого пути из v1 в vn в орграфе I(D, ) равна либо 0, либо .
Пусть – некоторый простой путь в орграфе I(D, ). Будем говорить, что путь проходит через дугу x = (v, w) X, если либо x, либо x содержится в. При этом, если в содержится x, то считаем, что направления и х совпадают, если в содержится x , то считаем, что направления и х противоположны.
Вопрос №10. Разрез. Пропускная способность разреза.
Пусть D – транспортная сеть. Для любого множества V1 V такого, что v1 V1, vn V1, разрезом сети D относительно множества вершин V1 называется
6
множество дуг X(V1) = {(w, v) X | w V1, v V1}. Таким образом, это множество, которое включает в себя все дуги, исходящие из вершин, не принадлежащих V1, и заходящие в вершины, принадлежащие V1.
Число с( X (V1)) c(x) называется пропускной способностью разреза
x X (V1 )
X(V1). Разрез с минимальной пропускной способностью называется
минимальным.
Утверждение. Для любого допустимого потока в транспортной сети D и любого множества V1 V, где v1 V1, vn V1, выполняется неравенствоc( X (V1)), т.е. величина любого допустимого потока в сети D (в том числе и максимального) не превышает пропускной способности любого разреза сети (в том числе и минимального).
Теорема Форда-Фалкерсона. Пусть D – транспортная сеть, – допустимый поток в этой сети, V1 – множество вершин v V таких, что длина минимального пути из v в vn в орграфе приращений I(D, ) равна нулю. Тогда, если v1 V1, то – максимальный поток, величина которого равна c( X (V1)) .
Следствие 1. Используя теорему Форда-Фалкерсона, а также утверждение 5.2, получаем, что величина максимального потока в транспортной сети равна пропускной способности минимального разреза.
Следствие 2. Пусть – допустимый поток в транспортной сети D. Тогда, если длина минимального пути из v1 в vn в орграфе приращений I(D, ) равна , то – максимальный поток.
Вопрос №11. Алгоритм нахождения максимального потока в транспортной сети.
Важным следствием теоремы Форда – Фалкерсона является алгоритм построения максимального потока в транспортной сети D.
1.Полагаем i=0. Пусть 0 – любой допустимый поток в транспортной сети D (например, полный; можно начать с нулевого потока).
2.По сети D и потоку i строим орграф приращений I(D,
i).
3. Рассматриваем все пути из вершины v1 в вершину vn в нагруженном орграфе I(D, i). Если длины всех таких путей равны, то i – максимальный поток и работа алгоритма закончена. В противном случае выбираем путь i (минимальный путь из v1 в vn), длина которого равна 0.Увеличиваем поток вдоль этого пути на
7
максимально допустимую величину ai>0, ai Z, такую, что при этом сохраняется условие 1 допустимого потока. При этом:
a.прибавляем ai к потоку по дуге х, если направления х иi совпадают;
b.вычитаем ai из потока по дуге х, если направления
хи i противоположны.
Всилу l( i), используя (5.4), (5.5), получаем, что указанная величина ai
существует. В |
результате меняется поток в транспортной сети D: |
||||
|
|
|
|
|
Присваиваем i : i 1 и переходим к пункту 2. |
i 1 i ai 1. |
Вопрос №12. Высказывание. Логические операции. Приоритет операций. Формулы алгебры высказываний.
Операции над высказываниями.
Пусть даны два произвольных высказывания А и В.
1. Отрицанием высказывания А называется высказывание, истинное тогда и только тогда, когда высказывание А ложно. Обозначается A (или A, A' ) и читается «не А».
2.Конъюнкцией двух высказываний А и В называется высказывание, истинное тогда и только тогда, когда оба высказывания истинны.
Обозначается A B (или А&В) и читается «А и В».
3.Дизъюнкцией двух высказываний А и В называется высказывание, ложное тогда и только тогда, когда оба высказывания ложны.
Обозначается A B и читается «А или В».
4.Импликацией двух высказываний А и В называется высказывание, ложное тогда и только тогда, когда А истинно, а В ложно.
Обозначается A B (или A B, A B ) и читается «А влечѐт
В» (или «если А, то В», «из А следует В»). Высказывание А называется посылкой импликации, а высказывание В – заключением импликации.
5. Эквивалентностью двух высказываний А и В называется высказывание, истинное тогда и только тогда, когда истинностные значения А и В совпадают.
Обозначается A ~ B и читается «А эквивалентно В».
6. Суммой по mod 2 двух высказываний А и В называется высказывание, истинное тогда и только тогда, когда истинностные значения А и В различны.
8
Обозначается A B и читается «А сумма по модулю 2 В».
7. Штрих Шеффера – антиконъюнкция. Антиконъюнкцией двух высказываний А и В называется высказывание, ложное тогда и только тогда, когда оба высказывания истинны.
Обозначается ( A | B) ( A B) и читается «А штрих Шеффера В».
8. Стрелка Пирса – антидизъюнкиция. Антидизюнкцией
двух высказываний А и В называется высказывание, истинное тогда и только тогда, когда оба высказывания ложны. Обозначается ( A B) ( A B) и читается «А стрелка Пирса В».
Приоритет операций.
9