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

Ответы на вопросы к экзамену 2011

.pdf
Скачиваний:
36
Добавлен:
20.06.2014
Размер:
1.11 Mб
Скачать

2011

Ответы к вопросам по дискретной математике

Экзамен-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