- •Часть II
 - •Алгебра двузначной логики
 - •Функции алгебры логики
 - •Способы задания функций алгебры логики
 - •Эквивалентность функций
 - •Реализация функций формулами
 - •Эквивалентность формул и тождества
 - •Упрощение формул
 - •Двойственные функции и принцип двойственности
 - •Применение принципа двойственности
 - •Аналитическая запись функций алгебры логики
 - •Аналитическое построение сднф и скнф
 - •Теорема о тройке связок
 - •Полные системы функций и полиномы Жегалкина
 - •Замыкание систем функций алгебры логики
 - •Важнейшие замкнутые классы
 - •Теорема Поста о полноте
 - •Минимизация булевых функций
 - •Основные понятия
 - •Метод неопределенных коэффициентов
 - •Тупиковые днф и алгоритм наискорейшего спуска
 - •Геометрическое представление функций алгебры логики
 - •Аналитическое построение сокращенной днф
 - •Локальные алгоритмы
 - •Алгоритм Куайна
 - •Диаграммы Вейча–Карно
 - •Построение днф по карте Карно
 - •Задачи и упражнения
 - •Список литературы
 - •Часть II
 - •400131, Волгоград, просп. Им. В.И.Ленина, 28
 - •400131, Волгоград, ул. Советская, 35
 
- 
Двойственные функции и принцип двойственности
 
Функция 
	
	называется двойственной к функции
	f(x1,x2,…,xn).
	Для обозначения двойственной функции
	используется запись: [f(x1,x2,…,xn)]*
	или f*(x1,x2,…,xn)
	или f*.
Для получения столбца значений двойственной функции, как следует из определения, необходимо инвертировать значения функции f, т.е. заменить все единицы на нули, а нули – на единицы, а затем «перевернуть» полученный столбец, т.е. переписать его, начиная с конца, – что соответствует инвертированию значений переменных.
Пример: в таблице 13 процесс получения двойственной функции показан по шагам.
| 
					 x  | 
				
					 y  | 
				
					 z  | 
				
					 f(x,y,z)  | 
				
					 
					  | 
				
					 
					  | 
				
					 
  | 
			
| 
					 0  | 
				
					 0  | 
				
					 0  | 
				
					 1  | 
				
					 0  | 
				
					 0  | 
				
					 
  | 
			
| 
					 0  | 
				
					 0  | 
				
					 1  | 
				
					 1  | 
				
					 0  | 
				
					 1  | 
				
					 
  | 
			
| 
					 0  | 
				
					 1  | 
				
					 0  | 
				
					 0  | 
				
					 1  | 
				
					 1  | 
				
					 
  | 
			
| 
					 0  | 
				
					 1  | 
				
					 1  | 
				
					 1  | 
				
					 0  | 
				
					 1  | 
				
					 
  | 
			
| 
					 1  | 
				
					 0  | 
				
					 0  | 
				
					 0  | 
				
					 1  | 
				
					 0  | 
				
					 
  | 
			
| 
					 1  | 
				
					 0  | 
				
					 1  | 
				
					 0  | 
				
					 1  | 
				
					 1  | 
				
					 
  | 
			
| 
					 1  | 
				
					 1  | 
				
					 0  | 
				
					 0  | 
				
					 1  | 
				
					 0  | 
				
					 
  | 
			
| 
					 1  | 
				
					 1  | 
				
					 1  | 
				
					 1  | 
				
					 0  | 
				
					 0  | 
				
					 Таблица 13  | 
			
Легко
	убедиться, что (0)*=1, (1)*=0,
	(х)*=х, (
)*=
,
	(x&y)*=
	xy,
	(xy)*=x&y,
	(xy)*=
,
	(
)*=yx,
	(xy)*=xy,
	(xy)*=xy,
	(xy)*=xy,
	(xy)*=xy.
Функция, совпадающая со своей двойственной, называется самодвойственной. Из перечисленных выше функций к самодвойственным относятся тождественная функция и отрицание.
Из определения двойственности следует, что f**=(f*)*=f, т.е. f двойственна f*, – это так называемое свойство взаимности.
Пусть формула U реализует функцию f(x1,x2,…,xn). Найдем формулу, реализующую двойственную функцию f*(x1,x2,…,xn).
- 
О двойственной функции
 
Пусть функция Ф(x1,x2,…,xn) является суперпозицией функций f1(x11,x12,…,x1p1), f2(x21,x22,…,x2p2),…, fs(xs1,xs2,…,xsps), т.е. Ф(x1,x2,…,xn)=f(f1(x11,x12,…,x1p1), f2(x21,x22,…,x2p2),…, fs(xs1,xs2,…,xsps)), где x1,x2,…,xn – это все различные символы имен переменных из наборов (x11,x12,…,x1p1), (x21,x22,…,x2p2), …,(xs1,xs2,…,xsps), тогда Ф*(x1,x2,…,xn)=f*(f*1(x11,x12,…,x1p1), f*2(x21,x22,…,x2p2),…, f*s(xs1,xs2,…,xsps)).
Доказательство:
По определению
	двойственной функции Ф*(x1,x2,…,xn)=
	= 
	
Из этой теоремы следует так называемый принцип двойственности:
Пусть формула U=S [f1, f2,…, fp] реализует функцию f(x1,x2,…,xn), тогда формула S [f1*, f2*,…, fp*], полученная из формулы U заменой функций f1, f2,…, fp двойственными функциями f1*, f2*,…, fp* соответственно, реализует функцию f*(x1,x2,…,xn), двойственную f. Эта формула называется двойственной к формуле U и обозначается U*. Таким образом, U*= S [f1*, f2*,…, fp*], где S означает структуру формулы. Заметим, что структура формулы, определяемая порядком выполняемых действий, остается неизменной.
На практике наиболее часто принцип двойственности применяется к формулам, сконструированным из таких функций, как константы ноль и единица, тождественной функции, отрицания, конъюнкции и дизъюнкции. В таких случаях для получения двойственной формулы необходимо ноль заменить на единицу, а единицу на ноль везде, где они встречаются, знак «&» заменить знаком «», а знак «» – на «&». При этом следует учесть порядок выполняемых действий в исходной формуле и, если он не был задан явно скобками, а задавался только приоритетом операций, то, возможно, придется расставить скобки в двойственной формуле. Тогда установить их надо на тех же местах, где они неявно присутствовали в исходной формуле. В других случаях, ввиду того же старшинства операций, в двойственной формуле скобки, возможно, и не понадобятся.
Примеры:
U1(x,y) = x & y  U1*(x,y) = x  y;
U2(x,y) = x & y  
	
	U2*(x,y) = (x  y) &
;
U3(x,y) = (x  y) & (
)
	
	U3*(x,y) = x & y  
.
