Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
МММССК МММК ССК СК
МММСС ММСС МС С
МММСK ММСK МK K
МММС МММ СС 0
Здесь 0 означает, что на берегу А нет ни одного человека (читатель может проверить, что в остальных восьми состояниях основное правило нарушается либо на одном, либо на другом берегу). Изменения состояний этой системы соответствуют отъезду или возвращению лодки. На графе рис. 5.20 показаны все (25) возможных переходов.

Рис. 5.20.
Для упрощения переходы изображены в виде ребра, так как возможно любое направление. Однако каждое ребро следует рассматривать как две противоположно ориентированные дуги, соответствующие отъезду лодки (направление по часовой стрелке) и возвращение лодки (направление против часовой стрелки). Новая формулировка задачи выглядит так: найти (если возможно) путь из МММССК в 0, в котором дуги, соответствующие отъезду и возвращению, чередуются.
Без последнего условия задача решается легко. (Например, последовательность состояний МММССК, ММСК, СК, 0 дает решение.) С учетом этого условия задача становится значительно более трудной. Прежде чем двигаться дальше, читатель может поработать некоторое время с графом рис. 5.20 и либо найти решение, либо убедиться, что его нет. Для того чтобы дать систематический способ поиска решения, определим вспомогательный граф, имеющий те же самые вершины. Вспомогательный граф вводится для того, чтобы отразить возможные изменения состояния системы между
двумя последовательными возвращениями лодки. Тем самым исключается необходимость чередовать дуги, соответствующие отъезду и возвращению лодки.
Пусть, например, лодка стоит у берега A, а система находится в состоянии МММС. Из рис. 5.20 мы видим, что система может перейти в состояние ММСС или ММСК через состояние МС (заметим, что при этом лодка снова окажется у берега a). Поэтому соединяем ребра МММС с ММСС и ММСК. На рис. 5.21 показаны все такие ребра (включая ориентированные ребра, ведущие в конечное состояние 0, которые соответствуют последнему переезду без возвращения лодки на берег A).

Рис. 5. 21.
Для вспомогательного графа рис. 5.21 задача заключается в следующем: определить цепь из МММССК в 0. Легко видеть, что такая цепь существует. Например, МММССК, МММСК, МММК, ММСК, ММСС, ССК, МС, 0 является искомой цепью. Добавляя (в скобках) промежуточные состояния, получим следующее решение для первоначального графа рис. 5.20: МММССК, (ММСК), МММСК, (МММ), МММ К, (МК), ММСК, [(МС), ММСС, (СС), ССК, (С), МС, 0. Это решение показано на рис. 5.22.

Рис. 5.22.
Отметим, что найденный путь не является простым, так как две дуги входят в ММСК и МС (в каждом случае одна дуга соответствует отъезду лодки от берега А, а вторая — возвращению лодки).
Упражнения 13. Определить, имеет ли задача о миссионерах и людоедах решение с меньшим числом переездов, при менее сильном предположении, что все людоеды умеют грести. (Заметим, что при более сильном предположении, что только один миссионер может грести, задача становится более интересной.)
14. Для ориентированного графа, показанного на рис. 5.23, определить путь из v в w, в котором чередуются сплошные и пунктирные дуги, причем первая дуга является сплошной.

Рис. 5.23.
a) Решить задачу, использовав для исследования исходного графа рис. 5.23.
b) Решить задачу, применяя описанный выше метод построения вспомогательного графа, каждая из дуг которого соответствует паре чередующихся дуг (или одной сплошной дуге, оканчивающейся в w) первоначального графа.
c) Отметим, что решение не является простым путем в первоначальном графе. (Действительно, путь возвращается в v.)
В некоторых случаях допустимые переходы очевидны, в других же совершенно неясно, можно ли достичь из заданного начального состояния желаемого конечного. Примером последнего является задача отыскания пути в сложной путанице лабиринта, которая часто встречается в литературе по занимательной математике. Это в сущности задача определения цепи, соединяющей две заданные вершины соответствующего графа, который характеризует структуру лабиринта.
Рассмотрим, например, плоский лабиринт, показанный на рис. 5.24. 
Рис. 5.24.
Этот лабиринт состоит из 36 отделений, некоторые из которых соединены «проходами» (указанными разрывами в линиях). Предположим, что задача заключается в том, чтобы достигнуть точки Q вне лабиринта, начиная из отделения Р. Рассмотрим граф, вершины которого соответствуют отделениям, а ребра указывают, какие пары соседних отделений соединены проходом. Этот граф показан на рис. 5.24. Для данного графа задача заключается в определении цепи, соединяющей Р и Q. В такой формулировке задача является очень простой. Построив граф, соответствующий данному лабиринту, мы можем применить методы пометок и определить дерево, соединяющее Р со всеми другими вершинами (отделениями). При этом, в частности, мы найдем и цепь, соединяющую Р и Q (если задача имеет решение).
Однако мы не заметили одного серьезного затруднения. Метод непосредственной пометки требует систематического перебора ребер и вершин и предполагает, что мы фактически знаем структуру всего лабиринта. Практически же, если мы находимся в лабиринте, скажем, в точке Р, то вначале у нас есть очень мало информации, а именно, мы знаем только, в какие отделения можно попасть непосредственно из Р. Добавочная информация поступает только постепенно, при исследовании различных направлений.
Все многочисленные существующие методы отыскания выхода из такого лабиринта основаны на систематизации процедуры исследования путей, позволяющей избежать излишних повторений одного и того же пути (некоторые повторения неизбежны). Существование тупика нельзя предсказать, его можно только обнаружить. (Когда тупик обнаружен, повторение части пути неизбежно.) Однако, отмечая вершины и ребра по мере того, как они встречаются и исследуются, можно предложить способ, при котором ни одно ребро не проходится дважды з одном направлении независимо от структуры лабиринта (заметим, что лабиринт может быть пространственным и з этом случае связанный с ним граф оказывается неплоским).
5.10. Матричная форма задачи о переправе
Решим предложенную з предыдущем разделе задачу о переправе через реку миссионеров и людоедов, используя при этом матрицу смежности вершин.
Напомним условие задачи: лодка выдерживает не более двух человек, и на одном и том же берегу не должно находиться больше людоедов, чем миссионеров, поскольку первые имеют привычку съедать своих святых наставников. Рассмотрим простой случай переправы через реку группы из двух миссионеров и двух людоедов.
Прежде чем выписывать матрицу смежности, поставим в соответствие вершинам графа состояния на одном из берегов реки. Предположим, что вся группа появляется на левом берегу реки. Рассмотрим все возможные состояния (с учетом наших двух условий) на левом берегу. Состояние будет обозначаться парой чисел, первое из которых указывает число миссионеров, а второе — число людоедов. Мы имеем следующие возможные состояния на левом берегу.

Заметим, что состояние (1, 0) недопустимо, так как соответствующее состояние на правом берегу будет (1, 2) и единственный миссионер будет съеден. Аналогично, состояние (1, 2) недопустимо и на левом берегу. Образуем матрицу смежности, элементы которой равны 1 или 0 в зазисимости от того, возможен ли переход из одного состояния на левом берегу к другому состоянию также на левом берегу. Переходы, конечно, определяются отъездами лодки. Таким образом, мы выписываем названия вершин слева и сверху матрицы и расставляем элементы 0 или 1 з зависимости от возможности перехода из состояния, представленного вершиной слева матрицы к другому состоянию, представленному вершиной сверху. Получаем матрицу смежности

Для правого берега реки мы будем иметь идентичное множество состояний, которые являются дополнительными к состояниям левого берега. Их матрица V′ является транспонированной относительно выписанной выше матрицы V. Нетрудно проверить, что для получения матрицы возможных переходов после одного переезда лодки туда и обратно необходимо перемножить V4V′. В общем случае, чтобы получить матрицу переходов после т переездов лодки туда и обратно, нужно вычислить (VV')m. А так как наша цель заключается в переправе группы на правый берег, то необходимо (VV')m умножить на V. Это даст (VV')mV, и задача свелась к определению числа т двусторонних (т. е. туда и обратно) переездов лодки, при котором элемент, стоящий на пересечении строки v1 и столбца v7 матрицы (VV)mV, равен 1, т. е. на левом берегу имеет место переход из состояния (2, 2) в состояние (0, 0) и вся группа оказывается на правом берегу. Заметим, что величина элементов произведений VV′, VV'V, VV′VV′ и т. д. указывает на число способов, которыми можно осуществить соответствующий переход. Это число может быть больше 1. Так как наша цель состоит в определении для каждого состояния одного возможного перехода, то все ненулевые элементы произведений можно положить разными 1. Оказывается, что исходную задачу можно решить путем т=2 двусторонних переездов и одного (последнего) одностороннего (т. е. единичный элемент впервые появляется на пересечении строки v1 и столбца v7 в матрице (VV')2V). Результаты последовательных вычислений имеют следующий вид:
|
Из за большого объема этот материал размещен на нескольких страницах:
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 |


