Теория принятия решений. Марковские модели принятия решений

Фирма рекламирует свою продукцию с помощью радио, телевидения и газеты. Недельные затраты на рекламу оцениваются соответственно в 200, 900 и 300 руб. Фирма оценивает недельный объем сбыта как удовлетворительный (1), хороший (2) или отличный (3). Переходные вероятности между различными состояниями сбыта при различных способах рекламы равны:

Состояние
Радио
Телевидение
Газета
1
2
3
1
2
3
1
2
3
1
0.4
0.5
0.1
0.7
0.2
0.1
0.2
0.5
0.3
2
0.1
0.7
0.2
0.3
0.6
0.1
--
0.7
0.3
3
0.1
0.3
0.6
0.1
0.2
0.7
--
0.2
0.8

Состояние
Радио
Телевидение
Газета
1
2
3
1
2
3
1
2
3
1
400
520
600
1000
1300
1600
400
530
710
2
300
400
700
800
1000
1000
350
450
800
3
200
250
500
600
700
1100
250
400
650


Определите, при каком способе рекламы ожидаемый суммарный доход будет наибольшим.


Решение задания

Мы имеем 3 возможных состояния системы (участка), 3 стратегии (Радио, Телевидение, Газета);
зададим на основе этих данных 3 матрицы:
       P0[3][3]={{0.4,0.5,0.1},
                {0.1,0.7,0.2},
                 {0.1,0.3,0.6}};

       P1[3][3]={{0.7,0.2,0.1},
                {0.3,0.6,0.1},
                 {0.1,0.2,0.7}};

       P2[3][3]={{0.2,0.5,0.3},
                 {0,0.7,0.3},
                  {0,0.2,0.8}};

Здесь P0 показывает вероятности перехода из одного состояния в другое при рекламе по радио (стратегия 1), P1 – телевидение (стратегия 2), P2 – газета (стратегия 3).
И соответственно 3 матрицы доходов:
       R0[3][3]={{400,520,600},
                {300,400,700},
                 {200,250,500}};

       R1[3][3]={{1000,1300,1600},
                {800,1000,1000},
                 {600,700,1100}};

       R2[3][3]={{400,530,710},
                {350,450,800},
                 {250,400,650}};

R0 – ожидаемые доходы от рекламы по радио (стратегия 1), R1 – телевидению (стратегия 2), R2 – газете (стратегия 3).
Перед нами вероятностная задача: управление (выбор стратегии) изменяет вероятность перехода из одного состояния в другое. Переход происходит дискретно, т.е. это дискретный случайный процесс. При выборе стратегии вероятность перехода из одного состояния в другое зависит только от состояния в настоящий момент времени. Следовательно, этот случайный процесс является Марковским.
Ожидаемый доход – это сумма вероятностей получения того или иного дохода.
Рассмотрим первый шаг управления участком земли – первый выбор стратегии. Обозначим через F ожидаемый доход. Если фирма находится в состоянии 1, то она может остаться в этом состоянии или перейти в состояние 2 или 3. При этом может быть использована как стратегия 1, так и стратегия 2, так и стратегия 3. В первом случае F11 - ожидаемый доход при состоянии 1 и выборе стратегии 1 составляет: F11=P111R111+P112R112+P113R113=(0,4х400)+(0,5х520)+(0,1х600)=480.
Аналогично, при выборе стратегии 2 ожидаемый доход будет составлять F12=P211R211+P212R212+P213R213=(0,7х1000)+(0,2х1300)+(0,1х1600)=1020.
F13=P311R311+P312R312+P313R313=(0,2х400)+(0,5х530)+(0,3х710)=558.

Однако, фирма может находиться в состоянии 2, и для управления также может быть выбрана одна из стратегий. В этом случае F21=P121R121+P122R122+P123R123=(0,1х300)+(0,7х400)+(0,2х700)=450 при выборе 1-й стратегии  F22=P221R221+P222R222+P223R223=(0,3х800)+(0,6х1000)+(0,1х1000)=940 при выборе 2-й стратегии.
F23=P321R321+P322R322+P323R323=(0 х350)+(0,7х450)+(0,3х800)=555 при выборе 3-й стратегии.

В случае 3-го состояния всё тоже самое. Эти расчеты можно сделать выбором на первом шаге управления. Для получения максимального ожидаемого дохода следует выбрать стратегию 2(телевидение), если фирма в 1,2,3-м состоянии
На каждом следующем шаге n управления мы должны выбирать управление так, чтобы получить максимальный ожидаемый доход за все n шагов. Обозначим максимальный ожидаемый доход за первый шаг при нахождении фирмы в состоянии 1 через f0, состоянии 2 – f1, состоянии 3 – f2.
Из предыдущих расчетов следует, что f0=1020, f1=940, f2=970.
На 2-м шаге управления ожидаемый доход с учетом максимального ожидаемого дохода на первом шаге составит при нахождении фирм в состоянии 1 и выборе стратегии 1 F11=P111(R111+f1)+P112(R112+f2)+P113(R113+f3)  или F12=P211(R211+f1)+P212(R212+f2)+P213(R213+f3) и так далее
Для получения максимального ожидаемого дохода на 2-м этапе следует выбрать стратегию 2 (телевидение).
Подобным образом рассчитывается оптимальное управление на всех последующих шагах.
Ниже представлена программа Си  для решения данной задачи.
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
#include <locale.h>
void main()
{
       setlocale (LC_ALL, "Russian");
      
       double P0[3][3]={{0.4,0.5,0.1},
                          {0.1,0.7,0.2},
                        {0.1,0.3,0.6}};

       double P1[3][3]={{0.7,0.2,0.1},
                          {0.3,0.6,0.1},
                        {0.1,0.2,0.7}};

       double P2[3][3]={{0.2,0.5,0.3},
                          {0,0.7,0.3},
                        {0,0.2,0.8}};
       ///////////////////////////////
       double R0[3][3]={{400,520,600},
                          {300,400,700},
                        {200,250,500}};

       double R1[3][3]={{1000,1300,1600},
                          {800,1000,1000},
                        {600,700,1100}};

       double R2[3][3]={{400,530,710},
                          {350,450,800},
                        {250,400,650}};
       int F[3][3],f[3]={0,0,0},u[3][3],max[3][3];
       for(int i=0;i<3;i++)
       {
             for(int j=0;j<3;j++)
             {
                    F[j][0]=P0[j][0]*(R0[j][0]+f[0])+P0[j][1]*(R0[j][1]+f[1])+P0[j][2]*(R0[j][2]+f[2]);
                    F[j][1]=P1[j][0]*(R1[j][0]+f[0])+P1[j][1]*(R1[j][1]+f[1])+P1[j][2]*(R1[j][2]+f[2]);
                    F[j][2]=P2[j][0]*(R2[j][0]+f[0])+P2[j][1]*(R2[j][1]+f[1])+P2[j][2]*(R2[j][2]+f[2]);
             }
             for(int j=0;j<3;j++)
             {
                    if(F[j][0]>F[j][1])
                    {
                           if(F[j][0]>F[j][2])
                           {
                                  u[i][j]=1;
                                  max[i][j]=F[j][0];
                           }
                           else
                           {
                                  u[i][j]=3;
                                  max[i][j]=F[j][2];
                           }
                    }
                    else
                    {
                           if(F[j][1]>F[j][2])
                           {
                                  u[i][j]=2;
                                  max[i][j]=F[j][1];
                           }
                           else
                           {
                                  u[i][j]=3;
                                  max[i][j]=F[j][2];
                           }
                    }

             }
             for(int j=0;j<3;j++)
                    f[j]=f[j]+max[i][j];
       }
       for(int i=0;i<3;i++)
       {
             printf("\n");
             for(int j=0;j<3;j++)
                    printf("%d;",u[i][j]);
       }
       getch();
}

Результат работы программы

В результате получилась матрица U, согласно которой на любом этапе следует придерживаться стратегии 2.

Комментариев нет:

Отправить комментарий