2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Схемная сложность булевой функции
Сообщение07.07.2017, 01:45 


22/05/16
171
Здравствуйте! Не могу понять что значит схемная сложность булевой функции? Вот есть функция $f(x,y,z)=(0,1,1,0,0,1,0,0)$. Минимизировал ее и получил $z\bar y\vee\bar xy\bar z$.
Почитал, что нашел в интернете и построил Изображение.Схемная сложность это количество уровней в дереве? Иногда пишут просто сложность булевой функции. Схемная сложность и сложность это одно и тоже?

 Профиль  
                  
 
 Re: Схемная сложность булевой функции
Сообщение07.07.2017, 02:23 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Схема - это не обязательно дерево. Например, для Вашей функции можно взять такую схему:
\xymatrix{x\ar[ddd] & y\ar[d] & z\ar[ldd]\ar[dd] \\
 & \bar{y}\ar[d]\ar[rd] & \\
 & \bar{y} \vee z\ar[ld] & \bar{y}z\ar[lddd] \\
 x \vee \bar{y} \vee z\ar[d] & & \\
 \overline{x \vee \bar{y} \vee z} = \bar{x}y\bar{z}\ar[rd] & & \\
 & \bar{x}y\bar{z} \vee \bar{y}z = f(x,y,z) &
}

Сложность схемы - это не количество уровней, а количество операций (вершин в графе, кроме исходных переменных). У моей схемы сложность 6, а у Вашей - 7.
А схемная сложность функции - это минимальная сложность схемы, которая вычисляет эту функцию. Если я нигде не ошибся, то схемы из 5 элементов для этой функции существовать не может, и поэтому ее схемная сложность равна 6, но доказать это (по крайней мере, руками, а не полным перебором) нетривиально.

 Профиль  
                  
 
 Re: Схемная сложность булевой функции
Сообщение07.07.2017, 09:36 


14/01/11
2918
В другом базисе может получиться другая сложность. Например, в Nand-базисе сложность данной функции равна 5. $f1 =y \barwedge z, f2 = \bar x, f3 =y \barwedge f1\barwedge f2, f4 =  z\barwedge f1, f = f3\barwedge f4.$
$\xymatrix{
x\ar[d]&y\ar[dd]\ar[rd]&&z\ar[ld]\ar[dd]\\
f2\ar[rd]&&f1\ar[ld]\ar[rd]\\
&f3\ar[rd]&&f4\ar[ld]\\
&&f}$

-- Пт июл 07, 2017 09:37:00 --

Минимальность доказана SAT-солвером. :-)

-- Пт июл 07, 2017 09:40:03 --

А глубина схемы, соответственно, 3.

-- Пт июл 07, 2017 10:08:55 --

Как-то натыкался на лекции А.В. Чашкина по дискретной математике, там в лекции 8 есть все необходимые определения, парочка полезных теорем и примеров оценки сложности и глубины булевых функций.

 Профиль  
                  
 
 Re: Схемная сложность булевой функции
Сообщение07.07.2017, 10:14 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Есть еще лекции Ложкина с ВМК МГУ: Ложкин С.А. "Лекции по основам кибернетики" и Ложкин С.А. "Дополнительные главы кибернетики", скачать можно тут и тут.

 Профиль  
                  
 
 Re: Схемная сложность булевой функции
Сообщение07.07.2017, 11:19 


22/05/16
171
Xaositect ,Спасибо! Хотел прояснить для себя некоторые вопросы. Если задача стоит в нахождении минимальной ДНФ(КНФ). В литературе рассматриваются несколько подходов, я знаю два карты Карно и метод Квайна. Это два альтернативных алгоритма которые приводят к одинаковому результату ? Трудоемкость алгоритма Квайна гораздо выше, для $4$ переменных не реально посчитать минимальной ДНФ(КНФ). На практике удобней пользоваться картами Карно? Если задача стоит построить минимальную нормальную форму функции $f$? Используя алгоритм Квайна мы должны найти минимальные ДНФ и КНФ из них выбрать минимальную. Если пользоваться картами Карно, то мы должны действовать аналогично строим минимальные ДНФ и КНФ и из них выбираем минимальную? Или можно построить одну из них например минимальную ДНФ и она будет минимальной нормальной формой?

 Профиль  
                  
 
 Re: Схемная сложность булевой функции
Сообщение07.07.2017, 11:23 
Заслуженный участник
Аватара пользователя


23/07/08
10669
Crna Gora

(Оффтоп)

Лекции Чашкина и Ложкина.

 Профиль  
                  
 
 Re: Схемная сложность булевой функции
Сообщение07.07.2017, 12:24 
Заслуженный участник
Аватара пользователя


06/10/08
6422
dima_1985 в сообщении #1232005 писал(а):
В литературе рассматриваются несколько подходов, я знаю два карты Карно и метод Квайна. Это два альтернативных алгоритма которые приводят к одинаковому результату ? Трудоемкость алгоритма Квайна гораздо выше, для $4$ переменных не реально посчитать минимальной ДНФ(КНФ). На практике удобней пользоваться картами Карно?
Я не знаю, что Вы имеете в виду, говоря о картах Карно как об алгоритме поиска минимальной ДНФ. Карты Карно - это просто графическое представление импликант для функций от 3 или 4 переменных, все действия с картами Карно можно так же записать как действия с простыми импликантами. Для 4 переменных все реально сделать руками любым методом, не преувеличивайте :)
dima_1985 в сообщении #1232005 писал(а):
На практике удобней пользоваться картами Карно?
На практике удобно пользоваться SAT-солверами и эвристиками, которые дают не обязательно минимальную, но достаточно простую ДНФ.
dima_1985 в сообщении #1232005 писал(а):
Если пользоваться картами Карно, то мы должны действовать аналогично строим минимальные ДНФ и КНФ и из них выбираем минимальную?
Если я правильно понимаю (Вы используете слово "минимальная ДНФ" в двух разных смыслах), то да, все равно для нахождения минимальной ДНФ нужен будет перебор всех неулучшаемых ДНФ.

 Профиль  
                  
 
 Re: Схемная сложность булевой функции
Сообщение07.07.2017, 16:07 


22/05/16
171
Xaositect в сообщении #1232024 писал(а):
На практике удобно пользоваться SAT-солверами и эвристиками, которые дают не обязательно минимальную, но достаточно простую ДНФ.

Про этот метод я пока не знаю.
Xaositect в сообщении #1232024 писал(а):
Если я правильно понимаю (Вы используете слово "минимальная ДНФ" в двух разных смыслах), то да, все равно для нахождения минимальной ДНФ нужен будет перебор всех неулучшаемых ДНФ.

Я думаю не совсем правильно для моей функции
dima_1985 в сообщении #1231966 писал(а):
$f(x,y,z)=(0,1,1,0,0,1,0,0)$

минимальная ДНФ(может быть несколько?)
dima_1985 в сообщении #1231966 писал(а):
$z\bar y\vee\bar xy\bar z$

минимальная КНФ(может быть несколько?) $(y \vee z)(\bar y \vee \bar z)(\bar x \vee z)$. Для того чтобы найти минимальную в классе нормальных форм мы выбираем минимальную из МКНФ и МДНФ ? Получаем минимальную в классе нормальных $z\bar y\vee\bar xy\bar z$ ( так как $5$ переменных три отрицания).

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: redicka


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group