Автор работы: Пользователь скрыл имя, 17 Ноября 2011 в 08:04, курсовая работа
Теория игр – раздел математики, предметом которого является изучение математических моделей принятия оптимальных решений в условиях конфликта.
ИГРОЙ называется всякая конфликтная ситуация, изучаемая в теории игр и представляющая собой упрощенную, схематизированную модель ситуации. От реальной конфликтной ситуации игра отличается тем, что не включает второстепенные, несущественные для ситуации факторы и ведется по определенным правилам, которые в реальной ситуации могут нарушаться
Таблица
2. Выбранные игроками
стратегии и их выигрыши
при них на первых двух
шагах.
В третьей партии игрок 2 выбирает свою 2-ю стратегию, так как из всех суммарных проигрышей наименьшим является 2.
Таким образом, продолжая этот
процесс далее, составим
но-мер
пар тии |
Страте-
гия второго игрока |
выигрыш игрока 1 при его стратегиях | Страте-
гия первого игрока |
проигрыш
игрока 2
при его стратегиях |
u | w | n | ||||
1 | 2 | 3 | 1 | 2 | 3 | ||||||
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
1
2 2 2 3 3 1 3 3 3 3 3 2 2 2 2 2 2 2 3 |
0
3 6 9 10 11 11 12 13 14 15 16 19 22 25 28 31 34 37 38 |
4
5 6 7 9 11 15 17 19 21 23 25 26 27 27 29 30 31 32 34 |
2
2 2 2 5 8 10 13 16 19 22 25 25 25 25 25 25 25 25 28 |
2
2 1 1 1 1 2 2 2 2 2 2 2 2 2 2 1 1 1 1 |
4
8 8 8 8 8 12 16 20 24 28 32 36 40 44 48 48 48 48 48 |
1
2 5 8 11 14 15 16 17 18 19 20 21 22 23 24 27 30 33 36 |
2
4 5 6 7 8 10 12 14 16 18 20 22 24 26 28 29 30 31 32 |
4
5/2 6/3 9/4 10/5 11/6 15/7 17/8 19/9 21/10 23/11 25/12 26/13 27/14 27/15 29/16 31/17 34/18 37/19 38/20 |
1
2/2 5/3 6/4 7/5 8/6 10/7 12/8 14/9 16/10 18/11 20/12 21/13 22/14 23/15 24/16 27/17 30/18 31/19 32/20 |
5/2
7/2 11/6 15/8 17/10 19/12 25/14 27/16 33/18 37/20 41/22 45/24 47/26 49/28 50/30 53/32 58/34 64/36 68/38 70/40 |
Таблица 3. Выбранные игроками стратегии и их выигрыши при них на 20 шагах.
Из таблицы видно, что в 20-ти проигранных партиях стратегии 1, 2, 3 для второго игрока встречаются соответственно 2, 10, 8 раз, следовательно, их относительные частоты равны 2/20, 10/20, 8/20. Стратегии 1, 2, 3 для игрока 1 встречаются соответственно 8, 12, 0 раз, следовательно, их относительные частоты равны 8/20, 12/20, 0, а приближённое значение цены игры равно 70/40.
Таким образом, получили приближённое решение игры: (4.11), (4.12), n=1,57.
Такой
итеративный процесс ведёт
Предлагаемый
для рассмотрения алгоритм реализуется
только для одного игрока в отличие
от первого, который работает для
двух игроков. Алгоритм позволяет находить
точно и приближенно
Особенность этого алгоритма в способности генерировать строго монотонно возрастающую последовательность оценок цены игры, что не свойственно ранее предлагаемому алгоритму.
Рассмотрим смешанное расширение =(X,Y,K)(5.1) матричной игры ГА с матрицей А размера (m´n)(5.2). Процесс разыгрывания игры состоит из нескольких шагов. Пусть каждый из игроков имеет конечное число стратегий.
Введём следующие обозначения:
аi – i-я строка матрицы выигрышей;
xN=(x1N,x2N,…,xmN)(5.3) ÎX – m-мерный вектор, приближение оптимальной стратеги первого игрока на N-шаге (N-номер шага);
cN=( )(5.4) –n-мерный вектор, определяющий средний накопленный выигрыш на N-шаге.
Зададим начальные условия. Пусть на 0-шаге с0= , x0=(0,…, 1,…, 0)(5.6), где 1 занимает i0-ю позицию.
Определим итеративный процесс следующим образом: по известным векторам xN-1, cN-1 находим векторы xN и cN , которые вычисляются по следующим формулам:
где параметр 0£eN£1, а векторы вводятся далее.
Как отмечалось, вектор сN определяет средний накопленный выигрыш игрока 1 на N шаге. Компоненты этого вектора – это числа. В худшем случае игрок 1 может получить минимальное из этих чисел. Примем его за нижнюю оценку цену игры, которую обозначим:
Запомним
множество индексов JN-1=(
), (k<n), на которых
будет достигается этот минимум, т. е.
Далее рассмотрим подыгру ГN игры ГА с матрицей выигрышей АN={ }(5.10), i=1,…,m, jN-1ÎJN-1. Матрица выигрышей состоит из столбцов данной матрицы, номера которых определяются множеством индексов JN-1. В этой подыгре ГN находим одну из оптимальных смешанных стратегий игрока 1: (5.11).
После нахождения , находим вектор (5.12) по правилу:
И рассмотрим игру (2´n), в которой у игрока 1 две чистые стратегии, а у игрока 2 – n чистых стратегий. Эта игра задаётся матрицей (5.14), решая которую, находим вероятность использования игроком 1 своей стратегии. Это даёт нам коэффициент eN.
Далее
вычисляем xN, сN и переходим к следующему
шагу. Процесс продолжаем до тех
пор, пока не выполнится равенство eN=0,
потому что по теореме о минимаксе
, а их равенство (что и нужно) достигается
в этом случае, или пока не будет достигнута
требуемая точность вычислений.
Пример. Решить игру с матрицей А= (5.15).
Итерация 0. 1. Пусть игрок 1 выбрал свою 1-ю стратегию, т. е. А0 = [0, 1, 2]. Тогда за начальные условия примем следующие: x0 = (1, 0, 0) – приближение оптимальной стратегии игрока 1; c0=a1=(0, 1, 2) – возможный выигрыш игрока 1.
Найдём множество индексов , на которых игрок 1 может получить, в худшем случае, наименьший выигрыш: , значит множество индексов J0={1}. Для этого индекса выигрыш равен 0. Это есть значение нижней оценки цены игры, т. е. .
На этом шаге определим, пользуясь начальными значениями, компоненты векторов . Для этого рассмотрим подыгру (5.16). Для этой подыгры оптимальной стратегией игрока 1 будет его 2-ая стратегия, так как она принесёт ему наибольший выигрыш.
Обозначим её через : =(0, 1, 0)(5.17). Зная , можем вычислить =0а1+1а2+0а3=а2=(4, 2, 1)(5.18).
Найдём e1. Для этого рассмотрим подыгру (2´3) с матрицей (5.19). Решая матрицу графическим способом, получаем, что e1=1/2.
Проведённые вычисления позволяют найти значения векторов x1, c1:
x1=1/2x0+1/2 =1/2(1, 0, 0)+1/2(0, 1, 0)=(1/2, 1/2, 0);(5.20)
c1=1/2c0+1/2 =1/2(0, 1, 2)+1/2(4, 2, 1)=(2, 3/2, 3/2).(5.21)
Итерация1. Так как e1 не равно 0, то процесс продолжается дальше. Теперь за начальные условия примем найденные значения векторов x1, c1. С их помощью вычисляем , которые с большей точностью будут близки к истинным оптимальным стратегиям игрока 1.
Итак, пусть x1=(1/2, 1/2, 0), c1=(2, 3/2, 3/2)(5.22).
Найдём множество индексов , на которых игрок 1 может получить наименьший выигрыш: , значит, J1={2,3}. Для этих индексов выигрыш равен 3/2. Это есть значение нижней оценки цены игры, т. е. . Заметим, что .
Далее найдём компоненты векторов . Для этого рассмотрим подыгру (5.23). В силу симметричности матрицы ее решением будет вектор (1/2, 1/2), т. е. 1/2a1+1/2a2+0a3=
=(4/2, 3/2, 3/2).(5.24)
Вычислим коэффициент e2. Для этого решим подыгру (2´3): (5.25). Стратегии игроков совпадают, поэтому e2=0. В этом случае цена игры совпадает со своим нижним значением, т. е. . Возвращаемся к предыдущему шагу.
Итак, оптимальной стратегией игрока 1 является x*=x1=(1/2, 1/2, 0) и .Задача решена.
На первый взгляд алгоритм практически трудно реализовать, так как не известно, какого размера будет получена матрица для подыгры ГN. Но на самом деле с вероятностью 1 на каждом шаге придётся решать подыгру размера не больше чем m´2.[9]
Инженерами-
При решении поставленной задачи оптимально использовать для представления информационных материалов язык C++, который является языком высокого уровня и позволяет быстро и эффективно создавать приложения.
Для реализации "такой-то программы" была выбрана среда программирования Nokia QT версии 4.5.0 фирмы Nokia, так как она предоставляет наиболее широкие возможности для программирования приложений для различных платформ.
С++ – это язык для быстрого создания приложений. Высокопроизводительный инструмент визуального построения приложений включает в себя настоящий компилятор кода и предоставляет средства визуального программирования, несколько похожие на те, что можно обнаружить в Microsoft Visual Basic или в других инструментах визуального проектирования. В QT также входят локальные библиотеки для работы с базами данных, библиотеки визуальных компонентов, и прочее хозяйство, необходимое для того, чтобы чувствовать себя совершенно уверенным при профессиональной разработке информационных систем или просто кросплатформеных приложений.
Прежде всего, QT c++ предназначен для профессиональных разработчиков, желающих очень быстро разрабатывать. QT cодержит большой набор компонентов и классов, поэтому в QT должны быть прежде всего заинтересованы те, кто разрабатывает продукты на продажу. С другой стороны небольшие по размерам и быстро исполняемые модули означают, что требования к клиентским рабочим местам существенно снижаются – это имеет немаловажное значение и для конечных пользователей.
Информация о работе Описание и программирование матричных игр