Курс: Элементы компьютерной математики Лектор – Склярова Елена Александровна Лекция №5 Тема: Элементы компьютерной математики (ЭКМ) II. Элементы математической логики 1. 2. 3. 4. 5. Общие понятия Способы создания логических функций Законы алгебры логики Операции над логическими функциями Пять замечательных классов логических функций «Всё ритм и бег. Бесцельное стремленье! Но страшен миг, когда стремленья нет. И.А.Бунин. «Ритм» Общие понятия Математическая логика - одна из областей общей логики, развиваемая применительно к потребностям математики (и вычислительной техники). В ее составе - логика высказываний (исчисление высказываний; алгебра логики; алгебра Буля - булева алгебра) и логика предикатов (исчисление предикатов). Можно выделить и третий раздел метаматематику, связанный с изучением аксиоматического построения наук, в частности той же математики. Общие понятия Высказывание - любое утверждение (суждение), о котором можно сказать, истинно оно или ложно. Пример 1. (А) В прямоугольном треугольнике C A2 B 2 Пример 2. (В) Сегодня - 1 апреля 2001 года. Пример 3. (С) Ползучий страх к развалинам приник. И чайки кружатся, край моря очертив. И ветер повторяет чайки крик, Дождю-мечтателю дав утренний мотив. Общие понятия Высказывания могут быть: - истинными или - ложными. Каждое высказывание характеризуется значением его истинности. Это двоичная величина, принимающая значения 0 (false), если высказывание ложно, и 1 (true) - в противном случае. Например, А = 0, В = 0 или 1, С = 0 или 1 и т. д. Общие понятия Высказывания могут быть различные (А ≠ В) или эквивалентные (А = В). Некоторые высказывания оказываются сложными. Их можно расчленить на несколько простых (Пример 3). Таким образом, все сводится к двоичным величинам и двоичным функциям. Эти математические функции принимают только целочисленные значения, а именно 0 или 1. Исходя из области приложения будем называть такие функции логическими. Общие понятия Другие названия: - переключательные функции (используются в «переключательных» схемах устройств вычислительной техники, систем управления и т.п.); - функции алгебры логики; - булевы функции. Общие понятия Процесс проектирования цифровых вычислительных устройств представляет собою последовательное (поочередное) решение задачи синтеза и задачи анализа. задача синтеза неоднозначна и, наоборот, задача анализа однозначна. Общие понятия Фактически в схеме проектирования (изучения - исследования, решения некоторой проблемы) присутствует обратная связь и реализуется метод последовательных приближений (итераций, «проб и ошибок»). Т.е. решается оптимизационная задача: при заданных требованиях (ограничениях) и критериях отыскивается экстремум целевой функции. Наша оптимизация будет связана с минимизацией логических функций, вообще - логических выражений (п. 8). Общие понятия В отличие от логических функций (сложных высказываний) предикаты (praedico — лат., «предсказание», «извещение») — это функции, принимающие такие же значения - 0 (false) и 1 (true), но имеющие аргументы любого вида. Аргументы логических функций (ЛФ) двоичные величины. Способы задания логических функций Как и любые математические функции. ЛФ могут быть заданы: - аналитически (формулы с использованием специальных символов); - таблично; - графически (геометрически; используется эта форма редко - обычно для количества аргументов не более 3). Способы задания логических функций Пример 1. Табличное задание ЛФ двух аргументов. Поскольку каждый аргумент принимает одно из двух значений, 0 0 1 область определения любой ЛФ 0 1 0 оказывается конечной. В примере 1 0 1 эта область составлена четырьмя 1 1 0 наборами двух элементов: (0, 0), (0, 1), (1, 0), (1, 1). Таким образом, набор аргументов ЛФ - это упорядоченная совокупность их значений. Количество наборов ЛФ n аргументов равно 2n: х1 х2 f(x1, x2) Qнб (n) 2 n Доказательство этого утверждения можно провести двумя способами (методами). Способы задания логических функций Метод полной математической индукции. Суть этого метода — в двух этапах. На первом этапе строится так называемое основание индукции. Здесь фактически проводится проверка доказываемого утверждения для одного или нескольких значений параметра индукции. Обычно это i = 1. На втором этапе осуществляется переход i → i + 1. Доказательство считается состоявшимся, если доказываемое утверждение остается истинным, т.е. изменяется только форма его - место i занимает i + 1. Способы задания логических функций В нашем случае параметр индукции – n, это количество аргументов логической функции. При n = 1 получаем с очевидностью Qнб (1) 2 21 Эти два набора вырожденные: (0), (1). Qнб (2) 4 22 Способы задания логических функций Теперь пусть формула верна для значения параметра индукции n. Добавляем еще один аргумент хn+1. Его значение 0 или 1 включаем в уже имеющиеся наборы аргументов. При этом Qнб(n) получают дополнительное значение 0 и столько же - 1. В результате Qнб (n 1) Qn (n) 2 2n 2 2n 1 Формула доказана. Способы задания логических функций Второй способ связан с использованием двоичной системы счисления. Суть его в том, что каждому набору n аргументов можно поставить в соответствие nразрядное двоичное число. Таким образом, речь идет о количестве различных двоичных чисел, имеющих n разрядов. Кстати, обычно наборы располагаются в порядке возрастания этих чисел (таб.1). Набор 0…0 называется нулевым, а 1…1 - единичным. Способы задания логических функций Для ускорения расчетов наибольшее двоичное число увеличивают еще на 1: 11...12 1 100 ...0 2 (n нулей) Значение результата, очевидно, составляет 2n. Наибольшее число равно (2n - 1). Учитывая еще и 0, получаем общее количество таких двоичных чисел 2n, и формула доказана. Способы задания логических функций Аналогично можно решить вопрос о количестве различных логических функций n аргументов. Здесь каждой ЛФ сопоставляется тоже двоичное число, но уже с 2n разрядами. Оно ориентировано по вертикали (например, в таб. 4 для f10 это число 10102 = 10. Тогда, очевидно, Q ЛФ (n) 2 Q нб (n) 2 2n Способы задания логических функций Количество ЛФ растет с увеличением n очень быстро (таб.2). Таблица 2 Аргументы и функции n 1 2 Qнб(n) 2 4 QЛФ(n) 4 16 3 4 5 … 8 16 32 … 256 65 536 ~4,3*109 … Способы задания логических функций В обозначении ЛФ можно использовать значение «вертикального» двоичного числа в качестве индекса (табл. 3, 4). Конечно, важно еще и значение n: и т.д. Таблица 3 Логические функции одного аргумента х f0 f1 f2 f3 0 0 0 1 1 1 0 1 0 1 Способы задания логических функций f0(x) - константа нуль. f1(x) - тривиальная функция, это просто переменная х. f2(x) = = x - инверсия (отрицание) х. Здесь происходит замена: 0 → 1, 1 → 0. f3(x) =1 - константа единица. Очевидно, функции вида f0 … f3 следует ожидать при любом количестве аргументов. Способы задания логических функций Таблица 4 Логические функции двух аргументов x 1 x 2 f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Способы задания логических функций Характеризовать функции двух аргументов можно в порядке возрастания индекса (f0, …, f15) или поддерживая сначала аналогию с функциями одного аргумента. Выбираем второе. f0(x1, x2) = 0 - константа нуль. f15(x1, x2) = 1 - константа единица. Способы задания логических функций Кстати, легко заметить, табл. 4. «инверсно» симметрична относительно вертикали, разделяющей f7 и f8. Т.е. справедливо f k f15 k , k 0, 15. f 3 x1, f12 x1, f 5 x 2 , f10 x 2 Аналогия с ЛФ одного аргумента исчерпана. Осталось еще 10 функций. Способы задания логических f1 (x 1 , x 2 ) x 1 ^ x 2 xфункций & x 2 x 1 x 2 - конъюнкция. 1 Другие названия конъюнкции: «функция И», «функция совпадения», «логическое умножение». Последнее оправдано тем, что фактически значения f1 доставляют просто-напросто результат двоичного одноразрядного умножения. Конъюнкция может быть определена совершенно аналогично для любого количества аргументов (n ≥ 2): единичное значение ее только на единичном наборе. f14 f1 x1 x 2 x1 /x 2 - функция «штрих Шеффера». Это в своем роде замечательная функция. Способы задания логических функций f 7 (x 1 , x 2 ) x 1 x 2 - дизъюнкция (функция ИЛИ, функция разделения, логическое сложение). Для n > 2 дизъюнкция определяется аналогично: она имеет единственное нулевое значение - на нулевом наборе аргументов. Различают строгую и нестрогую дизъюнкцию, или исключительное ИЛИ («ИЛИ-ИЛИ») и неисключительное ИЛИ. f7 – это нестрогая дизъюнкция (неисключительное ИЛИ). Способы задания логических функций Для строгой дизъюнкции в обычной логике . используется символ f8 f 7 x1 x 2 x1 o x 2 x1 x 2 - функция Вебба (о), или «Стрелка Пирса» (↑). Это тоже, как и штрих Шеффера, замечательная функция. Способы задания логических функций f 6 (x 1 , x 2 ) x 1 x 2 - сложение по модулю 2. Действительно, значения f6 совпадают со значениями младшего разряда суммы одноразрядных двоичных чисел. Другое название этой функции неравнозначность, исключительное ИЛИ (ХОR - мнемоника соответствующей машинной команды). ). Т.е. это и есть строгая дизъюнкция ( Вообще-то при n > 2 функции «сложение по модулю 2» и «неравнозначность» (строгая дизъюнкция) расходятся, если для последней считать единичными значениями только соответствующие наборам аргументов с единственной единицей (00 …01, 00 …010, …). Способы задания логических функций f 9 (x 1 , x 2 ) f 6 (x 1 , x 2 ) x1 x 2 x1 x 2 -эквивалентность (равнозначность). f13 (x 1 , x 2 ) x 1 x 2 - прямая импликация. В обычной логике - это очень важная функция. Она отражает причинноследственную связь («если …, то…»), хотя и не строгую. Говорят «х1 имплицирует (влечет) х2». Способы задания логических функций В качестве примера такой нежесткой причинноследственной связи может служить настольная лампа с кнопочным включателем-выключателем (табл. 5). Таблица 5 х1 х2 f(x1, x2) 0: Кнопка не нажата 0: Лампа не горит Истинно (возможно) 0: Кнопка не нажата 1: Лампа горит Истинно (возможно) 1: Кнопка нажата 0: Лампа не горит Ложно 1: Кнопка нажата 1: Лампа горит Истинно Здесь х1 - «Кнопка нажата», х2 - «Лампа горит», f(х1, х2) «Оценка ситуации» (0 - «ложно», 1 - «истинно»). Способы задания логических функций Нежесткость связи в табл. 5. отражена в первых двух строках (кнопка могла быть нажата раньше). f 2 (x 1 , x 2 ) f13 (x 1 , x 2 ) x 1 x 2 - инверсия прямой импликации. f11 (x 1 , x 2 ) x 1 x 2 - обратная импликация. f 4 (x 1 , x 2 ) x 1 x 2 - инверсия обратной импликации. Законы алгебры логики Основные законы алгебры логики имеют аналоги в обычной алгебре. Для конъюнкции и дизъюнкции справедлив переместительный закон. Эти функции обладают свойством коммутативности. x 1 & x 2 x 2 & x 1 (ab=ba), x 1 x 2 x 2 x 1 (a+b=b+a). Количество аргументов конъюнкции и дизъюнкции может быть любым. Этот и последующий законы доказываются путем перебора всех комбинаций (наборов) значений аргументов, а при любом количестве аргументов - методом математической индукции. Законы алгебры логики Свойством коммутативности обладают и другие ЛФ, например: x1 x 2 x 2 x1 и т.п. Но: x1 x 2 x 2 x1 Сочетательный (ассоциативный) закон: ( x1 & x2 ) & x3 x1 & ( x2 & x3 ) , аналог (аb) с = а (bс), ( x1 x2 ) x3 x1 ( x2 x3 ) , аналог (а + b) + с = а + (b + с). Скобки задают порядок действий (сначала действие выполняется в скобках). Таким образом, речь идет о перестановке скобок, или об изменении порядка действий. Интересно, что коммутативная ЛФ штрих Шеффера неассоциативна: (х1 / х2) / х3 ≠ х1 / (х2 / х3). Например, (1/0)/0=1/0=1, 1 /(0/0) = 1 / 1 = 0 ≠ 1. Законы алгебры логики Распределительный (дистрибутивный) закон касается уже не одной, а двух функций. Есть распределительный закон конъюнкции относительно дизъюнкции: x 1 (x 2 x 3 ) x 1 x 2 x 1 x 3 аналог: а (b + с) = а b + а с. Законы алгебры логики И есть обратный закон, выражающий дистрибутивность дизъюнкции относительно конъюнкции: x 1 x 2 x 3 (x 1 x 2 )(x 1 x 3 ) В обычной алгебре аналога такому закону нет: a + b c ≠ (a + b) (a + c), в общем случае. В наличии взаимной дистрибутивности конъюнкции и дизъюнкции проявляется двойственность этих функций. Она будет обнаруживаться и в дальнейшем. Законы алгебры логики В преобразовании логических выражений (с целью их упрощения - минимизации, но с сохранением, конечно, эквивалентности) используются и другие полезные законысвойства. Закон идемпотентности: x & ... & x x, x ... x x. Закон двойного отрицания: xx , аналог -(- а) = а. Законы алгебры логики Законы де Моргана: x 1 & ... & x n x 1 ... x n , x 1 ... x n x 1 & ... & x n . Здесь снова видна двойственная природа функций & и v. Закон противоречия: xx 0 Закон исключенного третьего: x x 1 Можно видеть, что последние два закона получаются один из другого по «правилам» де Моргана и двойственного отрицания: xx x x x x 0 1, x x x & x xx 1 0. Операции над логическими функциями Получение новых, сложных функций из простых осуществляется путем выполнения двух математических операций, возможно многократного и в любом порядке: - суперпозиция, - подстановка аргументов. Фактически, суперпозиция - это тоже подстановка одних функций на место аргументов некоторой другой функции. Операции над логическими функциями Пример. f(x 1 , x 2 , x 3 ) x 1 x 2 x 3 , x 1 Y1 (y1 , y 2 ) y1 y 2 , x 2 Y2 (y 2 , y 3 ) y 2 y 3 . x 3 Y3 (y1 , y 4 ) (y1 /y 4 ) y 4 . Результат суперпозиции: f(x 1 , x 2 , x 3 ) (y1 y 2 ) (y 2 y 3 )( (y1/y 4 ) y 4 ) f1 (y1 , y 2 , y 3 , y 4 ) Здесь, конечно, возможны дальнейшие преобразования (упрощения). Операции над логическими функциями Операция подстановки аргументов - это просто замена одних аргументов другими, перестановка их (перенумерация, изменение порядка записи). Пример. f(x 1 , x 2 , x 3 ) x 1 v x 2 x 3 , f1 (x 1 , x 2 , x 3 ) x 3 v x 1 x 2 . При синтезе логических схем только эти две операции имеют физическую интерпретацию. Иногда новую функцию (f1), полученную из f, Y1, … путем многократного выполнения таких операций, называюn также суперпозицией функций f, Y1, …. Операции над логическими функциями В дальнейшем важную роль играют ЛФ специального вида, такие, как конституенты единицы и нуля. Конституента единицы - это ЛФ n аргументов, принимающая значение 1 только на одном наборе аргументов. Кстати, отсюда следует, что количество таких конституент в точности равно количеству наборов n аргументов, т.е. 2n. Среди ЛФ двух аргументов конституент единицы - 4 (табл. 4): f1, f2, f4, f8. Операции над логическими функциями Обычно конституенту единицы задают в виде конъюнкции всех аргументов, взятых прямо или инверсно - в зависимости от значения аргумента на соответствующем конституенте наборе (прямо, если это значение - 1; инверсно, если - 0). K 0 f 8 (x 1 , x 2 ) x 1 x 2 , K 1 f 4 (x 1 , x 2 ) x 1 x 2 , K 2 f 2 (x 1 , x 2 ) x 1 x 2 , K 3 f1 (x 1 , x 2 ) x 1 x 2 . Здесь индекс при К - номер соответствующею набора Представленный в двоичной системе, этот индекс фактически определяет расстановку инверсий. Например: K11 (x 1 , x 2 , x 3 , x 4 ) K1011 x1 x 2 x 3 x 4 2 Операции над логическими функциями Конституента нуля определяется аналогично. Это ЛФ, принимающая значение 0 только на одном наборе. Количество таких конституент тоже 2n. Обычно конституенту нуля задают в виде дизъюнкции (дизъюнктивного терма) всех аргументов, взятых прямо или инверсно - в зависимости от значения аргумента на соответствующем наборе (прямо, если 0; инверсно, если 1). Для двух аргументов: L 0 f 7 (x1 , x 2 ) x1 v x 2 , L1 f11 ( x 1 , x 2 ) x 1 v x 2 , L 2 f12 ( x 1 , x 2 ) x 1 v x 2 , L 3 f14 ( x 1 , x 2 ) x 1 v x 2 . Операции над логическими функциями Теорема Жегалкина (И.И. Жегалкин [18691947] - русский, советский математик, профессор МГУ). Любая ЛФ может быть представлена в виде многочлена (полинома) с использованием трех базовых функций (константа единицы, конъюнкция и сложение по модулю два): f ( x1 , x 2 ,..., x n ) a 0 a 1 x1 a 2 x 2 ... ... a n x n a n 1 x1 x 2 ... a x1 x 2 ... x n , а0, а1, … - постоянные коэффициенты, 0 или 1. Операции над логическими функциями Доказательство теоремы - конструктивное, т.е. не экзистенциальное («существовательное»). В процессе доказательства получается и сам многочлен Жегалкина. Итак, пусть ЛФ имеет единичное значение на наборах N1, … Nk, …. Тогда справедливо равенство: f ( x1 , x 2 ,..., x n ) K N ... K N .... 1 k Действительно, на каждом таком наборе только одна из конституент единицы K N , … равна 1: А там, где функция равна 0, справа также получается 0: 1 1 0 1 0 ... 0. Операции над логическими функциями Теперь нужно выполнить переход от суммы конституент к многочлену. Здесь можно выделить три этапа. Замена отрицаний (инверсий): x x 1 Например, K 10 x 1 x 2 x 3 x 4 x 1 ( x 2 1) x 3 ( x 4 1). Раскрытие скобок на основании дистрибутивности конъюнкции относительно сложения по модулю два: K10 ( x1x 2 x1 )( x 3 x 4 x 3 ) x1x 2 x 3 x 4 x1x 2 x 3 x1x 3 x 4 x1x 3 . Операции над логическими функциями Приведение подобных на основании свойства суммы по модулю два (похоже на идемпотентность): Пример x, n нечет. x x ... x n раз 0, n чет. f13 (x 1 , x 2 ) K 0 K1 K 3 x1x 2 x1x 2 x1x 2 (x 1 1)(x 2 1) (x 1 1)x 2 x1x 2 x1x 2 x1 x 2 1 x1x 2 x 2 x1x 2 1 x1 x1x 2 . Кстати, f 0 (x 1 , x 2 ) 0 x 1 x 1 x 2 x 2 . Пять замечательных классов логических функций Все пять рассматриваемых ниже классов обладают свойством замкнутости: любая ЛФ, полученная из ЛФ каждого класса с помощью операций суперпозиции и подстановки аргументов, принадлежит этому же классу. Функции в этих классах: - линейные; - сохраняющие нуль; - сохраняющие единицу; - монотонные; - самодвойственные. Пять замечательных классов логических функций Линейная ЛФ может быть представлена многочленом Жегалкина не выше первой степени: f(x 1 x 2 ,..., x n ) a 0 a 1 x 1 a 2 x 2 ... a n x n . Таким образом, каждой линейной ЛФ можно поставить в соответствие (n+1)-разрядное число. Тогда количество различных линейных ЛФ n аргументов составит 2n+1. Так, при n = 1 все 21+1 = 4 функции линейны: f 0 (x) 0, f1 (x) x, f 2 (x) x 1 x, f 3 (x) 1. Пять замечательных классов логических функций Среди ЛФ двух аргументов (табл. 4.) линейных – 22+1 = 8. Можно найти многочлены Жегалкина для всех 16 ЛФ двух аргументов, а затем выбрать из них линейные. Второй способ - выписать все возможные линейные многочлены: 0 f 0 (x, x), 1 f15 (x, x), x 1 f 3 (x 1 , x 2 ), x 2 f 5 (x 1 , x 2 ), 1 x 1 x 1 f12 (x 1 , x 2 ), 1 x 2 x 2 f10 (x 1 , x 2 , ), x 1 x 2 f 6 (x 1 , x 2 ), 1 x 1 x 2 f 9 (x 1 , x 2 ). Пять замечательных классов логических функций Теорема 1. В результате операций суперпозиции и подстановки аргументов из линейных ЛФ получаются также линейные ЛФ, и только они. Иначе говоря, класс линейных функций замкнут. Аналогичные теоремы будут сформулированы и доказаны для остальных четырех замечательных классов. Пять замечательных классов логических функций Доказательство. А: Суперпозиция. f(x 1 ,..., x n ) a 0 a 1 x 1 ... a n x n , x 1 Y1 (y1 ,..., y m ) b10 b11 y1 ... b1m y m , 1 1 1 ... ... ... ... ... ... ... ... ... x n Yn (y1 ,..., y m ) b n0 b n1 y1 ... b nm y m . n n n После подстановки выражений Y вместо х в f, раскрытия скобок и приведения подобных получается новая линейная функция f1 (y1 ,..., y M ), где M max(m 1 ,..., m n ). Здесь надо заметить, что все произведения вила аibjk тоже имеют значения 0 или 1. Пять замечательных классов логических функций Пример. f(x 1 , x 2 ) 1 x 1 x 2 , Y1 (y1 , y 2 ) y1 y 2 , Y2 (y1 , y 2 ) 1 y 2 y 3 . f(y1 , y 2 , y 3 ) 1 (y1 y 2 ) (1 y 2 y 3 ) y1 y 3 . В: Подстановка аргументов. Здесь доказательство очевидно: линейность формы Жегалкина не зависит от порядка задания аргументов. Пример. f(x 1 , x 2 , x 3 ) 1 x 1 x 2 . f1 (x 1 , x 2 , x 3 ) f(x 3 , x 1 , x 2 ) 1 x 3 x 1 . Пять замечательных классов логических функций Логическая функция, сохраняющая нуль, на нулевом наборе имеет значение 0. Очевидно, среди ЛФ n аргументов ровно половина функций, сохраняющих нуль, т.е. Q0=2n-1. Так, для n = 2 (табл. 2.4) получаем Q0=24-1=8. Это f0 … f7 (x1, x2). Пять замечательных классов логических функций Теорема 2. В результате операций суперпозиции и подстановки аргументов из ЛФ, сохраняющих нуль, получаются также ЛФ, сохраняющие нуль, и только они. Доказательство. А: Суперпозиция. f,Y1 ,...,Yn ñî õðàí ÿåò í óëü, ò.å. f(0,...,0) 0, Y1 (0,...,0) 0, ... ... ... ... Yn (0,...,0) 0 Тогда f1 (у1, …, уm)0…0 = 0, поскольку Y1, …, Yn на этом же наборе имеют значение 0. Значит, и набор (х1, …, xn) - также нулевой, а здесь f (0, …, 0) = 0. Пять замечательных классов логических функций В: Подстановка аргументов. Доказательство очевидно: перестановка аргументов, имеющих одинаковые значения (нуль), никакой роли не играет, нулевой набор остается нулевым и нулевое значение ЛФ сохраняется. Логическая функция, сохраняющая единицу, на единичном наборе имеет значение 1. Далее все аналогично предшествующему случаю. Так, Q0=2n-1. Восемь ЛФ, сохраняющих единицу, при n=2 (табл. 4) – это f1, f3, f5, f7, f9, f11, f13, f15, т.е. все функции с нечетными номерами. Пять замечательных классов функций Теоремалогических 3 и ее доказательство вполне аналогичны случаю теоремы 2. Определение монотонной логической функции требует введения еще одного понятия - сравнимых и несравнимых наборов аргументов. Дело в том, что свойство монотонности обязательно только для пар сравнимых наборов. Итак, два набора аргументов сравнимы, если значению каждого аргумента в каком-то из них соответствует неменьшее значение того же аргумента в другом наборе, т.е. 0 соответствует 0 или 1, а 1 - только 1. Тогда первый из этих наборов считается меньшим, чем другой. Например, наборы (0, 0, 0, 1, 0) и (0, 1, 0, 1, 0) сравнимы, причем первый меньше второго. И, наоборот, наборы (0, 0, 0, 1, 0) и (0, 1, 0, 0, 1) несравнимы, здесь для четырех аргументов выполняется условие «меньше - равно» (0 < 1 или 0 = 0), а для одного - «больше» (1 > 0). Пять замечательных классов логических функций Монотонная логическая функция при любом возрастании набора аргументов имеет неубывающее значение. Несравнимые наборы не рассматриваются. При n = 2 имеем 3 + 2 + 1 = 6 пар наборов. Из них только одна пара (00 и 10) несравнимые наборы. Таким образом, для анализа ЛФ на монотонность нужно сделать 5 проверок. Оказывается, среди ЛФ двух аргументов (табл. 4) - 6 монотонных: f0, f1, f3, f5 (наборы 01 и 10 несравнимы), f7, f15. Пять замечательных классов логических функций Теорема 4. В результате операций суперпозиции и подстановки аргументов из монотонных ЛФ получаются также монотонные ЛФ, и только они. Доказательство. А: Суперпозиция. f(x 1 ,..., x n ) f1 (y1 ,..., y M ). Рассмотрим некоторый набор (y1 ,..., y M ) k y . (x 1 ,..., x n ) k Ему соответствует набор . Имеем равенство: f k f1k . Теперь увеличим (y1 ,..., y m ),...,(y1 ,..., y m ) набор ky, тогда любой набор не уменьшится. А значит, поскольку все функции Y также монотонные, не уменьшится набор kx. В силу монотонности функции f не уменьшится и ее значение, равное, кстати, значению функции f1. Таким образом, монотонность f1 x x y 1 n Пять замечательных классов логических функций В: Подстановка аргументов. f(x 1 , x 2 ,..., x n ) f(x 2 , x 1 ,..., x n ) f1 (x 1 , x 2 ,..., x n ) и т.п. При увеличении набора (х1, х2, ..., хn) набор (х2, х1, ..., хn) также увеличивается, поскольку позиции аргументов при этом никакой роли не играют. Поскольку f - монотонная функция, ее значения не убывают, а значит, не убывают значения f1. Отсюда следует, что f1 - монотонная функция. Для определения самодвойственной ЛФ необходимо ввести понятие противоположных наборов. В паре противоположных наборов значения аргументов взаимно инверсны. Например, наборы (0, 0, 0, 1, 0) и (1, 1, 1, 0, 1) противоположные, а наборы (0, 0, 0, 1, 0) и (1, 1, 1, 0, 0) нет. Пять замечательных классов логических функций Самодвойственная логическая функция на противоположных наборах имеет противоположные (взаимноинверсные) значения. Т.е. нулю соответствуют единицы, а единице - нуль. Среди ЛФ 2 аргументов - четыре самодвойственных функции: f3, f5, f10, f12 (табл. 4). Пять замечательных классов логических функций Теорема 5. В результате операций суперпозиции и подстановки аргументов из самодвойственных ЛФ получаются также самодвойственные ЛФ, и только они. Доказательство. A: Суперпозиция. f(x 1 , x 2 ,..., x n ) f1 (y1 ,..., y M ). Набору (y1 ,..., y M ) k соответствует набор (x 1 ,..., x n ) k , f k x f1k y . Теперь инвертируем набор ky. так, что Поскольку все функции Y самодвойственные, набор kx также инвертируется, т.е. становится противоположным по отношению к себе. Самодвойственность функции f влечет при этом ее инверсию, а значит – инверсию f1. Таким образом, самодвойственность f1 доказана. y x Пять замечательных классов логических функций В: Подстановка аргументов. f(x 1 , x 2 ,..., x n ) f(x 2 , x 1 ,..., x n ) f1 (x 1 , x 2 ,..., x n ) и т.п. Инверсия набора (х1, х2, …, хn) влечет инверсию и набора (х2, х1, ..., хn), поскольку позиции аргументов при этом никакой роли не играют. В силу самодвойственности f ее значение f(х2, ..., хn) инвертируется, а вместе с этим инвертируется и значение f1. Таким образом, f1 - самодвойственная функция. Пять замечательных классов логических функций Техническая задача определения набора логических элементов (ЛЭ), позволяющего построить любую логическую схему, сводится к математической задаче отыскания функционально полной системы логических функции (ФПС ЛФ). Система ЛФ называется функционально полной, если с помощью ЛФ, входящих в эту систему, можно получить любую, сколь угодно сложную ЛФ — с помощью операции суперпозиции и подстановки аргументов. Свойство-требование полноты приводит к аналогии с системой аксиом. Там, кроме этого, рассматриваются еще непротиворечивость и независимость. Последнее свойство в преломлении для ФПС не является необходимым. Как раз некоторая зависимость базовых ЛФ, т.е. входящих в ФПС, может способствовать снижению общих затрат оборудования, т.е. повышению экономичности (п. 6). Пять замечательных классов логических функций Теорема о функциональной полноте системы логических функций. Для функциональной полноты системы ЛФ необходимо и достаточно, чтобы эта система включала хотя бы одну нелинейную ЛФ, хотя бы одну ЛФ, несохраняющую единицу, хотя бы одну немонотонную ЛФ и хотя бы одну несамодвойственную ЛФ. Необходимость следует из теорем 1 ... 5. Действительно, пусть, напротив, ФПС включает только линейные функции. В силу замкнутости класса линейных функций (теорема 1) окажется невозможным получать нелинейные ЛФ (они, конечно, есть), т.е. на самом деле ФПС - вовсе не функционально полная. И т.д. Доказательство достаточности не рассматривается. Пять замечательных классов логических функций Следует отметить, ФПС не обязательно содержит пять ЛФ. Дело в том, что многие ЛФ одновременно являются и нелинейными, и немонотонными, и т.п. Система ЛФ независимая, если ни одна из входящих в нее ЛФ не может быть получена из других с помощью операций суперпозиции и подстановки аргументов. Доказано, что максимальное количество ЛФ независимой ФПС равно 4. Лекция окончена Нажмите клавишу <ESC> для выхода