- •Программные средства систем поддержки принятия решений Содержание
- •Введение
- •Тема ргз – «Разработка программного средства системы поддержки принятия решений».
- •Разработанная версия сппр должна включать алгоритмы решения задачи поддержки принятия решений в условиях неопределенности.
- •1 Методы принятия решений в условиях неопределенности
- •1.1 Методика оценки автоматизированных системы в условиях неопределенности
- •1.2 Принятие решений в статистически неопределенных ситуациях
- •2 Техническое задание на разработку программного средства сппр
- •3 Методика выполнения и защиты отчета по ргз
- •Содержание отчета по ргз должно включать: Введение
- •Заключение
- •Расчетно-графическое задание
- •Содержание
- •Введение
- •Предметная область
- •Основная часть
- •1 Математическое описание критерия принятия решений
- •2 Разработка программного средства
- •2.1 Разработка архитектуры программного продукта
- •2.2 Разработка алгоритма задачи
- •2.3 Разработка программного кода
- •3 Тестирование разработанного программного средства
- •Заключение
- •Листинг управляющего модуля (Модуль ф1)
2.2 Разработка алгоритма задачи
Алгоритм принятия решений в условиях неопределенности по критерию Лапласа представлен на рисунке 2.4.
Рисунок 2.4 – Схема алгоритма принятия решений по методу Лапласа
2.3 Разработка программного кода
Программная реализация разработанного алгоритма выполнена на языке высокого уровня Object Pascal в среде Delphi 6 / 4,5 /.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, Menus;
type
TForm2 = class(TForm)
Tab1: TStringGrid;
Label1: TLabel;
Button1: TButton;
Label2: TLabel;
MainMenu1: TMainMenu;
N1: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.N1Click(Sender: TObject);
Var c,r:integer;
begin
Form2.Close;
Label2.Caption:='';
For с:=1 to 4 do begin
For r:=1 to 5 do begin
Form2.Tab1.Cells[c,r]:='';
end;
end;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
//строки
Tab1.Cells[0,1]:='a1';
Tab1.Cells[0,2]:='a2';
Tab1.Cells[0,3]:='a3';
Tab1.Cells[0,4]:='P(j)';
Tab1.Cells[0,5]:='K(ai)';
//столбцы
Tab1.Cells[1,0]:='k1';
Tab1.Cells[2,0]:='k2';
Tab1.Cells[3,0]:='k3';
Tab1.Cells[4,0]:='K(опт)';
end;
procedure TForm2.Button1Click(Sender: TObject);
Const m=3;
Var c,r:integer;
sumKa:real;
p:real;//среднее ожидаемое значение
Kop:real;
begin
//определяем Pj по столбцам
For c:=1 to 3 do begin p:=0;
For r:=1 to 3 do begin
p:=p+(Strtofloat(Tab1.Cells[c,r]))/m;
end;
Tab1.Cells[c,4]:=floattostrf(p,ffgeneral,1,1);
end;
//вычисляем К(а)
For c:=1 to 3 do begin sumKa:=0;
For r:=1 to 3 do begin
sumKa:=sumKa+(strtofloat(Tab1.Cells[c,r]))*strtofloat(Tab1.Cells[c,4]);
end;
Tab1.Cells[c,5]:=floattostr(sumKa);
end;
//находим Копт (max в строке)
If (strtofloat(Tab1.Cells[1,5])>=strtofloat(Tab1.Cells[2,5]))and (strtofloat(Tab1.Cells[1,5])>=strtofloat(Tab1.Cells[3,5]))
then begin
Kop:=strtofloat(Tab1.Cells[1,5]);
Tab1.Cells[4,5]:=floattostr(Kop);
Label2.Caption:='Эффективным при одном из заболеваний является медицинский препарат: '+Tab1.Cells[1,0];
end
else
If (strtofloat(Tab1.Cells[2,5])>=strtofloat(Tab1.Cells[1,5])) and (strtofloat(Tab1.Cells[2,5])>=strtofloat(Tab1.Cells[3,5]))
then begin
Kop:=strtofloat(Tab1.Cells[2,5]);
Tab1.Cells[4,5]:=floattostr(Kop);
Label2.Caption:='Эффективным при одном из заболеваний является медицинский препарат: '+Tab1.Cells[2,0];
end
else
If (strtofloat(Tab1.Cells[3,5])>=strtofloat(Tab1.Cells[2,5])) and (strtofloat(Tab1.Cells[3,5])>=strtofloat(Tab1.Cells[1,5]))
then begin
Kop:=strtofloat(Tab1.Cells[3,5]);
Tab1.Cells[4,5]:=floattostr(Kop);
Label2.Caption:='Эффективным при одном из заболеваний является медицинский препарат: '+Tab1.Cells[3,0];
end;
end;
end.