Простейшие методы синтеза схем из функциональных элементов — различия между версиями
(Новая страница: «Приведем несколько простейших алгоритмов синтеза [[Реализация булевой функции схемой и...») |
|||
Строка 8: | Строка 8: | ||
|statement = | |statement = | ||
Для любой конъюнкции <tex> x_{1}\wedge ... \wedge x_{n} </tex> <tex> Size_{B}(x_{1} ... x_{n})\le 2n-1 </tex> | Для любой конъюнкции <tex> x_{1}\wedge ... \wedge x_{n} </tex> <tex> Size_{B}(x_{1} ... x_{n})\le 2n-1 </tex> | ||
− | |proof = | + | |proof = [[Файл:Synschemes Lemma1.png|250px|thumb|right|Рис. 1]] |
− | Данная схема может быть построена их <tex> n </tex> элементов отрицания, присоединенных к входам, и цепочки из элементов конъюнкции, имеющих <tex> n </tex> "свободных" входов. Каждый <tex> i </tex>-й вход этой цепочки присоединяется к входу схемы, если <tex> i </tex>-й множитель равен <tex> x_{i} </tex>, или к выходу <tex> i </tex>-го элемента отрицания, если <tex> i </tex>-й множитель равен <tex> \overline{x}_{i} </tex>. | + | Данная схема может быть построена их <tex> n </tex> элементов отрицания, присоединенных к входам, и цепочки из элементов конъюнкции, имеющих <tex> n </tex> "свободных" входов. |
− | Очевидно, что сложность построенной схемы равна <tex> 2n-1 </tex>. Поэтому <tex> Size_{B}(x_{1} ...x_{n})\le 2n-1 </tex>. | + | |
+ | Каждый <tex> i </tex>-й вход этой цепочки присоединяется к входу схемы, если <tex> i </tex>-й множитель равен <tex> x_{i} </tex>, или к выходу <tex> i </tex>-го элемента отрицания, если <tex> i </tex>-й множитель равен <tex> \overline{x}_{i} </tex>. | ||
+ | |||
+ | Очевидно, что сложность построенной схемы равна <tex> 2n-1 </tex>. | ||
+ | |||
+ | Поэтому <tex> Size_{B}(x_{1} ...x_{n})\le 2n-1 </tex>. | ||
Лемма доказана. | Лемма доказана. |
Версия 19:24, 24 октября 2013
Приведем несколько простейших алгоритмов синтеза схем, в случае когда базис состоит из элементов: инвертора, конъюнктора и дизъюнктора.
Содержание
Метод синтеза, основанный на совершенной ДНФ
Лемма (1): |
Для любой конъюнкции |
Доказательство: |
Данная схема может быть построена их элементов отрицания, присоединенных к входам, и цепочки из элементов конъюнкции, имеющих "свободных" входов.Каждый -й вход этой цепочки присоединяется к входу схемы, если -й множитель равен , или к выходу -го элемента отрицания, если -й множитель равен .Очевидно, что сложность построенной схемы равна .Поэтому Лемма доказана. . |
Теорема (1): |
Имеет место неравенство |
Доказательство: |
Пусть булева функция. Если , то может быть задана нормальной дизъюнктивной формой произвольная
где и каждая конъюнкция имеет видСхема Леммой 1 имеет сложность не более ) и цепочки из элемента дизъюнкции с свободными входами. Свободные входы этой цепочки присоединяются к выходам схем для конъюнкций . Имеем для состоит из конъюнкций (каждая из них в соответствии с
Если , то схема строится в соответствии с представлением , то есть .Таким образом, для любой функции выполняется неравенство
Поэтому Теорема доказана. . |
Метод синтеза, основанный на более компактной реализации множества всех конъюнкций
Лемма (2): |
Имеет место соотношение |
Доказательство: |
Каждая конъюнкция может быть представлена в виде конъюнкции двух конъюнкций длины и :
Поэтому схема для может быть образована из схем для и и системы из элементов конъюнкции, осуществляющих вышеприведенную операцию. Следовательно,
Так как по Теореме 1 , ,то
Положим . Тогда , и
С другой стороны, при каждая конъюнкция реализуется на выходе некоторого элемента, то есть при выполняется неравенство . Таким образом,
|
Теорема (2): |
Имеет место соотношение . |
Доказательство: |
Пусть произвольная булева функция, . Заменим в схеме верхнюю часть схемы, реализующую конъюнкции , схемой, реализующей все конъюнкции из . Тогда для любой такой функции (не равной нулю) имеемТаким образом, |
Метод синтеза схем, предложенный К.Э.Шенноном
Теорема (3): |
Имеет место соотношение . |
Доказательство: |
Пусть произвольная булева функция. Рассмотрим разложение по переменным , где :. Схема для функции строится из трех подсхем: .
Поэтому выполняется неравенство . Таким образом,
Положим (для упрощения дальнейших выкладок) . Тогда
Заметим, что второе слагаемое "очень быстро" растет с ростом , а первое слагаемое убывает с ростом медленней. Поэтому следует взять такое значение , при котором первое и второе слагаемые приблизительно равны, и потом немного уменьшить . Тогда второе слагаемое "сильно" уменьшится, а первое "не очень сильно" возрастет. Возьмем, например, . Тогда
то есть получили "слишком много". Возьмем на единицу меньше: . Тогда
Вспомним теперь, что должно быть целым числом, и положим . Тогда ,
При этом выборе окончательно имеем
Теорема доказана. Литература
|