Материал: Разработка и реализация программного обеспечения, ориентированного на определение вероятностных характеристик надежности элементов по наблюдениям вероятностных характеристик надежности всей системы

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

.

Для алгебры А, порождённой операцией  стохастические матрицы также связаны с вектором вероятностей состояний исходного элемента  и имеют вид:

.

Общим свойством стохастических алгебр является их связь с цепями Маркова, позволяющая сделать выводы об изменении состояний исследуемых систем с учётом введенных операций и свойств этих операций.

Пусть вектора  и определяют вероятности состояний элементов СС  и  соответственно, а вектор  определяет вероятности состояний системы, включающей элементы  и , взаимодействие которых описывается операцией *, порождающей стохастическую алгебру А*. Тогда, умножение структурных коэффициентов стохастической алгебры  на элементы вектора  даёт матрицу, где , умножение  на элементы вектора  даёт матрицу , где , а умножение  на элементы вектора  даёт матрицу , где .

Очевидно, эти матрицы будут стохастическими, описывающими соответственно случайные процессы, которые представляются цепями Маркова. Вид их будет определяться операцией, порождающей алгебру.

3.      Теоритическая разработка программного обеспечения


При запуске разработанного приложения появится следующее окно (Рисунок 3.1)

Рисунок 3.1 Основная форма

В Edit нужно ввести название страны и нажать вычислить. Например Seychelles (Рисунок 3.2)

Рисунок 3.2 График построения векторов для “ Seychelles ”

Рисунок 3.3 График построения векторов для “ Azerbaijan ”

Программа подключена через ADOConnection к базе данных, в которой хранятся данные скаченные с сайта who.int. ADOQuery подключается к ADOConnection и через запросы данные с базы данных присваиваются массивам и обрабатываются по кнопке “Вычислить”. Результаты вычисления отображаются в StringGrid и на графике.

ЗАКЛЮЧЕНИЕ


Предложенный метод вероятностно-алгебраического моделирования оперирует над вероятностными состояниями компонентов. Для их композиции используются произвольные функции: детер-минированные/вероятностные, бинарные/n -арные, позволяющие отразить при исследовании связи между компонентами, образующими систему. Метод имеет алгебраическую основу, позволяющую единым образом описать связи между компонентами. Данный подход позволяет использовать методы компьютерной алгебры для проведения символьных вычислений. Практическое применение метода в различных проблемных областях позволит оценить изменение вероятностных характеристик системы во времени с учётом управляющих воздействий на каждом шаге моделирования..

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ


1 Гаврилов, Л. А. Биология продолжительности жизни. Количественные аспекты: 2-е изд. / Л. А Гаврилов, Н. С. Гаврилова. - М.: Наука, 1991. - 280с.

Сукач, Е.И. Вероятностно-алгебраическое моделирование сложных систем графовой структуры /Е. И. Сукач; М-во образования РБ, Гомельский государственный университет имени Ф. Скорины. - Гомель: ГГУ им. Ф. Скорины, 2012.-224 с.

3 Андреев Е. М. Анализ дожития с использованием данных о причинах смерти // Популяционная геронтология / Под ред. Е.Б. Бурлаковой, Л.А. Гаврилова. - М.: ВИНИТИ, 1987. С. 190-229.

Бауэрс Н.,. Актуарная математика. / Х. Гербер, Д. Джонс, С. Несбитт, Дж. Хикман - М.: Янус-К, 2001.

5 who.int - всемирная организация здравоохранения [Электронный ресурс] // URL:http://www.who.int/en/

ПРИЛОЖЕНИЕ


«Unit1.pas»

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"*Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{->ColCount=26;->RowCount=4;->DefaultColWidth=30;->ColWidths[0]=140;->Rows[1]->Text = "Вектор 1";->Rows[2]->Text = "Вектор 2";->Rows[3]->Text = "Полученный вектор";(int i = 1; i < SG1->ColCount; i++)->Cells[i][0]=IntToStr(i);

}* rec(float *P){i;(i=1; i<26; i++){[i] = P[i]*P[0];(P[i]-int(P[i])>=0.5)[i] = int(P[i]+1);[i] = int(P[i]);

}P;

}max(int i,int j){(i<j)i;j;

}* Zapr0(float *P0, AnsiString Cntr){i;->ADOQuery1->Active = false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT * FROM Morticd10,Country_codes ");->ADOQuery1->SQL->Add("where Morticd10.Country=Country_codes.country and Year=2001");->ADOQuery1->SQL->Add("and Cause=1026 and Country_codes.name=Pr1 and Sex=1");->ADOQuery1->Parameters->ParamByName("Pr1")->Value=Cntr;->ADOQuery1->Active = true;->ADOQuery1->Open();[0] = Form1->ADOQuery1->Fields->FieldByNumber(11)->AsInteger;(i=1; i<26; i++)[i] = Form1->ADOQuery1->Fields->FieldByNumber(i+11)->AsInteger*1.0/P0[0];->ADOQuery1->Close();P0;

}* Zapr1(float *P1, AnsiString Cntr){i;->ADOQuery1->Active = false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT * FROM Morticd10,Country_codes ");->ADOQuery1->SQL->Add("where Morticd10.Country=Country_codes.country and Year=2001");->ADOQuery1->SQL->Add("and Cause=1000 and Country_codes.name=Pr1 and Sex=1");->ADOQuery1->Parameters->ParamByName("Pr1")->Value=Cntr;->ADOQuery1->Active = true;->ADOQuery1->Open();[0] = Form1->ADOQuery1->Fields->FieldByNumber(11)->AsInteger;(i=1; i<26; i++)[i] = Form1->ADOQuery1->Fields->FieldByNumber(i+11)->AsInteger*1.0/P1[0];->ADOQuery1->Close();P1;

}

//---------------------------------------------------------------------------__fastcall TForm1::B1Click(TObject *Sender)

{i,j,k, a[26][26][26];*P0 = new float[26], *P1 = new float[26], *P2 = new float[26];(E1->Text != ""){= Zapr0(P0,E1->Text);= Zapr1(P1,E1->Text);

}{("Введите страну");;

}[0] = P0[0]*P1[0];(i=1; i<26; i++){[i]=0;(j=1; j<26; j++)(k=1; k<26; k++)[i][j][k]=0;

}(i=1; i<26; i++)(j=1; j<26; j++)(k=1; k<26; k++)[i][j][max(i,j)]=1;(i=1; i<26; i++)(j=1; j<26; j++)(k=1; k<26; k++)[k] += a[i][j][k]*P0[i]*P1[j];(int i=1; i<26; i++){->Cells[i][1]=P0[i];->Cells[i][2]=P1[i];->Cells[i][3]=P2[i];

}->Clear();->Clear();->Clear();(i=1; i<26; i++){->Add(P0[i],i,clRed);->Add(P1[i],i,clGreen);->Add(P2[i],i,clPurple);

}

}

//---------------------------------------------------------------------------