ИГРОВАЯ ЗАДАЧА РАСПРЕДЕЛЕНИЯ РЕСУРСОВ

advertisement
Московский государственный университет имени М.В. Ломоносова
Факультет вычислительной математики и кибернетики
Магистерская диссертация
ИГРОВАЯ ЗАДАЧА РАСПРЕДЕЛЕНИЯ РЕСУРСОВ
Работу выполнил
студент Славнова А.В.
Научный руководитель:
доцент, к.ф.-м.н. Морозов В.В.
Москва
2014
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ ...................................................................................................... 3
ГЛАВА 1 ........................................................................................................... 5
1.1. ПОСТАНОВКА ЗАДАЧИ ..................................................................... 5
1.2 ИГРЫ С ОГРАНИЧЕНИЯМИ ................................................................ 9
1.3 ОБСЛУЖИВАНИЕ ДИСКРЕТНЫХ ОБЪЕКТОВ КОНЕЧНЫМ
ЧИСЛОМ СПОСОБОВ ............................................................................... 13
1.4. НЕПРЕРЫВНЫЙ СЛУЧАЙ ................................................................ 21
ГЛАВА 2 ......................................................................................................... 24
2.1.СЛУЧАЙ ЦЕЛОЧИСЛЕННОГО РЕШЕНИЯ ЗАДАЧИ ..................... 24
2.2 ЛИНЕЙНЫЕ ДИОФАНТОВЫ УРАВНЕНИЯ .................................... 25
2.3 АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ С ДВУМЯ ОГРАНИЧЕНИЯМИ 29
2.4.ПРИМЕР ................................................................................................ 30
ЗАКЛЮЧЕНИЕ ........................................................................................... 34
ПРИЛОЖЕНИЕ ........................................................................................... 35
ЛИТЕРАТУРА............................................................................................. 38
2
ВВЕДЕНИЕ
Рыночная экономика требует высокого уровня использования
ресурсов субъектов. Оптимальное распределение ресурсов является
основным и обязательным условием для стабилизации экономики. Этот
факт привел к повышению интереса к задачам оценки и оптимального
распределения ресурсов.
В то же время действия субъектов рынка всегда связаны с риском и
конфликтом интересов. Поэтому задачи оптимизации распределения
ресурсов
часто
рассматривают
с
теоретико-игровых
позиций.
Распределение и использование ограниченных ресурсов часто встречает
организованное
противодействие
конкурента,
преследующего
противоположные цели.
Одной из моделей конфликта, имеющих большую практическую
значимость в силу простоты построения и возможностей описания
широкого круга ситуаций, является модель матричных игр. Исследование
возможности теоретико-игровой оптимизации распределения ресурсов на
основе аппарата матричных игр и их смешанного расширения является
актуальной задачей.
Целью работы является исследование игровой модели обслуживания
объектов и нахождение оптимальной стратегии игроков в случае
дискретного распределения ресурсов. За основу берется ситуация,
предложенная Э.Г. Давыдовым в [3] и проводится решение задачи с двумя
ограничениями в n-мерном случае.
3
Задачи
исследования:
построение
вычислительного
алгоритма
нахождения точек с целочисленными координатами близких к вершинам мерного симплекса, образованного системой с двумя ограничениями,
решение антагонистической игры в целых числах, исследование игровой
модели обслуживания объектов.
Магистерская диссертация состоит из 35 страниц, включающих в
себя две главы, введение, заключение, приложение и список литературы.
Первая глава содержит постановку задачи и теоретический материал,
вторая глава включает в себя подробное исследование и решение
дискретной задачи обслуживания объектов с примером.
4
ГЛАВА 1
1.1. ПОСТАНОВКА ЗАДАЧИ
Рассмотрим следующую ситуацию. Имеются два игрока и
объектов, часть из которых может быть обслужена игроками. У первого
игрока в распоряжении n способов обслуживания. Кроме того, в
распоряжении первого игрока имеется бюджет величины
. В рамках
этого бюджета он может обслужить объекты любым из своих способов.
При этом стоимость обслуживания одного объекта -м способом равна
. Таким образом, чтобы не выйти за рамки своего
бюджета, он должен принимать такие решения, чтобы выполнялось
неравенство
∑
Второй игрок имеет в распоряжении m способов обслуживания
объектов. В распоряжении второго игрока имеется бюджет величины
. Стоимость обслуживания одного объекта -м способом равна
. Если игрок решил использовать свой бюджет для обслуживания -м
способом
объектов,
, то он затратит на реализацию этого
решения средства бюджет, величина которого
∑
Чтобы не выйти за рамки своего бюджета, игрок должен принимать
только следующее решение:
5
∑
Если некоторый объект обслуживается -м способом первого игрока
и
-м способом второго игрока, то на этом объекте первый игрок
выигрывает величину
. Если первый игрок обслуживает некоторый
объект -м способом, а второй игрок его не обслуживает, то выигрыш
первого игрока на этом объекте равен
обслуживается
. Если некоторый объект
-м способом второго игрока, а первым игроком не
обслуживается, то выигрыш первого игрока на этом объекте равен
. Если
некоторый объект не обслуживается ни одним из игроков, то будем
предполагать, что на этом объекте никто ничего не выигрывает. Кроме
того, будем предполагать, что при любом допустимом решении ни первый,
ни второй игроки не могут обслуживать более чем объектов.
Из таких предположений получаем следующие системы неравенств:
∑
∑
∑
∑
{
{
Естественно предположить, что вероятность встречи -го способа
обслуживания первого игрока с
-м способом обслуживания второго
игрока равна
6
Вероятность того, что некоторый объект будет обслуживаться -м
способом первого игрока, а вторым игроком не обслуживается вовсе, равна
(
∑
)
Вероятность того, что некоторый объект обслуживается
-м
способом второго игрока, а первым игроком не обслуживается вовсе, равна
∑
В
качестве
критерия
эффективности
операции
принимаем
математическое ожидание выигрыша первого игрока. Считаем, что первый
игрок стремится максимизировать свой выигрыш, а второй игрок –
минимизировать выигрыш первого игрока.
Если первый игрок распределил свой бюджет в соответствии с
вектором
, а второй игрок – в соответствии с вектором
, то ожидаемый выигрыш равен
∑∑
∑
Функцию
∑
(
∑
)
∑
рассматриваем в качестве платежной функции
игры. Так как области изменения векторов x и y выпуклы, а игра
билинейна, то игра имеет седловую точку.
7
Эта игра имеет следующую интерпретацию. Первый игрок –
нападающий, а второй игрок защищается от нападения. У первого игрока
имеется
способов нападения на одинаковых объектов, принадлежащих
защите. Защита располагает
способами обороны своих объектов. Если
нападающий атакует некоторый объект
выигрывает величину
-м способом, то нападение
. В эту величину могут входить ущерб,
нанесенный объекту, стоимость средства нападения, стоимость средства
защиты. Величина
не обязательно положительна, поскольку защита
может уничтожить средство нападения, а объект остается целым.
Если
нападение атакует
-м способом объект, который
обороняется противником, то оно выигрывает величину
обязательно меньше
сравнительно
дезориентацию
, причем
не
не
, так как в число способов нападения могут входить
недорогие
обороны
фиктивные
способы,
противника.
Если
направленные
этими
на
способами
обслуживаются свободные от защиты объекты, то нападение выигрывает
стоимость фиктивного способа. В противном случае защита проигрывает
величину, равную разности между стоимостью обороны объекта и
стоимостью фиктивного способа нападения.
Если некоторый объект защищается -м способом обороны и на него
не нападает первый игрок, то выигрыш первого игрока равен
. Величина
не обязательно отрицательна, так как оборона затрачивает на
обслуживание этого объекта некоторые средства, а они не наносят ущерба
противнику в виде уничтоженных средств нападения. Величины
-
стоимости обслуживания -м и -м способом одного объекта первым и
вторым игроком соответственно. Константы
8
и
- бюджеты сторон, а
и
- количества объектов, обслуживаемых способами обслуживания
первого и второго игроков соответственно.
1.2 ИГРЫ С ОГРАНИЧЕНИЯМИ
Рассмотрим
игру
с
замкнутые
евклидовых
пространств.
аддитивные
меры
платежной
функцией
ограниченные
Пусть
множества
заданы
конечномерных
неотрицательные
сосредоточенные
на
счетно-
множествах
соответственно, причем
Требуется найти такие вероятностные меры ̅
на множествах
̅ сосредоточенные
соответственно, чтобы они образовывали седловую
точку и чтобы для любых измеримых множеств
выполнялись соотношения
̅
Такая
игра
̅
называется
произвольные меры
̅
игрой
с
ограничениями.
Возьмем
̅ удовлетворяющие ограничениям, и образуем
меры
̃
̅
̃
Эти меры неотрицательны, причем ̃
̃
следовательно,
и
̃
̅
̃
и
– вероятностные меры. Кроме
того,
̅
̅
9
Получаем
̅ ̅
∫∫
̅
̅
∫∫
∫∫
∫∫
∫∫
Очевидно, что если
∫∫
∫
то, поскольку
∫∫
∫
– вероятностные меры,
∫
∫
Далее получаем
̅ ̅ ∫ ∫[
]
где
10
∫∫ ̃
̃
Предположим, что игра с платежной функцией ̃
имеет
седловую точку. Это означает, что существуют такие вероятностные меры
, что
где
– произвольные вероятностные меры. Но мере
̅ , удовлетворяющая ограничениям
соответствует произвольная мера
̅ ; мерам
задачи; мере
– произвольная допустимая мера
допустимые ̅
̅̅̅. Подставляя в предыдущее, выражение получаем
̅ ̅̅̅
̅ ̅̅̅
̅
–
̅
Если выражение выполняется при некоторых допустимых мерах
̅
̅̅̅, то игра имеет седловую точку в смешанных стратегиях тогда и
только тогда, когда имеет решение игра с платежной функцией ̃
.
В действительности для нахождения оптимальных смешанных
стратегий игры с ограничениями достаточно решить игру с платежной
̃
функцией
. Тогда по теореме 1 можно найти
оптимальные смешанные стратегии игры с платежной функцией ̃
.
ТЕОРЕМА 1
Каждая
пара
платежной функцией
оптимальных
смешанных
игры
с
является парой оптимальных смешанных
стратегий игры с платежной функцией
константа, функция
стратегий
, где
непрерывна на компактах
11
– произвольная
.
Пусть
состоят из конечного числа точек
.
Переобозначим платежную функцию следующим образом:
(
)
Исходная задача при этом переходит в задачу о нахождении
оптимальных смешанных стратегий в игре с платежной функцией
причем
допустимые
стратегии
должны
удовлетворять
,
следующим
ограничениям:
̅
̅
∑
∑
Получаем
∑∑
∑∑ ̃
̅̅
̃
∑∑
∑
̅
∑
̅
Таким образом, конечная игра с ограничениями имеет седловую
точку. Ее решениями являются решения игры с платежной функцией
12
̃
1.3 ОБСЛУЖИВАНИЕ ДИСКРЕТНЫХ ОБЪЕКТОВ
КОНЕЧНЫМ ЧИСЛОМ СПОСОБОВ
Рассмотрим еще одну модель. Имеется два игрока. Первый игрок
обороняет
одинаковых объектов и нападает на
одинаковых объектов
противника. Второй игрок нападает на объекты, принадлежащие первому
игроку, и обороняет свои объекты. В распоряжении первого игрока
имеется
способов нападения на объекты противника и
обороны своих объектов. Второй игрок располагает
нападения на объекты противника и
способов
способами
способами защиты своих объектов.
Стоимость обслуживания одного объекта -ым средством нападения
первого игрока
пункта
. Стоимость обслуживания одного
-ым способом защиты первого игрока
Стоимость обслуживания одного объекта
второго игрока
объекта
.
-ым способом нападения
. Стоимость обслуживания одного
-ым способом защиты второго игрока
. У
первого и второго игроков имеются бюджеты, величины которых
и
соответственно. В рамках этих бюджетов каждый игрок может
дополнительно затратить средства на нападение и оборону, учитывая при
этом, что распределение ресурсов должно быть допустимым, т.е. чтобы
∑
где
∑
(
∑
)
∑
–
распределения
ресурсов первого игрока для выбора способов обслуживания объектов при
13
(
нападении и обороне соответственно, а
)
– аналогичные распределения второго игрока. Если первый
игрок нападает на некоторый объект -ым способом, а второй игрок
защищает этот объект -ым способом, то выигрыш первого игрока на этом
объекте равен
. Если этот объект не защищен вторым игроком, то
выигрыш первого игрока на этом объекте равен
. Если некоторый
объект защищается вторым игроком способом , а первый игрок на него не
нападает, то выигрыш первого игрока на этом объекте равен
. Если
второй игрок нападает на некоторый объект -ым способом нападения, а
первый игрок обороняет этот объект -ым способом защиты, то первый
игрок проигрывает на этом объекте –
. Если этот объект не
обороняется первым игроком, то проигрыш первого игрока на этом
объекте равен –
. Если этот объект обороняется -ым способом
первого игрока и на него не нападает второй игрок, то проигрыш первого
игрока на этом объекте равен –
. Вероятность встречи -го способа
нападения первого игрока с -ым способом защиты второго игрока равна
Вероятность
нападения
первого
игрока
незащищенный объект равна
(
∑
14
)
-ым
способом
на
Вероятность того, что данный объект не подвергается нападению со
стороны первого игрока и защищен -ым способом второго игрока, равна
∑
(
Соответствующие
)
вероятности
на
объектах,
принадлежащих
первому игроку, таковы:
∑
(
)
∑
(
)
Кроме того, будем предполагать, что при любом распределении
ресурсов ни один из игроков не может обслужить более чем все свои
обороняемые объекты, на которые он совершает нападение. Это
предположение будет выполняться, если
∑
∑
∑
∑
Предположим далее, что имеется игра по выбору допустимых
распределений ресурсов с платежной функцией, равной математическому
ожиданию выигрыша первого игрока, т.е. игра со следующим критерием
эффективности и ограничениями:
(
∑∑
)
∑
15
(
∑
)
∑
(
∑
∑
∑
(
∑
)
)
∑∑
(
∑
∑
∑
∑
)
∑
Эта игра, как игра (2), имеет седловую точку. Сведем эти игры к
матричным, проведя некоторые построения. Обе игры имеют вид
(
)
∑
(
∑
{∑ ∑
∑
)
∑∑
(
∑
(
∑
(
∑
∑
)
}
∑
16
∑
∑
)
)
∑
где
∑
– часть бюджета, которую первый игрок не расходует вовсе;
– аналогичная величина для второго игрока. Игрока (2) получается из
(5) при
, игра (4) – при
. В дальнейшем будем считать
. Произведем в (5) перегруппировку членов:
∑∑(
)
{∑ ∑ (
∑
)
∑
∑
∑
Обозначим
̅̅̅̅̅
̅̅̅̅̅̅̅̅̅̅
̅̅̅̅̅̅
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
∑
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
∑
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
Переходя к новым переменным
17
и
, получим
}
∑ ∑
(
)
∑
∑
∑ ∑
(
)
∑
∑
Введем новые обозначения:
(
)
̅̅̅̅̅
̅̅̅̅̅
(
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
)
̅̅̅̅̅̅
̅̅̅̅̅̅
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
В этих обозначениях
∑ ∑
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
∑
18
∑
∑ ∑
∑
∑
Но
∑
∑ ∑
∑
∑ ∑
∑
∑
∑
∑
∑
∑
Подставляя в платежную функцию, получаем
∑
∑
∑
̅̅̅̅̅
∑
̅̅̅̅̅̅
̅̅̅̅̅
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
̅̅̅̅̅
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
̅̅̅̅̅̅
19
̅̅̅̅̅̅
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
̅̅̅̅̅
̅̅̅̅̅̅
Игра с платежной функцией (5) является игрой с ограничением; при
в обозначениях модели (2), переименовав
̅̅̅̅̅̅
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
, получаем:
̅̅̅̅̅
̅̅̅̅̅̅
где
(
)
̅̅̅̅̅
̅̅̅̅̅
Применяя к (5) формулы (7) и (8) и учитывая, что
имеем
20
̅̅̅̅̅̅
̅̅̅̅̅̅
∑∑̃
∑∑
Таким образом, игра сведена к матричной, причем смешанные
стратегии этой матричной игры описывают распределение бюджета, т.е.
каждой координате стратегий соответствует доля бюджет, выделенная для
обслуживания соответствующего типа.
1.4. НЕПРЕРЫВНЫЙ СЛУЧАЙ
Будем искать вершины многогранников, образованных системами:
∑
∑
{
∑
∑
{
Воспользуемся следующими теоремами:
ТЕОРЕМА 4.
Всякая непрерывная квазивыпуклая функция
выпуклом компакте
из
, достигает на
крайней точке множества .
21
, определенная на
максимума в некоторой
ОПРЕДЕЛЕНИЕ 2.
Пусть
– замкнутое выпуклое множество в
называется крайней точкой множества
точек
из
и такого числа
. Точка
, если не существует таких
, что
.
ТЕОРЕМА 5.
Пусть
. Для того, чтобы
была крайней точкой
многогранного множества Y, необходимо и достаточно, чтобы точка
была единственным решением ее граничной системы.
ОПРЕДЕЛЕНИЕ 3.
Множество
{
Получаемое
называется,
|⟨
⟩
пересечение
многогранным.
}
конечного
числа
Многогранник
–
полупространств,
это
ограниченное
многогранное множество. Крайние точки многогранного множества
называются вершинами.
Координаты вершин многогранника имеют не более двух ненулевых
компонент. В зависимости от значений параметров в системе возможны
три варианта решений:
I)
Если
рассматривать
первое
неравенство, а второе как равенство и
(
)
для (9) и
22
уравнение
системы
тогда решение:
как
(
)
для (10)
Если первое уравнение равенство, а второе – неравенство и
II)
, тогда решение:
III)
(
)
для (9) и
(
)
для (10)
Если оба неравенства и
, то
(
)
(
для (9) и
)
для (10)
Подставляя найденные значения в функцию
, формируем
матричную игру, решение которой можно свести к паре двойственных
задач
линейного
программирования.
Использование
линейного
программирования для решения матричной игры – наиболее эффективный
прием, позволяющий использовать алгоритм симплекс-метода.
23
ГЛАВА 2
2.1.СЛУЧАЙ ЦЕЛОЧИСЛЕННОГО РЕШЕНИЯ ЗАДАЧИ
Теперь рассмотрим решение систем (9) и (10) в целых числах.
∑
∑
∑
∑
{
{
Разобьем задачу на два этапа. В первом этапе будем искать
целочисленные решения системы с одним ограничением.
{
∑
Будем считать числа
целыми. Действительно, если
они рациональные, то неравенства можно домножить на общий
знаменатель.
Для исследования разрешимости уравнения
∑
в целых неотрицательных числах нам потребуется
ЛЕММА 2.
24
Пусть НОД(
)=1 и
. Тогда
, уравнение
, где
разрешимо в целых неотрицательных
числах
Пусть
- наибольшее из чисел
. При
на
всех ребрах симплекса существуют целые точки. Для каждого ребра
[( )
(
] симплекса строим на нем крайние точки
( )
из
– множество крайних точек выпуклой оболочки), имеющие
соответственно
максимальные
компонента
равна наименьшему числу
сравнению
{
}
определяется точка
},
. Если
ребрах симплекса
вершинам симплекса
а
j-ю компоненты. При
этом
, удовлетворяющему
.
{ }, а
{
симплексы
симплекса
{
i-ю и
Аналогично
. Просматриваем все
}, близкие к вершинам
, то по аналогии с предыдущим строим на
точки из
и симплексы, близкие к
. Если
, то перебором находим все целые
решения симплекса.[4]
2.2 ЛИНЕЙНЫЕ ДИОФАНТОВЫ УРАВНЕНИЯ
Уравнения, в которых необходимо найти целые решения,
называются диофантовыми уравнениями. Запишем уравнение первой
степени с двумя неизвестными:
25
Как правило, считают, что параметры
тоже целые. Однако
если это не так, то их легко можно привести к целым числам, домножив на
общий знаменатель.
Эйлер доказал, что такое уравнение разрешимо в целых числах, если
. А Гаусс доказал, что уравнение разрешимо тогда и только
тогда, когда
кратно
. С учетом этих результатов, а также
неотрицательности и целочисленности параметров, без потери общности
будем предполагать, что
Если пара
.
– решение (13) в целых числах и
, тогда
все остальные решения представимы в виде
Явная формула для этого решения может быть достигнута с
помощью теоремы Ферма-Эйлера, которая применяется к тождественному
равенству
другими
. Такой прием имеет преимущество перед
методами
решений,
таких
как
алгоритмы,
включающие
последовательность рекурсивных шагов. Теорема Ферма-Эйлера включает
в себя концепцию функции Эйлера, обозначаемую
натуральных чисел, меньших
, равная числу
и взаимно-простых с . Значение задается
явной формулой:
(
)(
26
)
(
)
где
– различные простые множители числа . Запишем
утверждение теоремы Ферма
Если предположить, что
если
неотрицательны и
, то
равны 0 или 1, то решение уравнения (13) сводится к
частному случаю. Поэтому в дальнейшем будем предполагать, что
больше 1. Это означает, что
, но
, так как если
, откуда следует
, то
, что приводит к противоречию.
Явная формула связана с понятием основного остатка по модулю
.
ОПРЕДЕЛЕНИЕ 1
⟦
⟧
Следующая лемма показывает существование возможности решения
примера.
ЛЕММА 1
⟦∏
⟧
∏⟦
⟧
В качестве отдельного следствия можно отметить следующее:
⟦
⟧
⟦
⟧
Так как число решений уравнения (13) конечно, метод решения
будет
заключаться
в
интегрального значения
нахождении
минимального
положительного
, а затем соответствующего ему значения
27
, которые обязательно будут максимальными, а затем вычесть
кратные
,
чтобы
получить
множество
всевозможных
неотрицательных решений уравнения (13). Следующая формула КошиБуняковского для минимального значения .
ТЕОРЕМА 2
Если уравнение
, и
решение
имеет неотрицательные параметры
, тогда существует неотрицательное целое
и
минимальное
неотрицательное
целое
значение
,
удовлетворяющее равенству, находится по формуле:
⟦
⟧
СЛЕДСТВИЕ 1
Если неотрицательно целочисленное решение (1) существует и
, то существует решений как минимум [ ] и не более [ ]
.
Решение (13) может не существовать даже в случае, когда
взаимно просты, так как они должны быть неотрицательными. Хотелось
бы знать, в каких случаях не существует решений. Для этого необходима
следующая теорема.
ТЕОРЕМА 3
Равенство
и
решения при
, где
неотрицательные целые числа и
, не будет иметь неотрицательного целочисленного
, где
.[6]
28
2.3 АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ С ДВУМЯ
ОГРАНИЧЕНИЯМИ
Введем еще одно ограничение в систему. Оно добавит новые точки и
отсечет лишние.
∑
∑
{
Находим
решение
системы
с
двумя
ограничениями
для
непрерывного случая. Целочисленное решение получим путем округления
координат найденных точек до целых в большую и меньшую сторону. Для
минимизации потерь оптимальных решения, добавим во множество
решений точки с координатами, отличающимися от целочисленных
решений непрерывной задачи на
.
Без каких-либо потерь мы можем включить в дальнейшее решение
задачи только те точки, которые составляют выпуклую оболочку.
ТЕОРЕМА 6. (теорема Каратеодори)
Пусть
– некоторое множество
, а
– его выпуклая
оболочка. Тогда каждая точка множества
может быть
представлена как выпуклая комбинация, содержащая не более чем
точек множества .
29
Воспользовавшись теоремой, запишем условие, с помощью которого
можем исключить точки, не составляющие выпуклую комбинацию с
другими:
∑
∑
Аналогично решая систему (5) для второго игрока при помощи
равенства (2) можем сформировать матрицу платежной функции из точек,
удовлетворяющих ограничениям каждой системы.
Сформировав матричную игру, при помощи симплекс-метода не
трудно найти решение поставленной задачи в смешанных стратегиях.
2.4.ПРИМЕР
Рассмотрим пример. В распоряжении первого игрока находится 3
способа обслуживания со стоимостью 5, 3 и 2. Имеется бюджет равный
179, и количество объектов – 40. Составим систему:
{
Будем искать целочисленные решения задачи. Для начала оставим
только первое ограничение
.
Минимальный коэффициент нашего неравенства равен 2-ум, что
дает нам право искать крайние целые точки не более чем на двух слоях.
30
Действительно, в противном случае, решения на других слоях можно
получить, уменьшая переменную с минимальным коэффициентом на
какое-либо целое число.
При помощи алгоритма получаем точки с координатами:
(34, 3, 0), (34, 1, 3), (35, 0, 2), (1, 58, 0), (0, 57, 4), (0, 59, 1), (1, 0, 87),
(0, 1, 88), (35, 1, 0), (34, 2, 1), (34, 0, 4), (2, 56, 0), (1, 57, 1), (0, 58, 2),
(0, 0, 89)
Переходим к следующему этапу: решение непрерывной задачи с
двумя ограничениями. Результат запишем в виде матрицы
(
)
Округлением координат до целых в большую и меньшую сторону, а
также
изменением
целых
целочисленных решений
координат
на
,
получим
матрицу
. Добавим к ней ранее найденные точки и
оставим только те, которые удовлетворяют обоим условиям ограничений в
задаче. Мы получили матрицу
достаточно большой размерности.
Воспользовавшись теоремой Каратеодори и условиями (4) и (15),
избавимся от точек, доминируемых выпуклой комбинацией остальных.
Итоговая матрица
примет вид
31
(
)
Рассмотрим второго игрока, для которого систему ограничений
зададим следующим образом:
{
Решая аналогичным образом, получаем матрицу решений:
(
)
Введем величины:
32
(
)
(
)
Формируем матричную игру используя (2) и решаем задачу
линейного
программирования.
смешанных стратегиях будет:
Решением
конкретного
(
(
33
в
)
).
Значение матричной игры
примера
ЗАКЛЮЧЕНИЕ
Взяв за основу сформулированную Э.Г. Давыдовым непрерывную
задачу распределения ресурсов, мы провели исследование и решили её
дискретный вариант. В процессе нахождения решения мы сталкивались с
несколькими проблемами, такими как решение диофантова уравнения в мерном случае; нахождение целых точек, близких к вершинам -мерного
симплекса. Был разработан алгоритм нахождения таких точек и
нахождения целочисленного решения системы с двумя ограничениями с
применением понятия доминируемости стратегий.
Алгоритм был реализован на языке C++ в программной среде C++
Builder. Решение матричной игры сведением к паре двойственных задач
линейного программирования произведено в математическом пакете
MAPLE 13.0. Алгоритм является универсальным и подходит для решения
задач подобного рода любой размерности.
Основные результаты работы, выносимы на защиту:
1. Разработан
вычислительный
алгоритм
нахождения
точек
с
целочисленными координатами, близких к вершинам симплекса;
2. Разработан
вычислительный
алгоритм
решения
дискретной
антагонистической игры. Одним из этапов которого является уменьшение
размерности матрицы выигрыша при помощи доминирования стратегий
34
ПРИЛОЖЕНИЕ
Реализация на языке C++ алгоритма
координатами близких, к вершинам
неотрицательными компонентами.
нахождения точек с целочисленными
симплекса, заданного уравнением с
int lemma(int a, int b) {
if ((a < 0) || (b < 0))
outfile << "Warning" << a << b << "negative" << endl;
return (a - 1) * (b - 1);
}
int euclid(int a, int b, int summ, int * arr) {
int ca[2];
int cb[2];
int cswap[2];
int ta, tb, swap;
if (a > b) {
ta = a;
tb = b;
ca[0] = 1;
ca[1] = 0;
cb[0] = 0;
cb[1] = 1;
} else {
ta = b;
ca[0] = 0;
ca[1] = 1;
tb = a;
cb[0] = 1;
cb[1] = 0;
}
while (ta % tb > 0) {
swap = tb;
cswap[0] = cb[0];
cswap[1] = cb[1];
tb = ta % swap;
cb[0] = ca[0] - (ta / swap) * cswap[0];
cb[1] = ca[1] - (ta / swap) * cswap[1];
ta = swap;
ca[0] = cswap[0];
ca[1] = cswap[1];
}
if ((summ % tb) != 0) {
outfile << "Warning! Can't calculate " << summ << " from " << a << b
<< endl;
return -1;
}
cb[0] *= (summ / tb);
cb[1] *= (summ / tb);
if (cb[0] < 0) {
int c = cb[0] / b;
if (cb[0] % b != 0)
c--;
cb[0] -= c * b;
35
cb[1] += c * a;
} else if (cb[1] < 0) {
int c = cb[1] / a;
if (cb[1] % a != 0)
c--;
cb[1] -= c * a;
cb[0] += c * b;
}
//
cout << cb[0] << "*" << a << "+" << cb[1] << "*" << b << "=" << summ << endl;
arr[0] = cb[0];
arr[1] = cb[1];
return 0;
}
int solve(const int coef[], int tvalue, int i, int j, int tmp[]) {
int var[2];
int k;
if (euclid(coef[i], coef[j], tvalue, var) != 0) {
outfile << "No solution for this case" << endl;
}
int *koef = new int[size];
for (k = 0; k < size; k++)
koef[k] = tmp[k];
koef[i] += var[0];
koef[j] += var[1];
outfile << "vector (" << koef[0];
for (k = 1; k < size; k++)
outfile << ", " << koef[k];
outfile << ")" << endl;
delete[] koef;
koef = new int[size];
for (k = 0; k < size; k++)
koef[k] = tmp[k];
for (k = 0; k < size; k++) {
if ((k != i) && (k != j)) {
if (lemma(coef[i], coef[k]) < tvalue - coef[j]) {
koef[j]++;
solve(coef, tvalue - coef[j], i, k, koef);
koef[j]--;
}
if (lemma(coef[j], coef[k]) < tvalue - coef[i]) {
koef[i]++;
solve(coef, tvalue - coef[i], j, k, koef);
koef[i]--;
}
}
}
delete[] koef;
return 0;
}
int main() {
outfile << "Points!!!" << endl;
ifstream infile("D:\\ALYONA\\diploma\\src\\inputB.txt");
36
int i, j;
infile >> size;
int *coef = new int[size];
int value, min_coef;
for (i = 0; i < size; i++) {
infile >> coef[i];
}
infile >> value;
infile.close();
min_coef = coef[0];
for (i = 0; i < size; i++) {
cout << coef[i] << "*x[" << i + 1 << "]";
if (coef[i] < min_coef)
min_coef = coef[i];
if (i < size - 1)
cout << "+";
}
cout << "=" << value << endl;
for (int k = 0; k < min_coef; k++) {
for (i = 0; i < size; i++) {
for (j = 0; j < size; j++)
if (j != i) {
//
solve
int tvalue = value - k - lemma(coef[i], coef[j]) - 1;
if (tvalue > 0) {
int *tmp = new int[size];
for (int t = 0; t < size; t++)
tmp[t] = 0;
tmp[i] = tvalue / coef[i];
//
cout << tmp_i << endl;
tvalue = value - k - (tmp[i] * coef[i]);
solve(coef, tvalue, i, j, tmp);
delete []tmp;
}
}
}
}
system("pause");
delete[] coef;
return 0;
}
37
ЛИТЕРАТУРА
1.
Васин А.А. Исследование операций / А.А.Васин,
П.С.Краснощеков, В.В. Морозов. – М.: Издательский центр
«Академия», 2008. – 464с.
2.
Васин А.А., Морозов В.В. Теория игр и модели
математической экономики. – М.: МАКС Пресс, 2005. – 272с.
3.
Давыдов, Э.Г. Исследование операций – М.: Высшая Школа,
1990. – 383 с.
4.
Морозов В.В., Шалбузов К.Д. О решении дискретной игры
распределения ресурсов //Вестн. Моск. ун-та, сер. 15. Вычисл.
матем. и матем. киберн. 2014. № 2. С. 10-16.
5.
Схрейвер А. Теория линейного и целочисленного
программирования. Т.2 – М.: Мир, 1991. – 342 с.
6.
Green, T.M. Linear Diophantine equations with non-negative
parameters and solutions // Fibonacci Quarterly. V.6, No.2. 1968. P.177
– 184
38
Download