Моделирование динамики систем на основе цепей Маркова с дискретным временем

Автор: Пользователь скрыл имя, 10 Декабря 2012 в 13:18, курсовая работа

Краткое описание

Данная курсовая работа посвящена изучению цепей Маркова. Работу можно разделить на несколько подзадач:
1. Освоить основные положения теории конечных цепей Маркова с дискретным временем.
2. Научится составлять ЦМ для моделирования вычислительных систем и анализа динамики их функционирования.
3. Провести имитационное моделирование динамики ЦМ.
4. Провести расчет характеристик производительности вычислительных систем.

Оглавление

Введение 4
1. Теоретический раздел 5
1.1 Определение цепи Маркова, их классификация 5
1.2 Невозвратные состояния 10
1.3 Исследование динамики цепей Маркова 15
2. Практический раздел 18
2.1 Граф состояний и матрица вероятностей переходов 18
2.2 Таблица векторов X(t) 19
2.3 Программный алгоритм 27
2.4 Выделение невозвратного и эргодического множества 28
2.5 Оценка вероятности пребывания процесса в состоянии 31
3. Заключение 34
Список использованных источников 35
Приложение А – листинг программы 36

Файлы: 1 файл

Kursovaya_rabota_TVP.docx

— 495.50 Кб (Скачать)

        //èñõîäíûå äàííûå

        SG->Cells[1][1]=1;SG->Cells[2][1]=1;SG->Cells[3][1]=3;SG->Cells[4][1]=5;

        SG->Cells[5][1]=0;SG->Cells[6][1]=0;SG->Cells[7][1]=0;SG->Cells[8][1]=0;

        SG->Cells[1][2]=0;SG->Cells[2][2]=0;SG->Cells[3][2]=6;SG->Cells[4][2]=4;

        SG->Cells[5][2]=0;SG->Cells[6][2]=0;SG->Cells[7][2]=0;SG->Cells[8][2]=0;

        SG->Cells[1][3]=6;SG->Cells[2][3]=0;SG->Cells[3][3]=0;SG->Cells[4][3]=0;

        SG->Cells[5][3]=4;SG->Cells[6][3]=0;SG->Cells[7][3]=0;SG->Cells[8][3]=0;

        SG->Cells[1][4]=0;SG->Cells[2][4]=0;SG->Cells[3][4]=3;SG->Cells[4][4]=2;

        SG->Cells[5][4]=0;SG->Cells[6][4]=1;SG->Cells[7][4]=0;SG->Cells[8][4]=5;

        SG->Cells[1][5]=0;SG->Cells[2][5]=0;SG->Cells[3][5]=0;SG->Cells[4][5]=0;

        SG->Cells[5][5]=3;SG->Cells[6][5]=4;SG->Cells[7][5]=3;SG->Cells[8][5]=0;

        SG->Cells[1][6]=0;SG->Cells[2][6]=0;SG->Cells[3][6]=0;SG->Cells[4][6]=0;

        SG->Cells[5][6]=8;SG->Cells[6][6]=2;SG->Cells[7][6]=0;SG->Cells[8][6]=0;

        SG->Cells[1][7]=0;SG->Cells[2][7]=0;SG->Cells[3][7]=0;SG->Cells[4][7]=0;

        SG->Cells[5][7]=0;SG->Cells[6][7]=6;SG->Cells[7][7]=4;SG->Cells[8][7]=0;

        SG->Cells[1][8]=0;SG->Cells[2][8]=0;SG->Cells[3][8]=0;SG->Cells[4][8]=0;

        SG->Cells[5][8]=0;SG->Cells[6][8]=0;SG->Cells[7][8]=0;SG->Cells[8][8]=10;

}

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

void __fastcall TForm1::Button1Click(TObject *Sender)

{

        //Button2->Enabled=true;

        Co=1;

        for(int i=0; i<K; i++)

                for(int j=0; j<100; j++)

                        X[j][i]=0;

        int Jo=StrToInt(Edit1->Text);

        int Tk=StrToInt(Edit2->Text);

        int No=StrToInt(Edit3->Text);

        for(int i=0; i<K; i++)

                for(int j=0; j<K; j++)

                        P[i][j]=StrToInt(SG->Cells[j+1][i+1]);

        int st,Sluh;

        for(int N=0; N<No; N++)

        {

                st=Jo-1;

                Y[0][Jo-1]=1;

                for(int T=0; T<Tk; T++)

                {

                        int Sum=0, Pr=0;

                        Sluh=1+rand()%10;

                        for(int j=0; j<K; j++)

                        {

                                if(P[st][j]>0)

                                {

                                        Sum+=P[st][j];

                                        if(Sluh<=Sum)

                                        {

                                                for(int k=0;k<5;k++)

                                                        if(j==E[k]) Pr=1;

                                                if(Pr==1) break;

                                                Y[T+1][j]+=1;

                                                st=j;

                                                break;

                                        }

                                }

                        }

                        if (Pr) break;

                }

                for(int i=0; i<K; i++)

                        for(int j=0; j<Tk+1; j++)

                                X[j][i]+=Y[j][i];

        }

        int Z[K]={NULL};

        for(int i=0; i<K; i++)

                for(int j=0; j<Tk+1; j++)

                        Z[i]+=X[j][i];

        for(int i=0; i<K; i++)

                S->Cells[i+1][0]=FloatToStr((float)Z[i]/No);

        for(int i=0;i<K;i++)Z[i]=0;

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение Б – результат выполнения программ

 

 

 


Информация о работе Моделирование динамики систем на основе цепей Маркова с дискретным временем