Предметна область системного аналізу Основні поняття системного аналізу

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.


Нажми чтобы узнать.
скачати

МІНІСТЕРСТВО ОСВІТИ І НАУКИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”

Кафедра інформаційних

систем та мереж

Практична робота №1

на тему:

ПРЕДМЕТНА ОБЛАСТЬ СИСТЕМНОГО АНАЛІЗУ. ОСНОВНІ ПОНЯТТЯ СИСТЕМНОГО АНАЛІЗУ

Львів-2009р.

Назва роботи:

Предметна область системного аналізу. Основні поняття системного аналізу

Мета роботи:

Ознайомитись з предметною областю системного аналізу та вивчити теоретичні відомості.

Короткі теоретичні відомості:

У процесі вивчення системного аналізу важливо передусім проаналізувати причини і фактори, що зумовили можливість його становлення й розвитку як універсальної наукової методології, зрозуміти роль і місце системного аналізу в сучасних галузях наукових знань, у різних сферах практичної діяльності, а також виявити міру його впливу на розвиток суспільства.

Необхідність такого підходу обумовлена видатними досягненнями ХХ століття, зокрема освоєнням космосу; розробкою й масовим впровадженням обчислювальної техніки, інформаційних технологій і світової мережі Інтернет; швидким розвитком і широким застосуванням авіацій; дослідженням ядерних процесів, освоєнням і розвитком атомної енергетики. Стрімкий розвиток наукомістких технологій і технічного оснащення в різних галузях виробництва й обслуговування, враховуючи медицину, фармакологію, генну інженерію, низка інших найбільших досягнень науково- технічного прогресу увійшли в історію цивілізації як результат погодженої взаємодії науки, освіти і промисловості. Усі ці досягнення зробили свій вагомий внесок різні науки, які охоплюють багато галузей знань і різні історичні періоди. Це були науки, що зародилися у Стародавньому світі, і науки, формування яких почалося лише у ХХ столітті. До останніх поряд з іншими новітніми напрямами, такими як кібернетика, дослідження операцій, загальна теорія систем, системотехніка, теорія прийняття рішень, теорія оптимізації, належить і системний аналіз.

Системне мислення – це вища форма людського пізнання, коли процеси відображення об’єктивної реальності базуються на цілісному відображені досліджуваного об’єкта з позиції досягнення поставлених цілей дослідження на підставі знань, досвіду, інтуїції і передбачення. Принципово важливою деталлю цього означення є залежність меж об’єкта дослідження від поставлених цілей.

Середовище – зовнішнє оточення людини та об’єкта дослідження (природне середовище, зовнішні об’єкти, що залежать від розглянутого об’єкта або взаємодіють із ним).

Людина – розробник, виробник, користувача, продавець чи покупець об’єкта або фахівець-дослідник відповідної предметної галузі, до якої належить досліджуваний об’єкт.

Відповіді на контрольні питання:

  1. Системний аналіз — вивчення об'єкта дослідження як сукупності елементів, що утворюють систему. У наукових дослідженнях він передбачає оцінку поведінки об'єкта як системи з усіма факторами, які впливають на його функціонування. Цей метод широко застосовується у наукових дослідженнях при комплексному вивченні діяльності виробничих об'єднань і галузі в цілому, визначенні пропорцій розвитку галузей економіки тощо.

  2. Системне мислення – це вища форма людського пізнання, коли процеси відображення об’єктивної реальності базуються на цілісному відображені досліджуваного об’єкта з позиції досягнення поставлених цілей дослідження на підставі знань, досвіду, інтуїції і передбачення. Принципововажливою деталлю цього означення є залежність меж об’єкта дослідження від поставлених цілей.

  3. Системний аналітик – Людина яка стежить за станом системи. І досліджує систему.

  4. Предметна область системного аналізу зводиться до вивчення складних багаторівневих множин систем різної природи та різних видів і класів з різноманітними властивостями і відношеннями між ними. Вона настільки широка, що не підлягає строгій та однозначній класифікації й впорядкуванню. Методи системного дослідження як способи чи шляхи практичного або теоретичного пізнання явищ і закономірностей функціонування і розвитку складних систем є досить різноманітними і не обмежуються будь-якими рамками.

  5. A×B={(a,b) |aA,bB} - прямий добуток множин.

AB={x|xAxB} - поєднання множин.

AB={x|xAxB} - перетин множин.

A\B={x|xAxB} - різниця множин.

- пуста множина.

U - універсальна множина.

A=U\A={x|xA} - доповнення множини.

  1. Будь-який заданий клас абстрактних об’єктів може мати декілька можливих представлень, та вибір найкращого з них основним чином залежить від того, яким чином об’єкт буде використаний, а також від типу здійснених над ним операцій.

В алгоритмах на дискретних структурах часто ми зустрічаємось з представленням кінцевих послідовностей та операціями з ними. З обчислювальної точки зору простішим представленням кінцевої послідовності 1 2 , , ,n s s s є точний список її членів, які знаходяться по порядку в суміжних комірках пам’яті.

  1. Мережа Петрі складається з чотирьох елементів: скінченної множини позицій Р = {p1, p2,..., pn}, множини переходів Т = {t1, t2,..., tm}, вхідної функції І:TP, і вихідної функції О:TP.

  2. Майже всі машинні представлення дерев основані на зв’язних розподілах. Кожний вузол складається із поля даних та деяких полів для вказівників. В наступному прикладі представлені дерев кожний вузол має по три поля вказівників.

  3. Дерево досягальності мережі Петрі є ілюстрацією множини досягальності R(C, μ). Оскільки в багатьох випадках множина досягальності є нескінченною, то існують певні правила, які дозволяють відобразити її скінченним деревом досягальності.

Поставновка задачі:

Потрібно за даними в методичці знайти розширену вхідну і вихідну функції мережі Петрі. Також зобразити граф мережі Петрі, дерево досяжності глибини 3. Написати програму яка повинна шукати розширену вхідну і вихідну функції за вхідними даними і будувати дерево досяжності.

Вхідні дані:

I(t1) = { p4, p2 , p3 }; O(t1) = { p4, p3, p4 , p3, p3 , p4, p1 };

I(t2) = { p2, p3, p3 , p3 }; O(t2) = { p3, p1, p2, p4, p4 };

I(t3) = { p4, p3 }; O(t3) = { p1, p4};

I(t4) = { p4, p2 p2, p4 ,p4 p3, p2 }; O(t4) = { p2, p2 };

μ0 = {5,5,5,5}.

Хід виконання роботи:

Ознайомитись з теоретичними відомості, які подані в цій методичці. Реалізувати на мовах Pascal або С програми зв’язного формування списку елементів послідовності згідно номеру варіанту.Програма повинна шукати розширену вхідну і вихідну функцію і будувати дерево досяжності глибини 3. Розв’язати завдання відповідно до свого порядкового номеру у списку групи. Завдання отримати у викладача. При оформленні лабораторної роботи дотримуватись вимог, які наведені в методичних вказівках.

Розширена вхідна і вихідна функції:

I(p1)={t1,t2,t3}

I(p2)={t2,t4,t4}

I(p3)={t1,t1,t1,t2}

I(p4)={t1,t1,t1,t2,t2,t3}

O(p1)={}

O(p2)={t1,t2,t4,t4,t4}

O(p3)={t1,t2,t2,t2,t3,t4}

O(p4)={t1,t3,t4,t4,t4}

Граф мережі Петрі:

Маркування мережі Петрі:

Виконання мережі Петрі:

Запуск t1:

Запуск t2:

Запуск t3:


Запуск t4:

Дерево досягальності глибини 3:

Код програми:

#include <vcl.h>

#include <string.h>

#pragma hdrstop


#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

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

#pragma package(smart_init)

#pragma link "XPManifest"

#pragma link "acButtons"

#pragma resource "*.dfm"

#define n 4

TForm1 *Form1;

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

struct TMT

{

int z;

int p[n];

int t[n];

};


TMT P[n], T[n]; int ccc[n],cc[n],c[n],b;

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


__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}


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

void run()

{

P[0].z=StrToInt(Form1->StringGrid3->Cells[1][0]); T[0].z=0; ccc[0]=P[0].z;

P[1].z=StrToInt(Form1->StringGrid3->Cells[2][0]); T[1].z=0; ccc[1]=P[1].z;

P[2].z=StrToInt(Form1->StringGrid3->Cells[3][0]); T[2].z=0; ccc[2]=P[2].z;

P[3].z=StrToInt(Form1->StringGrid3->Cells[4][0]); T[3].z=0; ccc[3]=P[3].z;

int z;

for(z=0; z<n; z++)

{

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

{P[z].t[i]=0; T[i].p[z]=0;


for(int j=0; j<Form1->StringGrid1->ColCount; j++)

{

if((StrToIntDef(Form1->StringGrid2->Cells[j][i],0)))

if(z+1==StrToInt(Form1->StringGrid2->Cells[j][i]))P[z].t[i]++;


if((StrToIntDef(Form1->StringGrid1->Cells[j][i],0)))

if(z+1==StrToInt(Form1->StringGrid1->Cells[j][i]))T[i].p[z]++;

}}}}

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

void search()

{ AnsiString p,p2,t,t2; int z,j,zz;


for(z=0; z<Form1->StringGrid1->RowCount; z++)

{ p="I(p"+IntToStr(z+1)+")={";

t="O(p"+IntToStr(z+1)+")={";

for(j=0; j<Form1->StringGrid2->RowCount; j++)

for(zz=0; zz<Form1->StringGrid2->ColCount; zz++)

{

if((StrToIntDef(Form1->StringGrid2->Cells[zz][j],0)))

if(z+1==StrToInt(Form1->StringGrid2->Cells[zz][j]))

{

p2="t"+IntToStr(j+1)+",";

p+=p2;

}

if((StrToIntDef(Form1->StringGrid1->Cells[zz][j],0)))

if(z+1==StrToInt(Form1->StringGrid1->Cells[zz][j]))

{

t2="t"+IntToStr(j+1)+",";

t+=t2; }

}

if(p.Pos("t")) p[p.Length()]='}';else p+="}";

Form1->Memo1->Lines->Add(p);

if(t.Pos("t")) t[t.Length()]='}';else t+="}";

Form1->Memo2->Lines->Add(t);

}}


//=========================================================

void __fastcall TForm1::FormCreate(TObject *Sender)

{

for(int i=0; i<Form1->StringGrid1->RowCount; i++)

{

StringGrid1->Cells[0][i]="I(t"+IntToStr(i+1)+")";

StringGrid2->Cells[0][i]="O(t"+IntToStr(i+1)+")";

}

StringGrid3->Cells[0][0]=" м";

StringGrid3->Cells[1][0]="5";

StringGrid3->Cells[2][0]="5";

StringGrid3->Cells[3][0]="5";

StringGrid3->Cells[4][0]="5";

}

//=========================================================

void spp(int i)

{

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

if(T[i].p[j]&&T[i].p[j]>P[j].z) {b=0; break;}


if(b==1)

{

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

{

T[i].z+=T[i].p[j];

P[j].z-=T[i].p[j];

}

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

if(P[k].t[i]!=0&&T[i].z!=0)

P[k].z+=P[k].t[i];

}

}

void kpk()

{

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

{

Form1->TreeView1->Items->AddChild(Form1->TreeView1->Items->Item[0],"0");

Form2->TreeView1->Items->AddChild(Form2->TreeView1->Items->Item[0],"0");

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

{

Form1->TreeView1->Items->AddChild(Form1->TreeView1->Items->Item[0]->Item[i],"0");

Form2->TreeView1->Items->AddChild(Form2->TreeView1->Items->Item[0]->Item[i],"0");

for(int e=0; e<n; e++)

{

Form1->TreeView1->Items->AddChild(Form1->TreeView1->Items->Item[0]->Item[i]->Item[j],"0");

Form2->TreeView1->Items->AddChild(Form2->TreeView1->Items->Item[0]->Item[i]->Item[j],"0");

}}}}//---------------


//=======================================

int p1,p2,p3;

void run_5()

p1=-1;

AnsiString f="m("+IntToStr(P[0].z)+","+IntToStr(P[1].z)+","+IntToStr(P[2].z)+","+IntToStr(P[3].z)+")";

Form1->TreeView1->Items->Clear(); Form2->TreeView1->Items->Clear();

Form1->TreeView1->Items->Add(NULL,f); Form2->TreeView1->Items->Add(NULL,f);

Form1->TreeView1->Items->Item[0]->Text=f;

Form2->TreeView1->Items->Item[0]->Text=f;

kpk();

for(int i=n-1; i>-1; i--)

{b=1; T[i].z=0; p1++; p2=-1;

if(!Form1->CheckBox2->Checked) t1=p1; else t1=i;

P[0].z=ccc[0];

P[1].z=ccc[1];

P[2].z=ccc[2];

P[3].z=ccc[3];

spp(p1);

AnsiString f="t"+IntToStr(p1+1)+"("+IntToStr(P[0].z)+","+IntToStr(P[1].z)+","+IntToStr(P[2].z)+","+IntToStr(P[3].z)+")";

if(ccc[0]!=P[0].z||ccc[1]!=P[1].z||ccc[2]!=P[2].z||ccc[3]!=P[3].z)

{

Form1->TreeView1->Items->Item[0]->Item[t1]->Text=f;

Form2->TreeView1->Items->Item[0]->Item[t1]->Text=f;

cc[0]=P[0].z;

cc[1]=P[1].z;

cc[2]=P[2].z;

cc[3]=P[3].z;

}

else goto end;


for(int j=n-1; j>-1; j--)

{b=1; T[j].z=0; p2++; p3=-1;

if(!Form1->CheckBox2->Checked) t2=p2; else t2=j;

P[0].z=cc[0];

P[1].z=cc[1];

P[2].z=cc[2];

P[3].z=cc[3];

spp(p2);

AnsiString f="t"+IntToStr(p2+1)+"("+IntToStr(P[0].z)+","+IntToStr(P[1].z)+","+IntToStr(P[2].z)+","+IntToStr(P[3].z)+")";

if(cc[0]!=P[0].z||cc[1]!=P[1].z||cc[2]!=P[2].z||cc[3]!=P[3].z)

{

Form1->TreeView1->Items->Item[0]->Item[t1]->Item[t2]->Text=f;

Form2->TreeView1->Items->Item[0]->Item[t1]->Item[t2]->Text=f;

c[0]=P[0].z;

c[1]=P[1].z;

c[2]=P[2].z;

c[3]=P[3].z;

}

else goto end1;

for(int e=n-1; e>-1; e--)

{ b=1; T[j].z=0; p3++;

if(!Form1->CheckBox2->Checked) t3=p3; else t3=e;

P[0].z=c[0];

P[1].z=c[1];

P[2].z=c[2];

P[3].z=c[3];

spp(p3);

AnsiString f="t"+IntToStr(p3+1)+"("+IntToStr(P[0].z)+","+IntToStr(P[1].z)+","+IntToStr(P[2].z)+","+IntToStr(P[3].z)+")";

if(c[0]!=P[0].z||c[1]!=P[1].z||c[2]!=P[2].z||c[3]!=P[3].z)

{

Form1->TreeView1->Items->Item[0]->Item[t1]->Item[t2]->Item[t3]->Text=f;

Form2->TreeView1->Items->Item[0]->Item[t1]->Item[t2]->Item[t3]->Text=f;

} }

end1:

}end: }

void __fastcall TForm1::acBitBtn2Click(TObject *Sender)

{

int i=0,j=0;

p1=n; b=1; p1=n;

Memo1->Clear();

Memo2->Clear();

search();

run();

run_5();

}

Результати роботи програми:

Висновок:

Я ознайомився з предметною областю системного аналізу та вивчив теоретичні відомості. Виконав завдання, написав програму.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Контрольна робота
56.8кб. | скачати


Схожі роботи:
Основні поняття системного аналізу
тичної статистики теоретичного аналізу теорії імовірності системного аналізу економетрії
Структура системного аналізу
Побудова системного аналізу
Методологічні процедури системного аналізу
Методи системного аналізу фізіологічних процесів
Можливості системного аналізу стосовно до наукового і технічної творчості
Теоретичні основи і методи системного аналізу оптимізації управління прийняття рішень і
Основні поняття математичного аналізу
© Усі права захищені
написати до нас
Рейтинг@Mail.ru