Что такое полная система логических операций
Что такое полная система логических операций
Практическая логика.
Полные системы логических операций
Каждая мыслимая логическая операция над n высказываниями определяется соответствующей функцией f(A1,А2. An) от n логических переменных, принимающей значения И или Л для каждого набора значений своих аргументов. Такая функция называется логической и задаётся таблицей
Теорема (об определении логических функций).
Любая n-местная (n>0) логическая функция определяется некоторой пропозициональной формулой, содержащей только операции ¬и Ъ .
Пример. Для операции «исключающая дизъюнкция» A Е B построение определяющей формулы, описанное в доказательстве теоремы, имеет вид
номер строки | A | B | A Е B | j i |
1 | И | И | Л | нет |
2 | И | Л | И | А Щ ¬В |
3 | Л | И | И | ¬А Щ В |
4 | Л | Л | Л | нет |
Набор логических функций, через которые можно определить все остальные функции, называется полной системой логических операций. Из доказанной теоремы и законов замены операций вытекает
Существуют полные наборы операций, содержащие всего по одной операции. Это системы < Ї >и < >, где операции Ї и определяются формулами:
Это следует из тавтологичности формул
а также из полноты систем операций <¬, Ъ >и <¬, Щ >.
Функционально-полные системы логических функций. Свойства логических функций
Полнота системы логических функций
Теорема. Пусть даны две системы логических функций:
( 4.1) |
( 4.2) |
Если система (4.1) полна и каждая её функция может быть выражена как суперпозиция функций системы (4.2), тогда система (4.2) является полной.
Правила перехода от представления ФАЛ в виде ДНФ к функции, представленной в базисе «Штрих Шеффера»
Правила перехода от представления ФАЛ в виде КНФ к функции, представленной в базисе «Стрелка Пирса»
Свойства логических функций
Рассмотрим основные свойства логических функций, которые позволят определить их состав, составляющий функционально полный набор.
Очевидно, что логических функций от n аргументов, сохраняющих ноль, будет ровно половина от всех возможных функций, то есть .
К одному из основных свойств логической функции относится ее принадлежность к классу самодвойственных функций. Чтобы рассмотреть это свойство разберем вначале несколько сопутствующих понятий.
Два набора аргументов называются противоположными, если все значения аргументов одного набора противоположны значениям аргументов другого набора. Чтобы получить противоположный набор, достаточно заменить в данном наборе нули единицами, а единицы нулями.
Для функции трех аргументов следующие пары наборов являются противоположными:
000 и 111; 001 и 110; 010 и 101; 011 и 100.
Например, для функции дизъюнкции f (x1, x2) = x1 v x2 двойственной будет функция конъюнкции f * (x1, x2) = x1 & x2.
Переключательная функция называется самодвойственной, если на каждой паре противоположных наборов она принимает противоположные значения, т. е. если выполняется условие:
Набор | x1 | x2 | x3 | F(x1,x2,x3) |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 1 |
2 | 0 | 1 | 0 | 1 |
3 | 0 | 1 | 1 | 1 |
4 | 1 | 0 | 0 | 0 |
5 | 1 | 0 | 1 | 0 |
6 | 1 | 1 | 0 | 0 |
7 | 1 | 1 | 1 | 1 |
При определении свойства монотонности переключательной функции используется понятие сравнимости двух наборов аргументов.
Например, если X = (0000) и Z = (0001), то наборы сравнимы, и X z1, но x2 функция называется монотонной, если для всех пар сравнимых наборов при любом возрастании набора значение этой функции не убывает, т.е. сохраняет свое значение или изменяется с 0 на 1. Здесь, аналогично обычной математике, можно рассматривать монотонно возрастающие и монотонно убывающие функции, но для наших дальнейших рассуждений это не будет иметь какого-либо значения.
Т.е. для монотонной логической функции должно выполняться условие: если для сравнимых наборов X = функция : F1(x1, x2) = x2,
немонотонная функция :
Функционально полные системы логических функций
Очевидно, что набор функций (И, ИЛИ, НЕ) является функционально полным. Набор физических (электронных) элементов, реализующих эти три операции, образует функционально полную систему логических элементов.
Свойствами функциональной полноты обладают также наборы (И, НЕ) и (ИЛИ, НЕ). Действительно, в наборе (И, НЕ) функцию ИЛИ можно выполнить через операции И, НЕ путем эквивалентного преобразования
f = х1 + х2 = =
В наборе (ИЛИ, НЕ) функцию И можно выполнить через операции ИЛИ и НЕ следующим образом: f = х1 + х2 = =
.
Таким образом, набор функций (И, ИЛИ, НЕ) обладает избыточностью.
Функционально полными являются функции И—НЕ, ИЛИ—НЕ. Имея необходимое количество логических элементов И—НЕ либо ИЛИ—НЕ с требуемым числом входов, можно реализовать (т. е. построить функциональную схему) любую логическую функцию.
Для вычисления переключательной функции путем выполнения операции И—НЕ ее необходимо вначале представить в ДНФ. Выполнив далее двойное отрицание и применив закон отрицания, мы приведем ЛФ к требуемому виду.
Например, ЛФ f =
3 + х3
в соответствии с описанными действиями приводится к виду
f = =
По этому выражению логическая функция реализуется на элементах И—НЕ в соответствии с рис. 3.8.
Для реализации ЛФ в базисе ИЛИ—НЕ необходимо записать её сначало в КНФ. Выполнив далее двойное отрицание и применив закон отрицания, получим искомую форму.
Например, ЛФ f = (х1+ 2)(
1 + х3)(
1+ х2) в соответствии с этим примет вид
f = =
По этому выражению логическая функция реализуется на элементах ИЛИ—НЕ в соответствии с рис. 3.9.
3.3.1 Метод непосредственных преобразований
Метод Карно-Вейча
Логическую схему, которая реализует заданный алгоритм преобразования сигналов, можно синтезировать непосредственно по выражению, представленному в виде СДНФ или СКНФ. Тем не менее, полученная при этом схема, как правило, не оптимальна с точки зрения ее практической реализации. Поэтому исходную логическую функцию обычно минимизируют.
Минимизациялогических функций есть нахождение их выражений с минимальным числом букв.
Целью минимизации логической функции является построение экономичных схем компьютеров и уменьшение стоимости её технической реализации. Критерий, соответственно которому выполняется минимизация, далеко не однозначный и зависит как от типа задачи, так и уровня развития технологии.
Основные требования к задаче синтеза: минимальное число элементарных конъюнкций или дизъюнкций в логической формуле и однородность используемых операций. Кроме требований минимизации ставится ряд ограничений и условий на выбор элементной базы для синтезированного устройства.
Для минимизации логических функций используют два основных метода: метод Квайка –метод непосредственного преобразования и метод карт Карно (диаграмм Вейча).
3.3.1 Метод непосредственных преобразований
Одним из простейших методов минимизации является метод непосредственных преобразований, который применяется с использованием основных теорем алгебры логики.
Важные теоремы, отражающие основные соотношения алгебры логики (Табл. 3.9) | |
x + 0 = x | x ∙ 1 = x |
x + 1 = 1 | x ∙ 0 = 0 |
x + x = x | x ∙ x = x |
x +s w:ascii=»Cambria Math» w:h-ansi=»Cambria Math»/> x «> | x ∙ |
| — |
x + y = y + x | x ∙ y = y ∙ x |
x + x ∙ y = x | x (x + y) = x |
x + (y + z) = (x + y) + z | x (y ∙ z) = (x ∙ y) z |
x + y ∙ z = (x + y) (x + z) | x (y + z) = x ∙ y + x ∙ z |
| x ∙ y = x + y |
(x + y) (s w:ascii=»Cambria Math» w:h-ansi=»Cambria Math»/> x «> | (x ∙ y) +(s w:ascii=»Cambria Math» w:h-ansi=»Cambria Math»/> x «> |
Непосредственное упрощение исходной логической функции, заданной в виде СДНФ, выполняется в следующем порядке:
1. Для каждой из возможных пар соседних конституант СДНФ применяется операция полного склеивания. При этом из них исключается по одной переменной. Потом выполняется приведение подобных членов. Этот процесс повторяется до тех пор, пока в полученном выражении не останется конъюнкций, которые отличаются друг от друга значениями одной переменной. Полученная таким способом форма называется сокращенной нормальной формой. Конъюнкции, которые входят в сокращенную нормальную форму, называются простыми импликантами. Каждой логической функции отвечает лишь одна сокращенная форма.
2. Применяя к сокращенной нормальной форме операцию обобщенного склеивания, исключают из нее лишние конъюнкции (импликанты). Полученная в результате последовательного ряда таких преобразований форма, не допускающая дальнейших склеиваний, называется тупиковой формой логической функции. Тупиковых форм для одной функции может быть несколько.
3. Полученная тупиковая форма может случайно оказаться минимальной. Минимальной формой является тупиковая форма минимальной длины. В общем случае для поиска минимальной формы необходим перебор тупиковых форм, который позволяет найти одну или несколько минимальных форм логической функции.
Метод Квайна применяется к функциям, заданным в СДНФ (возможно задание и в СКНФ), и проводится, как правило, в два этапа.
На первом этапе выполняется переход от СДНФ к сокращенной ДНФ путем проведения всех возможных склеиваний друг с другом сначала конъюнкций ранга п, затем ранга п — 1, далее п — 2 и т. д. Каждый раз в группе конъюнкций отыскиваются пары конъюнкций вида Ах и А , где А — общая часть этих конъюнкций. Эти конъюнкции склеиваются между собой по переменной х
При этом получается конъюнкция А ранга п-1, а конъюнкции Ах и А помечаются и сравниваются также со всеми другими конъюнкциями ранга п с целью выполнения операции склеивания.
Результатом выполнения последовательности попарного сравнения и склеивания конъюнкций ранга п является группа конъюнкций ранга п —1 и непомеченные конъюнкции ранга г. Непомеченные конъюнкции ранга п не участвовали в склеивании, следовательно, являются простыми импликантами и включаются в сокращенную ДНФ.
Конъюнкции ранга п—1 вновь подвергаются попарному сравнению и склеиванию, как это было описано выше для конъюнкций ранга п; в результате имеем группу конъюнкций ранга п—2 и непомеченные конъюнкции ранга п—1, которые являются простыми импликантами, включаемыми далее в сокращенную ДНФ.
Первый этап заканчивается тогда, когда вновь полученная группа конъюнкций не содержит склеивающихся членов, т. е. содержит только простые импликанты. После этого записывается сокращенная ДНФ, в которую включаются все полученные простые импликанты.
Рассмотрим реализацию первого этапа на примере функцииЛФf
f = +
+
+
+
(3.5)
где для удобства последующего изложения над конъюнкциями записаны присвоенные им номера.
Анализируя в выражении всевозможные пары конъюнкций 1-2, 1-3, 1-4, 1-5, 2-3, 2-4, 2-5, 3-4, 3-5, 4-5, находим, что операция склеивания выполняется между парами 1-3 по х1, 2-5 по х1, 3-4 по х3, 4-5 по х2.
Таким образом, все конъюнкции исходной СДНФ участвуют в склеивании и помечаются подчеркиванием. 1 2 3 4
Теперь исходная СДНФ (3.5) записывается в виде f= 2
3 + х2х3 + х1
2 + х1x3. (3.6)
Продолжая для выражения (3.6) процедуру склеивания, сравниваем попарно конъюнкции 1-2, 1-3, 1-4, 2-3, 2-4 и 3-4. Эти пары конъюнкций между собой не склеиваются. Поэтому полученная запись ЛФ (3.6) представляет собой сокращенную ДНФ исходной ЛФ (3.5), содержащей только простые импликанты.
Второй этап заключается в переходе от сокращенной ДНФ к тупиковым ДНФ и выборе среди них МДНФ.
Тупиковой называется такая ДНФ, среди простых импликант которой нет ни одной лишней. При этом под лишней понимается такая простая импликанта, удаление которой не влияет на значение истинности этой функции.
Возможны случаи, когда в сокращенной форме нет лишних простых импликант. Тогда сокращенная ДНФ является тупиковой.
Для выявления лишних простых импликант строится импликантная матрица, которая называется также матрицей (таблицей) покрытий. Каждая строка импликантной матрицы соответствует одной простой импликанте, а столбцы — конституантам единицы, которыми они и помечаются. Для рассматриваемого примера импликантная матрица приведена в табл. 3.14.
Нахождение тупиковых ДНФ по импликантой матрице начинается с разметки матрицы. При этом каждая импликанта сравнивается со всеми конституантами единицы. Если импликанта является собственной частью некоторой конституанты, то на пересечении строки и столбца ставится условный знак, например – плюс (+).
Конституенты единицы, помеченные в строке с простой импликантой, поглощаются (покрываются) этой простой импликантой. Это значит, что на соответствующих наборах данная импликанта обеспечивает единичные значения ЛФ.
Например, простая импликанта 2
3 входящая в сокращенную ДНФ (3.6) рассматриваемого примера, является собственной частью конституант единиц
и
, и поэтому в строке с данной простой импликантой (табл. 3.13) поставлены две пометки X в соответствующих колонках. Аналогично размечены другие строки табл. 3.13.
Выявление лишних простых импликант выполняется следующим образом:
-В импликантной таблице условно вычеркивается строка с проверяемой простой импликантой вместе с соответствующими пометками в строке.
-Если при этом окажется, что в каждом столбце импликантной таблицы остается, хотя бы по одной пометке, проверяемая импликанта является лишней и ее следует удалить.
-Оставшиеся простые импликанты покрывают все единичные значения ЛФ.
-Испытание каждой последующей простой импликанты возможно лишь после удаления уже выявленных лишних простых импликант.
-Изменение последовательности испытаний и удаления лишних членов сокращенной ДНФ может привести к различным тупиковым формам ЛФ, из которых выбирается МДНФ.
Из табл. 3.13 видно, что только простая импликанта 1 обеспечивает единичное значение ЛФ на наборе 000, а импликанта 2 — на наборе 011 (соответствующие этим наборам столбцы обозначены конституантами единицы и
), поэтому эти простые импликанты обязательно войдут во все тупиковые ДНФ.
Простую импликанту 3 можно считать лишней. Однако, если ее сохранить, лишней можно считать простую импликанту 4.
Таким образом, для ЛФ возможны две тупиковые формы:
в которую не включена лишняя импликанта х1 2
в которую не вошла лишняя импликанта x1x3.
Тупиковые формы (3.7) и (3.8) имеют одинаковое суммарное количество переменных, поэтому любую из них можно выбрать в качестве минимальной (МДНФ).
Эта ЛФ реализуется схемой с ценой С = 9 (3 х 2 + 3 = 9).
Пример 4. Логическую функцию F в виде СДНФF = х2
+х1
+х1
х3+х1х2
+x1x2x3 можно минимизировать следующим образом:
1. Добавим к данной функции слагаемое х1х2 , которое уже есть в данной функции, используя правило 3 (x ∙ x = x).
F = х2
+ х1
+ х1
х3 +х1х2
+ x1x2x3 + х1х2
2. Применим метод склеивания (правило 11) к одинаково подчеркнутым элементарным конъюнкциям (x ∙ y + ∙ y = y):
Результат склеивания: F = х2 + х1
+ x1x2
3. Применим тот же метод склеивания для двух последних элементарных конъюнкций:
Окончательный результат: Fmin =FT = х2 + x1
Полученная в результате минимизации логическая функция называется тупиковой. Логическая функция может иметь несколько тупиковых форм.
Пример5.Найти минимальную форму функции, заданной СДНФ
F(a, b,c) =а c +
c +
+
+ ab
= abc.
Применяя операцию полного склеивания к сочетаниям каждой конституанты со всеми соседними и приводя подобные члены, получаем сокращенную нормальную форму:
F(a,b,c) = +
c + ac + ab + b
+
.
Применение операции обобщенного склеивания к импликантам можно осуществить в нескольких вариантах. Каждому из них отвечает одна из следующих тупиковых форм:
Очевидно, что анализируемой функции отвечают две минимальных нормальных формы F2(a,b,c) и F3
Для исходной функции, заданной в виде СКНФ, минимизация методом непосредственного упрощения выполняется таким образом.
1. Сначала к членам СКНФ применяют операцию полного склеивания.
2. Пользуясь законом дистрибутивности, раскрывают скобки в полученном выражении.
3. Приводят подобные члены и применяют операцию поглощения.
4. Полученную таким способом ДНФ минимизируют в указанном выше порядке.
Метод Карно-Вейча
Метод диаграмм Вейча (карт Карно) удобен для минимизации ЛФ, содержащих обычно не более пяти переменных.
Метод диаграмм Вейча, усовершенствованный Карно, применяется в том случае, если число аргументов не более 5. Представляют собой определенную таблицу истинности и отличаются друг от друга способом обозначения строк и столбцов таблицы истинности.
Каждой комбинации переменных можно поставить в соответствие клетку карты Карно.
В клетку записывается значение функции (0 или 1) для данной комбинации входных переменных.
Входные переменные располагаются по внешним сторонам карты напротив ее строк и столбцов. При этом значение каждой из входных переменных относится ко всей строке или столбцу и равняется 1, если напротив строки (столбца) стоит под скобкой обозначение этой переменной; для других строк (столбцов) значение этой переменной равняется 0.
х2 | |
х1 | |
|
Диаграмма Вейча для двух переменных х1 и х2.
х2х3 | х2 | | |
х1 | |||
|
Диаграмма Вейча для трех переменных х1, х2 и х3
х3х4 | х3 | | |
х1х2 | |||
х1 | |||
| |||
|
Каждая из входных переменных делит по-своему любую карту Карно на две равных части, в одной из которых значение этой переменной равняется 1, а в другой 0.
Для минимизации логическая функция (ЛФ) приводится к совершенной дизъюнктивной нормальной форме (СДНФ), после чего заполняется диаграмма для п переменных. При этом в соответствующую клетку диаграммы вписывается 1, если ЛФ = 1 в данном наборе. В остальные клетки вписываются 0 либо эти клетки вообще не заполняются.
В заполненной диаграмме обводят прямоугольными контурами клетки с 1, после чего записывают минимизированную дизъюнктивную нормальную форму (МДНФ) логической функции в виде дизъюнкции простых импликант, описывающих эти контуры.
При проведении контуров придерживаются следующих правил:
—1 в крайних клетках одного столбца или одной строки могут включаться в один контур;
-каждый контур должен включать как можно большее число клеток с 1, а общее число контуров должно быть как можно меньшим.
В простую импликанту, описывающую контур, включаются те переменные, которые во всех клетках контура имеют либо только прямое, либо только инверсное значение.
Пример 1. Минимизировать ЛФ F = х2 + х1
+
1
с помощью диаграмм Вейча.
х2 | |
х1 | |
|
1. Заполняем диаграмму Вейча для двух переменных.
х2 | |
х1 | 1 |
|
1. Проводим два контура, охватывающие клетки с единицами.
2. Находим простые импликанты описывающие контур, для чего выясняем от каких переменных не зависит данный контур.
а) вертикальный контур охватывает строки с х1 и 1, следовательно в простую импликанту, описывающую горизонтальный контур х1 входить не будет.
б) горизонтальный контур охватывает строки с х2 и 2, следовательно в простую импликанту, описывающую вертикальный контур х2 входить не будет.
4. Следовательно, ЛФ будет иметь МДНФ: F = 1 +
2.
Пример 2.Минимизировать ЛФ F=х1х2+х1 х3+
1
х3+
1х2
с помощью диаграмм Вейча.
1. Приводим логическую функцию к СДНФ:
F = х1х2 (х3+ ) + х1
х3+
1
х3 +
1х2
= х1х2х3 + х1х2
+ х1
х3+
1
х3 +
1х2
х2х3 | х2 | | |
х1 | |||
|
2. Заполняем диаграмму Вейча для трех переменных.
х2х3 | х2 | | |
х1 | |||
|
3. Проводим три контура, охватывающие клетки с 1.
1 контур (зеленый) –охватывает клетки х1х2х3 и х1 х3
2 контур (красный) –охватывает клетки х1х2
1
х3
3 контур (красный) –охватывает клетки х1 х3
1
х3
4. Находим простые импликанты описывающие контур, для чего выясняем от каких переменных не зависит данный контур.
5. Следовательно, ЛФ будет иметь МДНФ: F =х1х3 + х2 +
х3
Карты Карно
Для минимизации функции с числом переменных n ≤ 6 используют карты Карно.
Карты Карно для функции трех переменных F(х1 х2, х3) показаны на рис. 3.10.
· Каждая клетка карты Карно однозначно соответствует одному набору таблицы истинности для функции трех переменных (рис. 3.10, а) или минтермам этой функции (рис. 3.10, б).
· При минимизации для каждого минтерма, входящего в СДНФ функции, ставится единица, а другие клетки не заполняются.
Рисунок 3.10 – Карты Карно для функций трех переменных
Например, заполнение карты Карно для функции, заданной табл. 3.12, показано на рис. 3.6, г.
Минтермы в соседних клетках карты Карно в строке (включая верхние и нижние) или в столбце (включая крайние) отличаются значением одной переменной, что позволяет выполнить операцию склеивания по этой переменной.
Например, на рис. 3.6, г минтермы
X3 и
Х2 Х3 (клетки с номерами 1 и 3) отличаются значением переменной Х2, поэтому они склеиваются по ней и представляются конъюнкцией двух переменных
Х3.
Аналогично для минтермов Х1
и Х1 Х2
(номера клеток 4 и 6) склеивание происходит по переменной Х2 и получают конъюнкцию Х1
.
В результате минимизации функции Р(Х1 Х2, Х3) получают ее минимальное выражение
Р = Х3vХ2 Х3vХ1
.
Перечислим общие правила минимизации.
1.Изображают карту Карно для n переменных и производят разм