
Теперь задача состоит в том, чтобы восстановить решение по найденным матрицам. Рассмотрим элемент (v1, v7) последней матрицы (VV')2·V. Этот элемент является единичным. Найдем возможные ненулевые элементы первой строки матрицы (VV′)2, которые при умножении на седьмой столбец v давали бы единичное значение рассматриваемого элемента. Одним из таких элементов является (1, 4), элемент в первой строке и четвертом столбце матрицы (VV′)2, так как элемент (4, 7) матрицы V также является единичным. Другим элементом V с таким же свойством является (5,7). Выберем первый из названных элементов. Таким образом, получаем, что последний переход есть v4→ v7. Далее смотрим, каким способом мог получиться единичный элемент (1, 4) матрицы (VV′)2. Проверив первую строку (VV")×V и четвертый столбец V′, получаем, что рассматриваемый единичный элемент есть результат наличия ненулевого элемента (6, 4) в матрице V′ (так как соответствующий элемент матрицы (VV')·V также отличен от нуля). Таким образом, предпоследний переход есть v6 → v4. Снова проверяем причину наличия ненулевого элемента (6, 1) матрицы (VV')-V. Находим, что он образован единичными элементами (2, 1) в матрице W и (2, 6) в матрице V. Таким образом, третий от конца переход есть v2→v6. Аналогично находим, что четвертый и пятый от конца переходы v3→v2 и v1→v3 соответственно. Вся результирующая совокупность переходов есть v1→v3, v3→v2, v2-→v6, v6→v4, v4→v7 или в более простом виде: v1, v3, v2, v6, v4 и v7. В принципе можно было бы найти другие допустимые переходы.
Дадим словесную интерпретацию полученного решения. Так как v3 есть (2, 0), оба людоеда должны переправиться одновременно, причем один из них должен вернуться (из-за v2). Затем вернувшийся людоед должен высадиться, а два миссионера должны занять место в лодке. После причаливания к правому берегу один из миссионеров должен высадиться (чтобы получить v6), а другой вернуться обратно, чтобы получить v4. Наконец, последний миссионер и людоед переправляются вместе на правый берег. При этом достигается конечное состояние v7.
Упражнение 15. Состояния системы в задаче о трех миссионерах и трех людоедах, когда умеют грести все три миссионера и только один людоед, можно представить тройкой (т, r, с), где 0≤т≤3, 0≤r≤l и 0≤с≤2, причем т соответствует миссионерам, r — умеющему грести людоеду и с — двум остальным людоедам. В этом случае существует 16 возможных состояний системы. Запишите матрицу переходов системы.
Чтобы определить существование решения без использования всех процедур, необходимых для его фактического получения, воспользуемся следующим методом.
Заметим, что решение должно иметь вид (VV')m×V. Пусть начальное состояние системы соответствует вершине v1, а конечное — вершине vk. Тогда, если решение существует, то можно найти т такое, что элемент (1, k) матрицы (VV')m·V оказывается ненулевым. Как было показано выше, чтобы этот элемент был равен единице, необходимо существование, по крайней мере, одного ненулевого элемента в первой строке матрицы (VV')m, соответствующего ненулевому элементу в k-м столбце матрицы V. Таким образом, задача сводится к определению ненулевых элементов первой строки матрицы (VV')m для любой степени т. Это уже существенно более простая задача даже при очень больших матрицах. Пусть множество {va, vb, ..., vc} состоит из вершин, соответствующих единичным элементам первой строки матрицы (VV'). В эти вершины можно попасть из вершины f[ за один круговой проход. Добавим к этому множеству все вершины, которым соответствуют единичные элементы в а-й, b-й, ..., с-й строке матрицы VV′. Новое расширенное множество содержит вершины, в которые можно попасть из v1 за два круговых прохода. Будем повторять такой процесс расширения для всех новых вершин множества до тех пор, пока не переберем всех вершин множества. Множество, полученное в результате такого процесса, состоит из всех вершин, в которые можно попасть из v1 за произвольное число круговых проходов. Если это множество содержит вершины, которым соответствуют ненулевые элементы в k-м столбце матрицы V, то исходная задача имеет решение. В противном случае решение не существует.
Рассмотрим в качестве примера задачу с четырьмя миссионерами и четырьмя людоедами. Пусть вершины графа (число миссионеров, число людоедов)

Задача состоит в том, чтобы перейти из v1 в v13:

В 13-м столбце элементы v8, v11 и v12 не равны нулю. Следовательно, если задача имеет решение, то элементы v8, v11 и v12 первой строки матрицы (VV')m также должы быть ненулевыми:

Множество вершин, в которые можно попасть из v1 состоит из { v1 v2}. Из v2 можно попасть в v1, v2 и v3. Поэтому добавим v3 к первоначальному множеству и получим расширенное множество
{v1, v2, v3}. Из v3 можно попасть в v2, v3, v4 и v6. Вводя новые вершины, получим множество {v1, v2, v3, v4, v6}. Из v4 можно перейти в v3 и v4. Оба эти перехода не изменяют множества. На этом все возможности исчерпаны. Следовательно, из v1 можно попасть только в v1, v2, v3, v4 и v6 и нельзя попасть в v5, v7, v8, v9, v10, v11, v12, v13 ни при каком числе круговых проходов. Но в 13-м столбце матрицы V ненулевыми являются только элементы v8, v11 и v12. Так как ни один из этих элементов не вошел в окончательное множество, можно сделать вывод, что исходная задача не имеет решения.
Замечание. Матрица переходов (булева) может использоваться также для представления ориентированного графа, соответствующего постулатам на множестве состояний Е1, Е2, ..., Еп, которые задают соотношения типа Ei→Ej. Заметим, что постулат Ei→Ei всегда выполняется. Возведя исходную матрицу в квадрат, мы получим новую матрицу, каждый единичный элемент которой указывает либо постулат, либо утверждение, доказываемое за 2 шага, например,
Е6→Е7, Е7→Е10 вместе означают E6→Ei0. Единичные элементы матрицы, являющейся третьей степенью исходной, указывают постулаты или утверждения, которые могут быть доказаны за 2 или за 3 шага. Наконец, (п—1)-я степень показывает все утверждения. Возникает задача нахождения наименьшего числа постулатов, из которых можно вывести заданное множество утверждений. Заметим, что существует, по крайней мере, 2n множеств эквивалентных постулатов, позволяющих получить п теорем.
Упражнение 16. Показать, что общее число матриц размером n×n, элементы которых принимают значения 0 или 1, а все диагональные элементы единичные, равно
.
5.11. Задача деления треугольника
Допустим, что мы разделили треугольник ABC на несколько треугольников меньшего размера, проводя п линий, параллельных его сторонам (рис. 5.25, где n= 2).

Рис. 5.25.
Расставим буквы А, В и С в точках пересечения линий со сторонами следующим образом: точки на стороне ВС могут помечаться только буквами В, С (но не А), точки на сторонах АС и АВ помечаются по аналогичному правилу. Точки, находящиеся внутри большого треугольника, могут помечаться любой из трех букв. Требуется показать, что число маленьких треугольников, вершины которых помечены разными буквами, нечетно.
Для доказательства припишем символ нуль всем отрезкам с одинаково помеченными граничными точками и символ 1 — отрезкам с разными пометками. Сумма символов ребер для любого треугольника ABC равна 3. Для всех других треугольников эта сумма равна 0 или 2. Легко проверить, что сумма символов, соответствующих отрезкам каждой стороны большого треугольника, должна быть нечетной. Сумма символов по всем сторонам всех маленьких треугольников должна быть нечетной, так как все внутренние отрезки считаются дважды. Следовательно, число треугольников (маленьких) с суммой символов сторон 3 оказывается нечетным.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |


