ПРОФИЛЬ32сентябрь 2011 / ИНФОРМАТИКАA = 1 получаем единственное решение, для которогоC=1:A B C1 0 1Таким образом, существует единственное решениесистемы: A = 1, B=0 и C=1. Это значит, что вморе вышли корабли А и C.Количество решенийИногда требуется определить только количестворешений системы логических уравнений, при этомнаходить сами решения не нужно.Задача 2. Найти количество решений системыуравнений:⎧X1+ X2= 1⎪X2+ X3= 1⎨⎪...⎪⎩X9 + X10= 1где X 1KX 10 — неизвестные логические величины.Здесь 10 переменных, поэтому при решении системычерез таблицу истинности нужно заполнить2 10 = 1024 строки, что трудновыполнимо. Поэтомурешения, сводящиеся к полному перебору вариантов,нужно отбросить. Поскольку все правые части равны 1,можно легко свести систему к одному уравнению:( X1+ X2) ⋅ ( X2+ X3) ⋅K⋅ ( X9 + X10)= 1 ,но такой подход также не внушает оптимизма.Несложно заметить, что первое уравнение зависиттолько от X1 и X2, затем во втором уравнении добавляетсяX3 и т.д. Поэтому логично попробовать решатьуравнения последовательно. Начнем строить дереворешений, и одновременно будем записывать его ввиде таблицы. Первое уравнение, X1+ X2= 1, обращаетсяв истинное равенство в трех случаях:X1X2X 1010 00 11 1X 20 1 1Теперь подключаем второе уравнение,X2 + X3= 1. Допустимые значения X 3 зависят отранее выбранного значения X2: если X2= 0, то X3может принимать любое значение (0 или 1), а еслиX2= 1, то X3= 1. Дерево и соответствующая емутаблица выглядят так:X X1 2X3X 10100 010 1 101 11 1 1X 2X 30111Легко заметить, что при добавлении очередногоуравнения (и очередной переменной) верхняястрока таблицы (где все нули) дает два решения(они выделены зеленым фоном), а остальныестроки — по одному. Поэтому количество решенийувеличивается на 1. Таким образом, системаиз трех уравнений имеет 5 решений, из четырех— 6, а исходная система из девяти уравнений— 11 решений.Рассмотрим более сложный пример на ту жетему.Задача 3. Найти количество решений системыуравнений:( )( )⎧ X2 ≡ X1 + X2 ⋅ X3 + X2 ⋅ X3= 1⎪⎪ X3 ≡ X1 + X3 ⋅ X4 + X3 ⋅ X4= 1⎪⎨K⎪⎪( X9 ≡ X1)+ X9 ⋅ X10 + X9 ⋅ X10= 1⎪⎩( X10 ≡ X1)= 0где X 1K X 10— неизвестные логические величины.Здесь, так же как и в предыдущей задаче, удобнеевсего последовательно решать уравнения и записыватьполученные решения в таблицу (дереворисовать не будем для сокращения записи). Сначалаупростим исходные уравнения, заметив, что( )X2 ⋅ X3 + X2 ⋅ X3 = X2 ≡ X3 , так что исходнуюсистему можно записать в виде⎧( X2 ≡ X1) + ( X2 ≡ X3)= 1⎪⎪( X3 ≡ X1) + ( X3 ≡ X4)= 1⎪⎨K⎪⎪( X9 ≡ X1) + ( X9 ≡ X10)= 1⎪⎩( X10 ≡ X1)= 0В первом уравнении используются три переменных( X 1K X 3 ). Значения X1 и X2могут быть выбраныпроизвольно четырьмя способами:X1X20 00 11 01 1Теперь добавляем X 3и первое уравнение какограничение. Запишем в таблицу все комбинациипеременных, при которых выполняется первоеуравнение:X1X2X30 0 00 0 10 1 11 0 01 1 01 1 1Если X2 = X1, то значение X 3 может быть любое(эти строки выделены зеленым цветом), а приX X получаем только один вариант: X = X .≠2 13 2
Таким образом, при подключении первого уравнениячисло решений увеличивается на количествострок в таблице, для которых значения X1 и X2(последнейрассмотренной переменной) равны. В данномслучае таких строк две, получаем 6 решений.Более того, в новой таблице снова осталось всегодве строки (верхняя и нижняя), где X3 = X1. Какследует из второго уравнения, именно эти (и толькоэти) строки на следующем шаге “раздваиваются”,дают по два решения. Таким образом, при подключениик системе очередного уравнения числорешений увеличивается на 2. Для двух уравненийполучим 8 решений, для трех — 10, а для восьми —20 решений.Остается учесть последнее (особое) уравнение,( X10 ≡ X1)= 0. Это означает, что X10 ≠ X1. Изанализа таблицы видно, что есть всего две строки(верхняя и нижняя), где первая и последняя переменныеравны. Поэтому из полученных 20 решенийнужно отбросить эти два, не удовлетворяющиепоследнему уравнению. В итоге исходная системаимеет 18 решений.Замена переменныхВ некоторых случаях задача упрощается, если использоватьзамену переменных.Задача 4. Найти количество решений системыуравнений:⎧X1 ⋅ X2 + X1 ⋅ X2 + X3 ⋅ X4 + X3 ⋅ X4= 1⎪X3 ⋅ X4 + X3 ⋅ X4 + X5 ⋅ X6 + X5 ⋅ X6= 1⎨⎪X5 ⋅ X6 + X5 ⋅ X6 + X7 ⋅ X8 + X7 ⋅ X8= 1⎪⎩X7 ⋅ X8 + X7 ⋅ X8 + X9 ⋅ X10 + X9 ⋅ X10= 1где X 1K X 10 — неизвестные логические величины.Сначала упростим эти уравнения, используясвойства операций “исключающее ИЛИ” и “эквивалентность”.В первом уравненииX1 ⋅ X2 + X1 ⋅ X2 = ( X1 ⊕ X2) = ( X1 ≡ X2)X3 ⋅ X4 + X3 ⋅ X4 = ( X3 ≡ X4)Применяя подобные преобразования во всехуравнениях, получаем⎧( X1 ≡ X2) + ( X3 ≡ X4)= 1⎪⎪( X3 ≡ X4) + ( X5 ≡ X6)= 1⎨⎪( X5 ≡ X6) + ( X7 ≡ X8)= 1⎪⎪⎩( X7 ≡ X8) + ( X9 ≡ X10)= 1Далее замечаем, что можно ввести новые переменныеY1 = ( X1 ≡ X2), Y2 = ( X3 ≡ X4)Y3 = ( X5 ≡ X6), Y4 = ( X7 ≡ X8)Y5 = ( X9 ≡ X10)и система уравнений принимает вид⎧Y1 + Y2= 1⎪Y2 + Y3= 1⎨⎪Y3 + Y4= 1⎪⎩Y4 + Y5= 1Важно, что переменные Y 1K Y 5независимы,то есть каждая из исходных переменных X 1K X 10входит только в одну из новых переменных.Полученная система совпадает по форме ссистемой, которая рассматривалась в задаче 2.Используя результаты решения задачи 2, сразунаходим, что наша система из четырех уравненийимеет 6 решений относительно переменныхY1 K Y5.Остается вернуться обратно к исходным переменнымX 1K X 10 . Предположим, что значениеY1 = ( X1 ≡ X2)фиксированно (0 или 1). Тогда,согласно таблице истинности операции “эквивалентность”,существует ровно две пары значений( X1, X2), при которых Y 1 имеет заданное значение(как для Y1= 0, так и для Y1= 1). Таким образом,каждая комбинация значений Y 1K Y 5 дает подве возможных пары ( X1, X2), ( X3, X4), ( X5, X6),( X7, X8)и ( X9, X10), то есть всего 2 5 = 32 комбинацииисходных переменных.Таким образом, общее количество решений равно6 · 32 = 192.Решение — функцияРассмотрим более сложную задачу, в которойтребуется найти логическую функцию, удовлетворяющуюзаданному уравнению (или системе уравнений).Задачи такого типа могут встречаться напрактике при разработке схем логического управления[4–5].Задача 5. Найти логическую функцию X(A, B),которая при любых значениях логических переменныхA и B удовлетворяет системе уравнений:⎧X + A = X ⋅ A + B⎨⎩A + B + X = 1Заметим, что классические методы решений системуравнений, известные из математики, здесьне работают, потому что для логических величинне определено вычитание и деление.Такие системы проще всего решать с помощьютаблиц истинности. Для каждой возможной комбинациизначений переменных A и B получаем системууравнений с одним неизвестным X:A BСистемаXуравнений⎧X = 00 0 ⎨⎩X = 100 11 0⎧X = 1⎨⎩1 = 1⎧1 = X⎨⎩1 = 1⎧1 = 11 1 ⎨⎩1 = 10 или 1Заметим, что в последней строчке значение Xможет быть любым. Поэтому исходной системе1033сентябрь 2011 / ИНФОРМАТИКА