Приложение булевой алгебры к синтезу комбинационных схем

Содержание

Слайд 2

Слайд 3

Элементы булевой алгебры Основными элементами булевой алгебры являются: Логические константы В

Элементы булевой алгебры
Основными элементами булевой алгебры являются:

Логические константы
В булевой алгебре определены

две логические константы: логический ноль (0) и логическая единица (1), которые отождествляются с понятиями “истина” и ”ложь” алгебры логики.

логические константы;

переменные;

операции;

выражения;

функции;

законы.

Слайд 4

Переменные Булевы (логические, двоичные) переменные - переменные, принимающие значения из множества

Переменные
Булевы (логические, двоичные) переменные - переменные, принимающие значения из множества {0,1}.

Операция

отрицания является унарной, а конъюнкция и дизъюнкция – n-арными.

Операции
Основными операциями булевой алгебры являются:

отрицание (инверсия);

конъюнкция (логическое умножение);

дизъюнкция (логическое сложение).

Слайд 5

Операции обозначаются следующим образом: Выражения Логическим (булевым) выражением называется совокупность булевых

Операции обозначаются следующим образом:

Выражения
Логическим (булевым) выражением называется совокупность булевых переменных,

соединенных знаками булевых операций при возможном наличии скобок для изменения порядка выполнения операций. При отсутствии скобок порядок выполнения операций определяется их приоритетом (значимостью). Для булевых операций порядок убывания приоритета следующий: ⎤ , &, ∨.

Отрицание

Конъюнкция a&b, a ⋅ b, a* b, ab, a ∧ b;

Дизъюнкция a ∨ b.

Слайд 6

Примеры логических выражений: . Областью определения булевой функции является совокупность 2n

Примеры логических выражений:
.
Областью определения булевой функции является совокупность 2n двоичных

наборов ее аргументов. Набор аргументов можно рассматривать как n-компонентный двоичный вектор.

Функции

Булевой (логической) функцией называется функция, аргументами которой являются булевы переменные, а сама функция принимает значение из множества {0,1}.

Слайд 7

Булеву функцию можно задать с помощью следующих форм: Аналитическая форма –

Булеву функцию можно задать с помощью следующих форм:

Аналитическая форма – булева

функция задается логическим выражением, например:

аналитической;

табличной;

графической;

таблично-графической;

числовой;

символической.

Слайд 8

Табличная форма – булева функция задается таблицей истинности. Переход от аналитической

Табличная форма – булева функция задается таблицей истинности.

Переход от аналитической формы

к табличной однозначен. Обратный переход однозначным не является.
В качестве примера составим таблицу истинности для функции y1:
Слайд 9

Остальные формы задания булевой функции рассматриваются в следующих разделах.

Остальные формы задания булевой функции рассматриваются в следующих разделах.

Слайд 10

Коммутативные (переместительные) законы: 2. Ассоциативные (сочетательные) законы: 7. Законы единичного элемента:

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

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

7. Законы единичного элемента:

Основные

законы булевой алгебры
К основным законам булевой алгебры относятся:

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

4. Закон двойного отрицания:

5. Законы тавтологии (идемпотентности):

6. Законы нулевого элемента:

Слайд 11

8. Законы дополнительного элемента. В булевой алгебре дополнительным элементом по отношению

8. Законы дополнительного элемента. В булевой алгебре дополнительным элементом по отношению

к а является отрицание

Большинство законов задается парой соотношений (дуальность законов булевой алгебры).
Некоторые законы можно распространять на произвольное число элементов.

9. Законы двойственности (де Моргана):

Следствия:

10. Законы поглощения:

11. Правила сокращения:

12.Правила склеивания:

Слайд 12

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

В любом законе любую букву можно заменить на произвольное логическое выражение.
Законы

применяются для упрощения булевых функций.

Разнообразие булевых функций
Булевы функции от одной переменной

Слайд 13

Булева функция от n аргументов fn(Х) называется вырожденной по аргументу xi,

Булева функция от n аргументов fn(Х) называется вырожденной по аргументу xi,

если ее значение не зависит от этого аргумента, то есть для всех наборов аргументов имеет место равенство:
f(x1,x2,... ,xi-1, 0, xi+1, ... ,xn) = f(x1,x2,xi-1, 1, xi+1, ... ,xn).

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

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

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

Слайд 14

Слайд 15

Некоторые функции от трех переменных Замечание. Функции сумма по модулю 2

Некоторые функции от трех переменных

Замечание. Функции сумма по модулю 2 и

исключающее ИЛИ для трех аргументов являются неэквивалентными.
Утверждение. Общее число разнообразных булевых функций, в том числе и вырожденных, от n аргументов равно

.

Слайд 16

Нормальные формы булевых функций Нормальные формы - это особый класс аналитических

Нормальные формы булевых функций
Нормальные формы - это особый класс аналитических выражений,

используемых при решении задачи минимизации булевых функций и для перехода от табличной формы задания к аналитической. Нормальные формы строятся на основании операций конъюнкции, дизъюнкции и отрицания, причем отрицание только единственной переменной.

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

Слайд 17

Под буквой будем понимать аргумент булевой функции или его отрицание. Примерами

Под буквой будем понимать аргумент булевой функции или его отрицание.
Примерами

термов являются:

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

Рангом терма называется количество букв входя-щих в него.

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

Слайд 18

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

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

булевой функции от n переменных конституента включает в себя n букв.

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

Пример. При n = 4 конъюнктивный терм
принимает значение равное единице на наборе 1010, а дизъюнктивный терм
принимает значение равное нулю на наборе 1101.

Слайд 19

Определение. Дизъюнктивная (конъюнктивная) нормальная форма называется канонической, если все ее конъюнктивные

Определение. Дизъюнктивная (конъюнктивная) нормальная форма называется канонической, если все ее конъюнктивные

(дизъюнктивные) термы представляют собой конституенты единицы (нуля). Канонические формы называют также совершенными.

Замечания:
1. С помощью канонических форм наиболее просто осуществляется переход от табличной формы задания булевой функции к аналитической.

2. С помощью канонических форм любую булеву функцию можно представить в булевом базисе.

Слайд 20

3. Любая булева функция, за исключением логического нуля и логической единицы,

3. Любая булева функция, за исключением логического нуля и логической единицы,

имеет единственные КДНФ и ККНФ. Логическую единицу можно представить в виде КДНФ, а логический ноль - в виде ККНФ.

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

Слайд 21

в) объединением конституенты единицы (нуля) знаками дизъюнкции (конъюнкции) получается аналитическая форма

в) объединением конституенты единицы (нуля) знаками дизъюнкции (конъюнкции) получается аналитическая форма

в виде КДНФ (ККНФ).

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

Пример. Получить канонические формы для функции y = x1 ⊕ x2.
Составим таблицу истинности заданной функции:

Слайд 22

КДНФ - каноническая дизъюнктивная нормальная форма: ККНФ - каноническая конъюнктивная нормальная форма:

КДНФ - каноническая дизъюнктивная нормальная форма:

ККНФ - каноническая конъюнктивная нормальная форма:

Слайд 23

КДНФ и ККНФ представляют собой две различные, но эквивалентные аналитические формы

КДНФ и ККНФ представляют собой две различные, но эквивалентные аналитические формы

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

Существует другой способ получения ККНФ:
а) составляется КДНФ, но не для самой булевой функции, а для ее отрицания;

б) берется отрицание над полученной КДНФ, которое снимается с применением закона двойственности.

Слайд 24

Числовая и символическая формы представления булевых функций Для любой булевой функции

Числовая и символическая формы представления булевых функций
Для любой булевой функции можно

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

Пример. Функция от трех переменных задана в числовой форме: От числовой

Пример. Функция от трех переменных задана в числовой форме:

От числовой

формы легко перейти к КДНФ путем замены каждого из наборов в перечислении конституентой единицы.

Аналогично можно перейти к ККНФ:

Слайд 26

В самом компактном виде любую булеву функцию можно представить в следующей

В самом компактном виде любую булеву функцию можно представить в следующей

символической форме: где n-количество аргументов, а N-десятичный эквивалент двоичного набора значений функции на упорядоченном множестве аргументов..
Слайд 27

Пример. f3(Х)=x1⊕x2⊕x3 (01101001)2 = 64 + 32 + 8 + 1

Пример. f3(Х)=x1⊕x2⊕x3

(01101001)2 = 64 + 32 + 8 + 1 =

105

f3(Х)=x1⊕x2⊕x3 = - символическая форма булевой функции.

Слайд 28

Преобразование произвольной аналити-ческой формы булевой функции в нормальную В булевой алгебре

Преобразование произвольной аналити-ческой формы булевой функции в нормальную

В булевой алгебре в

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

Пример. Преобразовать аналитическое выраже-ние заданной булевой функции к нормальной форме:

Слайд 29

1. В общем случае любая булева функция может иметь несколько ДНФ,

1. В общем случае любая булева функция может иметь несколько ДНФ,

отличающихся либо количеством термов, либо количеством букв в этих термах.

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

Слайд 30

3. По сравнению со схемой, построенной по ДНФ, схема, построенная по

3. По сравнению со схемой, построенной по ДНФ, схема, построенная по

скобочной форме (*), является предпочтительной т.к. при одном и том же числе логических элементов (И, ИЛИ) содержит меньшее число входов (9 вместо 10).

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

4. Сущность конструктивного подхода при полу-чении ДНФ состоит в следующем:
а) преобразование операций небулевого базиса к операциям булевого базиса;

б) снятие отрицаний над выражениями с примене-нием законов двойственности;

Слайд 31

в) раскрытие скобок с применением дистрибу-тивного закона; Приведение произвольных нормальных форм

в) раскрытие скобок с применением дистрибу-тивного закона;

Приведение произвольных нормальных форм булевой

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

г) упрощение выражения с применением законов поглощения, склеивания, сокращения и тавто-логии.

Приведенные рассуждения справедливы и для КНФ.

Слайд 32

где P - неполный конъюнктивный терм (ранг этого терма меньше n),

где P - неполный конъюнктивный терм (ранг этого терма меньше n),

а xi - недостающий в терме аргумент.

Пример. Привести ДНФ заданной функции к КДНФ:

Слайд 33

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

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

оставить только один.
- числовая форма функции.

Пример. Привести ДНФ заданной функции к ККНФ:

Преобразование КНФ к ККНФ реализуется путем применения правила конъюнктивного разверты-вания к каждому неполному дизъюнктивному терму

Слайд 34

- числовая форма функции.

- числовая форма функции.

Слайд 35

Разнообразие двоичных алгебр В связи с тем, что любую сколь угодно

Разнообразие двоичных алгебр
В связи с тем, что любую сколь угодно сложную

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

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

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

Слайд 36

К наиболее распространенным двоичным алгебрам относятся: алгебра Жегалкина (⊕, &); алгебра

К наиболее распространенным двоичным алгебрам относятся:

алгебра Жегалкина (⊕, &);


алгебра Вебба (Пирса) (↓);

алгебра Шеффера ( | ).

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

Слайд 37

Кубическое представление булевых функций В кубическом представлении булевой функции от n

Кубическое представление булевых функций
В кубическом представлении булевой функции от n переменных

все множество из 2n наборов ее аргументов рассматривается как множество координат вершин n-мерного куба с длиной ребра, равной 1. В соответствии с этим наборы аргументов, на которых булева функция принимает значение, равное 1, принято называть существенными вершинами.

Существенные вершины образуют так называемые ноль-кубы (0-кубы). Между 0-кубами существует отношение соседства и определена операция склеивания. Два 0-куба называются соседними, если они отличаются только по одной координате и, соответственно, могут вступать в операцию склеивания, в результате которой получается 1-куб.

Слайд 38

Пример. Для функции f 4(X) определить, являются ли ее 0-кубы (0101)

Пример. Для функции f 4(X) определить, являются ли ее 0-кубы (0101)

и (0001) соседними и, если являются, то выполнить операцию их склеивания.

Заданные кубы являются соседними, так как они различаются только по одной координате. Результатом их склеивания является 1-куб (0Х01).

Координата, отмечаемая символом Х, называется свободной (независимой, несвязанной), а остальные (числовые), координаты называются зависимыми (связанными).

Аналогичное отношение соседства существует между 1-кубами, в результате склеивания которых получается 2-куб.

Слайд 39

Пример. Для функции f 4(X) определить, являются ли ее 1-кубы (0Х01)

Пример. Для функции f 4(X) определить, являются ли ее 1-кубы (0Х01)

и (0Х11) соседними и, если являются, то выполнить операцию их склеивания.

Заданные кубы являются соседними, так как они различаются только по одной координате. Результатом их склеивания является 2-куб (0ХХ1).

В порядке обобщения: два r-куба называются соседними, если они отличаются только по одной (естественно, зависимой) координате. Каждый r-куб содержит r независимых и (n–r) зависимых координат. В результате склеивания двух соседних r-кубов образуется (r+1)-куб содержащий (r+1) независимую координату.

Слайд 40

Замечания. Размерность куба определяется количеством свободных координат. 2. В соседних r-кубах

Замечания.
Размерность куба определяется количеством свободных координат.

2. В соседних r-кубах (r

> 0) все свободные координаты являются одноименными.

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

Так, для примера 0-кубу (0101) соответствует терм
, а 0-кубу (0001) – терм . Эти термы склеиваются по переменной х2. Результат склеивания:
, в котором отсутствует переменная х2, отождествляется с 1-кубом (0Х01).

Слайд 41

Аналогично, для другого примера 1-кубу (0Х01) соответствует терм , а 1-кубу

Аналогично, для другого примера 1-кубу (0Х01) соответствует терм , а 1-кубу

(0Х11) – терм
Эти термы склеиваются по переменной х3. Результат склеивания:
отождествляется с 2-кубом (0ХХ1).

Кубическим комплексом K0(f) булевой функции f называется множество 0-кубов этой функции. В общем случае, кубическим комплексом K(f) булевой функции f называется объединение множеств кубов всех размерностей этой функции
m - максимальная размерность
кубов функции f.

Слайд 42

Пример. Получить кубический комплекс функции Для получения кубического комплекса K(f) необ-ходимо

Пример. Получить кубический комплекс функции

Для получения кубического комплекса K(f) необ-ходимо провести

всевозможные операции склеи-вания над 0-кубами, 1-кубами и т.д. до тех пор, пока при склеивании r-кубов не получится K r+1(f)= ∅.

K 3(f)=∅ (пустое множество).
K(f)=K0(f) U K1(f) U K2(f). Естественно, что в комплексе K2(f) останется только один куб (Х1Х).

Слайд 43

Пояснения. Получение 1-кубов осуществляется на основе попарного сравнения 0-кубов с целью

Пояснения. Получение 1-кубов осуществляется на основе попарного сравнения 0-кубов с целью

выявления всевозможных пар соседних 0-кубов и образования 1-кубов из каждой пары.

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

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

Слайд 44

Замечания. Для данного примера в записи 0-кубов в кубическом комплексе K0(f)

Замечания.
Для данного примера в записи 0-кубов в кубическом комплексе K0(f)

в порядке возрастания их десятичных эквивалентов уже присутствует их упорядочение и разделение на группы.

2. При полном попарном сравнении пяти 0-кубов потре-бовалось бы выполнить 4!=24 операции сравнения, а при целенаправленном (сравниваются только кубы из двух соседних групп) – число операций сравнения равно шести.

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

Слайд 45

При склеивании 1-кубов 2-кубы представлены в двух экземплярах как результаты склеивания

При склеивании 1-кубов 2-кубы представлены в двух экземплярах как результаты склеивания

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

Куб, входящий в состав кубического комплекса K(f), называется максимальным, если он не вступает ни в одну операцию склеивания.

Множество максимальных кубов функции f обозначается Z(f). Это множество является окончательным результатом операции склеивания кубов. Из кубов этого множества (и только из них) строится минимальное покрытие булевой функции.

В примере максимальными
кубами являются кубы

Слайд 46

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

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

функций носит ограниченный характер и, как правило, является наглядным для булевых функций от двух (“плоский” вариант) и трех переменных (“пространственный” вариант).

При использовании графического способа задания булевой функции от n переменных каждый из 2n наборов ее аргументов отождествляется с точкой n-мерного пространства с соответствующими координатами, которые могут принимать только два значении: 0 или 1.

Слайд 47

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

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

можно отождествить с множеством вершин n-мерного куба с длиной ребра, равной 1.
Для представления значений функции (0 или 1) обычно выделяются вершины куба, соответствующие наборам аргументов, на которых функция равна единице. На рисунке показано графическое представление функции из примера:
Слайд 48

Рис. Графическое представление функции от трех переменных Единичные значения функции выделены

Рис. Графическое представление функции от трех переменных

Единичные значения функции выделены

“жирными” точками в соответствующих вершинах куба. Выделенные вершины будем называть существенными. Существенные вершины соответствуют 0-кубам функции. Таким образом, геометрической интерпретацией 0-куба является точка, представляющая существенную вершину.
Слайд 49

Два соседних 0-куба являются концами какого-либо ребра, в связи с чем,

Два соседних 0-куба являются концами какого-либо ребра, в связи с чем,

геометрической интерпретацией 1-куба является ребро, замыкаемое склеивающимися 0-кубами. На рисунке выделены пять ребер, соответствую-щих 1-кубам кубического комплекса K1(f) из примера. Два параллельных ребра, образующих грань, являются обра-зами склеивающихся 1-кубов. В соответствии с этим геометрической интерпретацией 2-куба является грань, образуемая парой параллельных ребер.
Слайд 50

Так как любую грань можно определить одной из пар параллельных ребер,

Так как любую грань можно определить одной из пар параллельных ребер,

2-куб может быть получен как результат склеивания двух различных пар 1-кубов, то есть при всевозможных склеиваниях представляется в двух экземплярах. На рисунке штриховкой выделена грань, соответствующая 2-кубу (Х1Х) из примера.

Геометрическим образом 3-куба можно считать весь трехмерный куб. Так как он может быть образован тремя способами как пара параллельных граней, то при склеивании он получается в трех экземплярах.

На рисунке приведены возможные графические представления функции от четырех переменных в виде гиперкуба (тессеракта).

Слайд 51

Графические представления функции от четырех переменных

Графические представления функции от четырех переменных

Слайд 52

Задача минимизации булевых функций и методы ее решения Аналитические выражения булевых

Задача минимизации булевых функций и методы ее решения
Аналитические выражения булевых функций

являются математическими моделями, на основании которых строятся логические схемы.

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

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

Слайд 53

Если в схеме используются элементы k типов с ценами s1, s2,

Если в схеме используются элементы k типов с ценами s1, s2,

..., sk и в количестве n1, n2,…, nk, то цена схемы S определяется суммарной ценой элементов:

Методика проектирования логических схем, оптимальных в смысле минимума цены S крайне затруднительна. В связи с этим в практике проек-тирования используются методы, основанные на ряде допущений, которые позволяют упростить решение задачи проектирования и синтезировать схемы, близкие к оптимальным.

Слайд 54

Канонический метод проектирования комбина-ционных схем состоит в следующем. Закон функционирования проектируемой

Канонический метод проектирования комбина-ционных схем состоит в следующем.

Закон функционирования проектируемой

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

При использовании многовходовых логических элементов И, ИЛИ и одновходового элемента НЕ схема может быть построена по ДНФ или КНФ функции.

Слайд 55

Замечание. Для схем с так называемыми парафазными входами (на входы схемы

Замечание. Для схем с так называемыми парафазными входами (на входы

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

При упрощенной оценке затрат оборудования на реализацию логической схемы цена схемы определяется суммарным числом входов в логические элементы и называется ценой схемы по Квайну - SQ.

Слайд 56

Использование SQ в качестве критерия оптималь-ности синтезируемой схемы предполагает, что схема

Использование SQ в качестве критерия оптималь-ности синтезируемой схемы предполагает, что схема

должна строится по аналитическому выражению булевой функции в нормальной форме (ДНФ или КНФ), содержащему минималь-ное количество литер. Задача получения нормальных форм булевых функций, содержащих минимальное количество букв, называется канонической задачей минимизации, а сами нор-мальные формы (ДНФ или КНФ) булевых функций, получаемые в результате решения задачи минимизации, называются минимальными и обозначаются МДНФ или МКНФ.
Слайд 57

Методы минимизации булевых функций Методы решения задачи минимизации булевых функций можно

Методы минимизации булевых функций
Методы решения задачи минимизации булевых функций можно разделить

на две группы: графические и аналитические.

Графический метод минимизации основан на использовании минимизирующих карт, назы-ваемых картами Карно (диаграммами Вейча).

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

Слайд 58

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

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

Основными достоинствами

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

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

Слайд 59

Большим недостатком графического метода мини-мизации является также отсутствие формализо-ванного подхода к

Большим недостатком графического метода мини-мизации является также отсутствие формализо-ванного подхода к

решению задачи (метод явля-ется во многом интуитивным), что ставит в зависи-мость получение оптимального решения от квали-фикации и практических навыков специалиста.

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

Наиболее известные аналитические методы минимизации описаны в пособии.

Слайд 60

Покрытия булевых функций Построение покрытий булевых функций из кубов различной размерности.

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

между покрытием и ДНФ булевой функции
Между кубами различной размерности, входящими в кубический комплекс K(f), существует отношение включения или покрытия. При этом принято говорить, что куб А меньшей размерности покрывается кубом B большей размерности. Куб А включается в куб B, если при образовании куба B хотя бы в одном склеивании участвует куб А.
Слайд 61

Отношение включения (покрытия) между кубами обозначается: А ⊂ B. Для примера

Отношение включения (покрытия) между кубами обозначается: А ⊂ B. Для примера

отношения включения имеют место между следующими кубами: 001⊂0Х1; 011⊂Х11⊂Х1Х.

Любой 1-куб покрывает два 0-куба, 2-куб - четыре 0-куба и четыре 1-куба, 3-куб покрывает восемь 0-кубов, двенадцать 1-кубов и шесть 2-кубов (см. рис.).

Замечание. Для кубов большей размерности студентам предлагается определить количество покрываемых кубов самостоятельно. Представляется целесообразным вывести общую формулу для - числа k-кубов, покрываемых одним m-кубом (m>k), используя элементы комбинаторики.

Слайд 62

Покрытием булевой функции f называется такое подмножество кубов из кубического комплекса

Покрытием булевой функции f называется такое подмножество кубов из кубического комплекса

K(f), которое покрывает все существенные вершины функции. В связи с тем, что любому кубу комплекса K(f) можно поставить в соответствие конъюнктивный терм, для произвольного покрытия C(f) можно составить ДНФ булевой функции. Частным случаем покрытия булевой функции является кубический комплекс K0(f) (C0(f)=K0(f)). Этому покрытию соответствует КДНФ.
Для примера покрытием является также комплекс K1(f):
Слайд 63

Этому покрытию соответствует ДНФ вида: которая не является минимальной. В качестве

Этому покрытию соответствует ДНФ вида:

которая не является минимальной. В качестве еще

одного варианта покрытия можно использовать множество максимальных кубов.
Слайд 64

Действительно, кубы, входящие в Z(f), покрывают все существенные вершины: 0Х1⊃(001, 011),

Действительно, кубы, входящие в Z(f), покрывают все существенные вершины: 0Х1⊃(001, 011),

Х1Х⊃(010, 011, 110, 111).


Эта ДНФ является минимальной

Замечание. Множество максимальных кубов булевой функции всегда является ее покрытием.

Покрытию С2(f) соответствует ДНФ вида:

Слайд 65

Покрытие булевой функции, которое соответствует минимальной ДНФ, называется минимальным покрытием и

Покрытие булевой функции, которое соответствует минимальной ДНФ, называется минимальным покрытием и

обозначается Сmin (f).

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

Множество максимальных кубов булевой функции лишь в частном случае может являться минималь-ным покрытием. Это справедливо для рассмотрен-ного выше примера. В общем случае, множество максимальных кубов является избыточным и для получения минимального покрытия достаточно выделить некоторое его подмножество.

Рассмотрим подобный случай на примере.

Слайд 66

Пример. Минимизируемая булева функция задана в числовой форме: Найти ее минимальное

Пример. Минимизируемая булева функция задана в числовой форме:

Найти ее минимальное

покрытие и МДНФ.

По числовой форме булевой функции составим ее кубический комплекс K0(f):

Произведя всевозможные операции склеивания между 0-кубами, получим кубический комплекс K1(f).

Слайд 67

Все 0-кубы функции вступили хотя бы в одну операцию склеивания и,

Все 0-кубы функции вступили хотя бы в одну операцию склеивания и,

следовательно, среди них нет максимальных. Кроме того, среди 1-кубов функции нет соседних (K2(f)= ∅). Следовательно, для данного примера множество максимальных кубов совпадает с кубическим комплексом
K1(f): Z(f)= K1(f).

Для рассматриваемого примера СДНФ:

Множеству максимальных кубов, образующих покрытия булевой функции, соответствует ДНФ, которая называется сокращенной (СДНФ).

Слайд 68

Из анализа покрытия существенных вершин максимальными кубами из комплекса K1(f) следует:

Из анализа покрытия существенных вершин максимальными кубами из комплекса K1(f) следует:

1.

Куб (00Х) должен обязательно включаться в покрытие, так как он и только он покрывает существенную вершину (001), аналогично, только куб (11Х) покрывает существенную вершину (111).
Множество максимальных кубов, без которых не может быть образовано покрытие булевой функции, называется ядром покрытия и обозначается
T(f): T(f)={00Х, 11Х}.

2. Так как ядром покрытия, кроме существенных вершин (001) и (111), покрываются также существенные вершины (000) и (110), то не покрытой ядром остается только существенная вершина (100).

Слайд 69

Для ее покрытия достаточно взять любой из оставшихся максимальных кубов: (Х00)

Для ее покрытия достаточно взять любой из оставшихся максимальных кубов: (Х00)

или (1Х0).

Таким образом, для рассматриваемого примера получены два минимальных покрытия:

;

которым соответствуют МДНФ:

и

Слайд 70

Выводы: 1. Задача получения минимальной ДНФ сводится к задаче получения минимального

Выводы:

1. Задача получения минимальной ДНФ сводится к задаче получения минимального покрытия

булевой функции.

2. В общем случае: получение минимального покрытия осуществляется в следующем порядке:

а) находится множество максимальных кубов;

б) выделяется ядро покрытия;

в) из множества максимальных кубов, не вошедших в ядро, выбирается такое минимальное подмножество, которое покрывает существенные вершины, не покрытые ядром.

Слайд 71

3. Частными случаями могут являться: Cmin(f) = K0(f). Минимальное покрытие совпадает

3. Частными случаями могут являться:

Cmin(f) = K0(f). Минимальное покрытие совпадает

с кубическим комплексом K0(f). При этом МДНФ совпадает с КДНФ;

Cmin(f) = Z(f). Минимальное покрытие совпадает с множеством максимальных кубов Z(f). При этом МДНФ совпадает с СДНФ;

Cmin(f) ⊂ Z(f). Минимальное покрытие представляет собой некоторое подмножество множества максимальных кубов. При этом могут иметь место следующие случаи:

а) Cmin(f) = T(f). Минимальное покрытие совпадает с ядром.

Слайд 72

б) T(f) ⊂ Cmin(f). Минимальное покрытие включает в себя ядро, как

б) T(f) ⊂ Cmin(f). Минимальное покрытие включает в себя ядро, как

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

в) T(f) = ∅. Ядро покрытия отсутствует. Покрытие формируется из минимального числа максимальных кубов. Данный случай является наиболее сложным для получения минимального покрытия.

Слайд 73

Цена покрытия Цена покрытия используется при решении задачи минимизации булевых функций

Цена покрытия
Цена покрытия используется при решении задачи минимизации булевых функций как

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

где Nr - количество r-кубов, входящих в покрытие, m - максимальная размерность кубов, входящих в покрытие. Цена Sa представляет собой сумму цен кубов, входящих в покрытие.

Цена r-куба (Sr) представляет собой количество несвязанных координат: Sr= n – r. Принято использовать два вида цены покрытия: Sa и Sb.

Слайд 74

где k – общее количество кубов, входящих в покрытие. Минимальным покрытием

где k – общее количество кубов, входящих в покрытие.

Минимальным покрытием булевой

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

Можно показать, что покрытие, обладающее минимальной ценой Sa, обладает также и минимальной ценой Sb.

Слайд 75

Пример. Определить цены покрытий функции C0(f)=K0(f): Sa=5⋅3=15; Sb=Sa+5=20; C1(f)=K1(f): Sa=4⋅2=8; Sb=Sa+4=12; C2(f)=Cmin(f): Sa=3⋅2=6 ; Sb=9.

Пример. Определить цены покрытий функции


C0(f)=K0(f): Sa=5⋅3=15; Sb=Sa+5=20;
C1(f)=K1(f): Sa=4⋅2=8; Sb=Sa+4=12;
C2(f)=Cmin(f):

Sa=3⋅2=6 ; Sb=9.
Слайд 76

Цены покрытия Sa и Sb связаны с ДНФ, соответствующей этому покрытию,

Цены покрытия Sa и Sb связаны с ДНФ, соответствующей этому покрытию,

следующим образом:

- цена покрытия Sa представляет собой количество букв, входящих в ДНФ;

- цена Sb представляет сумму количества букв и количества термов, образующих ДНФ.

Цена покрытия хорошо согласуется с ценой схемы, построенной по нормальной форме функции, соответствующей этому покрытию.

Слайд 77

Пример. Построить логическую схему, реализующую булеву функцию по МДНФ из примера.

Пример. Построить логическую схему, реализующую булеву функцию по МДНФ из примера.

Определить цену схемы по Квайну и сравнить ее значение с ценами покрытия Sa и Sb.
В качестве исходного аналитического выражения для построения схемы возьмем МДНФ функции f2(X):

В качестве системы логических элементов используем элементы булева базиса {И, ИЛИ, НЕ}. Будем строить схему с парафазными входами, в следствии чего элементы НЕ (инверторы) не понадобятся.

Слайд 78

Для интерпретации выражения для МДНФ в схему представим его в следующем

Для интерпретации выражения для МДНФ в схему представим его в следующем

виде:

И(2) И(2) И(2)
ИЛИ(3)

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

Слайд 79

Логическая схема, построенная по покрытию С2 Цена схемы по Квайну, определяемая

Логическая схема, построенная по покрытию С2

Цена схемы по Квайну, определяемая

суммарным числом входов во все логические элементы схемы: SQ=2*3 (входы в элементы И) + 1*3 (входы в элемент ИЛИ) = 9.
Слайд 80

В свою очередь, цены покрытия по МДНФ, по которой строилась схема,

В свою очередь, цены покрытия по МДНФ, по которой строилась схема,

Sa =6, Sb =9. Таким образом, Sa < SQ = Sb

Замечание. В принципе, между ценой схемы SQ и ценами покрытия Sa и Sb существует соотношение: Sa ≤ SQ ≤ Sb, которое выполняется при следующих допущениях:

1. Схема строится по нормальной форме (ДНФ или КНФ).

2. Схема строится на элементах булевого базиса (И, ИЛИ).

3. На входы схемы подаются как прямые, так и инверсные значения аргументов булевой функции (схема с парафазными входами).

Слайд 81

Нулевое покрытие булевой функции и получение МКНФ Выше было рассмотрено покрытие

Нулевое покрытие булевой функции
и получение МКНФ
Выше было рассмотрено покрытие булевой

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

Пример. Для булевой функции найти минимальное нулевое покрытие и составить МКНФ.

Пример. Для булевой функции
найти минимальное нулевое покрытие и составить МКНФ.

Альтернативное числовое

представление булевой функции по нулевым значениям имеет вид:

Определим множество максимальных кубов нулевого покрытия. Над 0-кубами кубического комплекса выполним операцию склеивания

Слайд 83

Sa=9 Sb=12; в результате чего получим кубический комплекс Поскольку 0-куб (101)

Sa=9
Sb=12;

в результате чего получим кубический комплекс

Поскольку 0-куб (101)

не склеивался с другими 0-кубами, а 1-куб – единственный

∅), то

Sa=5 Sb=7.

множество максимальных кубов:

Слайд 84

Минимальное нулевое покрытие совпадает с множеством максимальных кубов: Замечания. Для того,

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

Замечания.
Для

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

2. Цена минимального нулевого покрытия оказалась меньше цены минимального единичного покрытия.

Слайд 85

Минимизация булевых функций на картах Карно Одним из способов графического представления

Минимизация булевых функций
на картах Карно
Одним из способов графического представления булевых

функций от небольшого числа переменных являются карты Карно.

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

Слайд 86

Карты Карно функций от трех переменных В связи с тем, что

Карты Карно функций от трех переменных

В связи с тем, что в

основе формирования кубов различной размерности k (k>0) положены отношения соседства и операции склеивания, порядок проставления координат (х2 х3) в столбцах карты {(00), (01), (11), (10)} принят таким, чтобы соседние 0-кубы размещались в геометрически соседних клетках карты.
Слайд 87

Пример карты Карно для булевой функции от четырех переменных, заданной в

Пример карты Карно для булевой функции от четырех переменных, заданной в

числовой форме:

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

1

Слайд 88

Образование кубов на картах Карно Две соседние клетки образуют 1-куб. При

Образование кубов на картах Карно
Две соседние клетки образуют 1-куб. При этом

имеется в виду, что клетки, лежащие на границах карты, также являются соседними по отношению друг к другу.

Примеры образования 1-кубов приведены на рисунках:

Слайд 89

Карты позволяют для функций f1 и f2, заданных комплексами K0(f1) и

Карты позволяют для функций f1 и f2, заданных комплексами K0(f1) и

K0(f2)

с ценами Sа(f1) = 15, Sb(f1) = 20 и Sa(f2) = 24, Sb(f2)=30 определить покрытия

с ценами Sa(f1) = 6, Sb(f1) = 9, Sa(f2) = 12, Sb(f1) = 16.

Слайд 90

Эти покрытия являются минимальными и им соответствуют минимальные ДНФ: Четыре клетки

Эти покрытия являются минимальными и им соответствуют минимальные ДНФ:

Четыре клетки

карты могут объединяться, образуя 2-куб, содержащий две независимые координаты.

Карты построены для функций f1, f2 и f3, заданных в числовой форме:

Слайд 91

На картах определены покрытия:

На картах определены покрытия:

Слайд 92

имеющие цены Sa(f1) = 6, Sb(f1) = 9, Sa(f2) = 4,

имеющие цены Sa(f1) = 6, Sb(f1) = 9, Sa(f2) = 4,

Sb(f2) = 6, Sa(f3) = 4, Sb(f3) = 6.
Покрытия являются минимальными. Составленные по ним МДНФ имеют вид:

Объединение восьми клеток карты приводит к образованию 3-куба. Примеры образования 3-кубов для функций от четырех переменных f1, f2, f3, заданных в числовой форме:

Слайд 93

Функциям f1, f2, f3 соответствуют покрытия с одинаковыми ценами Sа = 2, Sb = 4.

Функциям f1, f2, f3 соответствуют покрытия с одинаковыми ценами Sа =

2, Sb = 4.
Слайд 94

Определение минимальных покрытий и МДНФ Для получения минимальной ДНФ функции с

Определение минимальных покрытий и МДНФ
Для получения минимальной ДНФ функции с использованием

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

Sа =3, Sb= 5, Sа = 15, Sb = 20

Sа =3,
Sb= 5,

Sа = 15,
Sb = 20

Слайд 96

Данной функции соответствует минимальная ДНФ: Минимальная КНФ: Sa = 8, Sb

Данной функции соответствует минимальная ДНФ:

Минимальная КНФ:

Sa = 8, Sb = 11

Sa=

8, Sb = 11

Пример. Определить минимальные ДНФ и КНФ функции с использованием карт Карно.

Слайд 97

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

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

и четыре четырехмерные карты Карно.

Пример минимизации функции пяти переменных


Слайд 98

Минимальное покрытие функции: имеет цены Sа = 13, Sb = 17.

Минимальное покрытие функции:

имеет цены Sа = 13, Sb = 17. Ему

соответствует МДНФ:

Разделение четырехмерных карт Карно произво-дится по значению аргумента х1: для левой карты х1=0, для правой - х1=1. Каждая клетка Карно для функции от пяти переменных имеет пять соседних, четыре из которых размещаются в пределах своей четырехмерной карте, а одна расположена в

Слайд 99

в соседней карте и имеет в ней одинаковые с исходной клеткой

в соседней карте и имеет в ней одинаковые с исходной клеткой

координаты х2, х3, х4, х5, отличаясь только по координате х1.

Кубы, используемые в покрытии функции, могут располагаться:
а) целиком в одной из четырехместных карт (при х1=0 - в левой, при х1=1 – в правой);

б) в обеих четырехместных картах (при этом координата х1 - независимая: х1=Х).

Рассмотрим принцип размещения карт для представления функций шести переменных

Слайд 100

Функция от шести переменных задана комплексом с ценой Sа = 48:

Функция от шести переменных задана комплексом с ценой Sа = 48:

Слайд 101

Минимальное покрытие этой функции имеет цену Sа = 8.

Минимальное покрытие этой функции имеет цену Sа = 8.

Слайд 102

При минимизации функций от большого числа переменных карты Карно неудобны, в

При минимизации функций от большого числа переменных карты Карно неудобны, в

этом случае для решения задач минимизации используются алгебраические методы. Минимальным ДНФ и КНФ функций соответствуют минимальные двухуровневые логические схемы.

Минимизация частично определенных булевых функций

При минимизации частично определенных булевых функций в клетки карты Карно, соответствующие наборам аргументов, на которых функция не определена, ставится символ d (don’t care).

Слайд 103

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

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

значения переменной x,

Введем булевы переменные: a : xk2. Построим схемы алгоритмов для вычисления r.

где FR1, FR2 и FR3 - линейные формулы, k1 и k2 - некоторые константы: k1 ≠ k2 и k1 < k2.

Для первого алгоритма сначала проверим условие а, а затем b.
Для второго – сначала условие b, а затем а.

Слайд 104

ab ab

ab

ab

Слайд 105

a : x Действительно, переменная x, входящая в a и b,

a : x


Действительно, переменная x, входящая в a и

b, не может одновременно принадлежать как диапазону A={x│x k2}, при k1 ≠ k2 и k1 < k2.
Слайд 106

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

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

которой выполняется операция суммирования двоичных кодов по mod 3:
у1у2 = (а1а2 + b1b2)mod 3.

Предполагается, что слагаемые имеют значения а1а2 ≤ 2; b1b2 ≤ 2, т.е. наборы а1а2 = 11 и b1b2 = 11 отсутствуют и рассматриваются как несущест-венные.

Для функции у1у2 составим таблицу истинности.

Слайд 107

Функции y1 = f1(a1,a2,b1,b2) и y2 = f2(a1,a2,b1,b2) представлены на картах

Функции y1 = f1(a1,a2,b1,b2) и y2 = f2(a1,a2,b1,b2) представлены на картах

Карно. На картах нулевые значения y1 и y2 обозначены 0, единичные – 1, несущественные – знаком d.
Слайд 108

С использованием несущественных вершин определяются минимальные покрытия: с ценой Sа = 8 каждое.

С использованием несущественных вершин определяются минимальные покрытия:

с ценой Sа = 8

каждое.
Слайд 109

Покрытиям соответствуют минимальные ДНФ: Замечание. После минимизации функция становится полностью определенной.

Покрытиям соответствуют минимальные ДНФ:

Замечание. После минимизации функция становится полностью определенной. Значения

функции на несущественных наборах доопределяется до 1, если набор использовался при минимизации, и до 0, если нет.
Слайд 110

Импликанты булевой функции. Системы импликант Решение задачи минимизации булевой функции методом

Импликанты булевой функции.
Системы импликант
Решение задачи минимизации булевой функции методом Квайна

и усовершенствованным методом Квайна-Мак-Класки базируется на понятиях импликант и их систем.

Булева функция g(X) называется импликантой булевой функции f(X), если для любого набора аргументов, на которых g(X)=1, f(X) также равна единице.

Свойства импликант:
1. Между импликантой и самой функцией существует отношение включения g(X)⊂ f(X).

Слайд 111

2. Можно утверждать, что для любого набора аргументов, на котором функция

2. Можно утверждать, что для любого набора аргументов, на котором функция

равна нулю, ее импликанта также равна нулю.

3. Если g(X) и ϕ(X) являются импликантами функции f(X), то их дизъюнкция также является импликантой этой функции.

Простейшими примерами импликант могут служить конъюнктивные термы, входящие в произвольную ДНФ данной функции.

Пример. Импликантами функции
являются

Слайд 112

Т.е. произвольная дизъюнкция этих термов также является импликантой функции. Простой (первичной)

Т.е. произвольная дизъюнкция этих термов также является импликантой функции.

Простой (первичной) импликантой

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

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

Для функции примера простыми импликантами являются:

Слайд 113

Множеству простых импликант можно поставить в соответствие множество максимальных кубов. Понятие

Множеству простых импликант можно поставить в соответствие множество максимальных кубов.

Понятие «сокращенная»

присвоено ДНФ в том смысле, что она, как правило, содержит меньшее количество букв и термов по сравнению с КДНФ.

Дизъюнкция всех простых импликант булевой функции представляет собой ДНФ этой функции, которая называется сокращенной - СДНФ.

Для функции примера СДНФ имеет вид:

Для нашего примера КДНФ содержит 15 букв и 5 термов, а СДНФ - 8 букв и 4 терма.

Слайд 114

Аналогия между импликантами и кубическим представлением булевой функции Любому кубу из

Аналогия между импликантами и
кубическим представлением булевой функции
Любому кубу из К(f)

можно поставить в соответ-ствие конъюнктивный терм, который можно рассматривать как импликанту булевой функции.

Любой простой импликанте булевой функции соответствует максимальный куб, и, в свою очередь, множество всех простых импликант соответствует множеству Z(f) всех максимальных кубов К(f).

Таким образом, можно провести некоторую аналогию между сокращенной СДНФ и Z(f).

Слайд 115

В отношении импликант булевой функции также как и в отношении кубов,

В отношении импликант булевой функции также как и в отношении кубов,

соответствующих им, существует отношение покрытия.

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

Слайд 116

Наример, импликанта х1х2 покрывает сущест-венные вершины (110, 111) и в свою

Наример, импликанта х1х2 покрывает сущест-венные вершины (110, 111) и в свою

очередь покрывает куб 11Х.

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

Если считать, что в полную систему импликант включаются импликанты только в виде конъюнк-тивных термов и не включаются импликанты в виде дизъюнкции термов, то полной системе импликант можно поставить в соответствие некоторое множество кубов из К(f) образующих покрытие булевой функции f .

Слайд 117

Так, например, кубам из кубического комплекса К° (f) соответствует полная система

Так, например, кубам из кубического комплекса К° (f) соответствует полная система

импликант, представляющая собой множество конституент 1 данной функции f. В свою очередь, множеству максимальных кубов Z(f), естественно образующих покрытие булевой функции, соответствует полная система простых импликант.

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

Слайд 118

Пример. Проверить, является ли система простых импликант для функции полной и,

Пример. Проверить, является ли система простых импликант для функции полной и,

если да, то является ли она приведенной.

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

Дизъюнкция всех простых импликант, образующих некоторую приведенную систему называется тупиковой ДНФ булевой функции или ТДНФ.

Слайд 119

Для функции примера существуют две ТДНФ: 1. 2. В данном случае

Для функции примера существуют две ТДНФ:
1.
2.

В данном случае они совпадают с

минимальной ДНФ. Но в общем случае это утверждение не справедливо, т.е. минимальная ДНФ обязательно является ТДНФ, но не любая ТДНФ является МДНФ.

Простая импликанта булевой функции называется существенной, если она и только она покрывает некоторую существенную вершину этой функции.

Множество существенных импликант соответ-ствует максимальным кубам, образующим ядро покрытия.

Слайд 120

Минимизация булевых функций методом Квайна-Мак-Класки 3. Дополнение множества кубов, принадлежащих ядру

Минимизация булевых функций методом
Квайна-Мак-Класки

3. Дополнение множества кубов, принадлежащих ядру

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

Для решения канонической задачи минимизации методом Квайна-Мак-Класки применяется следующая последовательность действий:

1. Нахождение множества максимальных кубов (простых импликант) булевой функции.

2. Выделение ядра покрытия (определение множества существенных импликант).

Слайд 121

С точки зрения последовательного преобразова-ния ДНФ булевой функции с целью их

С точки зрения последовательного преобразова-ния ДНФ булевой функции с целью их

упрощения каноническая задача минимизации может быть представлена в виде:
КДНФ ⇒ СДНФ ⇒ ТДНФ ⇒ МДНФ.

Распространение терминологии в отношении нуле-вого покрытия базируется на понятии имплиценты (как соответствие импликанте) и системы имплицент.

Нахождение множества максимальных кубов (простых импликант) булевой функции
Рассмотрим процедуру нахождения простых импликант на следующем примере.

Слайд 122

Пример. Минимизация булевой функции методом Квайна-Мак-Класки. Найти множество простых импликант булевой

Пример. Минимизация булевой функции методом Квайна-Мак-Класки.
Найти множество простых импликант булевой функции

заданной в числовой форме:

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

Слайд 123

При таком подходе в операцию склеивания могут вступать только кубы, принадлежащие

При таком подходе в операцию склеивания могут вступать только кубы, принадлежащие

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

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

Слайд 124

Результат этого этапа представлен в таблице

Результат этого этапа представлен в таблице

Слайд 125

Замечания. При образовании 2-кубов получено два одинаковых 2-куба как результата склеивания

Замечания.
При образовании 2-кубов получено два одинаковых 2-куба как результата склеивания двух

различных пар соседних 1-кубов. Точно также при образовании 3-кубов должно получаться три одинаковых 3-куба как результата склеивания трех различных пар соседних 2-кубов.

2. Можно проследить за уменьшением цены покрытий заданной булевой функции, получаемых из кубов различной размерности.

3. При минимизации не полностью определенных булевых функций производится дополнение множества 0-кубов (существенные вершины) булевой функции множеством безразличных наборов N(f) с целью образования кубов большей размерности.

Слайд 126

Определение ядра покрытия Для выполнения этого этапа первоначально строится таблица покрытий,

Определение ядра покрытия
Для выполнения этого этапа первоначально строится таблица покрытий, строки

которой соответствуют мак-симальным кубам покрытия, а столбцы – существен-ным вершинам булевой функции. Безразличные набо-ры аргументов при минимизации не полностью опре-деленной булевой функции в таблице покрытий не участвуют.

Таблица покрытий отображает отношение покрытия между существенными вершинами булевой функции и максимальными кубами. Для этого на пересечении i-ой строки и j-го столбца таблицы делается соответ-ствующая отметка в том случае, если максимальный куб из i-ой строки покрывает существенную вершину из j-го столбца.

Слайд 127

Таблица покрытий с соответствующими отметками Замечания. 1.Таблицу покрытий называют также импликантной

Таблица покрытий с соответствующими отметками

Замечания.
1.Таблицу покрытий называют также импликантной таблицей

в связи с тем, что максимальные кубы соответствуют простым (первичным) импликантам булевой функции, а существенные вершины - конституентам единицы булевой функции.
Слайд 128

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

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

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

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

Слайд 129

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

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

куб: T(f)={1ХХ0}.

Определение множества минимальных покрытий
На этом этапе из множества максимальных кубов, не принадлежащих ядру покрытия, выделяются такие минимальные подмножества, с помощью каждого из которых покрываются оставшиеся вершины (не покрытые ядром). Реализацию этого этапа целесообразно производить с использова-нием упрощенной таблицы покрытий. В ней вычеркнуты все кубы, принадлежащие ядру, и вершины, покрываемые ядром.

Слайд 130

Для решения задачи третьего этапа можно использовать один из трех методов

Для решения задачи третьего этапа можно использовать один из трех методов

или их комбинацию:
1) метод простого перебора;
2) метод Петрика;
3) дальнейшее упрощение таблицы покрытий.

На данном этапе целесообразно ввести обозначение максимальных кубов и существенных вершин. Максимальные кубы обозначены прописными буквами A, ..., F, а существенные вершины строчными буквами a, ..., e.

Слайд 131

Метод перебора целесообразно применять для упро-щенной таблицы небольшого объема. Он не

Метод перебора целесообразно применять для упро-щенной таблицы небольшого объема. Он не

дает гаран-тии получения всех максимальных покрытий.

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

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

Слайд 132

Метод Петрика основан на составлении булева выраже-ния, определяющего условие покрытия всех

Метод Петрика основан на составлении булева выраже-ния, определяющего условие покрытия всех

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

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

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

Слайд 133

Для рассматриваемого примера булево выражение, опре-деляющее условие покрытия всех существенных вершин

Для рассматриваемого примера булево выражение, опре-деляющее условие покрытия всех существенных вершин

в соответствии с таблицей будет иметь вид:
Y= (A∨B)(A∨C)(C∨D)(D∨E)(E∨F).

Это выражение представлено в конъюнктивной форме. Для его преобразования в дизъюнктивную форму выпол-няется попарное логическое умножение дизъюнктивных термов.

Замечание. В целях максимального упрощения этапа преобразования выражения Y перемножаются термы, содержащие по возможности максимальное количество букв. После логического умножения двух первых пар дизъюнктивных термов получим выражение:
Y = (AA∨AC∨AB∨ BC)(CD∨CE∨DD∨DE)(E∨F), которое, после применения законов тавтологии и поглощения, приво-дится к виду: Y = (A∨BC)(D∨CE)(E∨F).

Слайд 134

После логического умножения последних двух скобок и последующего упрощения получим: ррррррррррY=(A∨BC)(DE∨DF∨CEE∨CEF).

После логического умножения последних двух скобок и последующего упрощения получим: ррррррррррY=(A∨BC)(DE∨DF∨CEE∨CEF).

Умножив

оставшуюся пару скобок, получим выражение Y в дизъюнктивной форме:
рррY =ADE∨ADF∨ ACE∨BCDE∨BCDF∨ BCCE=
=ADE∨ ADF∨ACE∨BCE∨BCDF.

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

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

Слайд 135

Для всех минимальных покрытий Sa=11; Sb=15. Минимальные ДНФ, соответствующие этим покрытиям:

Для всех минимальных покрытий Sa=11; Sb=15.
Минимальные ДНФ, соответствующие этим покрытиям:

Слайд 136

МДНФ1: МДНФ2: МДНФ3: МДНФ4: Метод дальнейшего упрощения таблицы покрытий состоит в

МДНФ1:

МДНФ2:

МДНФ3:

МДНФ4:

Метод дальнейшего упрощения таблицы покрытий состоит в

применении двух операций:
а) вычеркивание “лишних” строк;
б) вычеркивание “лишних” столбцов.

Операции вычеркивания строк и столбцов базируются на следующих правилах:

Слайд 137

если множество меток i-й строки является подмно-жеством меток j-й строки и

если множество меток i-й строки является подмно-жеством меток j-й строки

и куб i имеет не большую размерность, чем куб j, то из таблицы можно вычеркнуть i-ю строку, так как существенные вершины покрываемые i-м кубом будут с гарантией покрыты j-м кубом;

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

Применим метод дальнейшего упрощения таблицы покрытий. С помощью операции вычеркивания “лишних” строк из нее можно удалить две строки B и F, множество меток в которых является подмножеством меток в строках A и E соответственно.

Слайд 138

Процесс удаления “лишних” строк показан в таблице.. После удаления строк B

Процесс удаления “лишних” строк показан в таблице..

После удаления строк B и

F, соответствующих максимальным кубам Х000 и 111Х получим новую упрощенную таблицу покрытий. В отличии от предыдущей таблицы (упрощенная таблица покрытий нулевого порядка) новую таблицу будем называть упрощенной таблицей покрытий первого порядка
Слайд 139

В таблице можно выделить новое ядро покрытия T1(f)= которое будем называть

В таблице можно выделить новое ядро покрытия
T1(f)=
которое будем называть ядром покрытия

первого порядка в отличии от ядра Т(f) (ядра покрытия нулевого порядка), выделяемого по исходной таблице покрытий.


Слайд 140

После вычеркивания кубов ядра T1(f) (строки A и E), а также

После вычеркивания кубов ядра T1(f) (строки A и E), а также

существенных вершин, покрываемых кубами ядра (столбцы a, b, d, e) получим упрощенную таблицу покрытий второго порядка.

Из табл. определяем два минимальных покрытия в виде двух возможных вариантов дополнения кубов ядер покрытия нулевого T (f) и первого порядка T1(f) кубами C и D соответственно.
Таким образом, с помощью метода упрощения таблицы покрытий получено только два минимальных покрытия:

Слайд 141

в то время, как с помощью метода Петрика найдены четыре минимальных

в то время, как с помощью метода Петрика найдены четыре минимальных

покрытия, т.е. все возможные варианты.

Функциональная полнота системы булевых функций
Система булевых функций S={f1 , f2,..., fm} называется функционально полной, если с помощью функций этой системы можно выразить любую булеву функцию с использованием метода суперпозиции.

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

Слайд 142

Примером полной системы является S1 ={⎤ , &, ∨} (булев базис).

Примером полной системы является S1 ={⎤ , &, ∨} (булев базис).

Обоснованность

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

Система S1 является избыточной, так как из нее можно удалить одну из функций (& или ∨) без нарушения функциональной полноты.

Получаемые при этом системы S2 ={⎤ , &} и S3={⎤ , ∨} обычно называют сокращенным булевым базисом.

Недостающие операции (∨ в системе S2 и & в системе S3) могут быть выражены с помощью следствий из законов де Моргана:

Слайд 143

Другими примерами функционально полных систем являются системы из одной функции: S4={↓}

Другими примерами функционально полных систем являются системы из одной функции: S4={↓}

(стрелка Пирса), S5={|} (штрих Шеффера), которые принято называть универсальными базисами, а также система S6= {&, ⊕, 1}, которую называют базисом Жегалкина.

Функционально полная система булевых функций называется минимальной, если удаление из нее какой-либо функции приводит к нарушению свойства функциональной полноты.

Понятие функциональной полноты системы булевых функций связано с аналогичным понятием для системы логических элементов.

Слайд 144

Эта связь заключается в следующем: если каждой функ-ции из некоторой функционально

Эта связь заключается в следующем: если каждой функ-ции из некоторой функционально

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

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

Доказательство функциональной полноты некоторой системы булевых функций можно осуществлять одним из двух способов:
1. с использованием теоремы о функциональной полноте;
2. с использованием конструктивного подхода.

Слайд 145

Теорема о функциональной полноте (теорема Поста) Для того чтобы система булевых

Теорема о функциональной полноте (теорема Поста)
Для того чтобы система булевых функций

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

хотя бы одну функцию, не cохраняющую ноль;

хотя бы одну функцию, не cохраняющую единицу;

хотя бы одну не линейную функцию;

хотя бы одну не монотонную функцию;

хотя бы одну не самодвойственную функцию.

В теореме Поста фигурируют пять классов булевых функций:
K0 – класс функций, сохраняющих ноль;
К1 – класс функций, сохраняющих единицу;
KL – класс линейных функций;
KM – класс монотонных функций;
KS – класс самодвойственных функций.

Слайд 146

Эти классы называют замечательными классами булевых функций. Другая формулировка теоремы Поста:

Эти классы называют замечательными классами булевых функций.

Другая формулировка теоремы Поста:
Для того,

чтобы система булевых функций {f1, …, fm} была функционально полной необходимо и достаточно, чтобы для каждого из классов К0, К1, KL, KM, KS нашлась функция fi из системы, не принадлежащая этому классу.

Замечательные классы булевых функций
Булева функция называется сохраняющей ноль, если на нулевом наборе аргументов она принимает значение, равное нулю, то есть f (0, 0, 0,..., 0) = 0. В противном случае функция относится к классу функций, не сохраняющих ноль.
К функциям, сохраняющим ноль, относятся
f(x1,x2)= x1 ∨ x2 и f(x1,x2)= x1 ⋅ x2.

Слайд 147

К функциям, не сохраняющим ноль, относятся f(x)= и f(x1,x2)=x1~ x2. Булева

К функциям, не сохраняющим ноль, относятся f(x)= и f(x1,x2)=x1~ x2.

Булева функция

называется сохраняющей единицу, если на единичном наборе аргументов она принимает значение, равное единице, то есть f(1, 1, 1,..., 1) = 1. В противном случае функция относится к классу функций, не сохраняющих единицу.
К функциям, сохраняющим единицу, относятся:
f(x1, x2)= x1 ∨ x2 и f(x1, x2)= x1⋅ x2.
К функциям, не сохраняющим единицу, относятся
f(x)= и f(x1 ,x2)=x1 ⊕ x2.

Булева функция называется линейной, если она представима полиномом Жегалкина первой степени.
В булевой алгебре доказывается теорема о возможности представления любой булевой функции от n переменных с помощью полинома Жегалкина n-ой степени.

Слайд 148

В общем случае полином имеет вид: f n(Х) = K0 ⊕

В общем случае полином имеет вид:
f n(Х) = K0 ⊕ K1x1

⊕ ... ⊕ Kn xn ⊕ Kn+1x1x2 ⊕ Kn+2x1x3 ⊕ ...
… ⊕ Kn+lxn-1xn ⊕...⊕ Kn+mx1x2...xn, где K0, K1,…, Kn+m - являются коэффициентами полинома и представляют собой логические константы Ki=0 или Ki=1. В алгебре Жегалкина одноименный полином (полином Жегалкина) можно считать аналогом канонической нормальной формы функции для булевой алгебры.

Полином Жегалкина является линейным (1-ой степени), если все коэффициенты общего полинома, начиная с Kn+1, равны нулю. В отношении функции от двух переменных линейный полином Жегалкина имеет вид: f 2(Х)=K0 ⊕ K1x1 ⊕ K2x2. Примерами линейных функций являются:
y= x1⊕ x2 (K0=0, K1=K2=1),

Слайд 149

y= =1⊕ x (K0=K1=1, K2=0). Примеры нелинейных функций: y= x1⋅ x2,

y= =1⊕ x (K0=K1=1, K2=0).
Примеры нелинейных функций: y= x1⋅ x2,

Булева функция

называется монотонной, если при возрастании наборов аргументов она принимает неубывающие значения:
A=(a1,a2, ..., an) > B=(b1,b2, ..., bn) ⇒ f(A) ≥ f(B).
Между наборами аргументов А и В имеет место отношение возрастания в том и только том случае, если имеет место отношение неубывания для всех компонент этого набора: ai ≥ bi (i=1, 2, ..., n)
и, по крайней мере, для одной компоненты имеет место отношение возрастания.
Слайд 150

Примеры наборов, для которых имеет место отношение возрастания: (1011) > (0011);

Примеры наборов, для которых имеет место отношение возрастания:
(1011) > (0011);

(1011) > (0001); (0001) > (0000).
Примеры несопоставимых наборов (1011) и (0111), (1000) и (0111). В отношении функции от двух переменных несопоставимыми являются наборы (01) и (10).
Примеры немонотонных функций: y= , y=x1⊕ x2.

Две булевы функции f n(Х) и gn(Х) называются двойственными, если для любых наборов аргументов выполняется равенство
то есть функции f и g на противоположных наборах аргументов Х и принимают противоположные значения.

Слайд 151

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

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

противоположные значения, например,
Х = (0101) и = (1010).

Булева функция называется самодвойственной, если она является двойственной по отношению к самой себе, то есть принимает противоположные значения на противоположных наборах аргумен-тов. Примером самодвойственной функции явля-ется: у = .
Примеры не самодвойственных функций: у=х1⋅ х2, у=х1∨ х2, у=х1⊕ х2.

Слайд 152

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

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

таблице. Знаком “+” отмечена принадлежность функции соответствующему классу, а знаком “-” не принадлежность.
Слайд 153

Из таблицы видно, что согласно теореме Поста, функции штрих Шеффера и

Из таблицы видно, что согласно теореме Поста, функции штрих Шеффера и

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

Конструктивный подход к доказательству функ-циональной полноты системы булевых функций
Подход базируется на следующей теореме булевой алгебры:

Слайд 154

Теорема. Пусть система булевых функций {f1, …, fm} является функционально полной

Теорема. Пусть система булевых функций {f1, …, fm} является функционально полной

и любая из функций f1, …, fm может быть выражена с помощью суперпозиции через функции g1, …, gk. Тогда система булевых функций {g1, …, gk} также является функционально полной.
При этом в качестве исходной системы {f1, …, fm} обычно используется система S1 (булев базис).

Пример. Докажем функциональную полноту системы S5={|} (универсальный базис), выразив инверсию, конъюнкцию и дизъюнкцию с помощью только функции штрих Шеффера.