Представление функций алгебры логики
Логические основы построения цифровых автоматов Основу любого дискретного вычислительного устройства составляют элементарные логические схемы. Работа этих схем основана на законах и правилах алгебры логики, которая оперирует двумя понятиями: истинности и ложности высказывания.
Основные законы и постулаты алгебры логики
Высказывание — некоторое предложение, в отношении которого можно однозначно сказать, истинно оно или ложно. Алгебра логики — раздел математики, изучающий высказывания, рассматриваемые со стороны их логических значений (истинности или ложности) и логических операций над ними. Аппарат алгебры логики (булевой алгебры) создан в 1854 г. Дж. Булем как попытка изучения логики мышления математическими методами. Впервые практическое применение булевой алгебры было сделано К. Шенноном в 1938 г. для анализа и разработки релейных переключательных сетей, результатом чего явилась разработка метода представления любой сети, состоящей из совокупности переключателей и реле, математическими выражениями и принципов их преобразования на основе правил булевой алгебры. Ввиду наличия аналогий между релейными и современными электронными схемами аппарат булевой алгебры нашел широкое применение для их структурно-функционального описания, анализа и проектирования. Использование булевой алгебры позволяет не только более удобно оперировать с булевыми выражениями (описывающими те или иные электронные узлы), чем со схемами или логическими диаграммами, но и на формальном уровне путем эквивалентных преобразований и базовых теорем упрощать их, давая возможность создавать экономически и технически более совершенные электронные устройства любого назначения. Операции булевой алгебры часто встречаются и в программном обеспечении вычислительных устройств, где они используются для замены аппаратной логики на программную.
Аппарат булевой алгебры, как и любая другая формальная математическая система состоит из трех множеств: элементов, операций над ними и аксиом. Элементы. Схемы вычислительных устройств можно условно разделить на три группы: исполнительные, информационные и управляющие. Первые производят обработку информации, представленной в бинарной форме; вторые служат для передачи бинарной формы информации; третьи выполняют управляющие функции, генерируя соответствующие сигналы. Во всех случаях в тех или иных точках логических схем сигналы двух различных уровней могут представляться бинарными символами {0,1} или логическими значениями {Истина (True), Ложь (False)}. Поэтому множество элементов булевой алгебры выбирается бинарным В = {0,1}, а сама алгебра называется бинарной, или переключательной. Ее элементы называются константами, или логическими 0 и 1, которым в ряде случаев соответствуют бинарные цифры, в других случаях — логические значения, соответственно ложь (False) и истина (True). В дальнейшем для обозначения булевых переменных будем использовать буквы латинского алфавита — х, у, z.... Набор переменных х, у, z...может рассматриваться как n-разрядный двоичный код, разрядами которого являются эти переменные. Операции. Основными, или базовыми, операциями булевой алгебры служат (табл. 1): И (AND), ИЛИ (OR) и НЕ (NOT). Операция И называется логическим умножением или конъюнкцией и обозначается знаком умножения {x, ∧}. Операция ИЛИ называется логическим сложением или дизъюнкцией и обозначается знаком сложения { +, v}. Операция НЕ называется логическим отрицанием или инверсией (дополнением) и обозначается знаком {', ¬}.
Таблица 4.1 Базовые логические операции
При выполнении операций применяются отношение эквивалентности «=» и скобки «()», которые определяют порядок выполнения операций. Если скобок нет, то операции выполняются в следующей последовательности: логическое отрицание, логическое умножение и логическое сложение.
ОСНОВНЫЕ ЗАКОНЫ И ПОСТУЛАТЫ АЛГЕБРЫ ЛОГИКИ Аксиомы (постулаты) алгебры логики
0 + 0 = 0; 0+1 = 1; 1+0=1; 1 + 1 = 1.
0x0 = 0; 0x1 = 0; 1x0 = 0; 1x1 = 1. Инверсия одного значения переменной совпадает с ее другим значением: ¬1 = 0; ¬0 = 1. Законы алгебры логики
a) универсального множества: х + 1 = 1; х * 1 = х. b) нулевого множества: х + 0 = x; х * 0 = 0.
a) двойного отрицания: ¬¬x=x b) дополнительности: x + ¬x=1 х *¬x = 0.
c) двойственности (де Моргана): ¬(x1 + x2)= ¬x1 *¬ x2 ¬(x1 * x2)= ¬x1 + ¬ x2
a) тавтологии: х + x = x; х * x = х. b) коммутативные: x1 + x2=x2 + x1 x1 * x2=x2 * x1 (можно записывать как умножение - x1 x2=x2 x1) c) ассоциативные (сочетательные): x1 + (x2 + x3)=(x1 + x2) + x3 x1 * (x2 * x3)=(x1 * x2) * x3 d) дистрибутивные (распределительные): x1 * (x2 + x3)=x1 *x2 + x1 *x3 x1 +x2 * x3=(x1 + x2) *(x1 + x3) e) закон абсорбции (поглощения): x1 + x1*x2=x1 x1 *(x1 + x2)=x1 f) склеивания: x1 *x2 + x1*¬x2= x1 (x1+ x2)*(x1 +¬x2) = x1
Законы двойственности де Моргана были обобщены Шенноном на произвольное количество двоичных переменных: инвертирование произвольной комбинации двоичных переменных, связанных знаками дизъюнкции и конъюнкции, эквивалентно инвертированию комбинаций переменных с одновременной заменой конъюнкции на дизъюнкцию, и наоборот: ¬(x1 + x2+ x3+…+ xn)= ¬x1 *¬ x2*¬ x3*…*¬ xn ¬(x1 * x2* x3*…* xn)= ¬x1 +¬ x2+¬ x3+…+¬ xn
Рассмотрим на примерах некоторые приемы и способы, применяемые при упрощении логических формул:
законы алгебры логики применяются в следующей последовательности: правило де Моргана (заменяем первую сумму с отрицанием, получаем сочетательный закон (убираем скобки) и коммутативный (переставляем множители, получаем закон дополнительности, получаем закон тавтологии, получаем и закон нулевого множества. Получаем в результате 0.
(применяется правило де Моргана, выносится за скобки общий множитель, используется закон дополнительности);
(выносятся за скобки общие множители; применяется закон универсального множества);
ПРЕДСТАВЛЕНИЕ ФУНКЦИЙ АЛГЕБРЫ ЛОГИКИ Булевой (переключательной, двоичной) функцией называется двоичная переменная у, значение которой зависит от значений других двоичных переменных (x1, x2, … xn), именуемых аргументами: у = (x1, x2, … xn) Задание булевой функции означает, что каждому из возможных сочетаний аргументов поставлено в соответствие определенное значение у. При n аргументах общее число сочетаний (возможных входных наборов аргумнтов) N = 2n. Так как каждому сочетанию аргументов соответствует два значения функции (О, 1), то общее число функций F = . Булевая функция может быть задана на словах, таблично, алгебраически или числовым способом. В табл. 2 представлена функция одной переменной у = у(х). При n = 1 существует 4 функции, каждая из которых имеет свое название. 120 Таблица 2. Табличное задание функции одной переменной
Для алгебры логики установлено, что если у = у (z1,z2) где z1 и z2— двоичные функции, т. е. z1 = z1(x1,x2), z2 = z2(x3,x4), то у = у(х1,x2,x3,x4). Операцию замены одной функции другими функциями называют суперпозицией. Эта операция дает возможность с помощью функций от малого числа аргументов получить функции большего числа аргументов. Так, при помощи суперпозиции можно получить функцию с требуемым числом аргументов, используя только функцию двух аргументов.
Теперь рассмотрим функцию двух аргументов. По определению существует 16 функций двух аргументов (табл. 3). Таблица 3. Табличное задание функции двух переменных.
При помощи набора булевых функций двух аргументов можно описать любую цифровую систему. На практике используют не все функции, а лишь те из них, которые методом суперпозиции обеспечивают представление любой другой функции. Набор таких функций называют функционально полным набором (ФПН). Существует несколько ФПН. В качестве ФПН применяются дизъюнкция, конъюнкция и инверсия. Этот набор называют основным ФПН (ОФПН). Кроме ОФПН, широкое применение получили: ü функционально-полная система, включающая в себя только одну функцию — функцию Пирса (ИЛИ-НЕ); ü функционально-полная система, включающая в себя только одну функцию — функцию Шеффера (И-НЕ). При помощи этих функций можно построить любую цифровую систему. Синтез логических устройств в базисе ОФПН состоит из представления этих функций в нормальных формах и минимизации. Примеры: Пример 1. Упростить: А ^В V А ^ В По закону дистрибутивности вынесем А за скобки: А ^В V А ^ В = A ^ (B V B) = А ^ 1= А Пример 2. (первый способ) Упростить: (А V В) ^ (А V В) Раскроем скобки по закону дистрибутивности: (А V В) ^ (А V В) = A V (B ^ B) =A V 0 = А
Пример 2. (второй способ) Упростить: (А V В) ^ (А V В) Перемножим скобки (как в обычной алгебре) на основании того же закона дистрибутивности: (А V В) ^ (А V В) = =A ^ A V A ^ B V B ^ A V B ^ B = = A V A ^ (B V B) V 0 = = A V A ^ 1 = А
Пример 3.
Упростить: X V X ^ Y На первый взгляд, пример не позволяет его упростить, так как в этом выражении ничего нельзя вынести за скобки. Заметим, что “хочется”, чтобы у переменной Х “появился” Y. Для этого представим Х как Х ^1, а 1 распишем по закону исключенного третьего как (Y V Y). Далее раскроем скобки.
X ^(Y VY) V X ^ Y = =X ^ Y V X ^ Y V X ^ Y = добавим к полученному выражению X ^ Y. Получим:
=X ^ Y V X ^ Y V X ^ Y V X ^ Y = =X ^ (Y V Y) V Y ^ (X V X) = =X ^ 1 V Y ^ 1 = =X V Y
Пример 4. Упростить: A ^ C V B ^ C V A ^ B Один из возможных вариантов упрощения состоит в том, чтобы добавить к последнему слагаемому переменную С. Это делается стандартным способом: умножить А ^ B на 1, а 1 расписать как (С V C). A ^ C V B ^ C V A ^ B ^ 1= A ^ C V B ^ C V A ^ B ^ (C V C) = A ^ C V B ^ C V A ^ B ^ C V B ^ C) = A ^ C V B ^ C V A ^ B ^ C V A ^ B ^ C = A ^ C ^ (1 V B) V B ^ C ^ (1 V A) = A ^ C ^ 1 V B ^ C ^ 1 = A ^ C V B ^ C Пример 5. Упростить: (X V Y) (X V Y) = применим закон де Моргана X ^ Y = X ^ Y= X ^ Y
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|