Обсуждение участника:Sancho20021 — различия между версиями
м (→Оценка на количество линейных программ над \{\downarrow\} длины r) |
|||
| Строка 35: | Строка 35: | ||
Построение функциональной схемы по линейной программе очевидно. | Построение функциональной схемы по линейной программе очевидно. | ||
}} | }} | ||
| − | ===Оценка на количество линейных программ над <tex>\{\downarrow\}</tex> длины <tex>r</tex>=== | + | ===Оценка на количество линейных программ над <tex>\{\downarrow\}</tex>(стрелка Пирса является базисом) длины <tex>r</tex>=== |
<tex>n</tex> {{---}} количество аргументов булевой функции. | <tex>n</tex> {{---}} количество аргументов булевой функции. | ||
| + | |||
| + | В первой строчке мы можем выбрать одну из <tex>n</tex> переменных (<tex>x_1, \ldots, x_n</tex>) и применить к ней <tex>\downarrow</tex>. Получим еще одну переменную <tex>y_1</tex>. Во второй строчке программы нам на выбор доступны уже <tex>n+1</tex> переменных (<tex>x_1, \ldots, x_n, y_1</tex>). В общем случае на <tex>i</tex>-й строчке (нумерация с единицы) мы можем применить стрелку Пирса к одной из <tex>n+i-1</tex> переменных. Из этого следует формула ниже. | ||
Количество линейных программ <tex>= K_{n, r} = n^2 \cdot (n+1)^2 \cdot (n+2)^2 \cdot \ldots \cdot (n+r-1)^2 \leq (n+r)^{2r}</tex> | Количество линейных программ <tex>= K_{n, r} = n^2 \cdot (n+1)^2 \cdot (n+2)^2 \cdot \ldots \cdot (n+r-1)^2 \leq (n+r)^{2r}</tex> | ||
Версия 15:01, 10 июня 2020
Теорема о нижней оценке на число элементов в схеме
| Теорема: |
Большинство булевых функций требуют для реализации порядка функциональных элементов, где — количество аргументов функции.
Формальная запись теоремы: Тогда |
Для доказательства этой теоремы нам понадобится доказать несколько вспомогательных утверждений.
| Определение: |
| Линейная программа — список строк вида , где (базис), , — индексы переменных. |
Пример линейной программы
Линейная программа для функции над базисом
Длина линейной программы — количество строк.
| Теорема: |
Для булевой функции линейная программа длины схема, использующая функциональных элементов. |
| Доказательство: |
|
Чтобы построить по схеме программу, можно занумеровать элементы схемы в порядке топологической сортировки, и для каждого элемента с функцией и входами сопоставить строчку линейной программы с номером вида . Построение функциональной схемы по линейной программе очевидно. |
Оценка на количество линейных программ над (стрелка Пирса является базисом) длины
— количество аргументов булевой функции.
В первой строчке мы можем выбрать одну из переменных () и применить к ней . Получим еще одну переменную . Во второй строчке программы нам на выбор доступны уже переменных (). В общем случае на -й строчке (нумерация с единицы) мы можем применить стрелку Пирса к одной из переменных. Из этого следует формула ниже.
Количество линейных программ
| Лемма: |
булева функция |
| Доказательство: |
|
Посчитаем число линейных программ длиной
Обобщим для произвольного
|
Таким образом, количество линейных программ длины меньше
Возвращение к теореме о нижней оценке