Простейшие методы синтеза схем из функциональных элементов — различия между версиями
(Добавление картинок) |
|||
Строка 11: | Строка 11: | ||
Данная схема может быть построена их <tex> n </tex> элементов отрицания, присоединенных к входам, и цепочки из элементов конъюнкции, имеющих <tex> n </tex> "свободных" входов. | Данная схема может быть построена их <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> i </tex>-й вход этой цепочки присоединяется к входу схемы, если <tex> i </tex>-й множитель равен <tex> x_{i} </tex>, или к выходу <tex> i </tex>-го элемента отрицания, если <tex> i </tex>-й множитель равен <tex> \overline{x}_{i} </tex>.(рис. 1) |
Очевидно, что сложность построенной схемы равна <tex> 2n-1 </tex>. | Очевидно, что сложность построенной схемы равна <tex> 2n-1 </tex>. | ||
Строка 24: | Строка 24: | ||
|about = 1 | |about = 1 | ||
|statement = Имеет место неравенство <tex> Size_{B}(n)\le n2^{n+1} </tex> | |statement = Имеет место неравенство <tex> Size_{B}(n)\le n2^{n+1} </tex> | ||
− | |proof = Пусть <tex> f(x_{1},...,x_{n}) </tex> произвольная [[Определение булевой функции|булева функция]]. Если <tex> f \ne 0 </tex>, то <tex> f </tex> может быть задана нормальной дизъюнктивной формой | + | |proof = [[Файл:Synschemes Theorem1.png|250px|thumb|right|Рис. 2]] |
+ | Пусть <tex> f(x_{1},...,x_{n}) </tex> произвольная [[Определение булевой функции|булева функция]]. Если <tex> f \ne 0 </tex>, то <tex> f </tex> может быть задана нормальной дизъюнктивной формой | ||
::<tex> f(x_{1},...,x_{n}) = K_{1} \vee K_{2} \vee ... \vee K_{s} </tex>, | ::<tex> f(x_{1},...,x_{n}) = K_{1} \vee K_{2} \vee ... \vee K_{s} </tex>, | ||
Строка 32: | Строка 33: | ||
::<tex> K_{j}=x_{1}\wedge\overline{x}_{2}\wedge{x}_{3}\wedge ... \wedge{x}_{i} </tex> | ::<tex> K_{j}=x_{1}\wedge\overline{x}_{2}\wedge{x}_{3}\wedge ... \wedge{x}_{i} </tex> | ||
− | Схема <tex> S </tex> для <tex> f </tex> состоит из конъюнкций <tex> K_{j} </tex> (каждая из них в соответствии с [[#Lemma1|Леммой 1]] имеет сложность не более <tex> 2n-1 </tex>) и цепочки из <tex> s-1 </tex> элемента дизъюнкции с <tex> s </tex> свободными входами. Свободные входы этой цепочки присоединяются к выходам схем для конъюнкций <tex> K_{j} </tex>. Имеем | + | Схема <tex> S </tex> для <tex> f </tex> состоит из конъюнкций <tex> K_{j} </tex> (каждая из них в соответствии с [[#Lemma1|Леммой 1]] имеет сложность не более <tex> 2n-1 </tex>) и цепочки из <tex> s-1 </tex> элемента дизъюнкции с <tex> s </tex> свободными входами. Свободные входы этой цепочки присоединяются к выходам схем для конъюнкций <tex> K_{j} </tex>.(рис. 2) Имеем |
::<tex> Size_{B}(n)\le s(2n-1)+s-1 < s(2n-1)+s = 2ns \le n2^{n+1} </tex>. | ::<tex> Size_{B}(n)\le s(2n-1)+s-1 < s(2n-1)+s = 2ns \le n2^{n+1} </tex>. | ||
Строка 54: | Строка 55: | ||
|about = 2 | |about = 2 | ||
|statement = Имеет место соотношение <tex> Size_{B}(K_{n}) \sim 2^n </tex> | |statement = Имеет место соотношение <tex> Size_{B}(K_{n}) \sim 2^n </tex> | ||
− | |proof = Каждая конъюнкция <tex> x_{1}\wedge\overline{x}_{2}\wedge{x}_{3}\wedge ... \wedge{x}_{i} </tex> может быть представлена в виде конъюнкции двух конъюнкций длины <tex> k </tex> и <tex> n-k </tex>: | + | |proof = [[Файл:Synschemes Lemma2.png|250px|thumb|right|Рис. 3]] |
+ | Каждая конъюнкция <tex> x_{1}\wedge\overline{x}_{2}\wedge{x}_{3}\wedge ... \wedge{x}_{i} </tex> может быть представлена в виде конъюнкции двух конъюнкций длины <tex> k </tex> и <tex> n-k </tex>: | ||
::<tex> x_{1}\wedge\overline{x}_{2}\wedge{x}_{3}\wedge ... \wedge{x}_{n} = (x_{1}\wedge\overline{x}_{2}\wedge{x}_{3}\wedge ... \wedge{x}_{k})(x_{k+1}\wedge\overline{x}_{k+2}\wedge{x}_{k+3}\wedge ... \wedge{x}_{n}) </tex>. | ::<tex> x_{1}\wedge\overline{x}_{2}\wedge{x}_{3}\wedge ... \wedge{x}_{n} = (x_{1}\wedge\overline{x}_{2}\wedge{x}_{3}\wedge ... \wedge{x}_{k})(x_{k+1}\wedge\overline{x}_{k+2}\wedge{x}_{k+3}\wedge ... \wedge{x}_{n}) </tex>. | ||
− | Поэтому схема для <tex> K_{n} </tex> может быть образована из схем для <tex> K_{k}(x_{1}\wedge\overline{x}_{2}\wedge{x}_{3}\wedge ... \wedge{x}_{n}) </tex> и <tex> K_{n-k}(x_{k+1}\wedge\overline{x}_{k+2}\wedge{x}_{k+3}\wedge ... \wedge{x}_{n}) </tex> и системы из <tex> 2^n </tex> элементов конъюнкции, осуществляющих вышеприведенную операцию. Следовательно, | + | Поэтому схема для <tex> K_{n} </tex> может быть образована из схем для <tex> K_{k}(x_{1}\wedge\overline{x}_{2}\wedge{x}_{3}\wedge ... \wedge{x}_{n}) </tex> и <tex> K_{n-k}(x_{k+1}\wedge\overline{x}_{k+2}\wedge{x}_{k+3}\wedge ... \wedge{x}_{n}) </tex> и системы из <tex> 2^n </tex> элементов конъюнкции, осуществляющих вышеприведенную операцию.(рис. 3) Следовательно, |
::<tex> Size_{B}(K_{n}) \le Size_{B}(K_{k}) + Size_{B}(K_{n-k}) + 2^n </tex>. | ::<tex> Size_{B}(K_{n}) \le Size_{B}(K_{k}) + Size_{B}(K_{n-k}) + 2^n </tex>. | ||
Строка 99: | Строка 101: | ||
|about = 3 | |about = 3 | ||
|statement = Имеет место соотношение <tex> Size_{B}(n)\lesssim 12\frac {2^{n}}{2} </tex>. | |statement = Имеет место соотношение <tex> Size_{B}(n)\lesssim 12\frac {2^{n}}{2} </tex>. | ||
− | |proof = Пусть <tex> f(x_{1},...,x_{n}) </tex> произвольная булева функция. Рассмотрим разложение <tex> f </tex> по переменным <tex> x_{1},...,x_{n} </tex>, где <tex> 1 \le m \le n </tex>: | + | |proof = [[Файл:Synschemes Theorem2.png|300px|thumb|right|Рис. 4]] |
+ | Пусть <tex> f(x_{1},...,x_{n}) </tex> произвольная булева функция. Рассмотрим разложение <tex> f </tex> по переменным <tex> x_{1},...,x_{n} </tex>, где <tex> 1 \le m \le n </tex>: | ||
<tex> f(x_{1},...,x_{n})= \bigvee x_{1}\wedge\overline{x}_{2}\wedge{x}_{3}\wedge ... \wedge{x}_{m} f(x_{m+1}\wedge\overline{x}_{m+2}\wedge{x}_{m+3}\wedge ... \wedge{x}_{n}) </tex>. | <tex> f(x_{1},...,x_{n})= \bigvee x_{1}\wedge\overline{x}_{2}\wedge{x}_{3}\wedge ... \wedge{x}_{m} f(x_{m+1}\wedge\overline{x}_{m+2}\wedge{x}_{m+3}\wedge ... \wedge{x}_{n}) </tex>. | ||
− | Схема для функции <tex> f </tex> строится из трех подсхем: <tex> S_{1},S_{2},S_{3} </tex>. | + | Схема для функции <tex> f </tex> строится из трех подсхем: <tex> S_{1},S_{2},S_{3} </tex>. (рис. 4) |
:1. Схема <tex> S_{1} </tex> реализует все конъюнкции из множества <tex> K_{m} (x_{1},...,x_{m}) </tex>. В силу [[#Lemma2|Леммы 2]] выполняется неравенство | :1. Схема <tex> S_{1} </tex> реализует все конъюнкции из множества <tex> K_{m} (x_{1},...,x_{m}) </tex>. В силу [[#Lemma2|Леммы 2]] выполняется неравенство |
Версия 20:06, 24 октября 2013
Приведем несколько простейших алгоритмов синтеза схем, в случае когда базис состоит из элементов: инвертора, конъюнктора и дизъюнктора.
Содержание
Метод синтеза, основанный на совершенной ДНФ
Лемма (1): |
Для любой конъюнкции |
Доказательство: |
Данная схема может быть построена их элементов отрицания, присоединенных к входам, и цепочки из элементов конъюнкции, имеющих "свободных" входов.Каждый -й вход этой цепочки присоединяется к входу схемы, если -й множитель равен , или к выходу -го элемента отрицания, если -й множитель равен .(рис. 1)Очевидно, что сложность построенной схемы равна .Поэтому Лемма доказана. . |
Теорема (1): |
Имеет место неравенство |
Доказательство: |
Пусть булева функция. Если , то может быть задана нормальной дизъюнктивной формой произвольная
где и каждая конъюнкция имеет видСхема Леммой 1 имеет сложность не более ) и цепочки из элемента дизъюнкции с свободными входами. Свободные входы этой цепочки присоединяются к выходам схем для конъюнкций .(рис. 2) Имеем для состоит из конъюнкций (каждая из них в соответствии с
Если , то схема строится в соответствии с представлением , то есть .Таким образом, для любой функции выполняется неравенство
Поэтому Теорема доказана. . |
Метод синтеза, основанный на более компактной реализации множества всех конъюнкций
Лемма (2): |
Имеет место соотношение |
Доказательство: |
Каждая конъюнкция может быть представлена в виде конъюнкции двух конъюнкций длины и :
Поэтому схема для может быть образована из схем для и и системы из элементов конъюнкции, осуществляющих вышеприведенную операцию.(рис. 3) Следовательно,
Так как по Теореме 1 , ,то
Положим . Тогда , и
С другой стороны, при каждая конъюнкция реализуется на выходе некоторого элемента, то есть при выполняется неравенство . Таким образом,
|
Теорема (2): |
Имеет место соотношение . |
Доказательство: |
Пусть произвольная булева функция, . Заменим в схеме верхнюю часть схемы, реализующую конъюнкции , схемой, реализующей все конъюнкции из . Тогда для любой такой функции (не равной нулю) имеемТаким образом, |
Метод синтеза схем, предложенный К.Э.Шенноном
Теорема (3): |
Имеет место соотношение . |
Доказательство: |
Пусть произвольная булева функция. Рассмотрим разложение по переменным , где :. Схема для функции строится из трех подсхем: . (рис. 4)
Поэтому выполняется неравенство . Таким образом,
Положим (для упрощения дальнейших выкладок) . Тогда
Заметим, что второе слагаемое "очень быстро" растет с ростом , а первое слагаемое убывает с ростом медленней. Поэтому следует взять такое значение , при котором первое и второе слагаемые приблизительно равны, и потом немного уменьшить . Тогда второе слагаемое "сильно" уменьшится, а первое "не очень сильно" возрастет. Возьмем, например, . Тогда
то есть получили "слишком много". Возьмем на единицу меньше: . Тогда
Вспомним теперь, что должно быть целым числом, и положим . Тогда ,
При этом выборе окончательно имеем
Теорема доказана. Литература
|