<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=178.178.30.201&amp;*</id>
		<title>Викиконспекты - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=178.178.30.201&amp;*"/>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/178.178.30.201"/>
		<updated>2026-04-05T00:08:09Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%9D%D0%A4&amp;diff=19491</id>
		<title>ДНФ</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%94%D0%9D%D0%A4&amp;diff=19491"/>
				<updated>2012-03-14T22:29:58Z</updated>
		
		<summary type="html">&lt;p&gt;178.178.30.201: /* СДНФ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ДНФ ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
Простой конъюнкцией или конъюнктом называется конъюнкция одной или нескольких переменных или их отрицаний, причём каждая переменная встречается не более одного раза.&lt;br /&gt;
}}&lt;br /&gt;
Простая конъюнкция&lt;br /&gt;
* '''полная''', если в неё каждая переменная (или её отрицание) входит ровно 1 раз;&lt;br /&gt;
* '''монотонная''', если она не содержит отрицаний переменных.&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
ДНФ (Дизъюнктивная Нормальная Форма) — нормальная форма, в которой [[Определение булевой функции|булева функция]] имеет вид дизъюнкции нескольких простых конъюнктов.&lt;br /&gt;
}}&lt;br /&gt;
Пример ДНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y) = (x \land y) \lor (y \land \neg {z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== СДНФ ==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
СДНФ (Совершенная Дизъюнктивная Нормальная Форма)''' — это такая ДНФ, которая удовлетворяет условиям:&lt;br /&gt;
* в ней нет одинаковых простых конъюнкций&lt;br /&gt;
* каждая простая конъюнкция полная&lt;br /&gt;
}}&lt;br /&gt;
Пример СДНФ:&lt;br /&gt;
&amp;lt;tex&amp;gt;f(x,y,z) = (x \land \neg {y} \land z) \lor (x \land y \land \neg {z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement=&lt;br /&gt;
Для любой булевой функции &amp;lt;tex&amp;gt;f(\vec {x})&amp;lt;/tex&amp;gt;, не равной тождественному нулю (), существует СДНФ, ее задающая.&lt;br /&gt;
|proof = &lt;br /&gt;
Для любой булевой функции выполняется следующее соотношение, называемое '''разложением Шеннона'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;f(\vec{x}) = \neg  x_i \wedge f(x_1,..,x_{i-1},0,x_{i+1},..,x_n) \vee&lt;br /&gt;
x_i \wedge f(x_1,..,x_{i-1},1,x_{i+1},x_n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Данное соотношение легко проверить подстановкой всевозможных значений &amp;lt;tex&amp;gt;x_i&amp;lt;/tex&amp;gt; (&amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;). Эта формула позволяет выносить &amp;lt;tex&amp;gt;x_i&amp;lt;/tex&amp;gt; за знак функции. Последовательно вынося &amp;lt;tex&amp;gt;x_1&amp;lt;/tex&amp;gt;, &amp;lt;tex&amp;gt;x_2&amp;lt;/tex&amp;gt;,.., &amp;lt;tex&amp;gt;x_n&amp;lt;/tex&amp;gt; за знак &amp;lt;tex&amp;gt;f(\vec{x})&amp;lt;/tex&amp;gt;, получаем следующую формулу : &lt;br /&gt;
&amp;lt;tex&amp;gt; f(\vec{x}) = \neg  x_1 \wedge \neg  x_2 \wedge ...\wedge \neg  x_{n-1} \wedge \neg  x_n \wedge f(0,0,...,0,0)~\vee~&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tex&amp;gt;\neg  x_1 \wedge \neg  x_2 \wedge ... \wedge \neg  x_{n-1} \wedge x_n \wedge f(0,0,...,0,1) ~\vee~ \\&lt;br /&gt;
\dots \\&lt;br /&gt;
~\vee~ x_1 \wedge x_2 \wedge ... \wedge x_{n-1} \wedge \neg  x_n \wedge f(1,1,...,1,0) ~\vee~\\ &lt;br /&gt;
x_1 \wedge x_2 \wedge ... \wedge x_{n-1} \wedge x_n \wedge f(1,1,...,1) &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так как применение данного соотношения к каждой из переменных увеличивает количество конъюнктов в два раза, то для функции от &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; переменных мы имеем &amp;lt;tex&amp;gt;2^n&amp;lt;/tex&amp;gt; конъюнктов. Каждый из них соответствует значению функции на одном из &amp;lt;tex&amp;gt;2^n&amp;lt;/tex&amp;gt; возможных наборов значений &amp;lt;tex&amp;gt; n &amp;lt;/tex&amp;gt; переменных. Если на некотором наборе &amp;lt;tex&amp;gt;f(\vec{x})=0&amp;lt;/tex&amp;gt;, то весь соответствующий конъюнкт также равен нулю и из представления данной функции его можно исключить. Если же &amp;lt;tex&amp;gt; f(\vec{x})=1&amp;lt;/tex&amp;gt;, то в соответствующем конъюнкте само значение функции можно опустить. В результате для произвольной функции была построена СДНФ.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Алгоритм построения СДНФ по таблице истинности ==&lt;br /&gt;
# В таблице истинности отмечаем те наборы переменных, на которых значение функции равно 1.&lt;br /&gt;
# Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу: если значение некоторой переменной есть 1, то в конъюнкцию включаем саму переменную, иначе ее отрицание.&lt;br /&gt;
# Все полученные конъюнкции связываем операциями дизъюнкции.&lt;br /&gt;
&lt;br /&gt;
== Пример построения СДНФ для медианы==&lt;br /&gt;
1. В таблице истинности отмечаем те наборы переменных, на которых значение функции равно 1.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:10cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
| x || y || z || &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 0 || 0&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 1&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
2. Для каждого отмеченного набора записываем конъюнкцию всех переменных по следующему правилу: если значение некоторой переменной есть 1, то в конъюнкцию включаем саму переменную, иначе ее отрицание.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;width:16cm&amp;quot; border=1&lt;br /&gt;
|+&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#EEEEFF&lt;br /&gt;
| x || y || z || &amp;lt;tex&amp;gt; \langle x,y,z \rangle &amp;lt;/tex&amp;gt; || &lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 0 || 1 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
| 0 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(\neg {x} \land y \land z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 0 || 0 ||&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 0 || 1 || 1 || &amp;lt;tex&amp;gt;(x \land \neg {y} \land z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 0 || 1 || &amp;lt;tex&amp;gt;(x \land y \land \neg {z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
|-align=&amp;quot;center&amp;quot; bgcolor=#FFFFFF&lt;br /&gt;
! 1 || 1 || 1 || 1 || &amp;lt;tex&amp;gt;(x \land y \land z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
3. Все полученные конъюнкции связываем операциями дизъюнкции.&lt;br /&gt;
                                                                  &lt;br /&gt;
&amp;lt;tex&amp;gt; \langle x,y,z \rangle = (x \land y \land z) \lor (\neg {x} \land y \land z) \lor (x \land \neg {y} \land z) \lor (x \land y \land \neg {z})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Примеры СДНФ для некоторых функций==&lt;br /&gt;
Стрелка Пирса: &amp;lt;tex&amp;gt; x \downarrow y = (\neg {x} \land \neg {y})&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Исключающее или: &amp;lt;tex&amp;gt; x \oplus y \oplus z = (\overline{x} \land \overline{y} \land z) \lor (\overline{x} \land y \land \overline{z}) \lor (x \land \overline{y} \land \overline{z}) \lor (x \land y \land z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://ru.wikipedia.org/wiki/%D0%A1%D0%94%D0%9D%D0%A4 СДНФ — Википедия]&lt;br /&gt;
* [http://dvo.sut.ru/libr/himath/w163rabk/index.htm Е.Л Рабкин,  Ю.Б. Фарфоровская — Дискретная математика]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Булевы функции ]]&lt;/div&gt;</summary>
		<author><name>178.178.30.201</name></author>	</entry>

	</feed>