Примеры использования

3.1 Система обслуживания с отказами

Сервер, состоит из нескольких блоков, например модемов или сетевых карт, к которым поступают запросы от пользователей на обслуживание. Если все блоки заняты, то запрос теряется. Если один из блоков принимает запрос, то он становится занятым до конца его обработки. В качестве состояний возьмем количество незанятых блоков. Время будет дискретно. Обозначим за α вероятность поступления запроса. Также мы считаем, что время обслуживания также является случайным и состоящим из независимых продолжений, т.е. запрос с вероятностью β обслуживается за один шаг, а с вероятностью (1 - β) обслуживается после этого шага как новый запрос. Это дает вероятность (1 - β) β для обслуживания за два шага, (1 - β)2 β для обслуживания за три шага и т.д. Рассмотрим пример с 4 устройствами, работающими параллельно. Составим матрицу переходных вероятностей для выбранных состояний:

1 - α α 0 0 0

β 1 - α - β α 0 0

0 2β 1 - α - 2β α 0

0 0 3β 1 - α - 3β α

0 0 0 4β 1 - 4β

Можно заметить, что она имеет единственный эргодический класс, и, следовательно, система p × P = p в классе вероятностных векторов имеет единственное решение. Выпишем уравнения системы, позволяющей находить это решение:

p0 (1 - α) + p1 β = p0,

p0 α + p1 (1 - α - β) + p2 2β = p1,

p1 α + p2 (1 - α - 2β) + p3 3β = p2,

p2 α + p3 (1 - α - 3β) + p4 4β = p3,

p3 α + p4 (1 - 4β) = p4.

 

Отсюда получаем (при γ = α / β):

p1 = γ p0,

p2 = γ2 p0/2,

p3 = γ3 p0/3,

p4 = γ4 p0/4,

 

из условия нормировки следует:

p0 = С = (1 + γ + γ2/2 + γ3/3 + γ4/4)-1.

Теперь известен набор вероятностей πi того, что в стационарном режиме в системе будет занято i блоков. Тогда долю времени p4 = С γ4/4 в системе заняты все блоки, система не отвечает на запросы. Полученные результаты распространяются на любое число блоков. Теперь можно воспользоваться ими: можно сопоставить затраты на дополнительные устройства и уменьшение времени полной занятости системы.

Подробнее можно ознакомиться с этим примером в [1].

3.2 Процессы принятия решений с конечным и бесконечным числом этапов

Рассмотрим процесс, в котором есть несколько матриц переходных вероятностей. Для каждого момента времени выбор той или иной матрицы зависит от принятого нами решения. Понять вышесказанное можно на следующем примере. Садовник в результате анализа почвы оценивает ее состояние одним из трех чисел: (1) — хорошее, (2) — удовлетворительное или (3) — плохое. При этом садовник заметил, что продуктивность почвы в текущем году зависит только от ее состояния в предыдущем году. Поэтому вероятности перехода почвы без внешних воздействий из одного состояния в другое можно представить следующей цепью Маркова с матрицей P1:

P1

0.25 0.50 0.25

0.00 0.45 0.55

0.00 0.00 1.00

 

Логично, что продуктивность почвы со временем ухудшается. Например, если в прошлом году состояние почвы было удовлетворительное, то в этом году оно может только остаться таким же или стать плохим, а хорошим никак не станет. Однако садовник может повлиять на состояние почвы и изменить переходные вероятности в матрице P1 на соответствующие им из матрицы P2: P2

0.40 0.50 0.10

0.15 0.60 0.25

0.05 0.45 0.50

 

Теперь можно сопоставить каждому переходу из одного состояния в другое некоторую функцию дохода, которая определяется как прибыль или убыток за одногодичный период. Садовник может выбирать использовать или не использовать удобрения, именно от этого будет зависеть его конечный доход или убыток. Введем матрицы R1 и R2, определяющие функции дохода в зависимости от затрат на удобрения и качества почвы: R1

7.00 6.00 3.00

0.00 5.00 1.00

0.00 0.00 -1.00

 

R2

6.00 5.00 -1.00

7.00 4.00 0.00

6.00 3.00 -2.00

Наконец перед садовником стоит задача, какую стратегию нужно выбрать для максимизации среднего ожидаемого дохода. Может рассматриваться два типа задач: с конечным и бесконечным количеством этапов. В данном случае когда-нибудь деятельность садовника обязательно закончится. Кроме того, визуализаторы решают задачу принятия решений для конечного числа этапов. Пусть садовник намеревается прекратить свое занятие через N лет. Наша задача теперь состоит в том, чтобы определить оптимальную стратегию поведения садовника, то есть стратегию, при которой его доход будет максимальным. Конечность числа этапов в нашей задаче проявляется в том, что садовнику не важно, что будет с его сельскохозяйственным угодьем на N+1 год (ему важны все года до N включительно). Теперь видно, что в этом случае задача поиска стратегии превращается в задачу динамического программирования. Если через fn(i) обозначить максимальный средний ожидаемый доход, который можно получить за этапы от n до N включительно, начиная из состояния с номером i, то несложно вывести рекуррентное соотношение, связывающее fn(i) с числами fn+1(j)

fn(i) = maxk{∑j=1mpijk[rijk + fn+1(j)]}, n = 1, 2, …, N

 

Здесь k — номер используемой стратегии. Это уравнение основывается на том, что суммарный доход rijk + fn+1(j) получается в результате перехода из состояния i на этапе n в состояние j на этапе n+1 с вероятностью pijk.

Теперь оптимальное решение можно найти, вычисляя последовательно fn(i) в нисходящем направлении (n = N…1). При этом введение вектора начальных вероятностей в условие задачи не усложнит ее решение.

Данный пример также рассмотрен в [2].

3.3 Моделирование сочетаний слов в тексте

Рассмотрим текст, состоящий из слов w. Представим процесс, в котором состояниями являются слова, так что когда он находится в состоянии (Si) система переходит в состояние (sj) согласно матрице переходных вероятностей. Прежде всего, надо «обучить» систему: подать на вход достаточно большой текст для оценки переходных вероятностей. А затем можно строить траектории марковской цепи. Увеличение смысловой нагрузки текста, построенного при помощи алгоритма цепей Маркова возможно только при увеличении порядка, где состоянием является не одно слово, а множества с большей мощностью — пары (u, v), тройки (u, v, w) и т.д. Причем что в цепях первого, что пятого порядка, смысла будет еще немного. Смысл начнет появляться при увеличении размерности порядка как минимум до среднего количества слов в типовой фразе исходного текста. Но таким путем двигаться нельзя, потому, что рост смысловой нагрузки текста в цепях Маркова высоких порядков происходит значительно медленнее, чем падение уникальности текста. А текст, построенный на марковских цепях, к примеру, тридцатого порядка, все еще будет не настолько осмысленным, чтобы представлять интерес для человека, но уже достаточно схожим с оригинальным текстом, к тому же число состояний в такой цепи будет потрясающим.

Эта технология сейчас очень широко применяется (к сожалению) в Интернете для создания контента веб-страниц. Люди, желающие увеличить трафик на свой сайт и повысить его рейтинг в поисковых системах, стремятся поместить на свои страницы как можно больше ключевых слов для поиска. Но поисковики используют алгоритмы, которые умеют отличать реальный текст от бессвязного нагромождения ключевых слов. Тогда, чтобы обмануть поисковики используют тексты, созданные генератором на основе марковской цепи. Есть, конечно, и положительные примеры использования цепей Маркова для работы с текстом, их применяют при определении авторства, анализе подлинности текстов.

 

Литература

Романовский И.В. Дискретный анализ: Учебное пособие для студентов, 3-е изд. — СПб: Невский Диалект; БХВ Петербург, 2003.

Таха, Хэмди А. Введение в исследование операций, 6-е изд. — М.: Издательский дом «Вильямс», 2001.

Вернер М. Основы кодирования. Учебник для ВУЗов. — М.: Техносфера, 2004.

Беляев А., Гаврилов М., Масальских А., Медвинский М. Марковские процессы, 2004.