12.07.2015 Views

Выпуск 14

Выпуск 14

Выпуск 14

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Способ 1. Сведение к одному уравнению. Сначалапреобразуем уравнения так, чтобы правые частибыли равны 1 (истинному значению). Для этогоприменим инверсию (операцию “НЕ”) к обеим частямпервого уравнения:⎧⎪A → C=1⎨⎪⎩ A ⊕ B = 1Теперь представляем импликацию и “исключающееИЛИ” через базовые операции (“И”, “ИЛИ”,“НЕ”):⎪⎧ A + C=1⎨⎪⎩ A ⋅ B + A ⋅ B = 1Поскольку необходимо, чтобы левые части обоихуравнений были равны 1, можно объединить ихс помощью операции “И” в одно уравнение, равносильноеисходной системе:( A+ C)( ⋅ A⋅ B+ A⋅ B)= 1Раскрываем инверсию в первой скобке по законуде Моргана и вносим “сомножитель” A в скобку, незабыв, что A ⋅ A = 0 и A ⋅ A = A:A ⋅C⋅( A⋅ B+ A⋅ B)= 1 ⇔ A ⋅B⋅ C=1Последнее уравнение, равносильное исходнойсистеме, имеет единственное решение: A = 1,B=0 и C=1. Таким образом, в море вышли кораблиА и C.Способ 2. Таблица истинности. Поскольку логическиевеличины имеют только два значения, можнопросто перебрать все варианты и найти срединих те, при которых выполняется данная системауравнений. Для системы с тремя переменными возможны8 вариантов:A B C A → C A ⊕ B0 0 0 1 00 0 1 1 00 1 0 1 10 1 1 1 11 0 0 1 11 0 1 0 11 1 0 1 01 1 1 0 0Зеленым цветом выделена единственнаястрочка, для которой выполняются условия задачи,то есть A → C=0 и A ⊕ B=1. Таким образом,A = 1, B=0 и C=1, это значит, что в море вышликорабли А и C. Недостаток этого метода — трудоемкостьпри большом количестве переменных(больше 4).Заметим, что такой подход особенно удобен приавтоматизации решения подобных задач. Именноон (совместно с приведением системы к одномууравнению) используется в программе для решениясистем логических уравнений, которая размещенана диске-приложении к этому номеру.Способ 3. Декомпозиция. Идея состоит в том,чтобы зафиксировать значение одной из переменных(положить ее равной 0 или 1) и за счет этогоупростить уравнения. Затем можно зафиксироватьзначение второй переменной и т.д. В нашем случаепри A = 0 получаем⎧0→ C=0⎨⎩0 ⊕ B = 1Известно, что импликация ложна только в одномслучае — когда посылка истинна, а следствие ложно( 1→ 0=0). Поэтому первое уравнение (и, следовательно,вся система) при A = 0 решений не имеет.Теперь рассмотрим второй случай, когда A = 1:⎧1→ C=0⎨⎩1 ⊕ B = 1Из первого уравнения в силу свойств импликациисразу следует, что C=0 или C=1, а из второго— B=0 ( A ⊕ B=1 означает, что A ≠ B ). Таким образом,существует единственное решение системы:A = 1 , B=0 и C=1; это значит, что в море вышликорабли А и C.Способ 4. Последовательное решение уравнений.В некоторых случаях можно решать уравнения последовательно,на каждом шаге добавляя по однойпеременной в рассматриваемый набор. Чтобы вводитьпеременные в алфавитном порядке, поменяемместами уравнения в нашей системе:⎧A⊕ B=1⎨⎩A → C = 0Мы видим, что первое уравнение зависиттолько от A и B , а в третьем подключается переменнаяC . Будем строить дерево решений и одновременнозаписывать его в свернутом виде в таблицу.Переменная A может принимать два значения:A0А011Из первого уравнения A ⊕ B=1 следует, чтоA ≠ B , поэтому при A = 0 получаем единственныйвариант B=1, а при A = 1 имеем B=0. Итак, первоеуравнение имеет два решения относительно переменныхA и B.АB01A B0 11 0Теперь “подключаем” второе уравнение A → C=0,из которого нужно определить допустимые значенияC для каждоговарианта. При A = 0А01 импликация не можетбыть ложна, тоесть первая строчкаB10 предыдущейтаблицы×не дает ни одно-го решения системыC1 двух уравнений. При1031сентябрь 2011 / ИНФОРМАТИКА

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!