Автор работы: Пользователь скрыл имя, 26 Февраля 2013 в 04:52, курсовая работа
Актуальность курсовой работы обусловлена тем, что математическая теория игр позволяет различным экономическим субъектам (поставщикам, руководителям организаций, конкурентам и т.д.) принимать оптимальные стратегические решения в условиях неопределенности, связанной с поведением игроков на конкурентном рынке. Руководители компаний должны помнить: если они вовремя не совершат нужный шаг, это сделают их соперники. Многие проблемы олигополистической стратегии – установление товарных цен, управление производственными мощностями, проведение маркетинговой политики, выход на новые рынки, выставление тендерных заявок и составление контрактов – можно представить в виде простых, поддающихся количественному определению игровых моделей.
(2.8)
Оптимальная стратегия игрока В: , остальные значения qj мы отбрасываем, так как согласно условию известно всего три состояния спроса.
Для игрока А можно утверждать, что его оптимальная стратегия может быть получена с помощью решения следующей ЗЛП (2.9)
. (2.9)
Используя теорему двойственности, поставим в соответствие базисным переменным x4, х5, х6, х7 свободные переменные y1, y2, у3, у4, а свободным переменным х1, х2, х3 базисные переменные у5, у6, у7 (2.10)
х1 |
х2 |
х3 |
х4 |
х5 |
х6 |
х7 |
у5 |
у6 |
у7 |
y1 |
y2 |
у3 |
у4 |
Получим оптимально решение задачи, используя решение предыдущей задачи линейного программирования и теоремы двойственности (2.11)
, (2.11)
Найдем оптимальную стратегию игрока А (2.12) – (2.13)
(2.12)
. (2.13)
Оптимальная стратегия игрока А: , остальные значения pi мы отбрасываем, так как согласно условию известно всего четыре типа продукции.
Аналогично находится оптимальное решение второй задачи.
Данная задача, решенная с помощью математической теории игр, позволяет определить наиболее оптимальные пропорции завоза товаров, при которых предприятие получит максимальную прибыль. При этом определяется средний размер прибыли на каждый вложенный рубль, т.е. окупаемость одной денежной единицы, а также определяется частота спроса.
Таким образом, задачи, решенные с помощью математической теории игр, позволяют принимать решения по поводу проведения ценовой политики, вступления на новые рынки, по поводу выбора для производства таких ресурсов, с помощью которых предприятие получит максимальную прибыль и т.д.
Для реализации программного приложения был использован программный модуль Borland Delphi 7.
Borland Delphi 7 – это объектно-ориентированная среда визуального программирования. В состав Delphi входят средства, необходимые для разработки, тестирования и установки приложений, включая обширную библиотеку компонентов, средства визуального проектирования, шаблоны приложений и форм [25, с. 42].
Система программирования Delphi позволяет значительно упростить процесс создания Windows-приложений, а также резко повысить производительность труда программиста. Универсальность системы Delphi обусловлена тем, что она позволяет создавать профессиональные и эффективно работающие приложения, используемые в самых различных сферах человеческой деятельности [19, с. 42].
Входными данными
Выходными данными разработанного в ходе выполнения курсовой работы программного приложения являются рассчитанные показатели оптимальных пропорций завоза товаров из условия максимизации средней прибыли, размер средней прибыли на один вложенный рубль, а также частоты наблюдения состояния спроса. Данный процесс представлен в виде контекстной диаграммы и диаграммы декомпозиции (рисунки 3.1-3.2).
Рисунок 3.1. Контекстная диаграмма
Рисунок 3.2. Диаграмма декомпозиции
Программное приложение обладает внутренней структурой, образованной взаимосвязанными программными модулями.
Разработанное программное приложение включает в себя следующие модули:
Взаимосвязь между основными модулями, используемыми в разработанном программном приложении, представлена на рисунок 3.3.
Скопируйте на жесткий диск папку «Математическая теория игр». Откройте эту папку и запустите программное приложение Project2.exe. В открывшемся окне указываем необходимое количество столбцов и строк нашей матрицы, вводим значения (рисунок 3.4.)
Рисунок 3.4. Ввод данных
После того, как Вы ввели значения, нажмите кнопку «Решение». Получим ответ (рисунок 3.5).
Рисунок 3.5. Решение поставленной задачи
В результате выполненной работы данный программный продукт имеет возможность регулирования числа столбцов и строк матрицы.
В ответ выводятся:
В ходе выполнения данной курсовой работы была достигнута цель, которая заключалась в изучении решения задачи по математической теории игр для экономического субъекта.
Для её достижения математическая теория игр была рассмотрена как раздел теории принятия решений, были освящены основные теоретические аспекты такие, как классификация игр, понятие принципа оптимальности, решение матричных игр, была дана характеристика математической модели игры.
В качестве вспомогательной литературы были использованы научные труды таких известных ученых, как Бережная Е.В. и Бережной В.И., Красс М.С. и Чупрынов Б.П., Росс С.И., Кундышева Е.С. и многих других. Также была рассмотрена задача, которая наглядно продемонстрировала практическое применение математической теории игр в экономике.
Основным результатом выполненной работы является создание программного продукта, который выполняет все необходимые расчеты экономической задачи.
В заключении сделаем следующие выводы.
ПРИЛОЖЕНИЕ 1
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
StringGrid1.ColCount := UpDown1.Position;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: integer;
str1: string;
begin
Memo1.Lines.Clear;
Memo := Memo1.Lines;
//прямая задача
for i := 1 to 30 do begin
Fo[i] := 0;
FunctPr[i] := 0;
B[i] := 0;
H[i] := 0;
Hnew[i] := 0;
C[i] := 0;
Cnew[i] := 0;
CPr[i] := 0;
CPrnew[i] := 0;
FX[i] := 0;
for j := 1 to 30 do begin
X[i,j] := 0;
Xnew[i,j] := 0;
end;
BS[i] := '';
Bvsp[i] := '';
ZNAC[i] := '';
end;
Kit:=0;dop_X:=0;
Kstr := StringGrid1.RowCount;
Kell := StringGrid1.ColCount;
Fm := 1;
Memo.Add('Модель для прямой задачи:');
for I:=1 to Kstr do begin
str1 := '';
for J:=1 to Kell do begin
if length(str1) > 0 then str1 := str1 + ' + ';
str1 := str1 + StringGrid1.Cells[J - 1, I - 1] + '*' + 'x' + IntToStr(J);
Xnew[I,J] := StrToFloat(StringGrid1.Cells[J - 1, I - 1]);
end;
str1 := str1 + ' <= 1';
ZNAC[I] := '<=';
B[I] := 1;
Memo.Add(str1);
end;
str1 := '';
for J:=1 to Kell do begin
if length(str1) > 0 then str1 := str1 + ' + ';
str1 := str1 + 'x' + IntToStr(J);
FX[J] := 1;
end;
str1 := 'F = ' + str1 + ' -> MAX';
Memo.Add(str1);
Memo.Add('');
//Memo.Add('Решение для прямой задачи:');
SIMPLEX;
Memo.Add('');
//обратная задача
Kit:=0;dop_X:=0;
for i := 1 to 30 do begin
Fo[i] := 0;
FunctPr[i] := 0;
B[i] := 0;
H[i] := 0;
Hnew[i] := 0;
C[i] := 0;
Cnew[i] := 0;
CPr[i] := 0;
CPrnew[i] := 0;
FX[i] := 0;