Реализация булевой функции схемой из функциональных элементов — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Схемная сложность: описка)
Строка 1: Строка 1:
 
== Логические элементы ==
 
== Логические элементы ==
''Функциональный элемент'' (англ. ''Combinational element'')  — устройство, предназначенное для обработки информации в цифровой форме. Функциональный элемент имеет ''входы'' и ''выходы''.
+
'''Функциональный элемент''' (англ. ''Combinational element'')  — устройство, предназначенное для обработки информации в цифровой форме. Функциональный элемент имеет ''входы'' и ''выходы''.
 
Сигналы на входах функционального элемента — аргументы функции, которую реализует функциональный элемент, сигналы на выходах — значение функции от аргументов.
 
Сигналы на входах функционального элемента — аргументы функции, которую реализует функциональный элемент, сигналы на выходах — значение функции от аргументов.
  
Если входные и выходные сигналы — являются нулями и единицами, элемент называется ''логическим'' (англ. ''logic gate'').
+
Если входные и выходные сигналы — являются нулями и единицами, элемент называется '''логическим''' (англ. ''logic gate'').
 
При подаче на входы логического элемента любой комбинации двоичных сигналов, на выходах также возникает сигнал — значение [[Определение булевой функции|булевой функции]].
 
При подаче на входы логического элемента любой комбинации двоичных сигналов, на выходах также возникает сигнал — значение [[Определение булевой функции|булевой функции]].
  
Строка 25: Строка 25:
 
|Стрелка Пирса
 
|Стрелка Пирса
 
|-
 
|-
!Традиционная форма
+
|Традиционная форма
 
|[[Image:AND_logic_element.png]]
 
|[[Image:AND_logic_element.png]]
 
|[[Image:OR_logic_element.png]]
 
|[[Image:OR_logic_element.png]]
Строка 32: Строка 32:
 
|[[Image:NOR_logic_element.png]]
 
|[[Image:NOR_logic_element.png]]
 
|-
 
|-
!Прямоугольная форма
+
|Прямоугольная форма
 
|[[Image:AND_logic_relement.png]]
 
|[[Image:AND_logic_relement.png]]
 
[[Image:AND_logic_relement2.png]]
 
[[Image:AND_logic_relement2.png]]
Строка 43: Строка 43:
 
[[Image:NAND_logic_relement2.png]]
 
[[Image:NAND_logic_relement2.png]]
 
|[[Image:NOR_logic_relement.png]]
 
|[[Image:NOR_logic_relement.png]]
 
 
[[Image:NOR_logic_relement2.png]]
 
[[Image:NOR_logic_relement2.png]]
 
|}
 
|}
Строка 50: Строка 49:
 
{{Определение
 
{{Определение
  
|definition= '''Схемная сложность''' функции <tex>f</tex> относительно базиса <tex>B</tex> — это минимальное количество функциональных элементов из набора <tex>B</tex>, необходимое для реализации функции <tex>f</tex> в базисе <tex>B</tex>.
+
|definition= '''Схемная сложность''' функции <tex>f</tex> относительно базиса <tex>B</tex> (англ. ''Circuit complexity'')  — это минимальное количество функциональных элементов из набора <tex>B</tex>, необходимое для реализации функции <tex>f</tex> в базисе <tex>B</tex>.
 
Схемную сложность функции <tex>f</tex> в базисе <tex>B</tex> обозначают так: <tex>size_B(f)</tex>
 
Схемную сложность функции <tex>f</tex> в базисе <tex>B</tex> обозначают так: <tex>size_B(f)</tex>
 
}}
 
}}
Строка 64: Строка 63:
 
{{Определение
 
{{Определение
  
|definition= '''Глубина схемы''' для функции <tex>f</tex> относительно базиса <tex>B</tex> — это максимальная длина пути от входа до выхода по схеме соответствующей функции <tex>f</tex>, состоящей из элементов набора <tex>B</tex>, где за единицу длины принимается один элемент схемы.  
+
|definition= '''Глубина схемы''' для функции <tex>f</tex> относительно базиса <tex>B</tex> — это максимальная длина пути от входа до выхода по схеме соответствующей функции <tex>f</tex>, состоящей из элементов набора <tex>B</tex>, где за единицу длины принимается один элемент схемы.  
 
Глубину схемы для функции <tex>f</tex> в базисе <tex>B</tex> обозначают <tex>depth_B(f)</tex>
 
Глубину схемы для функции <tex>f</tex> в базисе <tex>B</tex> обозначают <tex>depth_B(f)</tex>
 
}}
 
}}
Строка 76: Строка 75:
 
}}
 
}}
 
Доказательство аналогично доказательству предыдущей теоремы.
 
Доказательство аналогично доказательству предыдущей теоремы.
 +
 +
== Смотри также ==
 +
* [[Простейшие методы синтеза схем из функциональных элементов]]
 +
* [[Сумматор]]
 +
* [[Каскадный сумматор]]
 +
* [[Контактная схема]]
  
 
== Источники ==
 
== Источники ==
  
* Кормен, Т., Лейзерсон, Ч., Ривест, Р. Алгоритмы: построение и анализ = Introduction to Algorithms / Пер. с англ. под ред. А. Шеня. — М.: МЦНМО, 2000. — 960 с. — ISBN 5-900916-37-5
+
* Кормен, Т., Лейзерсон, Ч., Ривест, Р. Алгоритмы: построение и анализ — 960 с. — ISBN 5-900916-37-5
* [http://en.wikipedia.org/wiki/Logic_gate  Статья Logic Gate на английской википедии]
+
* [http://en.wikipedia.org/wiki/Logic_gate  Wikipedia — Lodic gate]
* [http://www.intuit.ru/department/calculate/lancalc/2/  Лекция "Схемы из функциональных элементов" в Интернет Университете Информационных Технологий]
+
* [http://www.intuit.ru/department/calculate/lancalc/2/  Лекция "Схемы из функциональных элементов" в НОУ "ИНТУИТ"]
  
 
[[Категория: Дискретная математика и алгоритмы]]
 
[[Категория: Дискретная математика и алгоритмы]]
  
 
[[Категория: Схемы из функциональных элементов ]]
 
[[Категория: Схемы из функциональных элементов ]]

Версия 22:56, 2 января 2017

Логические элементы

Функциональный элемент (англ. Combinational element) — устройство, предназначенное для обработки информации в цифровой форме. Функциональный элемент имеет входы и выходы. Сигналы на входах функционального элемента — аргументы функции, которую реализует функциональный элемент, сигналы на выходах — значение функции от аргументов.

Если входные и выходные сигналы — являются нулями и единицами, элемент называется логическим (англ. logic gate). При подаче на входы логического элемента любой комбинации двоичных сигналов, на выходах также возникает сигнал — значение булевой функции.

Отождествление переменных

Отождествление переменных осуществляется при помощи ветвления проводников.
Отождествление переменных

Подстановка

Чтобы осуществить подстановку одной функции в другую нужно выход логического элемента, который реализует первую функцию, направить на вход логического элемента, который реализует вторую функцию.

Подстановка

Изображение логических элементов на схемах

Тип элемента И ИЛИ НЕ Штрих Шеффера Стрелка Пирса
Традиционная форма AND logic element.png OR logic element.png NOT logic element.png NAND logic element.png NOR logic element.png
Прямоугольная форма AND logic relement.png

AND logic relement2.png

OR logic relement.png

OR logic relement2.png

NOT logic relement.png NAND logic relement.png

NAND logic relement2.png

NOR logic relement.png

NOR logic relement2.png

Схемная сложность

Определение:
Схемная сложность функции [math]f[/math] относительно базиса [math]B[/math] (англ. Circuit complexity) — это минимальное количество функциональных элементов из набора [math]B[/math], необходимое для реализации функции [math]f[/math] в базисе [math]B[/math]. Схемную сложность функции [math]f[/math] в базисе [math]B[/math] обозначают так: [math]size_B(f)[/math]


Теорема:
Для любых базисов [math]~B_1[/math], [math]~B_2[/math] и функции [math]~f[/math] верно неравенство [math]~size_{B_2}(f) \leq C_{(B_1,\;B_2)}size_{B_1}(f)[/math], где константа [math]~C[/math] зависит только от базисов [math]~B_1[/math] и [math]~B_2[/math].
Доказательство:
[math]\triangleright[/math]
Пусть базис [math]~B_2[/math] состоит из функций [math]~g_1, g_2, ..., g_n[/math]. Каждый функциональный элемент базиса [math]~B_2[/math] можно собрать с помощью не более чем [math]~size_{B_1}(g_i)[/math] элементов из базиса [math]~B_1[/math]. Собрать [math]f[/math] в базисе [math]B_1[/math] можно следующим образом: заменить каждый элемент схемы [math]f[/math] в базисе [math]B_2[/math] на схему соответствующей функции в базисе [math]B_1[/math]. Такая сборка использует не более чем в [math]~C = \max_{i=1}^n size_{B_1}(g_i)[/math] раз больше функциональных элементов, чем соответствующая схема в [math]B_2[/math]. Параметр [math]~C[/math] зависит только от выбранных базисов.
[math]\triangleleft[/math]

Глубина схемы

Определение:
Глубина схемы для функции [math]f[/math] относительно базиса [math]B[/math] — это максимальная длина пути от входа до выхода по схеме соответствующей функции [math]f[/math], состоящей из элементов набора [math]B[/math], где за единицу длины принимается один элемент схемы. Глубину схемы для функции [math]f[/math] в базисе [math]B[/math] обозначают [math]depth_B(f)[/math]

Примечание: понятие глубины имеет смысл только для схем с ограниченной степенью входа (bounded fan-in).


Теорема (аналогична теореме про схемную сложность):
Для любых базисов [math]~B_1[/math], [math]~B_2[/math] и функции [math]~f[/math] верно неравенство [math]~depth_{B_2}(f) \leq C_{(B_1,\;B_2)}depth_{B_1}(f)[/math], где константа [math]~C[/math] зависит только от базисов [math]~B_1[/math] и [math]~B_2[/math].

Доказательство аналогично доказательству предыдущей теоремы.

Смотри также

Источники