Критерии принытия решений

Страница: 8/8

//составной

var

c: real;

j, imin, imax, k, i: integer;

q: array [1 10, 1 10] of real;

sum, min, max: real;

s1, s: string;

begin

for i := 1 to N do // расчет МО

begin

sum := 0;

for j := 1 to M do

sum := sum + E[i, j];

min := E[i, 1];

max := E[i, 1];

for j := 1 to M do

begin

q[i, j] := E[i, j] / sum;

if E[i, j] < min then

min := E[i, j];

if E[i, j] > max then

max := E[i, j];

end;

E[i, M + 1] := 0;

for j := 1 to M do

E[i, M + 1] := E[i, M + 1] + E[i, j]* q[i, j];

E[i, M + 2] := 0.5 - min;

E[i, M + 3] := max - 0.5;

end;

imax := 1;

max := E[1, M + 1];

imin := 1;

min := E[1, M + 1];

for i := 1 to N do

begin

if (E[i, M + 1] > max) and (E[i, M + 2] <= 0.8) then

begin

max := E[i, M + 1];

imax := i;

end;

if (E[i, M + 1] < min) and (E[i, M + 2] <= 0.8) then

begin

min := E[i, M + 1];

imin := i;

end;

end;

Memo1.Lines.Add('Составной критерий');

Memo1.Lines.Add('Наилучший объект');

Memo1.Lines.Add(R[imax]);

Str(max:5:3, s);

Memo1.Lines.Add('Значение: ' + s);

Memo1.Lines.Add('Наихудший объект');

Memo1.Lines.Add(R[imin]);

Str(min:5:3, s);

Memo1.Lines.Add('Значение: ' + s);

end;

procedure TForm1.SpeedButton3Click(Sender: TObject);

//Сэвиджа

var

c: real;

j, ind1, ind2, k, i: integer;

A: array [1 10, 1 10] of real;

Kmin, Kmax: real;

s: string;

begin

for j := 1 to M do // расчет максимума

begin

Kmax := E[1, j];

for i := 1 to N do

if E[i, j] > Kmax then

Kmax := E[i, j];

for i := 1 to N do

A[i, j] := Kmax - E[i, j];

end;

for i := 1 to N do

begin

Kmax := A[i, 1];

for j := 1 to M do

if A[i, j] > Kmax then

Kmax := A[i, j];

E[i, 5] := Kmax;

end;

ind2 := 1;

Kmax := E[1, 5];

ind1 := 1;

Kmin := E[1, 5];

for i := 1 to N do

begin

if E[i, 5] < Kmax then

begin

Kmax := E[i, 5];

ind2 := i;

end;

if E[i, 5] > Kmin then

begin

Kmin := E[i, 5];

ind1 := i;

end;

end;

Memo1.Lines.Add('Критерий Сэвиджа');

Memo1.Lines.Add('Наилучший объект');

Memo1.Lines.Add(R[ind2]);

Str(Kmax:5:3, s);

Memo1.Lines.Add('Значение: ' + s);

Memo1.Lines.Add('Наихудший объект');

Memo1.Lines.Add(R[ind1]);

Str(Kmin:5:3, s);

Memo1.Lines.Add('Значение: ' + s);

end;

end.

Реферат опубликован: 12/02/2009