1. Функция нулевого доопределения равна тем наборам, на

advertisement
ДИСКРЕТНАЯ МАТЕМАТИКА
Учебно-методическое пособие
к курсовому проектированию
Для студентов, обучающихся по направлению подготовки
11.03.04 «Электроника и наноэлектроника»
профиль «Промышленная электроника»
Составители:
М. П. Маслаков, А. Г. Дедегкаев
Владикавказ 2015
0
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«СЕВЕРО-КАВКАЗСКИЙ ГОРНО-МЕТАЛЛУРГИЧЕСКИЙ ИНСТИТУТ
(ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ)»
Кафедра «Промышленная электроника»
ДИСКРЕТНАЯ МАТЕМАТИКА
Учебно-методическое пособие
к курсовому проектированию
Для студентов, обучающихся по направлению
подготовки 11.03.04 «Электроника и наноэлектроника»
профиль «Промышленная электроника»
Составители:
М. П. Маслаков, А. Г. Дедегкаев
Допущено
редакционно-издательским советом
Северо-Кавказского горно-металлургического института
(государственного технологического университета).
Владикавказ 2015
1
УДК 519.713+621.382
ББК 32.815
М31
Рецензент:
доктор технических наук, профессор
Северо-Кавказского горно-металлургического института
(государственного технологического университета)
Хасцаев Б. Д.
М31
Дискретная математика: Учебно-методическое пособие к курсовому проектированию для студентов, обучающихся по направлению подготовки 11.03.04 «Электроника и наноэлектроника» профиль
«Промышленная электроника» / Сост.: М. П. Маслаков, А. Г. Дедегкаев; Северо-Кавказский горно-металлургический институт (государственный технологический университет). – Владикавказ: Северо-Кавказский горно-металлургический институт (государственный
технологический университет). Изд-во «Терек», 2015. 54 с.
В учебно-методическом пособии изложены основные положения и законы алгебры логики (минимизация полностью определенных и частичных функций в классе ДНФ, дифференцирование функций) рассмотрены
процедуры проектирования комбинационных схем, разложение Шеннона
и метод каскадов. Приведены примеры, иллюстрирующие содержание и
порядок выполнения процедур проектирования комбинационных схем.
Курсовое проектирование способствует систематизации, расширению и
закреплению теоретических знаний по дисциплине «Дискретная математика», а также развитию расчетно-графических навыков у студентов.
УДК 519.713+621.382
ББК 32.815
Редактор: Боциева Ф. А.
Компьютерная верстка: Куликова М. П.
 Составление. ФГБОУ ВПО «Северо-Кавказский
горно-металлургический институт
(государственный технологический университет)», 2015
 Маслаков М. П., Дедегкаев А. Г., составление, 2015
Подписано в печать 23.12.2015. Формат 60х84 1/16. Бумага офсетная. Гарнитура
«Таймс». Печать на ризографе. Усл. п.л. 3,14. Уч.-изд. л. 1,38. Тираж 15 экз.
Заказ №
. Северо-Кавказский горно-металлургический институт
(государственный технологический университет). Издательство «Терек».
Отпечатано в отделе оперативной полиграфии СКГМИ (ГТУ).
362021, г. Владикавказ, ул. Николаева, 44.
2
Содержание
Введение .....................................................................................................4
1. Основные теоретические положения...................................................5
1.1. Основные положения алгебры логики ........................................5
1.2. Основные тождества (законы и правила) алгебры логики ........8
1.3. Нормальные формы функций алгебры логики ...........................9
1.4. Минимизация функций алгебры логики в классе ДНФ .............14
1.5. Метод неопределенных коэффициентов .....................................17
1.6. Метод Квайна–Мак-Класки для минимизации полностью
определенных функций........................................................................20
1.7. Метод Квайна–Мак-Класки для минимизации не полностью определенных функций ..............................................................24
1.8. Разложение Шеннона по k переменным......................................26
1.9. Дифференцирование функций алгебры логики ..........................27
1.10. Метод каскадов ............................................................................32
2. Структура курсового проекта ...............................................................41
Литература .................................................................................................42
Приложение 1. Образец оформления титульного листа ........................43
Приложение 2. Пример задания ...............................................................44
Приложение 3. Пример оформления расчетной части...........................45
Приложение 4. Синтез логической схемы ..............................................53
Приложение 5. Образец оформления списка литературы .....................54
3
Введение
Дискретная математика – область математики, изучающая свойства дискретных структур, которые возникают как в пределах самой
математики, так и в ее приложениях. К таким структурам могут быть
отнесены конечные группы, конечные графы, а также некоторые математические модели преобразователей информации, конечные автоматы, машины Тьюринга и так далее.
Разделы дискретной математики всегда существовали в математике, но стали выделяться в самостоятельную дисциплину в связи с
развитием средств связи и появлением компьютеров.
К разделам дискретной математики относятся:
 математическая логика,
 теория алгоритмов,
 алгебра логики,
 теория конечных автоматов,
 теория дискретных групп,
 теория графов,
 комбинаторика,
 теория чисел и еще много других разделов.
В настоящем учебно-методическом пособии рассматриваются основные положения одного из разделов дискретной математики – алгебры логики, которые наиболее востребованы специалистами в области проектирования электронных схем, приборов и устройств дискретного действия.
4
1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ
1.1. Основные положения алгебры логики
Функциями алгебры логики называют функции, аргументы
которых, так же как и сама функция, принимают только два значения
– 0 или 1. Алгебра логики является разделом дискретной математики, в которой изучаются методы доказательства истинности (1)
или ложности (0) сложных логических конструкций, составленных
из простых высказываний, на основе истинности или ложности последних.
Высказывание – языковое предложение, о котором имеет смысл
говорить, что оно истинно или ложно в данный момент времени, но не
то и другое одновременно.
Высказывания чаще всего обозначают маленькими латинскими
буквами a, b, c, х1, х2, …
В логике высказываний интересуются не содержанием, а истинностью или ложностью высказываний. Каждому высказыванию сопоставляется переменная, равная 1, если высказывание истинно, и равная 0, если оно ложно.
Высказывание называют простым (элементарным), если оно рассматривается как некое неделимое целое. Сложным (составным)
называется высказывание, составленное из простых с помощью логических операций (функций).
Каждой логической операции ставится в соответствие таблица
истинности. Таблица истинности выражает значения истинности высказываний в зависимости от значений элементарных высказываний.
Таблицу истинности используют для установления истинностных значений сложных высказываний при данных значениях входящих в него
элементарных высказываний.
Любое высказывание f может быть задано в виде таблицы истинности. Если значение высказывания f зависит от n составляющих высказываний x1, x2,…, xn, то таблица истинности содержит 2n строк. Составляющее высказывание хi будем называть атомарным (элементарным) высказыванием или просто переменной хi, рассматривая при
этом сложное высказывание как функцию f от n переменных.
Совокупность значений аргументов функции алгебры логики
называется набором.
Областью определения функции алгебры логики f (x1, x2, …, xn)
является множество всевозможных наборов длины n. Каждому набору
5
аргументов обычно ставят в соответствие двоичное число, образованное последовательностью цифр этого набора. Количество наборов
длины n равно количеству различных n-разрядных двоичных чисел,
т. е. 2n, а так как на каждом из этих наборов функция может прини𝑛
мать значения 0 или 1, то от n переменных существует 22 – различных функций. Если значение функции определено для каждого набора
значений переменных, то функция называется полностью определенной, в противном случае – не полностью определенной или частичной.
Для частичной функции алгебры логики существует 2r вариантов
его доопределения, где r – число наборов на которых функция неопределенна.
В таблице 1 приведены все функции алгебры логики от двух переменных.
Таблица 1
Таблица истинности функций алгебры логики
x1
0
0
1
1
x2
0
1
0
1
f0
0
0
0
0
f1
0
0
0
1
f2
0
0
1
0
f3
0
0
1
1
f4
0
1
0
0
f5
0
1
0
1
f6
0
1
1
0
f7
0
1
1
1
f8
1
0
0
0
f9
1
0
0
1
f10
1
0
1
0
f11
1
0
1
1
f12
1
1
0
0
f13
1
1
0
1
f14
1
1
1
0
f15
1
1
1
1
Индекс i функциональной переменной fi, i = 0,1,2,..., 15, равен десятичному эквивалентному набору значений этой функции, читаемому сверху вниз.
f0 (x1 x2) = 0 – константа нуля (0);
f1 (x1 x2) = х1&х2 = х1х2 – конъюнкция или логическое умножение;
f2 (x1 x2) = 𝑥1 ̅̅̅̅
𝑥2 = ̅̅̅̅̅̅̅̅
𝑥1 2 = 𝑥1 ↛ 𝑥2 – левая коимпликация;
̅̅̅⋁𝑥
f3 (x1 x2) = 𝑥1 ̅̅̅̅⋁𝑥
𝑥2 1 𝑥2 = 𝑥1 ;
f4 (x1 x2) = ̅̅̅𝑥
𝑥1 2 = ̅̅̅̅̅̅̅̅̅
𝑥1 ⋁𝑥
̅̅̅2̅ = 𝑥1 ↚ 𝑥2 – правая коимпликация;
f5 (x1 x2) = ̅̅̅𝑥
𝑥1 2 ⋁𝑥1 𝑥2 = 𝑥2 ;
f6 (x1 x2) = ̅̅̅𝑥
𝑥1 2 ⋁𝑥1 ̅̅̅
𝑥2̅ = 𝑥1 ⊕ 𝑥2 – сложение по модулю 2 или
функция неравнозначности, неэквивалентности;
f7 (x1 x2) = 𝑥1 ⋁𝑥2 – дизъюнкция;
f8 (x1 x2) = ̅̅̅
𝑥1 ̅̅̅
𝑥2̅ = ̅̅̅̅̅̅̅̅̅̅
𝑥1 ∨ 𝑥2 = 𝑥1 ↓ 𝑥2 – функция Вебба;
f9 (x1 x2) = ̅̅̅
𝑥1 ̅̅̅
𝑥2̅⋁ 𝑥1 𝑥2 = 𝑥1 ∼ 𝑥2 – функция эквивалентности,
равнозначности;
f10 (x1 x2) = 𝑥
̅̅̅2̅ – отрицание;
f11 (x1 x2) = ̅̅̅
𝑥1 𝑥
̅̅̅2̅ ∨ 𝑥1 ̅̅̅
𝑥2̅ ∨ 𝑥1 𝑥2 = ̅̅̅
𝑥2 ∨ 𝑥1 = 𝑥1 ← 𝑥2 – правая
импликация;
6
f12 (x1 x2) = ̅̅̅
𝑥1 – отрицание;
f13 (x1 x2) = ̅̅̅
𝑥1 𝑥
̅̅̅2̅ ∨ ̅̅̅𝑥
𝑥1 2 ∨ 𝑥1 𝑥2 = ̅̅̅
𝑥1 ∨ 𝑥2 = 𝑥1 → 𝑥2 – левая
импликация;
f14 (x1 x2) = ̅̅̅
𝑥1 𝑥
̅̅̅2̅ ∨ ̅̅̅𝑥
𝑥1 2 ∨ 𝑥1 ̅̅̅
𝑥2̅ = ̅̅̅
𝑥1 ∨ 𝑥
̅̅̅2̅ = 𝑥1 /𝑥2 – функция
Шеффера;
f15 (x1 x2) = 1 – константа единицы (1).
Функции, получившие наибольшее распространение в теории и
практике применения алгебры логики составляют систему элементарных функций. Это две функции константы нуля и единицы (f0 и f15,
соответственно), функции повторения (f3 и f5) и инверсии (отрицание)
от одной переменной (f10 и f12), а также следующие функции от двух
переменных:
1) конъюнкция (f1) двух переменных – новая переменная, которая
истинна только тогда, когда обе исходных переменных истинны;
2) дизъюнкция (f7) двух переменных – новая переменная, которая
ложна только тогда, когда обе исходных переменных ложны;
3) импликация (f13) двух переменных является новая переменная, которая ложна только тогда, когда первая истинна, а вторая –
ложна;
4) эквивалентность (f9) двух переменных – новая переменная,
которая считается истинной, когда обе исходные переменные либо
одновременно истинны, либо одновременно ложны, и ложной – во
всех остальных случаях;
5) функция Вебба (f8) двух переменных – новая переменная, которая истинна только тогда, когда обе исходных переменных
ложны;
6) функция Шеффера (f14) двух переменных – новая переменная,
которая ложна только тогда, когда обе исходных переменных истинны;
7) функция сложения по модулю 2 (f6) двух переменных – новая
переменная, которая считается ложной, когда обе исходные переменные либо одновременно истинны, либо одновременно ложны, и истинной во всех остальных случаях.
В выражении принимают следующий порядок выполнения операций: инверсии, конъюнкции, дизъюнкции. Если в выражении имеются скобки, то в первую очередь выполняются операции в скобках.
Схемы, составленные из элементов, реализующих логические
функции, называются комбинационными схемами (рис. 1). В отличие
от схем со свойством запоминания, комбинационные схемы не обладают памятью.
7
x1
x2
x3
xn
&
1
1
&
&
..
.
&
1
f(x1,
x2, …, xn)
&
&
1
&
1
Рис. 1. Обобщенная структура комбинационной схемы
1.2. Основные тождества (законы и правила) алгебры логики
1) Закон коммутативности для дизъюнкции и конъюнкции:
x1 V x2 = x2 V x1;
x1 x2 = x2 x1 .
2) Закон ассоциативности для дизъюнкции и конъюнкции:
x1 V x2 V x3 = x1 V (x2 V x3 ) = (x1 V x2 )V x3 ;
x1 x2 x3 = x1 (x2 x3 ) = (x1 x2 )x3 .
3) Первый и второй законы дистрибутивности:
x1 (x2 V x3 ) = x1 x2 V x1 x3 ;
x1 V x2 x3 = (x1 V x2 )(x1 V x3 ).
4) Законы идемпотентности для дизъюнкции и конъюнкции:
x V x = x;
x ⋅ x = x.
5) Правила операций с константами:
x V 1 = 1; x ⋅ 0 = 0;
x V 0 = x; x ⋅ 1 = x.
6) Правила де Моргана:
̅̅̅̅̅̅̅̅̅̅
x1 ∨ x2 = x̅1 ⋅ ̅̅̅;
x2
x1 ⋅ x2 = x̅1 ∨ ̅̅̅.
̅̅̅̅̅̅̅̅̅
x2
7) Законы инверсии для дизъюнкции и конъюнкции:
x V x̅ = 1;
x ⋅ x̅ = 0.
8) Первый и второй законы склеивания:
x1 ⋅ x2 ∨ x1 ⋅ ̅̅̅
x2 = x1 ;
(x1 V x2 ) (x1 V ̅̅̅)
x2 = x1 .
9) Первый и второй законы поглощения:
x1 ∨ x1 ⋅ x2 = x1 ;
x1 (x1 V x2 ) = x1 .
10) Правило двойной инверсии:
x̅ = x.
8
1.3. Нормальные формы функций алгебры логики
Элементарной конъюнкцией называется конъюнкция, в которую
каждая переменная входит только один раз либо с отрицанием, либо
без него ( ̅̅̅
𝑥1 𝑥2 𝑥3 … ̅̅̅
𝑥𝑛 ). Число переменных конъюнкции называется
рангом элементарной конъюнкции.
Дизъюнктивной нормальной формой (ДНФ) называется дизъюнкция элементарных конъюнкций (𝑥1 ̅̅̅
𝑥2 ∨ 𝑥2 ̅̅̅
𝑥3 ∨ 𝑥3 ; 𝑥1 ∨ 𝑥2 и т. д.).
Число элементарных конъюнкций, образующих ДНФ, называется ее
длиной.
Конституентой называется элементарная конъюнкция ранга n,
включающая
все
переменные
функции
алгебры
логики
𝑓 (𝑥1 , 𝑥2 , … , 𝑥𝑛 ). Общее число таких конституент равно 2n, т. е. числу
наборов n-переменных.
Конституентой единицы называется конституента, на которой
функция алгебры логики обращается в единицу.
Любая функция алгебры логики, кроме нуля, может быть представлена в следующей форме:
𝑓 (𝑥1 , 𝑥2 , 𝑥3 , … , 𝑥𝑛 ) = ⋁ 𝑥1 𝛼1 𝑥2 𝛼2 … 𝑥𝑛 𝛼𝑛
(1)
1
𝑥 , 𝛼=1
где, 𝑥𝑛 𝛼𝑛 = { 𝑛
;
𝑥𝑛 𝛼 = 0
̅̅̅,
𝛼 – степень переменной 𝑥 (если она равна 1, то переменная 𝑥 записывается без отрицания (𝑥n ), а если равна 0, то переменная 𝑥 записывается в инверсной форме (𝑥
̅̅̅).
n
При этом дизъюнкция в правой части (1) берется по тем наборам
переменных, на которых функция, заданная таблицей истинности, обращается в единицу, т. е. берутся только конституенты единицы.
Представление функции алгебры логики в виде (1) называется
дизъюнктивной совершенной нормальной формой (ДСНФ).
В итоге ДСНФ это ДНФ, все конъюнкции которой имеют один и
тот же ранг, равный числу переменных функции.
Любая функция алгебры логики имеет единственную ДСНФ. Для
получения ДСНФ функции алгебры логики удобно пользоваться следующими правилами:
1. По заданной функции алгебры логики построить таблицу истинности (таблица, в которой каждому набору значений переменных
сопоставляется значение выходного сигнала, называется таблицей
истинности функции).
9
2. Выписать все конституенты единицы, соединив их между собой знаком дизъюнкции.
Пусть дана функция 𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = 𝑥
̅̅̅̅̅̅
𝑥3 𝑥1 ̅̅̅
𝑥2 . По1 𝑥3 ~ (𝑥2 ⨁ ̅̅̅)/
строим для нее таблицу истинности. Для удобства определения ДСНФ
функции осуществим вычисления по действиям:
𝑎 𝑑
𝑒 𝑐
𝑏
𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = 𝑥
̅̅̅̅̅̅
𝑥
𝑥2
𝑥3 / 𝑥1 ̅̅̅
1 3 ~ (𝑥2 ⨁ ̅̅̅)
х1 х2 х3
000
001
010
011
100
101
110
111
a = ̅̅̅̅̅̅
𝒙 𝟏 𝒙𝟑
1
1
1
1
1
0
1
0
b = 𝒙𝟐 ⨁ ̅̅̅
𝒙𝟑
1
0
0
1
1
0
0
1
c = 𝒙𝟏 ̅̅̅
𝒙𝟐
0
0
0
0
1
1
0
0
d = a b
1
0
0
1
1
1
0
0
e = d/c
1
1
1
1
0
0
1
1
ДСНФ функции 𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = ̅̅̅
𝑥1 ̅̅̅
𝑥2 ̅̅̅
𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥1 𝑥2 ̅̅̅
𝑥3 ∨
𝑥1 𝑥2 𝑥3 ∨ 𝑥1 𝑥2 ̅̅̅
̅̅̅
𝑥3 ∨ 𝑥1 𝑥2 𝑥3 .
Каждой функции алгебры логики можно поставить в соответствие
комбинационную схему, её реализующую. Комбинационная схема
состоит из базисных элементов, которые являются технической реализацией функций алгебры логики. Базисные элементы графически
изображаются в виде прямоугольников, в которых инверсные входы и
выход изображают в виде незаштрихованных кружков, в верхнем правом углу ставят 1, если этот элемент реализует функцию дизъюнкции,
и & – если элемент реализует функцию конъюнкции, за исключением
сложения по модулю 2 и эквивалентности (тогда сверху ставят = 1)
(рис. 2а).
Более сложные элементы графически изображают в виде композиции перечисленных базисных элементов (рис. 2б).
Полученная ранее ДСНФ функции, должна состоять из инверторов, конъюнкторов и дизъюнктора, реализующих отрицание, конъюнкцию и дизъюнкцию соответственно. Количество инверторов определяется числом различных переменных, входящих в функцию со знаком отрицания. В рассматриваемом примере все три переменные
𝑥1 , 𝑥2 , 𝑥3 входят в ДСНФ с отрицанием и, следовательно, схема должна содержать три инвертора. Количество конъюнкторов в схеме опре10
деляется числом конституент единицы, входящих в ДСНФ. В нашем
примере их шесть.
Дизъюнкция
Отрицание
x1
1
x
x1
1
x
x2
x2
x1
1
x1
x1 / x2
x1 ↓ x2
x2
Сложение по
модулю 2
Импликация
&
1
x1 & x2
x2
x1
x1
&
x1 V x2
Элемент
Шеффера
Элемент
Вебба
Конъюнкция
x1 → x2
Эквивалентност
ь
x1
=1
x2
x2
=1
x1 ~ x2
x1 + x2
x2
а
x1
&
1
x3
x4
(x1 & x3) V (x4 & x2)
&
x2
б
Рис. 2. Графические изображения базисных элементов
Комбинационная схема, реализующая ДСНФ рассмотренной
функции алгебры логики, показана на рисунке 3.
Элементарной дизъюнкцией называется дизъюнкция, в которую
каждая переменная входит только один раз, либо с отрицанием, либо
без него ( ̅̅̅
𝑥1 ⋁𝑥2 ⋁ 𝑥3 ⋁ … ⋁ ̅̅̅
𝑥𝑛 ). Число переменных дизъюнкции называется рангом элементарной дизъюнкции.
Конъюнктивной нормальной формой (КНФ) называется конъюнкция элементарных дизъюнкций ((𝑥1 ∨ ̅̅̅)
𝑥2 ∙ (𝑥2 ∨ ̅̅̅)
𝑥3 ⋅ (𝑥3 ); (𝑥1 ∨
𝑥2 ) и т. д.).
Конституентой нуля называется конституента, на которой
функция алгебры логики обращается в ноль.
Любая функция алгебры логики, кроме единицы, может быть
представлена в следующей форме:
11
& ̅̅̅̅̅̅
𝛼1 ∨ ̅̅̅̅̅̅
𝑓 (𝑥1 , 𝑥2 , 𝑥3 , … , 𝑥𝑛 ) = (𝑥
𝑥2 𝛼2 ∨ … ∨ ̅̅̅̅̅̅
𝑥𝑛 𝛼𝑛 )
0 1
(2)
𝑥 , 𝛼=0
где ̅̅̅̅̅̅
𝑥𝑛 𝛼𝑛 = { 𝑛
;
𝑥𝑛 𝛼 = 1
̅̅̅,
𝛼 – степень переменной 𝑥 (если она равна 0, то переменная 𝑥 записывается в инверсной форме (𝑥
̅̅̅),
𝑛 а если равна 1, то переменная 𝑥
записывается без отрицания (𝑥𝑛 )).
x1 x2 x3
x1
1
1
1
x2
x3
&
&
&
1
f (x1, x2, x3)
&
&
&
Рис. 3. Комбинационная схема, реализующая ДСНФ
заданной функции 𝑓 (𝑥1 , 𝑥2 , 𝑥3 )
12
При этом конъюнкция в правой части (1) берется по тем наборам
переменных, на которых функция, заданная таблицей истинности, обращается в ноль, т. е. берутся только конституенты нуля.
Представление функции алгебры логики в виде (1) называется
конъюнктивной совершенной нормальной формой (КСНФ).
В итоге КСНФ – это КНФ, все дизъюнкции которой имеют один и
тот же ранг, равный числу переменных функции.
Любая функция алгебры логики имеет единственную КСНФ. Для
получения КСНФ функции алгебры логики удобно пользоваться следующими правилами:
1. По заданной функции алгебры логики построить таблицу истинности.
2. Выписать все конституенты нуля, соединив их между собой
знаком конъюнкции.
Пусть дана функция 𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = 𝑥
̅̅̅̅̅̅
𝑥3 𝑥1 ̅̅̅
𝑥2 . По1 𝑥3 ~ (𝑥2 ⨁ ̅̅̅)/
строим для нее таблицу истинности. Для удобства определения КСНФ
функции осуществим вычисления по действиям:
𝑎 𝑑
𝑒 𝑐
𝑏
𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = 𝑥
̅̅̅̅̅̅
𝑥
𝑥2
𝑥3 / 𝑥1 ̅̅̅
1 3 ~ (𝑥2 ⨁ ̅̅̅)
х1 х2 х3
a= ̅̅̅̅̅̅
𝒙 𝟏 𝒙𝟑
b= 𝒙𝟐 ⨁ ̅̅̅
𝒙𝟑
c=𝒙𝟏 ̅̅̅
𝒙𝟐
d=a  b
e=d/c
000
001
010
011
100
101
110
111
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
КСНФ функции 𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = (𝑥
̅̅̅1 ∨ 𝑥2 ∨ 𝑥3 ) ⋅ (𝑥
̅̅̅1 ∨ 𝑥2 ∨ ̅̅̅).
𝑥3
Комбинационная схема, реализующая КСНФ рассмотренной
функции алгебры логики, показана на рисунке 4.
Выбор той или иной формы записи функции алгебры логики
(ДСНФ или КСНФ) определяется ее таблицей истинности. Если в таблице истинности заданной функции 𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) получилось больше
конституент нуля, то выгодно записывать ДСНФ функции, в противном случае (если больше конституент единицы) – КСНФ.
13
x1 x2 x3
x1
1
1
x3
1
&
f (x1, x2, x3)
1
Рис. 4. Комбинационная схема, реализующая КСНФ
заданной функции 𝑓 (𝑥1 , 𝑥2 , 𝑥3 )
1.4. Минимизация функций алгебры логики в классе ДНФ
Любая функция алгебры логики может быть записана в виде
ДСНФ и КСНФ. Однако в ряде случаев такая запись бывает неэкономной.
Пусть задана функция в виде ДСНФ:
𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = ̅̅̅
𝑥1 ̅̅̅
𝑥2 ̅̅̅
𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥1 𝑥2 ̅̅̅
𝑥3 ∨ ̅̅̅
𝑥1 𝑥2 𝑥3 ∨
𝑥1 𝑥2 ̅̅̅
𝑥3 ∨ 𝑥1 𝑥2 𝑥3 .
Данная ДСНФ функции состоит из множества конституент единицы этой функции. Попарно сравнивая конституенты единицы
функции, с применением законов склеивания и поглощения, получаем
заданную функцию в виде:
𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = ̅̅̅
𝑥1 ̅̅̅
𝑥2 ̅̅̅
𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥1 𝑥2 ̅̅̅
𝑥3 ∨ ̅̅̅
𝑥1 𝑥2 𝑥3 ∨
𝑥1 𝑥2 ̅̅̅
𝑥3 ∨ 𝑥1 𝑥2 𝑥3 = ̅̅̅
𝑥1 ̅̅̅
𝑥2 (𝑥
̅̅̅3 ∨ 𝑥3 ) ∨ ̅̅̅
𝑥1 𝑥2 ( ̅̅̅
𝑥3 ∨ 𝑥3 ) ∨ 𝑥1 𝑥2 (𝑥
̅̅̅3 ∨
𝑥3 ) = ̅̅̅
𝑥1 ̅̅̅
𝑥2 ∨ ̅̅̅
𝑥1 𝑥2 ∨ 𝑥1 𝑥2 = ̅̅̅(
𝑥1 ̅̅̅
𝑥2 ∨ 𝑥2 ) ∨ 𝑥1 𝑥2 = ̅̅̅
𝑥1 ∨ 𝑥1 𝑥2 = ̅̅̅
𝑥1 ∨
𝑥2 .
14
Функция 𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = ̅̅̅
𝑥1 ∨ 𝑥2 состоит из элементарных конъюнкций и является ДНФ исходной функции.
Элементарные
конъюнкции,
образовавшие
функцию
𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = ̅̅̅
𝑥1 ∨ 𝑥2 называются простыми импликантами, так
как законы склеивания и поглощения к ним уже не применимы.
Из примера видна неэкономность совершенных нормальных
форм представления функций алгебры логики. В ДСНФ входят конъюнкции наибольшего для данной функции возможного ранга. Поэтому с точки зрения конъюнкций, входящих в ДНФ, ДСНФ является
наиболее сложной как для представления, так и для практической
(схемотехнической) реализации.
На практике большое значение имеет задача нахождения сокращенных и минимальных форм функций алгебры логики.
Дизъюнкция всех простых импликант функции называется сокращенной ДНФ этой функции. Минимальная ДНФ функции получается из сокращенной ДНФ функции путем исключения из нее множества тех простых импликант функции, которые являются несущественными для заданной функции. Несущественные импликанты –
это те простые импликанты, которые не влияют на эквивалентность
исходной ДСНФ и полученной ДНФ.
На практике часто бывает, что удобнее задавать двоичные наборы
(конституенты единицы) их десятичными эквивалентами, а функцию
алгебры логики – перечислением десятичных эквивалентов этих кон∨
ституент 𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = (2,5,6, 7) (см. таблицу 2).
1
Таблица 2
Соответствие десятичных эквивалентов двоичным наборам
Десятичный эквивалент
0
1
2
3
4
5
6
7
x1
0
0
0
0
1
1
1
1
x2
0
0
1
1
0
0
1
1
x3
0
1
0
1
0
1
0
1
𝒇 (𝒙𝟏 , 𝒙𝟐 , 𝒙𝟑 )
0
0
1
0
0
1
1
1
Зададим функцию 𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) с помощью куба, каждой вершине
которого взаимно однозначно соответствует двоичный набор из таб15
лицы 2. Вершины в кубе соединены ребром, если соответствующие им
двоичные наборы отличаются только в одном разряде (рис. 5).
Вершины, в которых функция равна 1, порождают единичный интервал этой функции (на рис. 5 эти вершины заштрихованы). Единичный интервал называется максимальным, если не найдется другой интервал, строго включающий исходный.
x3
001
1
011
5
3
7
111
100
000
0
010
x2
101
4
2
6
x1
110
Рис. 5. Заданная в виде куба функция 𝑓 (𝑥1 , 𝑥2 , 𝑥3 )
В данном примере единичными интервалами являются множества
вершин куба: {2}, {5}, {6}, {7}, {2,6}, {6,7}, {5,7}; максимальными
единичными интервалами – {2,6}, {6,7}, {5,7} (на рис. 5 максимальные интервалы – выделенные жирным ребра куба).
Конъюнкция, соответствующая максимальному единичному интервалу функции 𝑓, называется простой импликантой этой функции:
{2,6} – 𝑥2 ̅̅̅;
𝑥3 {6,7} – 𝑥1 𝑥2; {5,7} – 𝑥1 𝑥3.
Сокращенная ДНФ заданной функции в примере имеет вид:
𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = 𝑥2 ̅̅̅
𝑥3 ∨ 𝑥1 𝑥2 ∨ 𝑥1 𝑥3 .
Для нахождения минимальной ДНФ заданной функции необходимо исключить все несущественные импликанты из сокращенной
ДНФ, для этого строим таблицу покрытий. Таблица покрытий – это
16
таблица, строками которой являются все простые импликанты, входящие в сокращенную ДНФ функции, а столбцами – все конституенты
единицы заданной функции, и на пересечении i-ой строки с j-ым
столбцом ставится «метка», если соответствующие разряды i-ой простой импликанты совпадают с теми же разрядами указанных конституент единицы функции, прочерк ставится в противном случае.
Таблица 3
Таблица покрытий
*
*
x2 x3
x1 x2
x1 x3
x1 x2 x3
v
-
x1 x2 x3
v
x1 x2 x3
v
v
-
x1 x2 x3
v
v
Как видно из таблицы 3, несущественной импликантой является
𝑥1 𝑥2, так как при ее исключении заданная таблица покрывается простыми импликантами 𝑥2 ̅̅̅
𝑥3 и 𝑥1 𝑥3 (табл. 4).
Таблица 4
Таблица покрытий
*
*
x2 x3
x1 x2
x1 x3
x1 x2 x3
v
-
x1 x2 x3
v
x1 x2 x3
v
v
-
x1 x2 x3
v
v
Следовательно, минимальная ДНФ для функции 𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) =
∨
(2,5,6, 7) равна: 𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = 𝑥2 ̅̅̅
𝑥3 ∨ 𝑥1 𝑥3 .
1
1.5. Метод неопределенных коэффициентов
Метод неопределенных коэффициентов предполагает задание
функции таблицей истинности и основан на утверждении, что любую
функцию алгебры логики можно представить дизъюнкцией всевозможных конъюнкций, умноженных на неопределенные коэффициенты, принимающие значение 0 и 1. Для функции алгебры логики от
трех переменных это представление имеет вид:
17
𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = 𝑘11 𝑥1 ∨ 𝑘10 ̅̅̅
𝑥1 ∨ 𝑘21 𝑥2 ∨ 𝑘10 ̅̅̅
𝑥2 ∨ 𝑘31 𝑥3 ∨ 𝑘30 ̅̅̅
𝑥3 ∨
11
10
01
00
11
10
𝑘12 𝑥1 𝑥2 ∨ 𝑘12 𝑥1 ̅̅̅
𝑥2 ∨ 𝑘12 ̅̅̅𝑥
𝑥1 2 ∨ 𝑘12 ̅̅̅
𝑥1 ̅̅̅
𝑥2 ∨ 𝑘13 𝑥1 𝑥3 ∨ 𝑘13
𝑥1 ̅̅̅
𝑥3 ∨
01
00
11
10
01
00
𝑘13
𝑥1 3 ∨ 𝑘13
̅̅̅𝑥
𝑥1 ̅̅̅
̅̅̅
𝑥3 ∨ 𝑘23
𝑥2 𝑥3 ∨ 𝑘23
𝑥2 ̅̅̅
𝑥3 ∨ 𝑘23
𝑥2 3 ∨ 𝑘23
̅̅̅𝑥
𝑥2 ̅̅̅
̅̅̅
𝑥3 ∨
111
110
101
100
011
𝑘123 𝑥1 𝑥2 𝑥3 ∨ 𝑘123 𝑥1 𝑥2 ̅̅̅
𝑥3 ∨ 𝑘123 𝑥1 ̅̅̅𝑥
𝑥2 3 ∨ 𝑘123 𝑥1 ̅̅̅
𝑥2 ̅̅̅
𝑥3 ∨ 𝑘123
𝑥1 2 𝑥3 ∨
̅̅̅𝑥
010
001
000
𝑘123
𝑥1 2 ̅̅̅
̅̅̅𝑥
𝑥3 ∨ 𝑘123
𝑥1 ̅̅̅𝑥
̅̅̅
𝑥2 3 ∨ 𝑘123
𝑥1 ̅̅̅
̅̅̅
𝑥2 ̅̅̅.
𝑥3
(3)
В формуле (3) представлены всевозможные конъюнктивные члены, которые могут входить в дизъюнктивную форму представления
𝑓 (𝑥1 , 𝑥2 , 𝑥3 ). Коэффициенты k с различными индексами являются неопределенными и подбираются так, чтобы получающаяся после этого
дизъюнктивная форма была минимальной.
Подставляя в формулу (3) всевозможные наборы значений от трех
переменных <𝑥1 , 𝑥2 , 𝑥3 >, получим матрицу для определения коэффициентов k (4), правые части выражений которой равны значениям
функции на соответствующих наборах:
𝑓 (1,1,1) =
𝑓 (1,1,0) =
𝑓 (1,0,1) =
𝑓 (1,0,0) =
𝑓 (0,1,1) =
𝑓 (0,1,0) =
𝑓 (0,0,1) =
𝑓 (0,0,0) =
𝑘11 ∨
𝑘11 ∨
𝑘11 ∨
𝑘11 ∨
𝑘10 ∨
𝑘10 ∨
𝑘10 ∨
𝑘10 ∨
𝑘21 ∨
𝑘21 ∨
𝑘20 ∨
𝑘20 ∨
𝑘21 ∨
𝑘21 ∨
𝑘20 ∨
𝑘20 ∨
𝑘31 ∨
𝑘30 ∨
𝑘31 ∨
𝑘30 ∨
𝑘31 ∨
𝑘30 ∨
𝑘31 ∨
𝑘30 ∨
11
𝑘12
∨
11
𝑘12
∨
10
𝑘12 ∨
10
𝑘12
∨
01
𝑘12 ∨
01
𝑘12
∨
00
𝑘12 ∨
00
𝑘12
∨
11
𝑘13
∨
10
𝑘13
∨
11
𝑘13 ∨
10
𝑘13
∨
01
𝑘13 ∨
00
𝑘13
∨
01
𝑘13 ∨
00
𝑘13
∨
11
𝑘23
∨
10
𝑘23
∨
01
𝑘23 ∨
00
𝑘23
∨
11
𝑘23 ∨
10
𝑘23
∨
01
𝑘23 ∨
00
𝑘23
∨
111
𝑘123
110
𝑘123
101
𝑘123
100
𝑘123
011
𝑘123
010
𝑘123
001
𝑘123
000
𝑘123
}
(4)
Пусть таблично задана некоторая функция 𝑓 (𝑥1 , 𝑥2 , 𝑥3 ). Задание
некоторой конкретной функции определяет значения правых частей
матрицы (4). Если набор <𝑥1 , 𝑥2 , 𝑥3 > таков, что функция на этом наборе равна нулю, то в правой части соответствующего выражения будет
стоять нуль. Для удовлетворения этого выражения необходимо приравнять к нулю все коэффициенты k, входящие в правую часть рассматриваемого выражения. (Это вытекает из того, что дизъюнкция
равна нулю только тогда, когда все члены, входящие в нее, равны нулю).
Рассмотрев все наборы, на которых данная функция обращается в
нуль, получим все нулевые коэффициенты k . В выражениях, в которых справа стоят единицы, вычеркнем слева все нулевые коэффициенты. Из оставшихся коэффициентов приравняем единице коэффици18
ент, определяющий конъюнкцию, в соответствии с требованием минимальности суммы индексов коэффициентов, а остальные коэффициенты в левой части данного выражения примем равными нулю (это
можно делать, так как дизъюнкция обращается в единицу, если хотя
бы один член ее равен единице). Единичные коэффициенты ki определят из матрицы (4) соответствующую ДНФ.
∨
Пусть задана функция: 𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = (0, 2, 4, 7)
1
Составляем для заданной функции матрицу (5), приравнивая к
единице те выражения матрицы, на соответствующих наборах которых функция равна 1, а именно, 𝑓 (0,0,0) ⟶ набор 0, 𝑓 (0,1,0) ⟶
набор 2, 𝑓 (1,0,0) ⟶ набор 4, 𝑓 (1,1,1) ⟶ набор 7, остальные выражения матрицы приравниваем нулю:
𝑓 (1,1,1) =
𝑓 (1,1,0) =
𝑓 (1,0,1) =
𝑓 (1,0,0) =
𝑓 (0,1,1) =
𝑓 (0,1,0) =
𝑓 (0,0,1) =
𝑓 (0,0,0) =
𝑘11 ∨
𝑘11 ∨
𝑘11 ∨
𝑘11 ∨
𝑘10 ∨
𝑘10 ∨
𝑘10 ∨
𝑘10 ∨
𝑘21 ∨
𝑘21 ∨
𝑘20 ∨
𝑘20 ∨
𝑘21 ∨
𝑘21 ∨
𝑘20 ∨
𝑘20 ∨
𝑘31 ∨
𝑘30 ∨
𝑘31 ∨
𝑘30 ∨
𝑘31 ∨
𝑘30 ∨
𝑘31 ∨
𝑘30 ∨
11
𝑘12
∨
11
𝑘12 ∨
10
𝑘12
∨
10
𝑘12 ∨
01
𝑘12
∨
01
𝑘12 ∨
00
𝑘12
∨
00
𝑘12 ∨
11
𝑘13
∨
10
𝑘13 ∨
11
𝑘13
∨
10
𝑘13 ∨
01
𝑘13
∨
00
𝑘13 ∨
01
𝑘13
∨
00
𝑘13 ∨
11
𝑘23
∨
10
𝑘23 ∨
01
𝑘23
∨
00
𝑘23 ∨
11
𝑘23
∨
10
𝑘23 ∨
01
𝑘23
∨
00
𝑘23 ∨
111
𝑘123
=1
110
𝑘123 = 0
101
𝑘123
=0
100
𝑘123 = 1
(5)
011
𝑘123
=0
010
𝑘123
=1
001
𝑘123
=0
000
𝑘123 = 1}
Из второго, третьего, пятого и седьмого выражений матрицы (5) в
силу свойств дизъюнкции следует:
00
01
10
11
01
𝑘11 = 𝑘10 = 𝑘21 = 𝑘20 = 𝑘30 = 𝑘31 = 𝑘12
= 𝑘12
= 𝑘12
= 𝑘12
= 𝑘13
=
10
11
01
10
11
110
101
011
001
= 𝑘13
= 𝑘13
= 𝑘23
= 𝑘23
= 𝑘23
= 𝑘123
= 𝑘123
= 𝑘123
= 𝑘123
=0
После чего матрица (5) принимает вид:
111
𝑓 (1,1,1) = 𝑘123
=1
00
100
𝑓 (1,0,0) = 𝑘23 ∨ 𝑘123 = 1
00
010
𝑓 (0,1,0) = 𝑘13
∨ 𝑘123
=1
00
00
000
𝑓 (0,0,0) = 𝑘13 ∨ 𝑘23 ∨ 𝑘123
= 1}
19
(6)
Приравниваем к нулю в каждом выражении все коэффициенты,
кроме тех, которые отвечают условию минимальности суммы индексов коэффициентов:
100
010
000
𝑘123
= 𝑘123
= 𝑘123
=0
После этого получаем следующую матрицу:
111
𝑓 (1,1,1) = 𝑘123
=1
00
𝑓 (1,0,0) = 𝑘23 = 1
00
𝑓 (0,1,0) = 𝑘13
=1
00
00
𝑓 (0,0,0) = 𝑘13 ∨ 𝑘23
= 1}
(7)
Из матрицы (7) следует, что минимальная ДНФ заданной функции будет:
𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = 𝑥1 𝑥2 𝑥3 ∨ ̅̅̅
𝑥2 ̅̅̅
𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥3
Описанный метод эффективен лишь для минимизации функций,
число аргументов в которых не больше 5–6. Это связано с тем, что
число уравнений равно 2n.
Более эффективным является выписывание не всех возможных
конъюнкций для функции n переменных, а только тех, которые могут
присутствовать в ДНФ, эквивалентной минимизируемой функции.
Этот прием позволяет уменьшить таблицу и перебор с целью нахождения МДНФ.
1.6. Метод Квайна–Мак-Класки для минимизации
полностью определенных функций
При минимизации по методу Квайна–Мак-Класки предполагается, что минимизируемая функция задана в виде наборов, на которых
она обращается в единицу. Элементарные конъюнкции ранга n, соответствующие наборам на которых минимизируемая функция равна 1,
называют минитермами ранга п. Метод Квайна–Мак-Класки состоит
из последовательного выполнения следующих процедур:
1. Нахождение простых импликант. Все минитермы функции
записываем в виде их двоичных номеров, все номера разбиваем по
20
числу единиц в этих номерах на непересекающиеся группы. При этом
в i-ю группу войдут все номера, имеющие в своей двоичной записи
ровно i единиц. Попарно сравниваем номера из соседних по номеру
групп, так как только эти группы отличаются для входящих в них минитермов в одном разряде. Если минитермы mi и mj таковы, что они
имеют вид ахi и 𝑎𝑥̅𝑖 , то выписывается конъюнкция а, являющаяся минитермом (n–1)-го ранга, причем в разряды этих минитерм, взамен
исключенной переменной хi, пишется знак тире. Минитермы n-го ранга, для которых произошло склеивание, отмечаются. После построения всех минитермов (n–1)-го ранга вновь сравнивают их попарно,
выписывают минитермы (n–2)-го ранга и отмечают склеивающиеся
минитермы (n–1)-го ранга и т. д. Процедура заканчивается, когда
вновь полученные минитермы k-го ранга уже не склеиваются между
собой. Все неотмеченные минитермы называются простыми импликантами.
2. Построение таблицы покрытий. Строим таблицу покрытий.
Строками этой таблицы являются найденные в первой процедуре простые импликанты, а столбцами – все исходные минитермы функции, и
на пересечении i-ой строки с j-ым столбцом ставится «метка», если
соответствующие разряды i-ой простой импликанты совпадают с теми
же разрядами указанных минитерм ранга n, и прочерк – в противном
случае.
3. Нахождение существенных импликант (ядра покрытия).
Если в каком-либо из столбцов таблицы покрытий имеется только одна метка, то простая импликанта, стоящая в соответствующей, называется существенной импликантой. Существенная импликанта не
может быть исключена из правой части таблицы покрытий, так как
без нее не будет получено покрытие всего множества данной функции
(существенные импликанты образуют ядро покрытия функции). Поэтому из таблицы покрытий исключаются строки, соответствующие
существенным импликантам, и столбцы минитермов, покрываемые
этими существенными импликантами.
4. Выбор минимального покрытия максимальными интервалами. Исследуется полученная таблица покрытий после пункта 3.
Выбирается такая совокупность простых импликант, которая включает метки во всех столбцах (по крайней мере по одной метке в каждом
столбце). При нескольких возможных вариантах такого выбора отдается предпочтение варианту покрытия с минимальным суммарным
числом букв в простых импликантах, образующих покрытие.
21
Пусть задана функция:
𝑓 (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ) =
∨
(3,4,5,7,9,11,12,13).
1
Процедура нахождения простых импликант выглядит следующим
образом:
1. Нахождение простых импликант. Указанные минитермы 4-го
ранга представляем в виде двоичных номеров, им соответствующих:
3457911 12 13-
0011
0100
0101
0111
1001
1011
1100
1101
Произведем разбиение на непересекающиеся подгруппы, в соответствии с количеством единиц в номере:
0100*
0011*
0101*
1001*
1100*
010- *
-100 *
0-11
-011
01-1
-101 *
10-1
1-01
110- *
-10-10-
22
0111*
1011*
1101*
Простые импликанты выделены овалом. Зачеркнуты одинаковые
минитермы.
2. Построение таблицы покрытий
Таблица 5
Таблица покрытий
x1
0
0
1
1
*
-
x2
0
1
0
1
x3
1
1
0
0
x4 0011 0100 0101 0111 1001 1011 1100 1101
1
v
v
v
v
1
v
v
1
v
v
1
v
v
1
v
v
v
v
-
3. Нахождение существенных импликант (ядра покрытия)
Из таблицы 5 видно, что для искомой функции простая импликанта «-10-» является существенной импликантой и образует ядро покрытия функции. Удаляем из таблицы 5 строку, соответствующую
найденной существенной импликанте, и столбцы, которые ею покрываются (табл. 6).
Таблица 6
Таблица покрытий
x1
0
0
*
1
1
*
x2
0
1
0
-
x3
1
1
0
x4 0011 0111 1001 1011
1
v
v
v
v
1
v
1
v
v
1
v
1
4. Выбор минимального покрытия максимальными интервалами. Для рассматриваемой функции выбираем покрытие из простых
импликант «0-11» и «10-1», так как они покрывают в таблице 2 все
оставшиеся после пункта 3 столбцы.
23
Минимальная ДНФ для заданной функции имеет вид:
𝑓 (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ) = ̅̅̅
𝑥1 𝑥3 𝑥4 ∨ 𝑥1 ̅̅̅
𝑥2 𝑥4 ∨ 𝑥2 ̅̅̅.
𝑥3
1.7. Метод Квайна–Мак-Класки для минимизации
не полностью определенных функций
Для минимизации не полностью определенных функций строятся
две вспомогательные функции: функция нулевого доопределения 𝑓0 и
функция единичного доопределения 𝑓1. Функция нулевого доопределения получается заменой неопределенностей на «0», а функция единичного доопределения – заменой неопределенностей на «1». После
этого задача сводится к нахождению минимального покрытия конституент единицы функции нулевого доопределения простыми импликантами функции единичного доопределения.
Пусть задана функция:
0 на {0,1,5,6,8}
𝑓 (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ) = {1 на {2,3,4,10,11,12,15}.
∆ остальные
В начале определяются функции нулевого и единичного доопределения данной функции:
1. Функция нулевого доопределения равна тем наборам, на которых функция принимает истинные значения:
𝑓0 = {2,3,4,10,11,12,15};
Функция единичного доопределения равна тем наборам, на которых функция принимает истинные значения и наборам, на которых
функция не определена (∆ остальные):
𝑓1 = {2,3,4,7,9,10,11,12,13,14,15}.
2. Определим простые импликанты функции. Для этого разобьем
на непересекающиеся подгруппы, в соответствии с количеством единиц в номере, функцию единичного доопределения и произведем операцию склеивания между этими группами:
24
0010*
0100*
0011*
1001*
1010*
1100*
0111*
1011*
1101*
1110*
001- *
-010 *
-100
0-11 *
-011 *
10-1 *
1-01 *
101- *
1-10 *
110- *
11-0 *
--11
--11
1--1
1-11--1
11-1-111--
-111 *
1-11 *
11-1 *
111- *
-01-01-
1111*
Простые импликанты выделены овалом. Зачеркнуты одинаковые
минитермы.
Строим таблицу покрытий, причем она по структуре совпадает с
таблицей покрытий из метода Квайна–Мак-Класки для полностью
определенных случаев, за исключением того, что в столбцах таблицы
покрытий располагают минитермы ранга n, входящие в функцию нулевого доопределения.
Таблица 7
Таблица покрытий
x1 x2 x3 x4 0010 0011 0100 1010 1011 1100 1111
- 1 0 0 v
v
*
v
v
v
v
- 0 1 v
v
v
- - 1 1 v
v
1 - - 1 v
v
v
1 - 1 - v
v
1 1 - - *
25
Из таблицы 7 видно, что для искомой функции простые импликанты «-01-» и «-100» являются существенными импликантами и образуют ядро покрытия функции. Удаляем из таблицы 3 строки, соответствующие найденным существенным импликантам, и столбцы,
которые ими покрываются (табл. 8).
Таблица 8
Таблица покрытий
x1 x2 x3 x4 1111
- - 11 v
1 - - 1 v
1 - 1 - v
1 1 - - v
*
Для рассматриваемой функции выбираем покрытие из одной
простой импликанты «--11», покрывающей в таблице 8 оставшийся
столбец.
Минимальная ДНФ для заданной функции имеет вид:
𝑓 (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 ) = 𝑥2 ̅̅̅
𝑥3 ̅̅̅
𝑥4 ∨ ̅̅̅
𝑥2 𝑥3 ∨ 𝑥3 𝑥4.
1.8. Разложение Шеннона по k переменным
Любая функция 𝑓 (𝑥1 , 𝑥2 , … , 𝑥𝑛 ) представима в виде разложения
Шеннона:
𝑓 (𝑥1 , 𝑥2 , … , 𝑥𝑘 , 𝑥𝑘+1 , … , 𝑥𝑛 ) =
𝑘
𝜎
∀(𝜎1 , 𝜎2 , … , 𝜎𝑘 ) ( & 𝑥𝑖 𝑖 ) 𝑓 (𝜎1 , 𝜎2 , … , 𝜎𝑘 , 𝑥𝑘+1 , … , 𝑥𝑛 )
𝑖=1
𝑥𝑖 при 𝜎𝑖 = 1,
𝑥̅𝑖 при 𝜎𝑖 = 0.
Дана функция: 𝑓 (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ) = ̅̅̅𝑥
𝑥1 3 𝑥4 ̅̅̅
𝑥5 ∨ 𝑥2 ̅̅̅
𝑥3 ∨ 𝑥3 ̅̅̅𝑥
𝑥4 5 ∨
𝑥1 𝑥5 ∨ 𝑥4 𝑥5 .
Разложение Шеннона для заданной функции осуществим по переменным 𝑥2 , 𝑥4 , 𝑥5 :
𝜎
где, 𝜎1 = 0, 1; 𝑖 = 1, … , 𝑘, 𝑥𝑖 𝑖 = {
26
𝑓 (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ) = 000 ⋅ 𝑓(𝑥1 , 0, 𝑥3 , 0, 0) ∨
∨ 001 ⋅ 𝑓(𝑥1 , 0, 𝑥3 , 0, 1) ∨ 010 ⋅ 𝑓(𝑥1 , 0, 𝑥3 , 1, 0) ∨
∨ 011 ⋅ 𝑓(𝑥1 , 0, 𝑥3 , 1, 1) ∨ 100 ⋅ 𝑓(𝑥1 , 1, 𝑥3 , 0, 0) ∨
∨ 101 ⋅ 𝑓(𝑥1 , 1, 𝑥3 , 0, 1) ∨ 110 ⋅ 𝑓(𝑥1 , 1, 𝑥3 , 1, 0) ∨
∨ 111 ⋅ 𝑓(𝑥1 , 1, 𝑥3 , 1, 1).
В соответствии с вышепредставленным выражением осуществим
подстановку указанных значений переменных 𝑥2 , 𝑥4 , 𝑥5 в заданную
функцию. Получаем следующее разложение Шеннона для функции
𝑓 (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ) = ̅̅̅𝑥
𝑥1 3 𝑥4 ̅̅̅
𝑥5 ∨ 𝑥2 ̅̅̅
𝑥3 ∨ 𝑥3 ̅̅̅𝑥
𝑥4 5 ∨ 𝑥1 𝑥5 ∨ 𝑥4 𝑥5 :
𝑓 (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ) = ̅̅̅
𝑥2 ̅̅̅
𝑥4 ̅̅̅
𝑥5 ⋅ 0 ∨ ̅̅̅
𝑥2 ̅̅̅
𝑥4 𝑥5 ⋅ (𝑥3 ∨ 𝑥1 ) ∨ ̅̅̅
𝑥2 𝑥4 ̅̅̅
𝑥5 ⋅
(𝑥
̅̅̅1 𝑥3 ) ∨ ̅̅̅
𝑥2 𝑥4 𝑥5 ⋅ 1 ∨ 𝑥2 ̅̅̅̅
𝑥4 ̅̅̅
𝑥5 ⋅ (𝑥
̅̅̅)
𝑥4 𝑥5 ⋅ (𝑥
̅̅̅3 ∨ 𝑥3 ∨ 𝑥1 ) ∨
3 ∨ 𝑥2 ̅̅̅
𝑥2 𝑥4 ̅̅̅
𝑥5 ⋅ (𝑥
̅̅̅1 𝑥3 ∨ ̅̅̅)
𝑥3 ∨ 𝑥2 𝑥4 𝑥5 ⋅ (𝑥
̅̅̅3 ∨ 𝑥1 ∨ 1) = ̅̅̅
𝑥2 ̅̅̅
𝑥4 𝑥5 𝑥3 ∨
𝑥2 ̅̅̅
̅̅̅
𝑥4 𝑥5 𝑥1 ∨ ̅̅̅
𝑥2 𝑥4 ̅̅̅
𝑥5 ̅̅̅
𝑥1 𝑥3 ∨ ̅̅̅
𝑥2 𝑥4 𝑥5 ∨ 𝑥2 ̅̅̅̅
𝑥4 ̅̅̅
𝑥5 ̅̅̅
𝑥3 ∨ 𝑥2 ̅̅̅
𝑥4 𝑥5 ∨
𝑥2 𝑥4 ̅̅̅
𝑥5 ̅̅̅
𝑥1 𝑥3 ∨ 𝑥2 𝑥4 ̅̅̅
𝑥5 ̅̅̅
𝑥3 ∨ 𝑥2 𝑥4 𝑥5 .
Предельное разложение Шеннона (k = n) функции 𝑓 (𝑥1 , 𝑥2 , 𝑥3 ),
не равной 0, имеет вид:
𝑛
𝜎
𝑓 (𝑥1 , 𝑥2 , … , 𝑥𝑛 ) = ∀(𝜎1 , 𝜎2 , … , 𝜎𝑛 ) ( & 𝑥𝑖 𝑖 ) 𝑓 (𝜎1 , 𝜎2 , … , 𝜎𝑛−1 , 𝜎𝑛 ) (9)
𝑖=1
Предельное разложение Шеннона функции алгебры логики
𝑓 (𝑥1 , 𝑥2 , … , 𝑥𝑛 ) является ее совершенной дизъюнктивной нормальной
формой (предельное разложение осуществляется по всем переменным
одновременно).
Дана функция: 𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = 𝑥1 ̅̅̅
𝑥2 ̅̅̅
𝑥3 ∨ 𝑥1 𝑥2 ∨ ̅̅̅𝑥
𝑥1 3 ∨ 𝑥2 𝑥3.
Предельное разложение Шеннона для представленной функции
выглядит следующим образом:
𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = ̅̅̅
𝑥1 ̅̅̅
𝑥2 ̅̅̅
𝑥3 ⋅ 0 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥2 𝑥3 ⋅ 1 ∨ ̅̅̅
𝑥1 𝑥2 ̅̅̅
𝑥3 ⋅ 0 ∨ ̅̅̅
𝑥1 𝑥2 𝑥3 ⋅
1 ∨ 𝑥1 ̅̅̅
𝑥2 ̅̅̅
𝑥3 ⋅ 1 ∨ 𝑥1 ̅̅̅
𝑥2 𝑥3 ⋅ 0 ∨ 𝑥1 𝑥2 ̅̅̅
𝑥3 ⋅ 1 ∨ 𝑥1 𝑥2 𝑥3 ) ⋅ 1 =
𝑥1 ̅̅̅
̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥1 𝑥2 𝑥3 ∨ 𝑥1 ̅̅̅
𝑥2 ̅̅̅
𝑥3 ∨ 𝑥1 𝑥2 ̅̅̅
𝑥3 ∨ 𝑥1 𝑥2 𝑥3 .
(10)
1.9. Дифференцирование функций алгебры логики
Производная первого порядка
𝜕𝑓
𝜕𝑥𝑖
от функции алгебры логики f
по переменной 𝑥𝑖 есть сумма по модулю двух соответствующих оста27
точных функций, которая также определяет условия переключения
функции при переключении 𝑥𝑖 с 0 на 1 (и наоборот):
𝜕𝑓
𝜕𝑥𝑖
= 𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑖−1 , 1, … , 𝑥𝑛 )⨁𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑖−1 , 0, … , 𝑥𝑛 ),
где 𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑖−1 , 1, … , 𝑥𝑛 ) – единичная остаточная функция;
𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑖−1 , 0, … , 𝑥𝑛 ) – нулевая остаточная функция;
⨁ – сумма по модулю 2.
Единичная остаточная функция получается в результате приравнивания переменной 𝑥𝑖 единице, нулевая – в результате приравнивания 𝑥𝑖 нулю.
Дана функция: 𝑓 (𝑥1 , 𝑥2 , 𝑥3 ) = ̅̅̅
𝑥2 ̅̅̅
𝑥3 ∨ 𝑥1 𝑥2 𝑥3
1) Производная заданной функции по 𝑥1 равна:
𝜕𝑓
= (𝑥
̅̅̅2 ̅̅̅
𝑥3 ∨ 1 ⋅ 𝑥2 𝑥3 )⨁(𝑥
̅̅̅2 ̅̅̅
𝑥3 ∨ 0 ⋅ 𝑥2 𝑥3 ) =
𝜕𝑥1
= (𝑥
̅̅̅2 ̅̅̅
𝑥3 ∨ 𝑥2 𝑥3 )⨁(𝑥
̅̅̅2 ̅̅̅).
𝑥3
Построим таблицу истинности полученной производной
приведения ее к нормальной форме функции:
𝜕𝑓
𝜕𝑥1
для
𝒙𝟑
𝒙𝟐
0
1
0
0
0
1
0
1
Производная по 𝑥1 равна единице только при значениях 𝑥2 , 𝑥3
равных «11», соответственно, т. е. при 𝑥2 = 𝑥3 = 1.
Производная по 𝑥1 от заданной функции равна:
𝜕𝑓
= 𝑥2 𝑥3.
𝜕𝑥
1
2) Производная заданной функции по 𝑥2 равна:
𝜕𝑓
𝜕𝑥2
= (1̅ ⋅ ̅̅̅
𝑥3 ∨ 𝑥1 ⋅ 1 ⋅ 𝑥3 )⨁(0̅ ⋅ ̅̅̅
𝑥3 ∨ 𝑥1 ⋅ 0 ⋅ 𝑥3 ) = (𝑥1 𝑥3 )⨁( ̅̅̅
𝑥3 ).
𝒙𝟑
𝒙𝟏
0
1
0
1
1
28
1
0
1
Производная по 𝑥2 от заданной функции равна:
𝜕𝑓
𝜕𝑥2
= ̅̅̅
𝑥1 ̅̅̅
𝑥3 ∨ 𝑥1 ̅̅̅
𝑥3 ∨ 𝑥1 𝑥3 = 𝑥1 ∨ ̅̅̅.
𝑥3
3) Производная заданной функции по 𝑥3 равна:
𝜕𝑓
𝜕𝑥3
= (𝑥
̅̅̅2 ⋅ 1̅ ∨ 𝑥1 𝑥2 ⋅ 1)⨁(𝑥
̅̅̅2 0̅ ∨ 𝑥1 𝑥2 ⋅ 0) = (𝑥1 𝑥2 )⨁(𝑥
̅̅̅).
2
𝒙𝟐
𝒙𝟏
0
1
0
1
1
1
0
1
Производная по 𝑥3 от заданной функции равна:
𝜕𝑓
𝜕𝑥3
= ̅̅̅
𝑥1 ̅̅̅
𝑥2 ∨ 𝑥1 ̅̅̅
𝑥2 ∨ 𝑥1 𝑥2 = 𝑥1 ∨ ̅̅̅.
𝑥2
Производная первого порядка
𝜕𝑓
𝜕𝑥𝑖
от функции алгебры логики
𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑛 ) определяет условия, при которых эта функция изменяет значение при переключении переменной 𝑥𝑖 (переключение 𝑥𝑖 – это
изменение её значения на противоположное).
Смешанной производной 𝜕𝑥
𝜕𝑘 𝑓
𝑖1 ,𝜕𝑥𝑖2 ,… ,𝜕𝑥𝑖𝑘
от функции алгебры логи-
ки 𝑓 называется выражение вида:
𝜕𝑘 𝑓
𝜕
𝜕 𝑘−1 𝑓
=
(
).
𝜕𝑥𝑖1 𝜕𝑥𝑖2 … 𝜕𝑥𝑖𝑘−1 𝜕𝑥𝑖𝑘 𝜕𝑥1𝑘 𝜕𝑥𝑖1 𝜕𝑥𝑖2 … 𝜕𝑥𝑖𝑘−1
Смешанную производную k-го порядка
𝜕𝑘 𝑓
𝜕𝑥𝑖1 𝜕𝑥𝑖2 …𝜕𝑥𝑖𝑘
(11)
вычисляют,
применяя соотношение (11) k раз фиксацией переменных
𝑥𝑖1 , 𝑥𝑖2 , … , 𝑥𝑖𝑘−1 (порядок фиксации переменных не имеет значения);
количество упорядочиваний равно k!
Производная k-го порядка
𝜕𝑘 𝑓
𝜕(𝑥𝑖1 , 𝑥𝑖2 ,…, 𝑥𝑖𝑘 )
от функции алгебры ло-
гики 𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑛 ) по переменным 𝑥𝑖1 , 𝑥𝑖2 , …, 𝑥𝑖𝑘 определяет
29
условия, при которых эта функция изменяет значение при одновременном изменении значений переменных 𝑥𝑖1 , 𝑥𝑖2 , … , 𝑥𝑖𝑘 .
Согласно Бохману производная k-го порядка
𝜕𝑘 𝑓
𝜕(𝑥𝑖1 , 𝑥𝑖2 ,…, 𝑥𝑖𝑘 )
от
функции алгебры логики 𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑛 ) по переменным 𝑥𝑖1 , 𝑥𝑖2 ,
…, 𝑥𝑖𝑘 равна сумме по модулю 2 всех производных первого порядка,
второго, третьего и т. д., k-ых смешанных производных при фиксации
переменных 𝑥𝑖1 , 𝑥𝑖2 , …, 𝑥𝑖𝑘 :
𝜕𝑘 𝑓
𝜕𝑓
= ∑𝑖 𝜕𝑥 ⨁ ∑𝑖,𝑗;
𝜕(𝑥𝑖1 , 𝑥𝑖2 ,…, 𝑥𝑖𝑘 )
𝑖
3
𝜕 𝑓
⨁ ∑𝑖,𝑗,𝑠; 𝑖≠𝑗,
⨁
𝜕𝑥𝑖 𝜕𝑥𝑗 𝜕𝑥𝑠
𝑖≠𝑠,𝑗≠𝑠
…⨁
𝜕2 𝑓
𝑖≠𝑗 𝜕𝑥 𝜕𝑥
𝑖
𝑗
⨁
𝜕𝑘 𝑓
,
𝜕𝑥𝑖1 𝜕𝑥𝑖2 …𝜕𝑥𝑖𝑘
(12)
где 𝑖, 𝑗, 𝑠, … = 𝑖1 , 𝑖2 , … , 𝑖𝑘 .
Дана функция: 𝑓(𝑥1 , 𝑥2 , 𝑥3 ) = 𝑥1 𝑥2 ∨ 𝑥1 ̅̅̅.
𝑥3 Определим условия
переключения выходного канала f логической схемы, реализующей
заданную функцию алгебры логики 𝑓(𝑥1 , 𝑥2 , 𝑥3 ), при переключении
каждого входного канала, первого (𝑥1 ) и второго (𝑥2 ) каналов одновременно и всех трех каналов 𝑥1 , 𝑥2 , 𝑥3 одновременно.
Производные заданной функции первого порядка равны:
𝜕𝑓
𝜕𝑓
𝜕𝑓
= 𝑥2 ∨ ̅̅̅;
𝑥3
= 𝑥1 𝑥3 ;
= 𝑥1 ̅̅̅.
𝑥2
𝜕𝑥1
𝜕𝑥2
𝜕𝑥3
Условие
𝜕𝑓
𝜕𝑥1
= 𝟏 является условием переключения выходного ка-
нала 𝑓 при переключении входного канала 𝑥1 : при подаче на второй
канал 1 (𝑥2 = 1) или на третий 0 (𝑥3 = 0), при переключении первого
канала 𝑥1 с σ на σ
̅ (σ ⟶ σ
̅), выходной канал переключается с σ на σ
̅
(σ ⟶ σ
̅, σ = 0,1). Выходной канал 𝑓 переключается σ ⟶ σ
̅, при переключении входного канала 𝑥2 σ ⟶ σ
̅, если 𝑥1 = 𝑥3 = 1, и 𝑓 переключается σ ⟶ σ
̅, когда переключается 𝑥3 , σ
̅ ⟶ σ при 𝑥1 = 1, 𝑥2 = 0,
σ = 0,1. Далее находим условие переключения выходного канала 𝑓
при переключении первого (𝑥1 ) и второго (𝑥2 ) каналов одновременно:
𝜕2𝑓
𝜕 𝜕𝑓
=
(
) = 1⨁𝑥
̅̅̅3 = 𝑥3 ,
𝜕𝑥1 𝜕𝑥2 𝜕𝑥2 𝜕𝑥1
30
𝜕2 𝑓
𝜕(𝑥1 ,𝑥2 )
=
𝜕𝑓
𝜕𝑓
𝜕2 𝑓
⨁
⨁
𝜕𝑥1
𝜕𝑥2
𝜕𝑥1 𝜕𝑥2
= (𝑥2 ∨ ̅̅̅)⨁𝑥
𝑥3
1 𝑥3 ⨁𝑥3 .
Приведем производную второго порядка к нормальной форме,
используя таблицу истинности:
𝒙𝟏
0
1
00
1
1
𝒙𝟐 𝒙𝟑
01 10
1
1
0
1
11
0
1
𝜕2𝑓
= ̅̅̅
𝑥1 ̅̅̅
𝑥2 ̅̅̅
𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥1 𝑥2 ̅̅̅
𝑥3 ∨ 𝑥1 ̅̅̅
𝑥2 ̅̅̅
𝑥3 ∨ 𝑥1 𝑥2 ̅̅̅
𝑥3 ∨
𝜕(𝑥1 , 𝑥2 )
∨ 𝑥1 𝑥2 𝑥3 = ̅̅̅
𝑥2 ̅̅̅
𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥2 ∨ 𝑥2 ̅̅̅
𝑥3 ∨ 𝑥1 𝑥2 = ̅̅̅
𝒙𝟑 ∨ ̅̅̅
𝒙𝟏 ̅̅̅
𝒙𝟐 ∨ 𝒙𝟏 𝒙𝟐 .
Выходной канал f переключается при любом одновременном переключении входных каналов 𝑥1 , 𝑥2 , когда 𝑥3 = 0, или независимо от
состояния входного канала 𝑥3 , при переключении 𝑥1 и 𝑥2 с «11» на
«00» или с «00» на «11».
Вычислим условия переключения выходного канала f логической
схемы при переключении всех трех каналов 𝑥1 , 𝑥2 , 𝑥3 одновременно:
𝜕3𝑓
𝜕𝑓
𝜕𝑓
𝜕𝑓
𝜕2𝑓
𝜕2𝑓
=
⨁
⨁
⨁
⨁
⨁
𝜕(𝑥1 , 𝑥2 , 𝑥3 ) 𝜕𝑥1 𝜕𝑥2 𝜕𝑥3 𝜕𝑥1 𝜕𝑥2 𝜕𝑥1 𝜕𝑥3
𝜕2𝑓
𝜕3𝑓
⨁
⨁
,
𝜕𝑥2 𝜕𝑥3 𝜕𝑥1 𝜕𝑥2 𝜕𝑥3
𝜕2𝑓
𝜕 𝜕𝑓
=
(
) = 𝑥2 ⨁1 = ̅̅̅,
𝑥2
𝜕𝑥1 𝜕𝑥3 𝜕𝑥3 𝜕𝑥1
𝜕2𝑓
𝜕 𝜕𝑓
=
(
) = 𝑥1 ,
𝜕𝑥2 𝜕𝑥3 𝜕𝑥3 𝜕𝑥2
𝜕3𝑓
𝜕
𝜕2𝑓
=
(
)=1
𝜕𝑥1 𝜕𝑥2 𝜕𝑥3 𝜕𝑥1 𝜕𝑥2 𝜕𝑥3
Получаем производную третьего порядка:
𝜕3𝑓
= (𝑥2 ∨ ̅̅̅)⨁
𝑥3
𝑥1 𝑥3 ⨁ 𝑥1 ̅̅̅
𝑥2 ⊕ 𝑥3 ⨁ ̅̅̅⨁𝑥
𝑥2 1 ⨁1.
𝜕(𝑥1 , 𝑥2 , 𝑥3 )
31
𝒙𝟏
0
1
00
1
1
𝒙𝟐 𝒙𝟑
01 10
1
0
0
1
11
1
1
𝜕3𝑓
= ̅̅̅
𝑥1 ̅̅̅
𝑥2 ̅̅̅
𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥1 𝑥2 𝑥3 ∨ 𝑥1 ̅̅̅
𝑥2 ̅̅̅
𝑥3 ∨ 𝑥1 𝑥2 ̅̅̅
𝑥3 ∨
𝜕(𝑥1 , 𝑥2 , 𝑥3 )
∨ 𝑥1 𝑥2 𝑥3 .
При переключении входного вектора 4 (𝑥1 ̅̅̅
𝑥2 ̅̅̅)
𝑥3 → 3 (𝑥
̅̅̅1 𝑥2 𝑥3), 6
(𝑥1 𝑥2 ̅̅̅)
𝑥3 → 1 (𝑥
̅̅̅1 ̅̅̅
𝑥2 𝑥3 ) и 7 (𝑥1 𝑥2 𝑥3) → 0 (𝑥
̅̅̅1 ̅̅̅
𝑥2 ̅̅̅)
𝑥3 выходной канал 𝑓
переключается.
1.10. Метод каскадов
Метод каскадов позволяет проектировать логические схемы и соответствующие им суперпозиции большей сложности. В основу метода каскадов положено разложение Шеннона, он позволяет при наличии блоков исключения k переменных свести реализацию функции
алгебры логики от n переменных к реализации функции от n–k, k ≥ 1,
переменных.
Размерность остаточных функций 𝑓 (𝜎1 , 𝜎2 , … , 𝜎𝑘 , 𝑥𝑘+1 , … , 𝑥𝑛 ) в
свою очередь можно понизить, исключая t переменных до тех пор,
пока остаточные функции не примут простой вид и их реализация в
заданном базисе не будет очевидной.
Сложность остаточных функций зависит от порядка исключения
переменных в заданной функции алгебры логики 𝑓 (𝑥1 , 𝑥2 , … , 𝑥𝑛 ).
Число всевозможных способов исключения переменных растет комбинаторно. Например, при использовании только блоков, исключающих одну и ту же переменную на каждом ярусе, это число
равно п!, но на каждом ярусе можно исключить не только одну и ту
же переменную, но и различные переменные; далее, можно исключать
на каждом шаге различное число переменных (одну, две, три и т. д.).
Выбор оптимального исключения переменных перебором всех способов исключения — трудоемкий процесс.
Оптимальное исключение переменных ищут, используя эвристические критерии, один из которых основан на использовании понятия производной от функции алгебры логики.
32
Критерий оптимального исключения переменных в методе каскадов заключается в исключении сначала переменных, при переключении которых функция алгебры логики переключается при максимальном числе условий. Это максимальное число определяется весом производной.
Весом производной от функции алгебры логики называется число конституент этой производной.
При использовании блоков, исключающих k переменных, находят
производные k-го порядка от реализуемой функции и ищут максимальное значение веса производной 𝑃(𝜕 𝑘 𝑓/𝜕(𝑥𝑖1 , 𝑥𝑖1 , … , 𝑥𝑖𝑘 )), которое
и определяет исключаемые переменные. Для полученных остаточных
функций алгебры логики снова находятся производные: определяются
веса, а производная от рассматриваемой остаточной функции, имеющая максимальный вес, определяет соответствующие переменные,
которые исключаются на этом ярусе для этой остаточной функции, и
до тех пор, пока остаточные функции не будут иметь простую реализацию.
Задана функция от пяти переменных. Синтез логической схемы,
реализующей эту функцию, выглядит следующим образом:
𝑓 (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ) = 𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥3 𝑥4 ∨ 𝑥1 𝑥3 ̅̅̅
𝑥5 ∨
∨ 𝑥1 𝑥2 𝑥4 ∨ ̅̅̅
𝑥2 𝑥3 𝑥5 ∨ ̅̅̅
𝑥3 ̅̅̅
𝑥4 𝑥5 .
Определим переменную xi , по которой производная
𝜕𝑓
,
𝜕𝑥𝑖
имеет
максимальный вес, т. е. функция 𝑓 (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ) зависит от нее
наиболее существенно.
Производная функции по переменной 𝑥1 имеет вид:
𝜕𝑓
= ( ̅̅̅
𝑥2 𝑥3 ∨ 𝑥3 ̅̅̅
𝑥5 ∨ 𝑥2 𝑥4 ∨ ̅̅̅
𝑥2 𝑥3 𝑥5 ∨ ̅̅̅
𝑥3 ̅̅̅
𝑥4 𝑥5 ) ⨁
𝜕𝑥1
⨁ ( ̅̅̅
𝑥3 𝑥4 ∨ ̅̅̅
𝑥2 𝑥3 𝑥5 ∨ ̅̅̅
𝑥3 ̅̅̅
𝑥4 𝑥5 ).
Для вычисления веса производной
𝜕𝑓
,
𝜕𝑥1
зависящей от четырех пе-
ременных 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 , представим четырехмерное пространство с образующими {𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 } в виде декартова произведения двух двумерных пространств {𝑥2 , 𝑥3 } х {𝑥4 , 𝑥5 } с образующими {𝑥2 , 𝑥3 } и
𝜕𝑓
{𝑥4 , 𝑥5 }, соответственно. Тогда производную 𝜕𝑥 можно задать в виде
1
33
двумерной таблицы: каждому значению 𝜎2 , 𝜎3 переменных 𝑥2 , 𝑥3 взаимно однозначно соответствует строка таблицы, столбцу — значения
𝜎4 , 𝜎5 переменных 𝑥4 , 𝑥5 и на пересечении i-й строки и j-го столбца,
взаимно однозначно соответствующем точке четырехмерного про𝜕𝑓
странства с образующими {𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 }, записываем значение 𝜕𝑥 в
этой точке. Вес производной
(табл. 9–13).
𝜕𝑓
𝜕𝑥1
1
равен числу единиц в этой таблице
Таблица 9
Определение веса производной
𝒙𝟐 𝒙𝟑
00
01
10
11
00
0
1
0
1
𝒙𝟒 𝒙𝟓
01 10
0
1
0
1
0
0
0
1
𝝏𝒇
𝝏𝒙𝟏
11
1
0
0
1
Вес производной равен количеству единиц в таблице 9:
𝜕𝑓
𝑃(
) = 7.
𝜕𝑥1
Аналогичным образом вычисляем веса производных по переменным 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 .
Производная функции по переменной х2 равна:
𝜕𝑓
= ( ̅̅̅
𝑥1 ̅̅̅
𝑥3 𝑥4 ∨ 𝑥1 𝑥3 ̅̅̅
𝑥5 ∨ 𝑥1 𝑥4 ∨ ̅̅̅
𝑥3 ̅̅̅
𝑥4 𝑥5 )⨁
𝜕𝑥2
⨁(𝑥1 𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥3 𝑥4 ∨ 𝑥1 𝑥3 ̅̅̅
𝑥5 ∨ 𝑥3 𝑥5 ∨ ̅̅̅
𝑥3 ̅̅̅
𝑥4 𝑥5 ).
Таблица 10
Определение веса производной
𝒙𝟏 𝒙𝟑
00
01
10
11
00
0
0
0
0
𝒙𝟒 𝒙𝟓
01 10
0
0
1
0
0
1
1
0
34
11
0
1
1
0
𝝏𝒇
𝝏𝒙𝟐
𝜕𝑓
Вес производной: 𝑃 (𝜕𝑥 ) = 5.
2
Производная функции по переменной х3 равна:
𝜕𝑓
= (𝑥1 ̅̅̅
𝑥2 ∨ 𝑥1 ̅̅̅
𝑥5 ∨ 𝑥1 𝑥2 𝑥4 ∨ ̅̅̅
𝑥2 𝑥5 )⨁( ̅̅̅
𝑥1 𝑥4 ∨ 𝑥1 𝑥2 𝑥4 ∨ ̅̅̅
𝑥4 𝑥5 ).
𝜕𝑥3
Таблица 11
𝝏𝒇
Определение веса производной 𝝏𝒙
𝟑
𝒙𝟏 𝒙𝟐
00
01
10
11
𝜕𝑓
)
𝜕𝑥3
Вес производной: 𝑃 (
𝒙𝟒 𝒙𝟓
01 10
0
1
1
1
0
1
1
0
00
0
0
1
0
11
0
1
1
0
= 8.
Производная функции по переменной х4 равна:
𝜕𝑓
= (𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥3 ∨ 𝑥1 𝑥3 ̅̅̅
𝑥5 ∨ 𝑥1 𝑥2 ∨ ̅̅̅
𝑥2 𝑥3 𝑥5 )⨁(𝑥1 ̅̅̅
𝑥2 𝑥3 ∨
𝜕𝑥4
∨ 𝑥1 𝑥3 ̅̅̅
𝑥5 ∨ ̅̅̅
𝑥2 𝑥3 𝑥5 ∨ ̅̅̅𝑥
𝑥3 5 ).
Таблица 12
𝝏𝒇
Определение веса производной
𝝏𝒙𝟒
𝒙𝟏 𝒙𝟐
00
01
10
11
𝜕𝑓
)
𝜕𝑥4
Вес производной: 𝑃 (
𝒙𝟑 𝒙𝟓
01 10
0
0
0
0
1
0
0
0
00
1
1
0
1
11
0
0
0
1
= 5.
Производная функции по переменной х5 равна:
𝜕𝑓
= (𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ 𝑥
̅̅̅1 ̅̅̅
𝑥3 𝑥4 ∨ 𝑥1 𝑥2 𝑥4 ∨ ̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥3 ̅̅̅
𝑥4 )⨁
𝜕𝑥5
⨁(𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ 𝑥
̅̅̅1 ̅̅̅
𝑥3 𝑥4 ∨ 𝑥1 𝑥3 ∨ 𝑥1 𝑥2 𝑥4 ).
35
Таблица 13
Определение веса производной
𝒙𝟏 𝒙𝟐
00
01
10
11
00
1
1
1
1
𝒙𝟑 𝒙𝟒
01 10
0
1
0
0
0
0
0
1
𝝏𝒇
𝝏𝒙𝟓
11
1
0
0
0
Вес производной равен количеству единиц в таблице 13:
= 7.
𝜕𝑓
𝑃 (𝜕𝑥 )
5
𝜕𝑓
Максимальное значение 𝑚𝑎𝑥 𝑃 (𝜕𝑥 ) получено при дифференци𝑖
𝑖
ровании функции 𝑓 по переменной x3. Исключая эту переменную, получаем две остаточные функции: единичную 𝑓 (𝑥1 , 𝑥2 , 𝑥3 =
1, 𝑥4 , 𝑥5 ) = 𝑓(1) и нулевую 𝑓 (𝑥1 , 𝑥2 , 𝑥3 = 0, 𝑥4 , 𝑥5 ) = 𝑓(0):
𝑓(1) = 𝑥1 ̅̅̅
𝑥2 ∨ 𝑥1 ̅̅̅
𝑥5 ∨ 𝑥1 𝑥2 𝑥4 ∨ ̅̅̅
𝑥2 𝑥5,
𝑓(0) = ̅̅̅
𝑥1 𝑥4 ∨ 𝑥1 𝑥2 𝑥4 ∨ ̅̅̅
𝑥4 𝑥5.
Теперь определяем оптимальное исключение переменных для
единичной остаточной функции:
𝜕𝑓(1)
𝜕𝑥1
= ( ̅̅̅
𝑥2 ∨ ̅̅̅
𝑥5 ∨ 𝑥2 𝑥4 ∨ ̅̅̅
𝑥2 𝑥5 )⨁ ̅̅̅
𝑥2 𝑥5 .
Таблица 14
Определение веса производной
𝒙𝟐
0
1
00
1
1
𝜕𝑓(1)
)
𝜕𝑥1
Вес производной: 𝑃 (
𝒙𝟒 𝒙𝟓
01 10
0
1
0
1
𝝏𝒇(𝟏)
𝝏𝒙𝟏
11
0
1
= 5.
Производная функции по переменной х2 равна:
𝜕𝑓(1)
= (𝑥1 ̅̅̅
𝑥5 ∨ 𝑥1 𝑥4 )⨁(𝑥1 ∨ 𝑥1 ̅̅̅
𝑥5 ∨ 𝑥5 )
𝜕𝑥2
36
Таблица 15
Определение веса производной
𝒙𝟏
0
1
00
0
0
𝜕𝑓(1)
)
𝜕𝑥2
Вес производной: 𝑃 (
𝒙𝟒 𝒙𝟓
01 10
1
0
1
0
𝝏𝒇(𝟏)
𝝏𝒙𝟐
11
1
0
= 3.
Производная функции по переменной х4 равна:
𝜕𝑓(1)
= (𝑥1 ̅̅̅
𝑥2 ∨ 𝑥1 ̅̅̅
𝑥5 ∨ 𝑥1 𝑥2 ∨ ̅̅̅
𝑥2 𝑥5 )⨁(𝑥1 ̅̅̅
𝑥2 ∨ 𝑥1 ̅̅̅
𝑥5 ∨ ̅̅̅
𝑥2 𝑥5 )
𝜕𝑥4
Таблица 16
Определение веса производной
𝒙𝟏
0
1
00
0
0
𝜕𝑓(1)
)
𝜕𝑥4
Вес производной: 𝑃 (
𝒙𝟐 𝒙𝟓
01 10
0
0
0
0
𝝏𝒇(𝟏)
𝝏𝒙𝟒
11
0
1
= 1.
Производная функции по переменной х5 равна:
𝜕𝑓(1)
= (𝑥1 ̅̅̅
𝑥2 ∨ 𝑥1 𝑥2 𝑥4 ∨ ̅̅̅)⨁(𝑥
𝑥2
𝑥2 ∨ 𝑥1 ∨ 𝑥1 𝑥2 𝑥4 )
1 ̅̅̅
𝜕𝑥5
Таблица 17
Определение веса производной
𝒙𝟏
0
1
00
1
0
𝜕𝑓(1)
)
𝜕𝑥5
Вес производной: 𝑃 (
𝒙𝟐 𝒙𝟒
01 10
1
0
0
1
𝝏𝒇(𝟏)
𝝏𝒙𝟓
11
0
0
= 3.
Исключаем переменную 𝑥1 , получаем остаточные функции вида:
37
𝑓 (𝑥1 = 1, 𝑥2 , 𝑥3 = 1, 𝑥4 , 𝑥5 ) = 𝑓(1,1) = ̅̅̅
𝑥2 ∨ ̅̅̅
𝑥5 ∨ 𝑥2 𝑥4 ∨ ̅̅̅
𝑥2 𝑥5 =
𝑥2 ∨ ̅̅̅
̅̅̅
𝑥5 ∨ 𝑥4 , 𝑓 (𝑥1 = 0, 𝑥2 , 𝑥3 = 1, 𝑥4 , 𝑥5 ) = 𝑓(1,0) = ̅̅̅
𝑥2 𝑥5 .
Для нулевой остаточной функции:
𝑓(0) = ̅̅̅
𝑥1 𝑥4 ∨ 𝑥1 𝑥2 𝑥4 ∨ ̅̅̅
𝑥4 𝑥5 = ̅̅̅
𝑥1 𝑥4 ∨ 𝑥2 𝑥4 ∨ ̅̅̅
𝑥4 𝑥5 .
Производная х1 от нулевой остаточной функции:
𝜕𝑓(0)
𝜕𝑥1
= (𝑥2 𝑥4 ∨ ̅̅̅
𝑥4 𝑥5 )⨁(𝑥4 ∨ 𝑥2 𝑥4 ∨ ̅̅̅
𝑥4 𝑥5 ).
Таблица 18
Определение веса производной
𝒙𝟐
0
1
00
0
0
𝜕𝑓(0)
)
𝜕𝑥1
Вес производной: 𝑃 (
𝒙𝟒 𝒙𝟓
01 10
0
1
0
0
𝝏𝒇(𝟎)
𝝏𝒙𝟏
11
1
0
= 2.
Производная х2 от нулевой остаточной функции:
𝜕𝑓(0)
= (𝑥
̅̅̅1 𝑥4 ∨ 𝑥4 ∨ ̅̅̅
𝑥4 𝑥5 )⨁(𝑥
̅̅̅1 𝑥4 ∨ ̅̅̅
𝑥4 𝑥5 )
𝜕𝑥2
Определение веса производной
𝒙𝟏
0
1
00
0
0
𝜕𝑓(0)
)
𝜕𝑥2
Вес производной: 𝑃 (
𝒙𝟒 𝒙𝟓
01 10
0
0
0
1
𝝏𝒇(𝟎)
𝝏𝒙𝟐
11
0
1
= 2.
Производная х4 от нулевой остаточной функции:
𝜕𝑓(0)
𝜕𝑥4
= (𝑥
̅̅̅1 ∨ 𝑥2 )⨁ 𝑥5.
38
Таблица 19
Таблица 20
Определение веса производной
𝒙𝟏
0
1
00
1
0
𝜕𝑓(0)
)
𝜕𝑥4
Вес производной: 𝑃 (
𝒙𝟐 𝒙𝟓
01 10
0
1
1
1
𝝏𝒇(𝟎)
𝝏𝒙𝟒
11
0
0
= 4.
Производная х5 от нулевой остаточной функции:
𝜕𝑓(0)
𝜕𝑥5
= (𝑥
̅̅̅1 𝑥4 ∨ 𝑥2 𝑥4 ∨ ̅̅̅
𝑥4 )⨁(𝑥
̅̅̅1 𝑥4 ∨ 𝑥2 𝑥4 ).
Таблица 21
Определение веса производной
𝒙𝟏
0
1
00
1
1
𝜕𝑓(0)
)
𝜕𝑥5
Вес производной: 𝑃 (
𝒙𝟐 𝒙𝟒
01 10
0
1
0
1
𝝏𝒇(𝟎)
𝝏𝒙𝟓
11
0
0
= 4.
Из вычислений следует, что две производных по 𝑥4 и по 𝑥5 имеют
максимальный вес, выбираем ту производную, у которой единичные и
нулевые остаточные функции имеют минимальное количество переменных. Следовательно, исключаем переменную 𝑥4 и получаем следующие остаточные функции:
𝑓 (𝑥1 , 𝑥2 , 𝑥3 = 0, 𝑥4 = 1, 𝑥5 ) = 𝑓(0,1) = ̅̅̅
𝑥1 ∨ 𝑥2 ,
𝑓 (𝑥1 , 𝑥2 , 𝑥3 = 0, 𝑥4 , = 0 𝑥5 ) = 𝑓(0,0) = 𝑥5 .
Для построения логической схемы используются логические элементы (рис. 2) и блоки исключения переменной (рис. 6). В результате
получается логическая схема, представленная на рис. 7.
39
Критерий оптимального исключения переменных имеет эвристический характер, что основано на предположении о том, что чем
𝜕𝑓
больше вес производной 𝑃 (𝜕𝑥 ), тем больше функция 𝑓 зависит от
𝑖
переменной 𝑥𝑖 . Если имеются блоки исключения k переменных, то
построение схемы проводят аналогично, вычисляя вес производных
𝜕𝑘 𝑓
).
𝜕(𝑥𝑖1 ,𝑥𝑖2 ,…,𝑥𝑖𝑘 )
k-го порядка 𝑃(
f(0,0)
&
f(0,1)
&
xi
xj
f(0)
&
1
1
f(...)=(xi & xj & f(0,0)) V (xi & xj & f(0,1)) V
V (xi & xj & f(1,0)) V (xi & xj & f(1,1))
f(…)=(xi & f(0)) V (xi & f(1))
xi
f(1,0)
&
&
f(1)
f(1,1)
а
&
б
Рис. 6. Блоки исключения переменных:
а – одной переменной; б – двух переменных
x1
1
x5 f(0,0)
f(0,1)
x2
x4
&
1
f(0)
&
&
x5
&
x3
f(1,0)
&
x1
1
x4
x5
1
1
&
f(1)
&
f(1,1)
Рис. 7. Логическая схема, реализующая функцию
𝑓 (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ) = 𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥3 𝑥4 ∨ 𝑥1 𝑥3 ̅̅̅
𝑥5 ∨
∨ 𝑥1 𝑥2 𝑥4 ∨ ̅̅̅
𝑥2 𝑥3 𝑥5 ∨ ̅̅̅
𝑥3 ̅̅̅
𝑥4 𝑥5
40
f
2. СТРУКТУРА КУРСОВОГО ПРОЕКТА
1. Титульный лист1.
2. Задание.
3. Содержание.
4. Основные теоретические положения2.
5. Расчетная часть3.
6. Синтез логической схемы.
7. Литература4.
Образец оформления титульного листа дается в Приложении 1.
Пример оформления расчетной части и образец синтеза логической схемы даются в
Приложениях 3, 4.
3
Основные теоретические положения берутся из данного учебно-методического пособия и предложенной литературы, в соответствии с заданием на курсовое проектирование.
4
Список литературы следует оформлять в соответствии с ГОСТ (образец дается в
Приложении 5).
1
2
41
Литература
1. Фундаментальные основы дискретной математики. Информационная математика: учеб. для вузов. СПб.: Изд-во АТП, 2014. 532 с.
2. Поспелов Д. А. Логические методы анализа и синтеза схем:
учеб. для вузов [для аспирантов]. Екатеринбург: АТП, 2014. 367 с.
3. Закревский А. Д., Поттосин Ю. В., Черемисинова Л. Д. Логические основы проектирования дискретных устройств. М.: Физматлит,
2007. 589 с.
42
Приложение 1
Образец оформления титульного листа
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФГБОУ ВО «СЕВЕРО-КАВКАЗСКИЙ ГОРНО-МЕТАЛЛУРГИЧЕСКИЙ
ИНСТИТУТ (ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ)»
Факультет ЭЛЕКТРОННОЙ ТЕХНИКИ
Кафедра ПРОМЫШЛЕННОЙ ЭЛЕКТРОНИКИ
КУРСОВОЙ ПРОЕКТ
На тему: «СИНТЕЗ КОМБИНАЦИОННОЙ СХЕМЫ МЕТОДОМ
КАСКАДОВ ПО ЗАДАННОЙ ФУНКЦИИ АЛГЕБРЫ ЛОГИКИ»
Выполнил: студент ___________________
___________________
группа:__________________
Руководитель:________________________
Владикавказ – 20__ г.
43
Приложение 2
Пример задания
Синтез логической схемы, реализующей функцию алгебры логики методом каскадов:
𝑓 (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ) = 𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥3 𝑥4 ∨ ̅̅̅
𝑥1 𝑥4 𝑥5 ∨ 𝑥2 𝑥4 ̅̅̅
𝑥5 ∨
𝑥2 ̅̅̅
𝑥3 𝑥5 ∨ 𝑥2 𝑥3 𝑥4 ∨ ̅̅̅
𝑥2 ̅̅̅
𝑥3 ̅̅̅
𝑥4 .
44
Приложение 3
Пример оформления расчетной части
2. Расчетная часть
𝑓 (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ) = 𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥3 𝑥4 ∨ ̅̅̅
𝑥1 𝑥4 𝑥5 ∨ 𝑥2 𝑥4 ̅̅̅
𝑥5 ∨
𝑥2 ̅̅̅
𝑥3 𝑥5 ∨ 𝑥2 𝑥3 𝑥4 ∨ ̅̅̅
𝑥2 ̅̅̅
𝑥3 ̅̅̅.
𝑥4
𝜕𝑓
2.1. Определяем, переменную 𝑥𝑖 , по которой производная 𝜕𝑥 име𝑖
ет максимальный вес, для этого находим производные
𝑓 (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ) по все переменным 𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 :
от
𝜕𝑓
= (𝑥
̅̅̅2 𝑥3 ∨ 𝑥2 𝑥4 ̅̅̅
𝑥5 ∨ 𝑥2 ̅̅̅
𝑥3 𝑥5 ∨ 𝑥2 𝑥3 𝑥4 ∨ ̅̅̅
𝑥2 ̅̅̅
𝑥3 ̅̅̅)⨁(
𝑥4
𝑥3 𝑥4 ∨
̅̅̅
𝜕𝑥1
∨ 𝑥4 𝑥5 ∨ 𝑥2 𝑥4 ̅̅̅
𝑥5 ∨ 𝑥2 ̅̅̅
𝑥3 𝑥5 ∨ 𝑥2 𝑥3 𝑥4 ∨ ̅̅̅
𝑥2 ̅̅̅
𝑥3 ̅̅̅).
𝑥4
Вес производной по переменной 𝑥1 вычисляем по таблице истинности:
𝒙𝟒 𝒙𝟓
𝒙𝟐 𝒙𝟑
00
01
10
11
00
0
1
0
0
01
0
1
0
0
10
1
1
0
0
11
1
0
0
0
𝜕𝑓
Таким образом, вес производной 𝑃 (𝜕𝑥 ) = 5.
1
Производная х2 от функции f:
𝜕𝑓
= (𝑥
̅̅̅1 ̅̅̅
𝑥3 𝑥4 ∨ ̅̅̅
𝑥1 𝑥4 𝑥5 ∨ 𝑥4 ̅̅̅
𝑥5 ∨ ̅̅̅
𝑥3 𝑥5 ∨ 𝑥3 𝑥4 )⨁(𝑥1 𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥3 𝑥4
𝜕𝑥2
∨ ̅̅̅
𝑥1 𝑥4 𝑥5 ∨ ̅̅̅
𝑥3 ̅̅̅).
𝑥4
Вес производной по переменной 𝑥2 вычисляем по таблице истинности:
𝒙𝟒 𝒙𝟓
𝒙𝟏 𝒙𝟑
00
01
10
11
00
1
0
1
1
01
0
0
0
1
45
10
0
1
1
0
11
0
0
1
0
𝜕𝑓
Таким образом, вес производной 𝑃 (𝜕𝑥 ) = 7.
2
Производная х3 от функции f:
𝜕𝑓
= (𝑥1 ̅̅̅
𝑥2 ∨ ̅̅̅
𝑥1 𝑥4 𝑥5 ∨ 𝑥2 𝑥4 ̅̅̅
𝑥5 ∨ 𝑥2 𝑥4 )⨁(𝑥
̅̅̅1 𝑥4 ∨ ̅̅̅
𝑥1 𝑥4 𝑥5
𝜕𝑥3
∨ 𝑥2 𝑥4 ̅̅̅
𝑥5 ∨ 𝑥2 𝑥5 ∨ ̅̅̅
𝑥2 ̅̅̅).
𝑥4
Вес производной по переменной 𝑥3 вычисляем по таблице истинности:
𝒙𝟒 𝒙𝟓
𝒙𝟏 𝒙𝟐
00
01
10
11
00
1
0
1
0
01
1
1
0
1
10
1
0
1
0
𝜕𝑓
)
𝜕𝑥3
Таким образом, вес производной 𝑃 (
Производная х4 от функции f:
11
0
0
1
0
= 8.
𝜕𝑓
= (𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥3 ∨ ̅̅̅
𝑥1 𝑥5 ∨ 𝑥2 ̅̅̅
𝑥5 ∨ 𝑥2 ̅̅̅
𝑥3 𝑥5 ∨∨ 𝑥2 𝑥3 )⨁(𝑥1 ̅̅̅
𝑥2 𝑥3
𝜕𝑥4
∨ 𝑥2 ̅̅̅
𝑥3 𝑥5 ∨ ̅̅̅
𝑥2 ̅̅̅).
𝑥3
Вес производной по переменной 𝑥4 вычисляем по таблице истинности:
𝒙𝟑 𝒙𝟓
𝒙 𝟏 𝒙𝟐
00
01
10
11
00
0
1
1
1
01
0
0
1
0
10
0
1
0
1
11
1
1
0
1
𝜕𝑓
Таким образом, вес производной 𝑃 (𝜕𝑥 ) = 9.
4
Производная х5 от функции f:
𝜕𝑓
= (𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥3 𝑥4 ∨ ̅̅̅
𝑥1 𝑥4 ∨ 𝑥2 ̅̅̅
𝑥3 ∨ 𝑥2 𝑥3 𝑥4 ∨ ̅̅̅
𝑥2 ̅̅̅
𝑥3 ̅̅̅)⨁
𝑥4
𝜕𝑥5
⨁(𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥3 𝑥4 ∨ 𝑥2 𝑥4 ∨ 𝑥2 𝑥3 𝑥4 ∨ ̅̅̅
𝑥2 ̅̅̅
𝑥3 ̅̅̅).
𝑥4
46
Вес производной по переменной 𝑥5 вычисляем по таблице истинности:
𝒙𝟏 𝒙𝟐
00
01
10
11
00
0
1
0
1
𝒙𝟑 𝒙𝟒
10
0
0
0
0
01
0
0
0
0
𝜕𝑓
)
𝜕𝑥5
Таким образом, вес производной 𝑃 (
11
1
0
0
0
= 3.
𝜕𝑓
Максимальное значение 𝑚𝑎𝑥 𝑃 (𝜕𝑥 ) получено при дифференци𝑖
𝑖
ровании функции 𝑓 по переменной x4. Исключая эту переменную, получаем две остаточные функции: единичную 𝑓 (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 = 1, 𝑥5 ) =
𝑓(1) и нулевую 𝑓 (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 = 0, 𝑥5 ) = 𝑓(0):
𝑓(1) = 𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥3 ∨ ̅̅̅
𝑥1 𝑥5 ∨ 𝑥2 ̅̅̅
𝑥5 ∨ 𝑥2 ̅̅̅
𝑥3 𝑥5 ∨ 𝑥2 𝑥3 .
𝑓(0) = 𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ 𝑥2 ̅̅̅
𝑥3 𝑥5 ∨ ̅̅̅
𝑥2 ̅̅̅.
𝑥3
2.2. Нулевая остаточная функция 𝑓(0) зависит от четырех переменных. Определяем оптимальное исключение переменных для нулевой остаточной функции. Для этого необходимо вычислить веса
производных по 𝑥1 , 𝑥2 , 𝑥3 , 𝑥5 :
𝜕𝑓(0)
= ( ̅̅̅
𝑥2 𝑥3 ∨ 𝑥2 ̅̅̅
𝑥3 𝑥5 ∨ ̅̅̅
𝑥2 ̅̅̅)⨁(𝑥
𝑥3
𝑥3 𝑥5 ∨ ̅̅̅
𝑥2 ̅̅̅)
𝑥3
2 ̅̅̅
𝜕𝑥1
Вес производной нулевой остаточной функции по переменной 𝑥1
вычисляем по таблице истинности:
𝒙𝟑 𝒙𝟓
𝒙𝟐
0
1
00
0
0
01
0
0
10
1
0
𝜕𝑓(0)
)
𝜕𝑥1
Таким образом, вес производной 𝑃 (
11
1
0
= 2.
Производная функции по переменной х2 равна:
47
𝜕𝑓(0)
= ( ̅̅̅
𝑥3 𝑥5 )⨁(𝑥1 𝑥3 ∨ ̅̅̅).
𝑥3
𝜕𝑥2
Вес производной нулевой остаточной функции по переменной 𝑥2
вычисляем по таблице истинности:
𝒙𝟑 𝒙𝟓
𝒙𝟏
0
1
00
1
0
01
0
0
10
0
1
𝜕𝑓(0)
)
𝜕𝑥2
Таким образом, вес производной 𝑃 (
11
0
1
= 3.
Производная функции по переменной х3 равна:
𝜕𝑓(0)
= (𝑥1 ̅̅̅)⨁(𝑥
𝑥2
𝑥2 ).
2 𝑥5 ∨ ̅̅̅
𝜕𝑥3
Вес производной нулевой остаточной функции по переменной 𝑥3
вычисляем по таблице истинности:
𝒙𝟏 𝒙𝟐
𝒙𝟓
0
1
00
1
0
01
0
1
10
0
0
𝜕𝑓(0)
)
𝜕𝑥3
Таким образом, вес производной 𝑃 (
11
0
1
= 3.
Производная функции по переменной х5 равна:
𝜕𝑓(0)
= (𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ 𝑥2 ̅̅̅
𝑥3 ∨ ̅̅̅
𝑥2 ̅̅̅)⨁(𝑥
𝑥3
𝑥2 𝑥3 ∨ ̅̅̅
𝑥2 ̅̅̅)
𝑥3
1 ̅̅̅
𝜕𝑥5
Вес производной нулевой остаточной функции по переменной 𝑥5
вычисляем по таблице истинности:
𝒙𝟏 𝒙𝟐
𝒙𝟑
0
1
00
0
0
01
1
0
48
10
0
0
11
1
0
𝜕𝑓(0)
) = 2.
𝜕𝑥5
𝑚𝑎𝑥 𝑃 (𝜕𝑓(0)) получено
𝜕𝑥𝑖
𝑖
Таким образом, вес производной 𝑃 (
Максимальное значение
при дифферен-
цировании нулевой остаточной функции 𝑓(0) по переменным x2 и x3 –
выбираем ту производную, у которой единичные и нулевые остаточные функции имеют минимальное количество переменных. В нашем
случае остаточные функции у производных по x2 и x3 одинаковые по
количеству переменных, следовательно, исключаем переменную x2,
получаем две остаточные функции: единичную 𝑓 (𝑥1 , 𝑥2 = 1, 𝑥3 , 𝑥4 =
0, 𝑥5 ) = 𝑓(01) и нулевую 𝑓 (𝑥1 , 𝑥2 = 0, 𝑥3 , 𝑥4 = 0, 𝑥5 ) = 𝑓(00):
𝒇(𝟎𝟏) = ̅̅̅
𝒙𝟑 𝒙𝟓 .
𝒇(𝟎𝟎) = 𝒙𝟏 𝒙𝟑 ∨ ̅̅̅
𝒙𝟑 = 𝒙𝟏 ∨ ̅̅̅.
𝒙𝟑
Теперь остаточные функции 𝑓(01) и 𝑓(00) зависят от двух переменных, следовательно, расчеты с нулевой остаточной функцией 𝑓(0)
завершены.
2.3. Единичная остаточная функция 𝑓(1) = 𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥3 ∨
𝑥1 𝑥5 ∨ 𝑥2 ̅̅̅
̅̅̅
𝑥5 ∨ 𝑥2 ̅̅̅
𝑥3 𝑥5 ∨ 𝑥2 𝑥3 зависит от четырех переменных. Определяем оптимальное исключение переменных для единичной остаточной функции. Для этого необходимо вычислить веса производных
по 𝑥1 , 𝑥2 , 𝑥3 , 𝑥5 .
Производная функции по переменной х1 равна:
𝜕𝑓(1)
= ( ̅̅̅
𝑥2 𝑥3 ∨ 𝑥2 ̅̅̅
𝑥5 ∨ 𝑥2 ̅̅̅
𝑥3 𝑥5 ∨ 𝑥2 𝑥3 )⨁( ̅̅̅
𝑥3 ∨ 𝑥5 ∨ 𝑥2 ̅̅̅
𝑥5 ∨ 𝑥2 ̅̅̅
𝑥3 𝑥5
𝜕𝑥1
∨ 𝑥2 𝑥3 ).
Вес производной единичной остаточной функции по переменной
𝑥1 вычисляем по таблице истинности:
𝒙𝟑 𝒙𝟓
𝒙𝟐
0
1
00
1
0
01
1
0
10
1
0
𝜕𝑓(1)
)
𝜕𝑥1
Таким образом, вес производной 𝑃 (
11
0
0
= 3.
Производная функции по переменной х2 равна:
𝜕𝑓(1)
= (𝑥
̅̅̅1 ̅̅̅
𝑥3 ∨ ̅̅̅
𝑥1 𝑥5 ∨ ̅̅̅
𝑥5 ∨ ̅̅̅
𝑥3 𝑥5 ∨ 𝑥3 )⨁(𝑥1 𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥3 ∨ ̅̅̅
𝑥1 𝑥5 ).
𝜕𝑥2
49
Вес производной единичной остаточной функции по переменной
𝑥2 вычисляем по таблице истинности:
𝒙𝟏 𝒙𝟓
𝒙𝟑
0
1
00
0
1
01
0
1
10
1
0
𝜕𝑓(1)
)
𝜕𝑥2
Таким образом, вес производной 𝑃 (
11
1
0
= 4.
Производная функции по переменной х3 равна:
𝜕𝑓(1)
𝜕𝑥3
= (𝑥1 ̅̅̅
𝑥2 ∨ ̅̅̅
𝑥1 𝑥5 ∨ 𝑥2 ̅̅̅
𝑥5 ∨ 𝑥2 )⨁(𝑥
̅̅̅1 ∨ ̅̅̅
𝑥1 𝑥5 ∨ 𝑥2 ̅̅̅
𝑥5 ∨ 𝑥2 𝑥5 ).
Вес производной единичной остаточной функции по переменной
𝑥3 вычисляем по таблице истинности:
𝒙𝟏 𝒙𝟐
𝒙𝟓
0
1
00
1
0
01
0
0
10
1
1
𝜕𝑓(1)
)
𝜕𝑥3
Таким образом, вес производной 𝑃 (
11
0
0
= 3.
Производная функции по переменной х5 равна:
𝜕𝑓(1)
= (𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥3 ∨ ̅̅̅
𝑥1 ∨ 𝑥2 ̅̅̅
𝑥3 ∨ 𝑥2 𝑥3 )⨁(𝑥1 ̅̅̅
𝑥2 𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥3 ∨ 𝑥2
𝜕𝑥5
∨ 𝑥2 𝑥3 )
Вес производной единичной остаточной функции по переменной
𝑥5 вычисляем по таблице истинности:
𝒙𝟐 𝒙𝟑
𝒙𝟏
0
1
00
0
0
01
1
0
10
0
0
𝜕𝑓(1)
)
𝜕𝑥5
Таким образом, вес производной 𝑃 (
50
11
0
0
= 1.
𝜕𝑓(1)
Максимальное значение 𝑚𝑎𝑥 𝑃 (
) получено при дифферен𝜕𝑥𝑖
𝑖
цировании единичной остаточной функции 𝑓(1) по переменной x2.
Исключаем переменную x2, получаем две остаточные функции: единичную 𝑓 (𝑥1 , 𝑥2 = 1, 𝑥3 , 𝑥4 = 1, 𝑥5 ) = 𝑓(11) и нулевую 𝑓 (𝑥1 , 𝑥2 =
0, 𝑥3 , 𝑥4 = 1, 𝑥5 ) = 𝑓(10):
𝒇(𝟏𝟏) = ̅̅̅
𝒙𝟏 ̅̅̅
𝒙𝟑 ∨ ̅̅̅
𝒙𝟏 𝒙𝟓 ∨ ̅̅̅
𝒙𝟓 ∨ ̅̅̅
𝒙𝟑 𝒙𝟓 ∨ 𝒙𝟑 = 𝟏.
𝒇(𝟏𝟎) = 𝒙𝟏 𝒙𝟑 ∨ ̅̅̅
𝒙𝟏 ̅̅̅
𝒙𝟑 ∨ ̅̅̅
𝒙𝟏 𝒙𝟓 .
2.4. Единичная остаточная функция 𝑓(11) получилась равна единице, а нулевая остаточная функция 𝑓(10) зависит от трех переменных. Следовательно, определяем оптимальное исключение переменных для нулевой остаточной функции 𝑓(10). Для этого необходимо
вычислить веса производных по 𝑥1 , 𝑥3 , 𝑥5 .
Производная нулевой остаточной функции по переменной х1 равна:
𝜕𝑓(10)
= 𝑥3 ⨁( ̅̅̅
𝑥3 ∨ 𝑥5 )
𝜕𝑥1
Вес производной нулевой остаточной функции по переменной 𝑥1
вычисляем по таблице истинности:
𝒙𝟓
𝒙𝟑
0
1
0
1
1
1
0
0
𝜕𝑓(10)
)
𝜕𝑥1
Таким образом, вес производной: 𝑃 (
= 2.
Производная нулевой остаточной функции по переменной х3 равна:
𝜕𝑓(10)
= (𝑥1 ∨ ̅̅̅
𝑥1 𝑥5 )⨁( ̅̅̅
𝑥1 ∨ ̅̅̅
𝑥1 𝑥5 )
𝜕𝑥3
Вес производной вычисляем по таблице истинности:
𝒙𝟓
𝒙𝟏
0
1
0
1
1
51
1
0
1
𝜕𝑓(10)
)
𝜕𝑥3
Таким образом, вес производной 𝑃 (
= 3.
Производная нулевой остаточной функции по переменной х5 равна:
𝜕𝑓(10)
= (𝑥1 𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅
𝑥3 ∨ ̅̅̅)⨁(
𝑥1
𝑥1 𝑥3 ∨ ̅̅̅
𝑥1 ̅̅̅)
𝑥3
𝜕𝑥5
Вес производной вычисляем по таблице истинности:
𝒙𝟑
𝒙𝟏
0
1
0
0
0
1
1
0
𝜕𝑓(10)
) = 1.
𝜕𝑥5
𝑚𝑎𝑥 𝑃 (𝜕𝑓(10)) получено
𝜕𝑥𝑖
𝑖
Таким образом, вес производной: 𝑃 (
Максимальное значение
при дифферен-
цировании нулевой остаточной функции 𝑓(10) по переменной x3. Исключаем переменную x3, получаем две остаточные функции: единичную 𝑓 (𝑥1 , 𝑥2 = 0, 𝑥3 = 1, 𝑥4 = 1, 𝑥5 ) = 𝑓(101) и нулевую 𝑓 (𝑥1 , 𝑥2 =
0, 𝑥3 = 0, 𝑥4 = 1, 𝑥5 ) = 𝑓(100):
𝒇(𝟏𝟎𝟏) = 𝒙𝟏 ∨ ̅̅̅
𝒙𝟏 𝒙𝟓 = 𝒙𝟏 ∨ 𝒙𝟓 .
𝒇(𝟏𝟎𝟎) = ̅̅̅
𝒙𝟏 ∨ ̅̅̅
𝒙𝟏 𝒙𝟓 = ̅̅̅.
𝒙𝟏
Теперь остаточные функции 𝑓(101) и 𝑓(100) зависят от двух и
одной переменной, соответственно. Следовательно, расчеты с единичной остаточной функцией 𝑓(1) завершены.
В результате вычислений синтезируем логическую схему, реализующую
заданную
функцию
𝑓 (𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥5 ) = 𝑥1 ̅̅̅
𝑥2 𝑥3 ∨
𝑥1 ̅̅̅
̅̅̅
𝑥3 𝑥4 ∨ ̅̅̅
𝑥1 𝑥4 𝑥5 ∨ 𝑥2 𝑥4 ̅̅̅
𝑥5 ∨ 𝑥2 ̅̅̅
𝑥3 𝑥5 ∨ 𝑥2 𝑥3 𝑥4 ∨ ̅̅̅
𝑥2 ̅̅̅
𝑥3 ̅̅̅
𝑥4
(Приложение 4).
52
Приложение 4
3. Синтез логической схемы
1
x1
x3
f(0,0)
&
&
x3
x1
f(0,1)
x2
f(0)
&
x5
1
1
&
f(1,0,0)
&
x1
1
x3
f(1,0,1)
1
x4
f(1,0)
&
&
x5
x2
1
1
1
f
&
f(1)
&
f(1,1)
СКГМИ КП 20__ ДМ
Лит
Изм.
Лист
№ докум.
Подпись
Масса
Масштаб
Дата
Схема логическая
Разраб.
Провер.
Т. контр.
Лист 1
Листов 1
Реценз.
гр. ЭМб-___-1
Н. контр.
53
Приложение 5
Образец оформления списка литературы
4. Литература
1. Фундаментальные основы дискретной математики. Информационная математика: учеб. для вузов. СПб.: Изд-во АТП, 2014. 532 с.
2. Поспелов Д. А., Логические методы анализа и синтеза схем:
учеб. для вузов [для аспирантов]. Екатеринбург: АТП, 2014. 367 с.
3. Закревский А. Д., Поттосин Ю. В., Черемисинова Л. Д. Логические основы проектирования дискретных устройств. М.: Физматлит,
2007. 589 с.
54
Download