Простейшие методы синтеза схем из функциональных элементов — различия между версиями
м |
|||
Строка 11: | Строка 11: | ||
|id = Lemma1 | |id = Lemma1 | ||
|about = 1 | |about = 1 | ||
− | |statement = | + | |statement =Любой конъюнкт в СДНФ можно представить не более, чем <tex> 2n-1 </tex> элементами. |
− | |proof = [[Файл:Synschemes Lemma1.png|250px|thumb|right|Рис 1. Схема для <tex> \bar{x}_{1}\wedge x_{2}\wedge x_{3} \wedge \bar{x}_{4}</tex>]] | + | |proof = [[Файл:Synschemes Lemma1.png|250px|thumb|right|Рис 1. Схема для <tex> \bar{x}_{1}\wedge x_{2}\wedge x_{3} \wedge \bar{x}_{4}</tex>. Сложность построенной схемы <tex>size_{B}(f)=2+3=5\le 7</tex>.]] |
Построим данную схему следующим образом: если <tex> i </tex>-й множитель равен <tex> \bar{x}_{i} </tex>, то присоединяем к выходу <tex> i </tex> элемент отрицания и последовательно присоединяем к элементу конъюнкции, иначе просто присоединяем к "свободному" входу элемента конъюнкции. | Построим данную схему следующим образом: если <tex> i </tex>-й множитель равен <tex> \bar{x}_{i} </tex>, то присоединяем к выходу <tex> i </tex> элемент отрицания и последовательно присоединяем к элементу конъюнкции, иначе просто присоединяем к "свободному" входу элемента конъюнкции. | ||
Строка 21: | Строка 21: | ||
Приведем пример для <tex> f=\bar{x}_{1}\wedge x_{2}\wedge x_{3} \wedge \bar{x}_{4}</tex> (рис. 1). | Приведем пример для <tex> f=\bar{x}_{1}\wedge x_{2}\wedge x_{3} \wedge \bar{x}_{4}</tex> (рис. 1). | ||
− | |||
− | |||
− | |||
}} | }} | ||
Строка 65: | Строка 62: | ||
|definition= <tex> f(n) \lesssim g(n) </tex> означает, что <tex>\varlimsup\limits_{n \to \infty}\frac{f(n)}{g(n)} \le 1</tex> | |definition= <tex> f(n) \lesssim g(n) </tex> означает, что <tex>\varlimsup\limits_{n \to \infty}\frac{f(n)}{g(n)} \le 1</tex> | ||
}} | }} | ||
+ | |||
+ | ::Будем считать,что схема <tex>S</tex> вычисляет систему булевых функций, если на каждый вход схемы подаются всевозможные наборы аргументов функции, а в выходах вычисляется функция от соответствующего набора аргументов. Также будем считать, что <tex> size_{B}(S)</tex> {{---}} это сложность схемы, вычисляющей систему булевых функций. | ||
{{Лемма | {{Лемма | ||
Строка 123: | Строка 122: | ||
Тогда | Тогда | ||
− | <tex>f(x_{1},...,x_{n})=\displaystyle\bigvee_{(\sigma_{1},\dotsc,\sigma_{m})}x_{1}^{\sigma_{1}}\wedge\dotsc\wedge x_{m}^{\sigma_{m}}\wedge f(\sigma_{1},\dotsc,\sigma_{m},x_{m+1},\dotsc,x_{n}) | + | <tex>f(x_{1},...,x_{n})=\displaystyle\bigvee_{(\sigma_{1},\dotsc,\sigma_{m})}x_{1}^{\sigma_{1}}\wedge\dotsc\wedge x_{m}^{\sigma_{m}}\wedge f(\sigma_{1},\dotsc,\sigma_{m},x_{m+1},\dotsc,x_{n}) </tex>. |
'''Схема для функции <tex> f </tex> строится из трех подсхем: <tex> S_{1},S_{2},S_{3} </tex>. (рис. 4)''' | '''Схема для функции <tex> f </tex> строится из трех подсхем: <tex> S_{1},S_{2},S_{3} </tex>. (рис. 4)''' |
Версия 15:49, 26 ноября 2013
Определение: |
Синтезом схемы из функциональных элементов называется процедура получения логической схемы, реализующей заданную логическую функцию. |
Приведем несколько простейших алгоритмов синтеза схем, реализующих произвольную функцию от аргументов , в случае когда базис .
Содержание
Метод синтеза, основанный на совершенной ДНФ
Лемма (1): |
Любой конъюнкт в СДНФ можно представить не более, чем элементами. |
Доказательство: |
Построим данную схему следующим образом: если -й множитель равен , то присоединяем к выходу элемент отрицания и последовательно присоединяем к элементу конъюнкции, иначе просто присоединяем к "свободному" входу элемента конъюнкции.Очевидно, что сложность построенной схемы .Поэтому Приведем пример для . (рис. 1). |
Теорема (1): |
Для любой функции имеет место неравенство |
Доказательство: |
Пусть булева функция. — произвольнаяЕсли , то схема строится в соответствии с представлением , то есть .Если дизъюнктивной нормальной формой , то может быть задана
где и каждая конъюнкция имеет видСхема леммой 1 имеет сложность не более ) и цепочки из элемента дизъюнкции с свободными входами. Свободные входы этой цепочки присоединяются к выходам схем для конъюнкций .(рис. 2) Имеем для состоит из конъюнкций (каждая из них в соответствии с
Таким образом, для любой функции выполняется неравенство
|
Метод синтеза, основанный на более компактной реализации множества всех конъюнкций
Определение: |
означает, что асимптотически эквивалентна , то есть |
Определение: |
означает, что |
- Будем считать,что схема вычисляет систему булевых функций, если на каждый вход схемы подаются всевозможные наборы аргументов функции, а в выходах вычисляется функция от соответствующего набора аргументов. Также будем считать, что — это сложность схемы, вычисляющей систему булевых функций.
Лемма (2): |
Пусть — система всех конъюнкций , тогда для имеет место соотношение |
Доказательство: |
Разделим цепочки конъюнкций на две части. Каждая конъюнкция может быть представлена в виде конъюнкции двух конъюнкций длины и :
Поэтому схема для может быть образована из схем для и и системы из элементов конъюнкции, осуществляющих вышеприведенную операцию.(рис. 3) Следовательно,
Так как по теореме 1 , ,то
Положим . Тогда , и
С другой стороны, при каждая конъюнкция реализуется на выходе некоторого элемента, то есть при выполняется неравенство . Таким образом,
|
Теорема (2): |
Для любой функции имеет место соотношение . |
Доказательство: |
Пусть — произвольная булева функция, . Заменим в схеме (рис. 2) верхнюю часть схемы, реализующую конъюнкции , схемой, реализующей все конъюнкции из . Тогда для любой такой функции (не равной нулю) имеемТаким образом, |
Метод синтеза схем К.Э.Шеннона
Теорема (3): |
Для любой функции имеет место соотношение . |
Доказательство: |
Пусть — произвольная булева функция. Рассмотрим разложение по переменным , где :Введем функцию
Тогда . Схема для функции строится из трех подсхем: . (рис. 4)
Поэтому выполняется неравенство . Таким образом,
Положим (для упрощения дальнейших выкладок) . Тогда
Заметим, что второе слагаемое "очень быстро" растет с ростом , а первое слагаемое убывает с ростом медленней. Поэтому следует взять такое значение , при котором первое и второе слагаемые приблизительно равны, и потом немного уменьшить . Тогда второе слагаемое "сильно" уменьшится, а первое "не очень сильно" возрастет. Возьмем, например, . Тогда
то есть получили "слишком много". Возьмем на единицу меньше: . Тогда
Вспомним теперь, что должно быть целым числом, и положим . Тогда ,
При этом выборе окончательно имеем
|
Литература
- Яблонский С.В. Введение в дискретную математику. — 4-е изд. — М.: Высшая школа, 2003. — 384 с. — ISBN 5-06-004681-8