Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Метод Гурвица

Rowcount:=m+1;
    for i :=1 to m do
      begin
         form1.tabliza.Cells[0,i]:='A'+intToStr(i);
         form1.C_S.Cells[0,i]:='A'+intToStr(i);
         for j :=1 to n do
           begin
              form1.C_S.Cells[j,0]:='B'+intToStr(j);
              form1.C_S.Cells[j,i]:=intToStr(C_A[i,j]);
          end;
      end;
  with form1 do
    begin
       label23.caption:='A';
       tabliza.cells[1,0]:='a_малая';tabliza.cells[2,0]:='a_большая';
    end;
end;

{ Вывод наибольший, наименьший, расчётный выигрыш матрицы V_А}
procedure WW_A1;
begin
WW_A;
     With form1.tabliza Do
       begin
        for j:=1 to n do
          begin
             cells[1,j]:=intToStr(a_m[j]);
             cells[2,j]:=intToStr(a_b[j]);
          end;
        for i:=1 to m do
        for j:=1 to k do
        cells[j+2,i]:=floatToStr(V_a[i,j]);
    end;
end;

{событие на нажатие кнопки 'Ввод коэф..'}
procedure TForm1.WWod_koef(Sender: TObject);
begin
    try
      m:=strToint(edit1.text);
      n:=strToint(edit2.text);
      k:=strToint(edit3.text);
    except
      showMessage('Ошибочная запись числа ');
    end;
    try
      Form2 := TForm2.Create(self);
      tabliza.Colcount:=3+k;
      Form2.ShowModal;
    finally
      Form2.Close;
      WW_a;
   end;
end;

{событие на нажатие кнопки 'вывод результата'}
procedure Tform1.W_Rezultat(Sender: TObject);
begin
   Panel6.Visible:=false;
   panel3.Visible:=true;
 {Вводим из таблицы C_A в матрицу игрока А - C_A} { C_S[столбец,строка] }
   for i :=1 to m do       {по столбцам m таблицы C_S}
    for j :=1 to n do       {по строкам n таблицы C_S}
      C_a[i,j]:=StrToInt(C_S.Cells[j,i]);
 {Создаём матрицу C_B путём транспонирования матрицы игрока А}
   for i :=1 to n do
    for j :=1 to m do
      C_b[i,j] :=StrToInt(C_S.Cells[i,j]);
{расчет наименьших и наибольших выигрышей игрока A}
 for i:=1 to m do
    begin
         a_m[i]:=C_a[i,1];       {массив наименьшии выигрыш}
         a_b[i]:=C_a[i,1];        {массив наибольшии выигрыш}
         for j :=2 to n do
            begin
                 if C_a[i,j]a_b[i] then a_b[i]:=C_a[i,j];
            end;
{вычисления расчетных выигрышей игрока A}
         for j :=1 to k do
            V_a[i,j]:=al[j]*a_m[i]+(1-al[j])*a_b[i];
    end;
{нахождения оптимальной стратегии и максимального выигрыша игрока A}
  max_a:=V_a[1,1];
  H_A:=1;
  for i :=1 to m do
   for j :=1 to k do
     if V_a[i,j]>max_A then
                       begin
                          max_a:=V_a[i,j];    { максимальный выигрыш игрока
А}
                          H_a:=i                   { оптимальная стратегия
игрока А}
                       end;

{расчет наименьших и наибольших выигрышей игрока В}
 for i:=1 to n do
    begin
         b_m[i]:=C_b[i,1];    {массив наименьшии выигрыш}
         b_b[i]:=C_b[i,1];     {массив наибольшии выигрыш}
         for j:=2 to m do
            begin
                 if C_b[i,j]b_b[i] then b_b[i]:=C_b[i,j];
            end;
{вычисления расчетных выигрышей игрока В}
         for j:=1 to k do
            V_b[i,j]:=al[j]*b_m[i]+(1-al[j])*b_b[i];
     end;
{нахождения оптимальной стратегии и максимального выигрыша игрока В}
 max_b:=V_b[1,1];
 H_b:=1;
 for i:=1 to n do
  for j:=1 to k do
     if V_b[i,j]>max_b then
                     begin
                          max_b:=V_b[i,j];   { максимальный выигрыш игрока
B}
                          H_b:=i                  { оптимальная стратегия
игрока B}
                      end;

{ нахождения наибольшего расчетного выигрыша одного из игроков }
 if max_a=max_b then Panel6.Visible:=true
                else
                   if max_a>max_b then
                                     begin
                                         Panel4.Visible:=true;
                                         panel5.Visible:=false
                                     end
                                 else
                                    begin
                                       panel5.Visible:=true;
                                       Panel4.Visible:=false
                                 end;
  label11.Caption:=FloatToStr(max_a);
  label12.Caption:=FloatToStr(H_a);
  label14.Caption:=FloatToStr(max_b);
  label13.Caption:=FloatToStr(H_b);
  WW_A1;
end;

{просмотр для игрока А}
procedure Tform1.W_tabliza_A(Sender: TObject);
begin
WW_A1;
end;

{просмотр для игрока B}
procedure Tform1.W_tabliza_B(Sender: TObject);
begin
  with form1 do
   Begin
      c_s.Colcount:=m+1;
      c_s.Rowcount:=n+1;
      tabliza.Rowcount:=n+1;
    for i:=1 to n do
      begin
         form1.tabliza.Cells[0,i]:='B'+intToStr(i);
         form1.C_S.Cells[0,i]:='B'+intToStr(i);

    for j:=1 to m do
    begin
       form1.C_S.Cells[j,0]:='A'+intToStr(j);
       form1.C_S.Cells[j,i]:=intToStr(C_B[i,j]);
    end;
   end;
  label23.caption:='B';
  tabliza.cells[1,0]:='b_малая';tabliza.cells[2,0]:='b_большая';
 for j:=1 to n do
   begin
      tabliza.cells[1,j]:=intToStr(b_m[j]);
      tabliza.cells[2,j]:=intToStr(b_b[j]);
   end;
 for i:=1 to n do
 for j:=1 to k do
   tabliza.cells[j+2,i]:=floatToStr(V_b[i,j]);
end;
  end;
end.



unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Grids, StdCtrls, ExtCtrls, Buttons, Menus;

type
  TForm2 = class(TForm)
    alpfa: TStringGrid;
    Panel1: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    procedure FormShow(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;
  i,j:integer;
implementation

uses osnowa;

{$R *.DFM}
{ Ввод козффициентов оптимизмов}
procedure TForm2.FormShow(Sender: TObject);
begin
     j:=0;
     form1.tabliza.Visible:=true;
     alpfa.Colcount:=strToInt(form1.edit3.text);
     for i:=0 to alpfa.Colcount do
        begin
             j:=j+1;
             alpfa.Cells[i,0]:='Alpha'+intToStr(i+1);
             alpfa.Cells[i,1]:=FloatToStr(al[j]);
        end;
end;

procedure TForm2.BitBtn2Click(Sender: TObject);
begin
     j:=0;
     for i:=0 to alpfa.Colcount do
     begin
        j:=j+1;
        try
          al[j]:=strToFloat(trim(alpfa.Cells[i,1]));
          form1.tabliza.Cells[3+i,0]:=alpfa.Cells[i,1];
        except
          showMessage('Ошибочная запись числа : '+alpfa.Cells[i,1]);
     end; end;

end;
end.


                                     Приложение 2 Результат работы программы


-----------------------
Игрок А

Игрок В

Стратегии
 игрок А

Стратегии
 игрок В

УС

СУ

ОУ

f(t)

U(t)

Продолжение рис 2.4.2

из стр.

из стр.

63

62

                 Оптимальная стратегия, max выигрыш игрока В


61

                 Оптимальная стратегия, max выигрыш игрока А

60

                   Игрока В разрешит конфликтную ситуацию

Нет

59

Нет

да

                   Игрока А разрешит конфликтную ситуацию

56

58

                                 max_a>max_b



                                 max_a=max_b

да

57



55

                                   Цикл 14

 54

                                   Цикл 15

F

E

53

                                 H_b:=[pic]

                               Седловые точки

                                    Выход

Продолжение рис. 2.4.2

к стр.

к стр.

из стр.

F

 44

E

                               V_b[i,j]>max_b

да

52

51

Max_b:=V_b[pic]



48

47

50

 49

                                   Цикл 15

                                    [pic]

                                   Цикл 14

                                    [pic]

                                   H_B:=1

                               max_b:=V_b[1,1]

46

                                   Цикл 11

V_b[i,j]:=al[j]*b_m[i]++(1-al[j])*b_b[i]

 45

                                   Цикл 13

D

43

                                   Цикл 13

                                    [pic]

Продолжение рис. 2.4.2

к стр.

из стр.

D

42

                                   Цикл 12

                             C_ b[i,j]> b_b[i,j]

да

41

40

b_m[pic]:=C_ b[pic]



                             C_ b[i,j]< b_m[i,j]

да

39

38

37

36

35

b_m[pic]:=C_ b[pic]



34

                                   Цикл 12

                                    [pic]

                             b_b[pic]:=C_b[pic]

                             b_m[pic]:=C_b[pic]

                                   Цикл 11

                                    [pic]

C

33

                                   Цикл 9

 32

                                   Цикл 10

Продолжение рис. 2.4.2

к стр.

из стр.

 22

C

31

                                 H_a:=[pic]

                               V_a[i,j]>max_a

да

30

29

Max_a:=V_ a[pic]



26

25

28

 27

                                   Цикл 10

                                    [pic]

                                   Цикл 9

                                    [pic]

                                   H_A:=1

                               max_a:=V_a[1,1]

24

                                   Цикл 6

                 V_a[i,j]:=al[j]*a_m[i]+ +(1-al[j]) *a_b[i]

B

 23

                                   Цикл 7

Продолжение рис. 2.4.2

к стр.

из стр.

21

                                   Цикл 7

                                    [pic]

B

20

                                   Цикл 6
1234
скачать работу

Метод Гурвица

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ