Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Храбров Е. А. 2 page
Логическая функция может быть задана четырьмя способами: 1) словесно (описанием ситуации); 2) алгебраическим выражением; 3) таблицей истинности; 4) электрической схемой, состоящей из контактов переключателей. Например: 1. Лифт можно вызвать, если закрыты двери лифта на первом этаже и на втором этаже и на третьем этаже. 2. Если закрытые двери на первом этаже обозначить как А = 1, на втором как В = 1, на третьем как С = 1, возможность вызвать лифт обозначить как F = 1, а логическую функцию И обозначить знаком умножения "×", то алгебраическое выражение будет иметь вид: F = A×B×C
3. В таблицу истинности в левой колонке заносятся все возможные комбинации входных аргументов, а в правой колонке записывают соответствующие этим комбинациям значения выходной функции. Входные комбинации записываются в порядке возрастания их значений от всех нулей до всех единиц сверху вниз. Таблица истинности, соответствующая данному примеру будет иметь следующий вид:
А В С F –––––––––––––––––– 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 4. Электрическая контактная схема обладает хорошей наглядностью, но может быть легко построена лишь для самых простых логических функций. Для нашего примера эта схема может иметь следующий вид:
4.1. ФУНКЦИИ булева базиса И, ИЛИ, НЕ
Наиболее часто встречаются следующие названия и буквенные обозначения функции И: логическое умножение, конъюнкция, совпадение, AND, И. Возможные виды алгебраической записи функции И:
F = A & B; F = A ^ B; F = A x B; F = A × B; F = AB.
Контактная схема для функции И для двух переменных A и B:
Таблица истинности функции 2И:
А В F –––––––––––– 0 0 0 0 1 0 1 0 0 1 1 1
В зарубежных схемах логический элемент И (AND – gate) обозначают следующим образом:
Наиболее часто встречаются следующие названия и буквенные обозначения функции ИЛИ: логическое сложение, дизъюнкция, OR, ИЛИ. Алгебраическая запись функции ИЛИ: F = A v B; F = A + B.
Контактная схема для функции 2ИЛИ:
Таблица истинности функции 2ИЛИ: А В F –––––––––––– 0 0 0 0 1 1 1 0 1 1 1 1
В зарубежных схемах логический элемент ИЛИ (OR – gate) обозначают следующим образом:
Наиболее часто встречаются следующие названия и буквенные обозначения функции НЕ: логическое отрицание, инверсия, дополнение, NOT, НЕ. Возможные виды алгебраической записи функции НЕ:
F = ù A; F = A¢, F =`A.
Контактная схема для функции НЕ:
Таблица истинности функции НЕ:
А F ––––––– 0 1 1 0
В зарубежных схемах логический элемент НЕ (NOT) обозначают следующим образом:
4.2. Инвертирующие базисы, ОТРИЦАТЕЛЬНАЯ ЛОГИКА.
Три вышеописанные логические функции И, ИЛИ, НЕ, с помощью которых можно получить все остальные логические функции, называют булевым базисом. Иногда объединяют две булевы функции (при этом одной из них является НЕ), и получившийся логический элемент считают базовым для получения всех остальных логических функций. Элемент И–НЕ называют также: штрих Шеффера (Sheffer stroke), NAND (сокращение от NOT AND). Алгебраическая запись функции И–НЕ: F = A ½ B; F = A B.
Контактная схема для функции И–НЕ для двух переменных A и B:
Таблица истинности функции 2И–НЕ:
А В F –––––––––––– 0 0 1 0 1 1 1 0 1 1 1 0
В зарубежных схемах логический элемент И–НЕ обозначают следующим образом:
Элемент ИЛИ–НЕ называют также: стрелка Пирса (Pierce arrow), NOR (сокращение от NOT OR). Алгебраическая запись функции ИЛИ–НЕ: F = A ¯ B; F = A + B.
Контактная схема для функции 2ИЛИ–НЕ:
Таблица истинности функции 2ИЛИ–НЕ:
А В F –––––––––––– 0 0 1 0 1 0 1 0 0 1 1 0
В зарубежных схемах логический элемент ИЛИ–НЕ обозначают следующим образом:
Логика называется положительной, если высокий потенциал отображает единицу, а низкий, – ноль. Если наоборот, высокий потенциал отображает ноль, а низкий, – единицу, то логика называется отрицательной. Данное правило называют логическим соглашением. Самым важным следствием применения отрицательной логики является то, что при переходе от положительной логики к отрицательной функция И превращается в ИЛИ, и наоборот. Это можно проиллюстрировать следующим образом: – в положительной логике: в комнате зимой Т епло, если батареи отопления В ключены И окна З акрыты (Т = ВЗ); – в отрицательной логике: в комнате зимой НЕ Т епло, если батареи отопления НЕ В ключены ИЛИ окна НЕ З акрыты (` Т = ` В + ` З). Здесь И переходит в ИЛИ когда входные аргументы и вывод отрицаются, при этом смысл выражения практически не меняется. Благодаря этому переходу от И к ИЛИ и удается с помощью однотипных элементов инвертирующего базиса получать все остальные логические функции. Об этом говорят два постулата де 'Моргана:
АВ = `А + `В; А + В = `А`В.
Если логический элемент в положительной логике реализует функцию И, то в отрицательной логике этот же элемент реализует функцию ИЛИ, и наоборот, логический элемент ИЛИ положительной логики реализует функцию И в отрицательной логике. Применение наряду с положительной логикой и отрицательной логики позволяет любое сложное логическое преобразование выполнить с применением только логических элементов И–НЕ или только ИЛИ–НЕ. Покажем это хотя бы для простейших функций булева базиса.
Приведенные на этих рисунках построения логических функций НЕ, И, ИЛИ выполнены с помощью только логических элементов 2И–НЕ.
4.3. СОВЕРШЕННЫЕ НОРМАЛЬНЫЕ ФОРМЫ (СДНФ и СКНФ) ЗАПИСИ БУЛЕВЫХ ВЫРАЖЕНИЙ.
Совершенной дизъюнктивной нормальной формой (СДНФ) называют наиболее полную форму записи логического выражения. Эта форма записи представляет собой сумму, каждое слагаемое которой является произведением всех входных аргументов или их инверсий, например:
F = `A`В`С + `А В`С + А В`С + А В С.
СДНФ является избыточной, но логические функции, записанные в СДНФ, легко сравнивать между собой, их удобно преобразовывать в таблицы истинности и составлять по ним карты Карно. Булево выражение, полученное из таблицы истинности логической функции, имеет совершенную дизъюнктивную нормальную форму. В некоторых случаях более удобной формой записи логического выражения является совершенная конъюнктивная нормальная форма (СКНФ). Это произведение сомножителей, каждый из которых является суммой всех входных аргументов или их инверсий, например:
F = (`А + В +`С) (`А + В + С) (А +`В + С) (А + В + С).
Так же, как и СДНФ, СКНФ является явно избыточной.
4.4. ПРЕОБРАЗОВАНИЕ ТАБЛИЦЫ ИСТИННОСТИ В БУЛЕВО ВЫРАЖЕНИЕ
Допустим, имеется логическая функция F для трех переменных А, В и С, заданная в виде следующей таблицы истинности:
№ А В С F Примечания 0 0 0 0 1 Р0 = `А`В`С 1 0 0 1 0 2 0 1 0 1 Р2 = `А В`С 3 0 1 1 1 Р3 = `А В С 4 1 0 0 0 5 1 0 1 0 6 1 1 0 0 7 1 1 1 1 Р7 = А В С
Из всех возможных восьми комбинаций входных переменных А, В и С данная функция F равна единице только для тех четырех комбинаций, которые записаны в виде логических произведений P0, P2, P3 и P7 в правой части таблицы, в разделе примечания. При остальных наборах входных переменных функция F равна нулю. Смысл каждого булева выражения в том, чтобы показать при каких сочетаниях входных переменных или их инверсий заданная функция F равна единице. Поскольку функция будет иметь такое значение при любом из наборов Р0, Р2, Р3, Р7 независимо друг от друга, то их можно соединить между собой знаком ИЛИ, логическим сложением: F = Р0 + Р2 + Р3 + Р7.
Каждый из наборов Р0, Р2, Р3, Р7 является таким сочетанием входных переменных или их инверсий, которые только при совместном их воздействии обеспечивает единичное состояние выходной функции. Следовательно, каждый такой набор состоит из всех входных переменных или их инверсий, связанных между собой функцией И, логическим умножением:
Р0 = `А`В`С; Р2 = `А В`С; Р3 = `А В С; Р7 = А В С. Исходя из этого, получаем результирующее выражение:
F = `А`В`С + `А В`С +`А В С + А В С.
Как можно заметить, это выражение записано в СДНФ.
4.5. ОСНОВНЫЕ ЗАКОНЫ БУЛЕВОЙ АЛГЕБРЫ И ПРАВИЛА ПРЕОБРАЗОВАНИЙ.
Большинство законов булевой алгебры совпадают с законами обычной алгебры, но некоторые законы отличаются (подчеркнутые).
А + В = В + А АВ = ВА
(А + В) + С = (А + С) + В (АВ)С = (АС)В
А(В + С) = АВ + АС А + (ВС) = (А + В)(А +С) А + В = `А ×`ВА × В = `А +`В
А + А = АА А = А А = АА +`АВ = А + В
А + АВ = АА×(А + В) = А
А +`А = 1А ×`А = 0
А + 0 = А А × 0 = 0
А + 1 = 1 А × 1 = А
С помощью приведенных выше законов и правил можно упрощать сложные логические выражения таким образом, чтобы, в конце концов, получались минимизированные выражения, по которым экономичнее можно построить логические схемы.
4.6. МИНИМИЗАЦИЯ ЛОГИЧЕСКИХ ФУНКЦИЙ АЛГЕБРАИЧЕСКИМ СПОСОБОМ И ПО КАРТАМ КАРНО
Основой минимизации алгебраическим способом является последовательное использование законов булевой алгебры и правил преобразований. Кроме законов, известных нам из обычной алгебры, в булевой алгебре типовыми приемами можно считать следующие: 1. Многократное прибавление или умножение какого–либо переменного, или нескольких переменных, что не изменяет функцию, поскольку:
А + А +...= А; АВС + АВС +...=АВС;
А А А... = А; АВС АВС... = АВС.
2. Умножение членов уравнения на сумму А +`А = 1, или сложение их с А ×`А = 0. 3. Использование выражений, которые в предыдущем разделе подчеркнуты. Пример минимизации логической функции алгебраическим способом:
F = `А В С + А`В С + А В`С + А В С = = `А В С + А`В С + А В`С + А В С + А В С + А В С = добавили
= `А В С + А В С + А`В С + А В С + А В`С + А В С = = (А +`А) В С + (В +`В) А С + (С +`С) А В = = А В + В С + А С.
Для минимизации логических функций очень удобно пользоваться картами Карно или очень схожими с ними диаграммами Вейча. Карта Карно изображает в виде графических квадратов (клеток) все возможные комбинации переменных, причем переменные, определяющие координаты клеток карты, размещают так, чтобы при переходе из одной клетки в соседнюю, как по горизонтали, так и по вертикали, изменялась только одна переменная. Если требуется получить карту Карно для какой–либо функции, сначала надо записать эту функцию в СДНФ, – в совершенной дизъюнктивно нормальной форме, или в виде таблицы истинности. Каждое слагаемое булева выражения в СДНФ, или каждая единица в столбце функции таблицы истинности, задается на карте Карно единицей в соответствующей клетке. Координаты этой клетки содержат те же входные переменные и их инверсии, что и данное слагаемое СДНФ булева выражения (или данная строка таблицы истинности). Таблица истинности для четырех переменных включает 16 строк, следовательно, карта Карно должна состоять из 16 клеток, как показано на рис.4.10.1.
`А`В `А В А В А`В `С`D 1 1 `C D 1 1 C D 1 1 C`D
Рис.4.10.1. Пример карты Карно для 4–х переменных.
У карты Карно для четырех переменных клетки крайнего левого столбца должны рассматриваться как соседние для клеток крайнего правого столбца, а клетки верхней строки, – как соседние для клеток нижней строки. Другими словами можно сказать, что эта карта расположена на поверхности цилиндра (склеили правый край карты с левым), изогнутого и растянутого так, что его верхний срез соединяется с нижним срезом; при этом цилиндр превращается в тор. Правила упрощения заполненной карты Карно заключаются в следующем: – соседние две, четыре, восемь, или другое число единиц, равное степени двойки, обводят общим контуром; – контур должен быть прямоугольным без изгибов или наклонов; – каждый контур превращает все входящие в него единицы в одну, т.е. объединенные таким образом слагаемые СДНФ булева выражения дают одно слагаемое в упрощенном выражении; – те входные переменные, которые входят в координаты данного контура совместно со своими инверсиями, исключаются из слагаемого, которое дает этот контур в упрощенное выражение. Примеры упрощения булевых выражений с помощью карты Карно для 4–х переменных:
1. F1 = `А В`С`D1 + A B`C`D2 +`A B`C D3 + A B`C D4 +
+ `A`B C`D5 + `A B C`D6.
`А`В `А В А В А`В `С`D 11 12 B`C 1,2,3,4 `C D 13 14 `A C`D 5,6 C D C`D 15 16
F1 = B C + `A C`D
Рис.4.10.2. Пример минимизации булевой функции F1 с помощью карты Карно для 4–х переменных.
В первом примере минимизации булевой функции F1 нижний контур из двух единиц 15 и 16 , соответствующие пятому и шестому слагаемым в исходном булевом выражении, дает возможность опустить B и`B. После этого в нем остается произведение `A C`D. В верхнем контуре из четырех единиц 11, 12, 13 и 14, соответствующие первым четырем слагаемым в исходном булевом выражении попарно опускаются A и`A, D и`D, так что в результате этого верхний контур дает произведение B C.
.F2 =`А`В`С`D1 +`A B`C`D2 + A B`C`D3 +`A`B C`D4 +`AB C`D5
`А`В `А В А В А`В `С`D 11 12 13 B`C`D 2,3 `C D `A`D 1,2,4,5 C D C`D 14 15
F2 =`A`D + B`C`D Рис.4.10.3. Пример минимизации булевой функции F2 с помощью карты Карно для 4–х переменных.
Во втором примере минимизации булевой функции F2 контур из двух единиц 12 и 13 , соответствующие второму и третьему слагаемым в исходном булевом выражении, дает возможность опустить А и`А. После этого в нем остается произведение B`C`D. В контуре из четырех единиц 11, 12, 14 и 15, соответствующие другим четырем слагаемым из исходного булева выражения, попарно опускаются В и`В, С и`С, так что в результате этого верхний контур дает произведение `A`D. Карта Карно представляется в данном случае свернутой в цилиндр, в котором верхний край совмещается с нижним. Этот пример показывает также, что контуры могут накладываться друг на друга (сколько угодно раз). Таблица истинности для пяти переменных включает 32 строки, следовательно, карта Карно должна состоять из 32 клеток, как показано на рис.4.10.4. Для шести переменных карта Карно содержит 64 клетки, как показано на рис.4.10.5. Пример упрощения булевых выражений с помощью карты Карно для 5–ти переменных:
3. F3 = `А`В`С`D E1 +`A`B`C D E2 +
+`A`B C`D`E4 +`A B C`D`E5 +`A B C D E6 +
+`А В С D`E7 +`A B`C D E8 +`A B`C D`E9 +
+ A B`C D E10 + A B`C D`E11 + A B C D E12 +
+ А В С D`E13 + A`B`C`D E14 + A`B`C D E15. `А`В`C `А`В C `А В C `А В`C А В`C А В C А`В C А`В`C
`А`В`C `А`В C `А В C `А В`C А В`C А В C А`В C А`В`C `D`E 14 15 `D E 11 114 D E 12 16 18 110 112 115 D`E 17 19 111 113
`A C`D E 4,5 B D 6,7,8,9,10,11,12,13
`B`C E 1,2,14,15
F3 = `B`C E 1,2,14,15 +``A C`D E 4,5 + B D 6,7,8,9,10,11,12,13
Рис.4.10.4. Пример минимизации булевой функции F3 с помощью карты Карно для 5–ти переменных.
Пример упрощения булевых выражений с помощью карты Карно для 6–ти переменных:
4. F4 = `А`В`С`D E`G 1 +`A`B`C D E`G 2 +`A`B C`D E`G 3 + +`A`B C D E`G 4 +`A B C`D E G 5 +`A B C`D`E G 6 + +`А В`С`D`E`G 7 +`A B`C`D E`G 8 +`A B`C D E`G 9 + +`A B`C D`E`G 10 +`A B`C D`E G 11 +`A B`C D E G 12 + +`А В`С`D E G 13 +`A B`C`D`E G 14 + A B`C`D`E`G 15 + + A B`C`D E`G 16 + A B`C D E`G 17 + A B`C D`E`G 18 + + А В`С D`E G 19 + A B`C D E G 20 + A B`C`D E G 21 + Date: 2015-05-09; view: 514; Нарушение авторских прав |