<?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=94.25.228.234&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=94.25.228.234&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/94.25.228.234"/>
		<updated>2026-04-05T21:01:23Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D1%85%D0%B5%D0%BC%D0%B0&amp;diff=71851</id>
		<title>Контактная схема</title>
		<link rel="alternate" type="text/html" href="http://neerc.ifmo.ru/wiki/index.php?title=%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D1%85%D0%B5%D0%BC%D0%B0&amp;diff=71851"/>
				<updated>2019-10-09T22:11:48Z</updated>
		
		<summary type="html">&lt;p&gt;94.25.228.234: Опечатка&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Для математического описания электротехнических устройств, состоящих из контактов и промежуточных реле, функционирующих в дискретные моменты времени применяются ''контактные схемы''. С помощью ''контактных схем'' можно представить любую булеву функцию.&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Контактная схема''' (англ. ''contact circuit'') представляет собой [[Основные определения теории графов|ориентированный ациклический граф]], на каждом ребре которого написана переменная или ее отрицание.&lt;br /&gt;
}}&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Контакт''' (англ. ''contact'') {{---}} ребро схемы, помеченное символом переменной или ее отрицанием. Каждому ребру в схеме сопоставляется какая то переменная (не обязательно каждой переменной сопоставляется ребро)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Принцип работы==&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Замкнутый контакт''' (англ. ''closed contact'') {{---}} контакт схемы, над которым написана &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; или значение переменной равно &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Разомкнутый контакт''' (англ. ''open contact'') {{---}} контакт схемы, над которым написан &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt; или значение переменной равно &amp;lt;tex&amp;gt;0&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;tex&amp;gt;u&amp;lt;/tex&amp;gt; и &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; {{---}} два полюса контактной схемы (из вершины &amp;lt;tex&amp;gt;u&amp;lt;/tex&amp;gt; ребра только выходят, в вершину &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; ребра только входят), определяющую функцию &amp;lt;tex&amp;gt;g(x_1, x_2 \dots, x_n)&amp;lt;/tex&amp;gt;. Тогда &amp;lt;tex&amp;gt;g(x_1, x_2 \dots, x_n)&amp;lt;/tex&amp;gt; принимает значение &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt; при таком наборе значений переменных, если можно добраться из &amp;lt;tex&amp;gt;u&amp;lt;/tex&amp;gt; в &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; только по замкнутым контактам.&lt;br /&gt;
&lt;br /&gt;
==Построение контактных схем==&lt;br /&gt;
===Представление одного из базисов в контактных схемах===&lt;br /&gt;
&lt;br /&gt;
Любую булеву функцию можно представить в виде контактной схемы. Для этого необходимо привести её к [[ДНФ|ДНФ]] или [[КНФ|КНФ]], а затем построить, используя комбинации трех логических элементов:&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| [[Файл:multiply.png | 250px | thumb | Конъюнкция]] || [[Файл:disjunction.png | 250 px | thumb | Дизъюнкция]] || [[Файл:contactnot.png |200px | thumb | Отрицание]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Построение контактных схем===&lt;br /&gt;
&lt;br /&gt;
Пусть задана произвольная булева функция. Требуется построить для нее контактную схему, которая ее реализует. &lt;br /&gt;
В качестве примера рассмотрим функцию, представленную в [[ДНФ|ДНФ]]: &amp;lt;tex&amp;gt;f=(\neg x \land y \land z) \lor (x \land \neg y \land z) \lor (x \land y \land z)&amp;lt;/tex&amp;gt;. Каждой скобке [[ДНФ|ДНФ]] соответствует цепочка из последовательных соединенных контактов, определяемых переменными содержащимися в скобке. При этом, вся схема состоит из параллельных соединений указанных цепочек. Для приведенного примера соответствует схема приведена ниже.&lt;br /&gt;
&lt;br /&gt;
[[Файл:example10.png|320px]]&lt;br /&gt;
&lt;br /&gt;
=== Примеры построения некоторых функций ===&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| [[Файл:xor.png |200 px| thumb | исключающее &amp;quot;или&amp;quot;]] ||  || [[Файл:median.png |200 px|thumb | медиана]] &lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;tex&amp;gt;x \oplus y = (\neg x \land y) \lor (x \land \neg y)&amp;lt;/tex&amp;gt; ||  || &amp;lt;tex&amp;gt; \langle x,y,z \rangle = (x \land y) \lor (x \land z) \lor (y \land z)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Задача о минимизации контактной схемы==&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
Две контактные схемы называются '''эквивалентными''' (англ. ''equivalent contact circuits)'', если они реализуют одну и ту же булеву функцию. &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition =&lt;br /&gt;
'''Сложностью контактной схемы''' (англ. ''the complexity of the contact circuit'') называется число &lt;br /&gt;
ее контактов.  &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition='''Минимальная контактная схема''' (англ. ''minimal contact circuit'') {{---}} схема, имеющая наименьшую сложность среди эквивалентных ей схем.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Определение&lt;br /&gt;
|definition = &lt;br /&gt;
'''Дерево конъюнктов для &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; переменных''' {{---}} двоичное ориентированное дерево глубиной &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt;, такое что: поддеревья на одном и том же уровне одинаковы; и левое ребро любого узла помечено символом переменной &amp;lt;tex&amp;gt;x_k (k \leqslant n)&amp;lt;/tex&amp;gt;, а правое помечено символом отрицания переменной &amp;lt;tex&amp;gt;x_k&amp;lt;/tex&amp;gt;.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Задача минимизации контактных схем состоит в том, чтобы по данной схеме &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt; найти схему &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt; , эквивалентную &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt; и имеющую наименьшую сложность.&lt;br /&gt;
Один из путей решения этой задачи состоит в следующем:&lt;br /&gt;
* Осуществляем переход от контактной схемы &amp;lt;tex&amp;gt;S&amp;lt;/tex&amp;gt; к её булевой функции &amp;lt;tex&amp;gt;F(S)&amp;lt;/tex&amp;gt;.&lt;br /&gt;
* Упрощаем &amp;lt;tex&amp;gt;F(S)&amp;lt;/tex&amp;gt;, то есть отыскиваем функцию &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt; (на том же базисе, что и &amp;lt;tex&amp;gt;F(S)&amp;lt;/tex&amp;gt;, равносильную &amp;lt;tex&amp;gt;F(S)&amp;lt;/tex&amp;gt; и содержащую меньше вхождений операций дизъюнкции и конъюнкции. Для этой операции удобно использовать [[Сокращенная_и_минимальная_ДНФ| карты Карно]].&lt;br /&gt;
* Строим схему &amp;lt;tex&amp;gt;T&amp;lt;/tex&amp;gt;, реализующую функцию &amp;lt;tex&amp;gt;G&amp;lt;/tex&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{Теорема&lt;br /&gt;
|statement = Любую булеву функцию можно представить контактной схемой, сложностью &amp;lt;tex&amp;gt;O(2^n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
|proof = &lt;br /&gt;
Пусть дана функция &amp;lt;tex&amp;gt;f(x_1,x_2 \dots, x_n)&amp;lt;/tex&amp;gt; и она представлена в [[ДНФ|ДНФ]]&lt;br /&gt;
[[Файл:tree_for_two.png | 250px | thumb | Дерево конъюнктов для 2-х переменных]]&lt;br /&gt;
&lt;br /&gt;
Возьмем дерево конъюнктов для &amp;lt;tex&amp;gt;n&amp;lt;/tex&amp;gt; переменных (см. картинку). Очевидно, что от вершины &amp;lt;tex&amp;gt;u&amp;lt;/tex&amp;gt; до &amp;quot;нижних&amp;quot; вершин дерево можно добраться за &amp;lt;tex&amp;gt;O(n)&amp;lt;/tex&amp;gt;, а ребер у такого дерева &amp;lt;tex&amp;gt;O(2^n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Соединим нижние вершины, которые соответствуют конъюнктам функции, с вершиной &amp;lt;tex&amp;gt;v&amp;lt;/tex&amp;gt; контактами, над которыми написана &amp;lt;tex&amp;gt;1&amp;lt;/tex&amp;gt;. От этого в схему добавится не более, чем &amp;lt;tex&amp;gt;2^n&amp;lt;/tex&amp;gt; ребер и тогда сложность останется &amp;lt;tex&amp;gt;O(2^n)&amp;lt;/tex&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
В результате можно построить контактную схему для любой функции со сложностью &amp;lt;tex&amp;gt;O(2^n)&amp;lt;/tex&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==См также==&lt;br /&gt;
* [[Реализация_булевой_функции_схемой_из_функциональных_элементов|Построение функциональной схемы]]&lt;br /&gt;
&lt;br /&gt;
==Источники информации==&lt;br /&gt;
* [http://pgap.chat.ru/zap/zap116.htm Контактные схемы]&lt;br /&gt;
* [http://www.encyclopediaofmath.org/index.php/Contact_scheme Encyclopedia of Math {{---}} Contact sheme]&lt;br /&gt;
* Гаврилов Г.П., Сапоженко А.А. Задачи и упражнения по дискретной математике&lt;br /&gt;
* М. А. Айзерман, Л. А. Гусев, Л. И. Розоноэр И. М. Смирнова, А. А. Таль. Логика, автоматы, алгоритмы.&lt;br /&gt;
&lt;br /&gt;
[[Категория: Дискретная математика и алгоритмы]]&lt;br /&gt;
&lt;br /&gt;
[[Категория: Схемы из функциональных элементов ]]&lt;/div&gt;</summary>
		<author><name>94.25.228.234</name></author>	</entry>

	</feed>