Простейшие методы синтеза схем из функциональных элементов — различия между версиями
м |
м |
||
Строка 55: | Строка 55: | ||
==Метод синтеза, основанный на более компактной реализации множества всех конъюнкций== | ==Метод синтеза, основанный на более компактной реализации множества всех конъюнкций== | ||
+ | |||
+ | {{Определение | ||
+ | |||
+ | |definition= <tex> f(n) \sim g(n) </tex> означает, что <tex>f</tex> асимптотически эквивалентна <tex>g</tex>, то есть <tex>\lim_{n \to \infty}\frac{f(n)}{g(n)} = 1</tex> | ||
+ | }} | ||
+ | |||
+ | {{Определение | ||
+ | |||
+ | |definition= <tex> f(n) \lesssim g(n) </tex> означает, что <tex>\overline{\lim}_{n \to \infty}\frac{f(n)}{g(n)} \le 1</tex> | ||
+ | }} | ||
{{Лемма | {{Лемма | ||
Строка 88: | Строка 98: | ||
|id = Th2 | |id = Th2 | ||
|about = 2 | |about = 2 | ||
− | |statement = | + | |statement =Для любой функции <tex> f(x_{1}, ..., x_{n}) </tex> имеет место соотношение <tex> size_{B}(f)\lesssim 2^{n+1} </tex>. |
− | |proof = Пусть <tex> f(x_{1},...,x_{n}) </tex> произвольная булева функция,<tex> f \ne 0 </tex>. Заменим в схеме верхнюю часть схемы, реализующую конъюнкции <tex> K_{1} \vee K_{2} \vee ... \vee K_{s} </tex>, схемой, реализующей все конъюнкции из <tex> K_{n} </tex>. Тогда для любой такой функции <tex> f(x_{1},...,x_{n}) </tex> (не равной нулю) имеем | + | |proof = Пусть <tex> f(x_{1},...,x_{n}) </tex> произвольная булева функция,<tex> f \ne 0 </tex>. Заменим в схеме (рис. 2) верхнюю часть схемы, реализующую конъюнкции <tex> K_{1} \vee K_{2} \vee ... \vee K_{s} </tex>, схемой, реализующей все конъюнкции из <tex> K_{n} </tex>. Тогда для любой такой функции <tex> f(x_{1},...,x_{n}) </tex> (не равной нулю) имеем |
− | ::<tex> | + | ::<tex> size_{B}(f) \le size_{B}(K_{n})+s-1 \le size_{B}(K_{n})+2^{n}-1 \lesssim 2^{n+1} </tex> |
Таким образом, | Таким образом, | ||
− | ::<tex> | + | ::<tex> size_{B}(f)\lesssim 2^{n+1}. </tex> |
Теорема доказана. | Теорема доказана. | ||
Строка 105: | Строка 115: | ||
|id = Th3 | |id = Th3 | ||
|about = 3 | |about = 3 | ||
− | |statement = | + | |statement =Для любой функции <tex> f(x_{1}, ..., x_{n}) </tex> имеет место соотношение <tex> size_{B}(f)\lesssim 12\frac {2^{n}}{2} </tex>. |
|proof = [[Файл:Synschemes Theorem2.png|300px|thumb|right|Рис. 4]] | |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}) </tex> произвольная булева функция. Рассмотрим разложение <tex> f </tex> по переменным <tex> x_{1},...,x_{n} </tex>, где <tex> 1 \le m \le n </tex>: | ||
Строка 115: | Строка 125: | ||
: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]] выполняется неравенство | ||
− | ::<tex> | + | ::<tex> size_{B}(S_{1}) \le size_{B}(K_{m}) \lesssim 2^{m} </tex>. |
:2. Схема <tex> S_{2} </tex> реализует <tex> F(x_{m+1},...,x_{n}) </tex> всех булевых функций от переменных <tex> x_{m+1},...,x_{n} </tex>. В силу [[#Th1|Теоремы 1]] | :2. Схема <tex> S_{2} </tex> реализует <tex> F(x_{m+1},...,x_{n}) </tex> всех булевых функций от переменных <tex> x_{m+1},...,x_{n} </tex>. В силу [[#Th1|Теоремы 1]] | ||
− | ::<tex> | + | ::<tex> size_{B}(S_{2}) \le (n-m)2^{n-m+1}2^{2^{n-m}} </tex>. |
:3. Схема <tex> S_{3} </tex> производит "сборку" в соответствии с разложением функции <tex> f </tex>: для каждого набора реализуется конъюнкция | :3. Схема <tex> S_{3} </tex> производит "сборку" в соответствии с разложением функции <tex> f </tex>: для каждого набора реализуется конъюнкция | ||
Строка 124: | Строка 134: | ||
::<tex> 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> 2^{m} </tex> элементов конъюнкции) и образуется дизъюнкция таких конъюнкций (<tex> 2^{m}-1 </tex> элементов дизъюнкции). | ::<tex> 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> 2^{m} </tex> элементов конъюнкции) и образуется дизъюнкция таких конъюнкций (<tex> 2^{m}-1 </tex> элементов дизъюнкции). | ||
− | Поэтому выполняется неравенство <tex> | + | Поэтому выполняется неравенство <tex> size_{B}(S_{3}) \le 2^{m} +2^{m} -1 </tex>. Таким образом, |
− | ::<tex> | + | ::<tex> size_{B}(f) \le size_{B}(S_{1})+size_{B}(S_{2})+size_{B}(S_{3}) \lesssim 3 \cdot 2^{m} +(n-m)2^{n-m+1}2^{2^{n-m}} </tex>. |
Положим (для упрощения дальнейших выкладок) <tex> k=n-m </tex>. Тогда | Положим (для упрощения дальнейших выкладок) <tex> k=n-m </tex>. Тогда | ||
− | ::<tex> | + | ::<tex> size_{B}(f) \lesssim 3 \cdot 2^{n-k} +k2^{k+1}2^{2^{k}} </tex>. |
Заметим, что второе слагаемое "очень быстро" растет с ростом <tex> k </tex>, а первое слагаемое убывает с ростом <tex> k </tex> медленней. Поэтому следует взять такое значение <tex> k </tex>, при котором первое и второе слагаемые приблизительно равны, и потом немного уменьшить <tex> k </tex>. Тогда второе слагаемое "сильно" уменьшится, а первое "не очень сильно" возрастет. Возьмем, например, <tex> k=\log_{2}n </tex>. Тогда | Заметим, что второе слагаемое "очень быстро" растет с ростом <tex> k </tex>, а первое слагаемое убывает с ростом <tex> k </tex> медленней. Поэтому следует взять такое значение <tex> k </tex>, при котором первое и второе слагаемые приблизительно равны, и потом немного уменьшить <tex> k </tex>. Тогда второе слагаемое "сильно" уменьшится, а первое "не очень сильно" возрастет. Возьмем, например, <tex> k=\log_{2}n </tex>. Тогда | ||
Строка 153: | Строка 163: | ||
При этом выборе <tex> k </tex> окончательно имеем | При этом выборе <tex> k </tex> окончательно имеем | ||
− | ::<tex> | + | ::<tex> size_{B}(n)\lesssim 12\frac {2^{n}}{2} </tex>. |
Теорема доказана.}} | Теорема доказана.}} |
Версия 17:46, 10 ноября 2013
Определение: |
Синтезом схемы из функциональных элементов называется процедура получения логической схемы, реализующей заданную логическую функцию. |
Приведем несколько простейших алгоритмов синтеза схем, реализующих произвольную функцию от аргументов , в случае когда базис .
Содержание
Метод синтеза, основанный на совершенной ДНФ
Лемма (1): |
Для любой функции , реализующей конъюнкцию аргументов, |
Доказательство: |
Построим данную схему следующим образом: возьмем элементов отрицания, присоединенных к выходам, и цепочки из элементов конъюнкции, имеющих "свободных" входов.Каждый -й вход этой цепочки присоединяется к входу схемы, если -й множитель равен , или к выходу -го элемента отрицания, если -й множитель равен .(рис. 1)Очевидно, что сложность построенной схемы равна .Поэтому Лемма доказана. . |
Теорема (1): |
Для любой функции имеет место неравенство |
Доказательство: |
Пусть булева функция. Если , то может быть задана нормальной дизъюнктивной формой произвольная
где и каждая конъюнкция имеет видСхема Леммой 1 имеет сложность не более ) и цепочки из элемента дизъюнкции с свободными входами. Свободные входы этой цепочки присоединяются к выходам схем для конъюнкций .(рис. 2) Имеем для состоит из конъюнкций (каждая из них в соответствии с
Если , то схема строится в соответствии с представлением , то есть .Таким образом, для любой функции выполняется неравенство
Поэтому Теорема доказана. . |
Метод синтеза, основанный на более компактной реализации множества всех конъюнкций
Определение: |
означает, что асимптотически эквивалентна , то есть |
Определение: |
означает, что |
Лемма (2): |
Для функции , реализующей конъюнкцию элементов, имеет место соотношение |
Доказательство: |
Разделим цепочки конъюнкций на две части. Каждая конъюнкция может быть представлена в виде конъюнкции двух конъюнкций длины и :
Поэтому схема для может быть образована из схем для и и системы из элементов конъюнкции, осуществляющих вышеприведенную операцию.(рис. 3) Следовательно,
Так как по Теореме 1 , ,то
Положим . Тогда , и
С другой стороны, при каждая конъюнкция реализуется на выходе некоторого элемента, то есть при выполняется неравенство . Таким образом,
|
Теорема (2): |
Для любой функции имеет место соотношение . |
Доказательство: |
Пусть произвольная булева функция, . Заменим в схеме (рис. 2) верхнюю часть схемы, реализующую конъюнкции , схемой, реализующей все конъюнкции из . Тогда для любой такой функции (не равной нулю) имеемТаким образом, |
Метод синтеза схем, предложенный К.Э.Шенноном
Теорема (3): |
Для любой функции имеет место соотношение . |
Доказательство: |
Пусть произвольная булева функция. Рассмотрим разложение по переменным , где :. Схема для функции строится из трех подсхем: . (рис. 4)
Поэтому выполняется неравенство . Таким образом,
Положим (для упрощения дальнейших выкладок) . Тогда
Заметим, что второе слагаемое "очень быстро" растет с ростом , а первое слагаемое убывает с ростом медленней. Поэтому следует взять такое значение , при котором первое и второе слагаемые приблизительно равны, и потом немного уменьшить . Тогда второе слагаемое "сильно" уменьшится, а первое "не очень сильно" возрастет. Возьмем, например, . Тогда
то есть получили "слишком много". Возьмем на единицу меньше: . Тогда
Вспомним теперь, что должно быть целым числом, и положим . Тогда ,
При этом выборе окончательно имеем
|
Литература
- Яблонский С.В. Введение в дискретную математику. — 4-е изд. — М.: Высшая школа, 2003. — 384 с. — ISBN 5-06-004681-8