русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Решение типовых задач


Дата добавления: 2015-07-23; просмотров: 1205; Нарушение авторских прав


В задачах 1–10, а) требуется, используя правила де Моргана, привести к ДНФ выражение, содержащее конъюнкции, дизъюнкции и отрицания, и затем сократить ДНФ, если это возможно. Для этих задач есть точный алгоритм решения: “понижение” отрицания по правилам де Моргана до тех пор пока они не окажутся над одной переменной. После этого раскрываем скобки (используя естественные свойства конъюнкций, дизъюнкций и отрицаний, а также поглощение) и затем сокращаем ДНФ по правилу Блейка.

Заметим, что часто в примерах приходится раскрывать скобки вида (х Úу Ú z ) ( x Ú u ) . Здесь необходимо учитывать, что дизъюнктные слагаемые, содержащие х,поглощаются слагаемым х,поэтому после раскрытия скобок получится выражение x Ú yu Ú zu.

Пример1. Привести выражение к ДНФ, а затем сократить ее (если это возможно).

Решение. “Понижаем” отрицания по правилу де Моргана. Получаем По правилу Блейка (имеются дизъюнктные слагаемые, содержащие у и ) к последнему выражению можно добавить слагаемое x z , котороепоглотит второе слагаемое в L.

Ответ: L = xy Úxz

В задачах 1–10, б) надо просто применять правило Блейка, а затем уже правило поглощения

Теорию, применяемую к задачам 11–20, подробно обсуждали в разд. 3, 6, поэтому ограничимся решением примеров.

Пример. Дана ДНФ . Требуется для этой функции найти полином Жегалкина и перейти от ДНФ к КНФ, а затем и к СКНФ. Сначала найдем полином Жегалкина (вторым способом). Для этого ставим двойное отрицание и по правилам де Моргана “убираем” дизъюнкцию, потом “убираем” отрицания по правилу . После этого раскрываем скобки, учитывая при этом, что четное число слагаемых (по модулю 2) равно 0, а нечетное – одному такому слагаемому. Тогда

((x+1)(y+1)+1)(xy(z+1)+1)+1=(xy+x+y+1+1)(xyz+xy+1)+1=

= (xy+x+y)(xyz+xy+1)+1= xyz + xyz + xyz + xy+xy+ xy+ xy +
+ x+ y+
1= xyz+x+y+1.



Последнее выражение и является полиномом Жегалкина.

Для того чтобы перейти к КНФ для выражения L (в соответствии с разд. 3) ставим над L два отрицания и, оставляя временно верхнее отрицание безизменения, приводим оставшееся выражение к ДНФ. Затем по правилу де Моргана получаем КНФ. Таким образом, можем получить

.

Далее по правилу Блейка можем из последнего выражения исключить yz, тогда получим: . Это и есть КНФ.

Чтобы из последнего выражения получить СКНФ, нужно в первой и второй дизъюнкции добавить , а в третьей – Затем воспользуемся распределительным законом:

Последнее выражение и есть СКНФ.

Пример 2,б.Пусть имеется выражение . Требуется записать L в виде ДНФ, а затем перейти к СДНФ.

Ясно, что ДНФ можно получить простым раскрытием скобок. В обеих скобках есть , которое поглощает слагаемые, содержащие , поэтому . Это и есть ДНФ. Для того чтобы получить СДНФ, умножаем на , а умножаем на (y Ú )и раскрываем скобки. Тогда

.

С самого начала надо позаботиться о правильном порядке переменных, что требуется для СДНФ, но последнее выражение еще не является СДНФ, так как содержит два одинаковых слагаемых. После уничтожения одного из них получим окончательный ответ:

Разберем пример решения задач типа 21–30.

Пример3.Пусть требуется для функции

f(x, y, z) = (x ~ z) | ((x y) ~ (y z)):

а) составить таблицу истинности;

б) написать для неё СДНФ или СКНФ (если это возможно);

в) сократить СДНФ по карте Карно;

г) найти по таблице истинности полином Жегалкина.

Решение:

а) в таблицу истинности данной функции полезно включить таблицы истинности промежуточных функций:

xyz x ~ z x y y z (x y) ~ (y z) (x~ z)|((x y) ~ (yz)

б) составить СДНФ и СКНФ по полученной таблице. В соответствии с теорией разд. 4 СДНФ составляется по единицам таблицы истинности, причем если f(x, y, z) = 1, то если х = 0, в соответствующей конъюнкции СДНФ берется , а если х = 1 в СДНФ берется х. Аналогично поступают и с другими переменными, поэтому СДНФ для данной функции имеет вид:

.

СКНФ составляется по нулям таблицы истинности, т. е. если
f(x, y, z) = 0 и х = 0, то в соответствующей дизъюнкции берётся х, а если х = 1, то . Таким образом, СКНФ для данной функции имеет вид:

.

Заметим, что по определению СДНФ и СКНФ, переменные (в каждой конъюнкции и дизъюнкции соответственно) должны следовать в одинаковом порядке;

в) составим полином Жегалкина по таблице истинности. Напишем его сначала с неопределёнными коэффициентами:

f(x, y, z) = a0 + a 1x+ a 2y+ a 3z+ a 4xy+ a 5xz+ a 6 yz+ a 7xyz.

Подставим в него по очереди все 8 наборов переменных и найдём коэффициенты полинома Жегалкина.

  • x = 0, y = 0, z = 0: a 0 = 0;
  • x = 0, y = 0, z = 1: a 3 = 1;
  • x = 0, y = 1, z = 0: a 2 = 0;
  • x = 0, y = 1, z = 1: a 2 + a 3+ a 6 = 1, a 6 = 0;
  • x = 1, y = 0, z = 0: a 1 = 1;
  • x = 1, y = 0, z = 1: a 1+ a 3 + a 5 = 0, a 5 = 0;
  • x = 1, y = 1,z = 0: a 1+ a 2 + a 4 = 1, a 4 = 0;
  • x = 1, y = 1, z = 1: a 0 + a 1 + a 2 + a 3 + a 4 + a 5 +a 6 + a 7 =0.

Так как a 0 =a 2 =a 4 =a 5 =a 6 = 0, тогда a 1 +a 3 +a 7 = 0, откуда a 7 = 0, и полином Жегалкина для данной функции имеет вид: f(x, y, z) = x+ z (для данной функции уявляется фиктивной переменной);

г) составим теперь для данной функции карту Карно и сократим её. Сначала составим таблицу:

 

Откуда f(x, y, z) = . Опять оказалось, что у – фиктивная переменная.

В задачах 31–40 требуется по карте Карно для функции 4 переменных составить сокращённую ДНФ. Надо иметь в виду, что карты Карно соединяются по кругу. Число единиц, которые можно объединять, равно 2, 4, 8, … (прямая, плоскость и т. д.)

Пример4.

 

Получаем всего 4 объединения, т. е. 4 конъюнкции в ДНФ: f = (x1,x2, x3,x4) =

Заметим, что при правильно составленном объединении единиц правило Блейка может привести только к ДНФ с тем же числом символов переменных (в нашем примере их 11).

В задачах 41–50 требуется в данных наборах из 4 или 5 функций найти базисы и полные наборы функций (полные наборы – это наборы функций, содержащих базис).

Пример5.Пусть имеется набор функций: 1) f1(x, y, z) = (x y)¯(y~ z),

2) f2(x, y) = x + y x, 3) f3(x, y, z) = x ~ (y z), 4) f4(x, y) = x + 5) f5(x, y, z) = = x y Ú z

Составляем таблицу истинности для каждой из этих 5 функций (для f2и f4таблицу можно составить отдельно).

 

x, y, z xy y ~ z f1=(xy)¯ (y~ z) yz f3= x~ y z f5= x yÚz

Отсюда очевидно, что f1(x, y, z) Î T0(принадлежит Т0) и f1 ÏT1, f1 Ï M, S (т. е. не принадлежит Т1, М, S), аналогично f3Ï T0, M, S и f3ÎТ1. Функция f5Î Т1и f5 ÏТ0, М, S. Осталось проверить линейность этих функций.

f3 = x ~ (y z) = = x + yz + 1 – нелинейна;

f5 = x y Ú z = = (x y + 1) z + 1 = x y z + z + 1 – нелинейна.

Для f1требуется проверка нелинейности. Составим полином Жегалкина для f1:

P = a 0+ a 1x + a 2 y + a 3 z + a 4 x y + a 5 x z + a 6 y z + a 7 x y z. Находим последовательно a 1: a 0 = 0, a 3 = 1, a 2 = 1, a 6 = 0, a 1 = 0, a 5 = 0, a 4 = 1; значит, функция f1 нелинейна, что, впрочем, следует и из того, что f1в таблице истинности содержит нечетное число единиц (равное 3).

Для f2и f4составляем свои таблицы истинности.

 

x, y x y f2 = x + x y f4 = x+

Отсюда следует, что f2Î T0, f2 ÏT1 f2 ÏM, S; является полиномом Жегалкина f2=x + xy; f4 = x + y + 1 и, значит, f4ÎL, также f4ÎT1, но
f4 ÏM, S. Все эти сведения сведём в таблицу Поста.

 

  Т0 Т1 L M S
f1 f2 f3 f4 f5 + + – – – – – + + + – – – + – – – – – – – – – – –

Таким образом, базисами являются: f1и f3; f1и f4; f2и f4; f1и f5, f2и f5. Полными наборами будут любые наборы, содержащие какой-нибудь базис.

В задачах 51–60 требуется по данному ориентированному графу составить структурную матрицу, а по ней (методами булевой алгебры) найти все пути из вершины i в вершину j,а затем (отрицанием этих путей) найтивсе сечения между двумя указанными вершинами.Пусть дан ориентированный граф (рис. 12) , причем ребра a,b,h являются ориентированными (их направление указано стрелками), а остальные ребра не ориентированы. Требуется методами булевой алгебры найти пути и сечения между вершинами 2 и 4.

Составляем структурную матрицу S,затем вычеркиваем из нее 4-ю строчку и 2-й столбец (тем самым получаем минор М(4,2)):

.

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

Тогда получаем

Искомые пути, расположенные в порядке прохождения ребер:

П 24 = d ÚhfÚ ceÚ hgbe.

Сечения же получатся отрицанием этих путей. Применяя правила де Моргана (заменяя конъюнкцию на дизъюнкцию и наоборот), затем раскрывая скобки, получаем: (знаки отрицания опущены во всех равенствах, кроме 1-го):

= d (hÚ f)(cÚe)(hÚgÚbÚe)

S24= d(hÚ f)(e Úch Úcg Úcb) = d(he Úch Úcgh ÚсbhÚfe fÚchÚfcg Úfcb),

или, применяя в скобках правило поглощения, получаемÚ

S24 = d(heÚ ch Úfe fÚcg Úfcb),

S24=dheÚdch Údfе Údfcg Údfcb.

В индивидуальных заданиях 61–70 требуется найти в данной сети (т. е. в графе с заданными пропускными способностями ребер) максимальный поток из вершины с номером 1 в вершину с наибольшим номером (в заданиях либо в вершину 5, либо 6). В заданиях заданы 2 графа (граф, который находится слева, – это сеть с заданными пропускными способностями ребер, и граф справа с заданным потоком, который необходимо либо улучшить, либо доказать, что он не улучшаем и, значит, является максимальным). Конечно, можно дать задание просто найти максимальный поток между двумя вершинами. Однако при работе вручную нельзя дать большое число вершин (в наших заданиях это число равно 5 или 6), а в этих случаях максимальный поток можно найти без всякой теоремы Форда-Фалкерсона (просто из общих соображений). Поэтому задание в примерах 61–70 состоит в том, чтобы правильно расставить пометки для заданного потока, указанного в графе справа и после этого делать выводы о том, является ли этот поток максимальным или нет.

Задание в примерах 61–70 состоит в следующем: требуется, расставляя пометки в графе

с заданным потоком с помощью алгоритма, описанного в теореме Форда – Фалкерсона, найти максимальный поток между вершиной с номером 1 и вершиной с максимальным номером. При этом если улучшенный поток окажется максимальным, то нужно указать то минимальное сечение, которому равен наш поток (если же улучшенный поток не окажется максимальным, то нужно снова его улучшать до тех пор, пока он не окажется максимальным). На рис. 13а изображен граф с данными пропускными способностями ребер, при этом вершина номер 1 является “источником”, а вершина 6 – стоком. На рис. 13б изображен тот же граф, но на ребрах его задан поток, удовлетворяющий свойствам 1–4, который надо либо увеличить, либо доказать, что он является максимальным.

После этого подробно объясняем, как расставляются пометки в этом графе, и результат этого показываем на рис. 14. Для нового потока (рис. 14) снова расставляем пометки и убеждаемся, что этот поток является максимальным (рис. 15). Здесь же находим минимальное сечение, которому равен поток.

Начинаем расставлять пометки во втором графе (там дан поток).
1-я вершина (источник) всегда имеет пометку (¥ ) (это означает, что второе число как угодно большое). Далее вторую вершину пометить пока нельзя, зато можно пометить вершину 4 и ее пометка будет (+1,25). Это означает, что дуга (1,4) прямая, ненасыщенная и по ней можно “перевезти” дополнительно 25 единиц “груза”. Далее вершину 5 пометить пока нельзя, но теперь можно пометить вершину 2 и ее пометка будет
(–4,20).

Это означает, что дуга (4,2) обратная, и, учитывая возможный “разворот” ее, по ней можно дополнительно “перевезти” 20 единиц “груза”. Так как 20 меньше 25, получаем данную пометку. Теперь можно пометить вершину 3 пометкой (+2,15) и, вершину 5, пометка которой будет (–3,15). (Заметим, что по дуге (5,3) с учетом разворота можно дополнительно “перевезти” 25 единиц груза, но так как для вершины 3 второе число было равно 15, то любое следующее число не может быть его больше). Только после этого можем пометить вершину 6 (сток), пометка которой будет (+5,15). Таким образом, наш поток можно увеличить на 15 единиц, прибавляя эти 15 единиц к прямым дугам и вычитая из обратных с учетом возможного “разворота” обратных дуг. Результат всех этих действий изображен на рис. 14.

Таким образом, получили новый поток, изображенный на рис. 15.

После этого для нового потока (рис. 15), снова расставляем пометки, которые также изображены на рис. 15. Мы видим, что для этого потока (кроме источника) можно пометить только 2 вершины: вершину 4 (ее пометка будет (+1,10)) и (после этого) вершину 2, пометка которой будет (+4,5). Больше ничего пометить нельзя, так как из множества помеченных вершин (Y) в множество непомеченных вершин (Z) идут только прямые, насыщенные дуги (дуги (2–3) и (4–5)). Эти две дуги образуют минимальное сечение, величина которого равна 30 условных единиц, и эта же величина равна величине потока. Заметим, что величина потока также равна “количеству груза”, вывозимого из источника, и равна количеству груза, ввозимого в сток. Таким образом, поток на рис. 15 является максимальным, а дуги (2–3) и (4–5) образуют минимальное сечение, которому равен наш поток.


ЛИТЕРАТУРА

  1. Нефедов В. Н., Осипова В.А. Курс дискретной математики / МАИ. М., 1992.
  2. Лихтарникова Л.М., Сукачева Т.Г. Математическая логика. Курс лекций. Задачник-практикум и решения. СПб, 1988.
  3. Гиндикин С.Г. Алгебра логики в задачах. М., 1972.
  4. Мамонтова Н.П. и др. Методические указания к практическим занятиям по теории сетей связи / ЛЭИС. Л., 1978.
  5. Кристофидес Н. Теория графов. Алгоритмический подход. М.: Мир, 1978.
  6. Уилсон Р. Введение в теорию графов. М.: Мир, 1977.

 



<== предыдущая лекция | следующая лекция ==>
Деревья и их простейшие свойства | ПРЕДМЕТ ДИСКРЕТНОЙ МАТЕМАТИКИ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.01 сек.