Kompüter simulyasiyası

**Kompüter simulyasiyası** — real və ya fiziki sistemin davranışını və ya nəticələrini təqlid etmək məqsədilə hazırlanmış riyazi modelin kompüter vasitəsilə icra olunması prosesidir. Bu zaman model real sistemin xüsusiyyətlərini və proseslərini təsvir etmək üçün istifadə olunur. Riyazi modelin etibarlılığı çox vaxt onun nəticələrinin real dünyada müşahidə olunan nəticələrlə müqayisəsi yolu ilə müəyyən edilir.

Kompüter simulyasiyaları bir çox təbii sistemlərin riyazi modelləşdirilməsi üçün mühüm alətə çevrilmişdir. Bu sistemlərə fizika (xüsusilə hesablama fizikası), astrofizika, iqlimşünaslıq, kimya, biologiya və istehsalat sahələri daxildir. Bundan əlavə, insan fəaliyyətinə aid sistemlərin — iqtisadiyyat, psixologiya, sosial elmlər, səhiyyə və mühəndislik sahələrinin — araşdırılmasında da geniş istifadə olunur.

Simulyasiya prosesində sistemin modeli icra edilir və bu model vasitəsilə yeni texnologiyaların xüsusiyyətlərini öyrənmək, mürəkkəb sistemlərin fəaliyyətini analiz etmək və analitik üsullarla həll edilməsi çətin olan problemləri qiymətləndirmək mümkündür.

Kompüter simulyasiyaları müxtəlif ölçülü kompüter proqramları vasitəsilə həyata keçirilir. Bəzi simulyasiya proqramları kiçik cihazlarda demək olar ki, dərhal işləyə bilir, digərləri isə çox böyük hesablamalar tələb edir və günlərlə və ya həftələrlə yüksək performanslı kompüter şəbəkələrində icra olunur.

Kompüter simulyasiyalarının miqyası ənənəvi riyazi modelləşdirmə üsullarının imkanlarını çoxdan geridə qoymuşdur. Məsələn, 1997-ci ildə bir hərbi simulyasiya zamanı bir qüvvənin digərinə hücumunu modelləşdirmək üçün Küveyt ətrafındakı ərazidə 66.239 tank, yük maşını və digər hərbi texnikanı əhatə edən virtual döyüş ssenarisi hazırlanmışdır. Bu simulyasiya ABŞ Müdafiə Nazirliyinin yüksək performanslı hesablama proqramı çərçivəsində bir neçə superkompüter vasitəsilə həyata keçirilmişdir.

Digər nümunələrə aşağıdakılar daxildir:

* material deformasiyasının 1 milyard atomdan ibarət modeli;
* 2005-ci ildə bütün canlı orqanizmlərdə zülal istehsal edən ribosomun 2,64 milyon atomdan ibarət modeli;
* 2012-ci ildə *[[Mycoplasma genitalium]]* bakteriyasının həyat dövrünün tam simulyasiyası;
* 2005-ci ildə İsveçrədə EPFL tərəfindən başlanmış Blue Brain Project layihəsi — insan beyninin molekulyar səviyyədə tam kompüter simulyasiyasını yaratmaq məqsədi daşıyan tədqiqat proqramı.

Simulyasiyalar yüksək hesablama xərcləri tələb etdiyinə görə, kompüter eksperimentləri çox vaxt nəticələrin çıxarılması və qeyri-müəyyənliyin qiymətləndirilməsi kimi tədqiqat məqsədləri üçün istifadə olunur.

## Simulyasiya və model
Model — müəyyən bir sistemin davranışını təsvir edən riyazi tənliklər və qaydalar toplusudur. Kompüter simulyasiyası isə həmin tənlikləri həll edən alqoritmlərin kompüter proqramı vasitəsilə icra olunmasıdır.

Başqa sözlə, simulyasiya modelin işlədilməsi prosesidir. Bu səbəbdən texniki baxımdan “simulyasiya qurmaq” ifadəsindən daha çox “model qurmaq” və sonra “modeli işlətmək” və ya “simulyasiya aparmaq” ifadələri istifadə olunur.

## Tarixi
Kompüter simulyasiyasının inkişafı kompüter texnologiyasının sürətli inkişafı ilə paralel şəkildə baş vermişdir. Bu texnologiya ilk dəfə geniş miqyasda İkinci dünya müharibəsi dövründə həyata keçirilən Manhattan Project çərçivəsində tətbiq olunmuşdur. Layihə zamanı nüvə silahı partlayış prosesini modelləşdirmək üçün simulyasiya üsullarından istifadə edilmişdir.

Bu ilkin modellərdən biri 12 sərt kürənin davranışını Monte Karlo metodu vasitəsilə modelləşdirən simulyasiya idi. Daha sonralar kompüter simulyasiyası analitik üsullarla həll edilə bilməyən mürəkkəb sistemlərin tədqiqində geniş istifadə olunmağa başlanmışdır.

Simulyasiyaların müxtəlif növləri mövcuddur, lakin onların ümumi xüsusiyyəti modelin mümkün bütün vəziyyətlərini hesablamaq əvəzinə, sistem üçün tipik və nümayəndəvi ssenarilərin yaradılmasıdır. Bu yanaşma çox böyük və mürəkkəb sistemlərin tədqiqini mümkün edir.

## Məlumatların hazırlanması
Simulyasiya və modellərin xarici məlumat tələbləri çox geniş diapazonda dəyişə bilər. Bəzi hallarda giriş məlumatları yalnız bir neçə rəqəmdən ibarət ola bilər (məsələn, elektrik naqilində dəyişən cərəyanın dalğa formasının simulyasiyası). Digər hallarda isə, məsələn hava və iqlim modellərində, terabaytlarla ölçülən böyük həcmli məlumat tələb olunur.

Giriş məlumatlarının mənbələri də müxtəlif ola bilər:

* modelə qoşulmuş sensorlar və digər fiziki cihazlar;
* simulyasiyanın gedişini idarə etmək üçün istifadə olunan idarəetmə interfeysləri;
* əl ilə daxil edilən cari və ya tarixi məlumatlar;
* digər proseslərin əlavə məhsulu kimi əldə edilən məlumatlar;
* digər simulyasiya və modellər tərəfindən xüsusi olaraq yaradılan məlumatlar.

Məlumatların simulyasiyaya daxil olma vaxtı da fərqli ola bilər:

* **dəyişməz (invariant) məlumatlar** çox vaxt model kodunun daxilində saxlanılır; məsələn, π sabitinin qiyməti kimi;
* simulyasiya başladıqda bir və ya bir neçə fayldan oxunan məlumatlar;
* preprosessor vasitəsilə hazırlanan məlumatlar;
* simulyasiya icra edilərkən sensor şəbəkələri vasitəsilə daxil olan məlumatlar.

Bu müxtəliflik səbəbindən simulyasiya sistemləri üçün çoxsaylı xüsusi simulyasiya dilləri yaradılmışdır. Onların ən məşhurlarından biri Simula proqramlaşdırma dilidir.

Xarici mənbələrdən məlumat qəbul edən sistemlər daxil olan məlumatların xüsusiyyətlərini diqqətlə qiymətləndirməlidir. Kompüterlər mətn və ya binar fayllardan rəqəmləri asanlıqla oxuya bilsələr də, həmin rəqəmlərin dəqiqlik və ölçmə qətnaməsi baxımından nə qədər etibarlı olduğunu müəyyən etmək daha mürəkkəb məsələdir.

Çox vaxt bu məlumatlar “xəta intervalı” (error bars) ilə ifadə olunur. Bu interval real qiymətin yerləşə biləcəyi minimal və maksimal sapma sərhədlərini göstərir. Rəqəmsal kompüter hesablamalarında yuvarlaqlaşdırma və kəsilmə xətaları da yarandığı üçün bu xətalar bir-birinə əlavə olunur. Bu səbəbdən simulyasiya nəticələrinin etibarlılığını yoxlamaq üçün çox vaxt xəta analizi aparılır.

## Növləri
Kompüter simulyasiyalarında istifadə olunan modellər müxtəlif xüsusiyyətlərə görə təsnif edilə bilər. Bu təsnifat aşağıdakı əsas meyarları əhatə edir:

* stoxastik və ya deterministik modellər (determinist modellərin xüsusi halı kimi xaotik modellər);
* sabit vəziyyətli (steady-state) və ya dinamik modellər;
* davamlı və ya diskret modellər (diskret modellərin mühüm xüsusi növü kimi diskret hadisə simulyasiyası);
* dinamik sistem simulyasiyası (məsələn, elektrik, hidravlik və mexaniki sistemlərin modelləşdirilməsi);
* lokal və ya paylanmış hesablama əsaslı modellər.

Modelləri təsnif etməyin digər yolu onların istifadə etdiyi məlumat strukturlarını araşdırmaqdır. Vaxt addımları ilə işləyən simulyasiyalar iki əsas kateqoriyaya bölünür:

* Məlumatları müntəzəm tor (grid) strukturlarında saxlayan və yalnız yaxın qonşu elementlərə müraciət edən simulyasiyalar stencil code adlanır. Hesablama maye dinamikası (CFD) tətbiqlərinin bir çoxu bu kateqoriyaya daxildir.
* Əgər modelin qraf strukturu müntəzəm tor quruluşuna malik deyilsə, model meshfree method kateqoriyasına aid edilə bilər.

### Sabit vəziyyət modelləri
Sabit vəziyyətli simulyasiyalarda tənliklər modelləşdirilən sistemin elementləri arasındakı əlaqələri müəyyən edir və sistemin tarazlıq vəziyyətini tapmağa çalışır. Bu modellər çox vaxt fiziki sistemlərin ilkin modelləşdirilməsi üçün istifadə olunur və daha mürəkkəb dinamik simulyasiyalara keçid üçün sadə yanaşma hesab edilir.

### Dinamik simulyasiyalar
Dinamik simulyasiyalar sistemdə giriş siqnallarının dəyişməsinə cavab olaraq baş verən dəyişiklikləri təsvir etməyə çalışır.

### Stoxastik modellər
Stoxastik proses modellərində təsadüfi hadisələri təsvir etmək üçün təsadüfi ədəd generatorundan istifadə olunur.

### Diskret hadisə simulyasiyası
Diskret hadisə simulyasiyası (DES) hadisələrin zaman üzrə ardıcıllığını idarə edir. Bu tip simulyasiyalarda sistem hadisələrin baş vermə vaxtına görə sıralandığı növbə (queue) strukturu ilə işləyir. Hər bir hadisə icra olunduqdan sonra yeni hadisələr yaradıla bilər.

Bu simulyasiyaların real vaxtda işləməsi vacib olmaya bilər. Əsas məqsəd simulyasiya nəticəsində əldə olunan məlumatları analiz etmək və sistem dizaynında mümkün məntiqi səhvləri müəyyən etməkdir.

### Davamlı dinamik simulyasiya
Davamlı dinamik simulyasiyalar diferensial-alqebrik tənliklər və ya diferensial tənliklərin (adi və ya qismən diferensial tənlik) ədədi həlli əsasında qurulur. Simulyasiya proqramı müəyyən zaman intervallarında bu tənlikləri həll edir və nəticələrə uyğun olaraq sistemin vəziyyətini yeniləyir.

Bu cür simulyasiyalara aşağıdakılar daxildir:

* uçuş simulyatorları  
* tikinti və idarəetmə simulyasiya oyunları  
* kimyəvi proseslərin modelləşdirilməsi  
* elektrik dövrəsi simulyasiyaları  

Tarixi baxımdan bu tip simulyasiyalar əvvəlcə analoq kompüterlərdə həyata keçirilirdi. Daha sonra isə rəqəmsal kompüterlər analog sistemlərin davranışını emulyator vasitəsilə təqlid etməyə başladı.

### Agent əsaslı simulyasiya
Agent əsaslı model simulyasiyasında sistemin elementləri (məsələn, molekullar, hüceyrələr, ağaclar və ya istehlakçılar) birbaşa ayrı-ayrı obyektlər kimi təsvir edilir. Hər bir agentin daxili vəziyyəti və davranış qaydaları mövcuddur və bu qaydalar növbəti zaman addımında agentin necə dəyişəcəyini müəyyən edir.

### Paylanmış simulyasiya
Paylanmış hesablama modelləri bir-biri ilə əlaqəli bir neçə kompüterdən ibarət şəbəkədə işləyir. Bu simulyasiyalar çox vaxt internet vasitəsilə paylanmış hesablama infrastrukturu üzərində həyata keçirilir.

Paylanmış simulyasiyalar üçün bir sıra standartlar mövcuddur:

* Ümumi Səviyyə Simulyasiya Protokolu (Aggregate Level Simulation Protocol, ALSP)
* Paylanmış İnteraktiv Simulyasiya (Distributed Interactive Simulation, DIS)
* Yüksək Səviyyəli Memarlıq (High Level Architecture, HLA)
* Test və Təlim Təmin Edən Memarlıq (Test and Training Enabling Architecture, TENA)

## Vizualizasiya
Əvvəllər kompüter simulyasiyalarının nəticələri çox vaxt cədvəl və ya matris şəklində təqdim olunurdu. Bu formatda simulyasiya parametrlərinin dəyişməsi nəticəsində əldə olunan məlumatlar müqayisə edilirdi.

Lakin tədqiqatlar göstərmişdir ki, insanlar məlumatdakı meyilləri qrafiklər və ya hərəkətli təsvirlər vasitəsilə daha sürətli qavraya bilirlər. Bu səbəbdən müasir simulyasiya sistemlərində tez-tez kompüter qrafikası və kompüter tərəfindən yaradılan görüntülər (computer-generated imagery, CGI) animasiyalarından istifadə olunur.

Məsələn, hava proqnozu modellərində yağış və qar buludlarının hərəkəti xəritə üzərində animasiya şəklində göstərilir. Bu üsul istifadəçilərə meteoroloji hadisələri cədvəl məlumatlarından daha tez anlamağa imkan verir.

Digər bir tətbiq sahəsi KT müayinəsi (CAT scan) simulyasiyalarıdır. Bu simulyasiyalar tibbi müalicə zamanı beyin şişinin zamanla necə dəyişdiyini vizual şəkildə göstərmək üçün istifadə edilə bilər.

Müasir kompüter simulyasiyaları həmçinin çox böyük həcmli məlumatların real vaxt rejimində vizual şəkildə təqdim edilməsi üçün də istifadə olunur.

## Həmçinin bax
* Riyazi modelləşdirmə
* Hesablama elmi
* Monte Karlo metodu
* Süni intellekt
* Superkompüter

## İstinadlar

## Əlavə ədəbiyyat

* Young, Joseph and Findley, Michael. 2014. "Computational Modeling to Study Conflicts and Terrorism." Routledge Handbook of Research Methods in Military Studies edited by Soeters, Joseph; Shields, Patricia and Rietjens, Sebastiaan. pp.&nbsp;249–260. New York: Routledge,
* R. Frigg and S. Hartmann, Models in Science. Entry in the * Stanford Encyclopedia of Philosophy*.
* E. Winsberg Simulation in Science. Entry in the * Stanford Encyclopedia of Philosophy*.
* S. Hartmann, The World as a Process: Simulations in the Natural and Social Sciences, in: R. Hegselmann et al. (eds.), *Modelling and Simulation in the Social Sciences from the Philosophy of Science Point of View*, Theory and Decision Library. Dordrecht: Kluwer 1996, 77–100.
* E. Winsberg, *Science in the Age of Computer Simulation*. Chicago: University of Chicago Press, 2010.
* P. Humphreys, *Extending Ourselves: Computational Science, Empiricism, and Scientific Method*. Oxford: Oxford University Press, 2004.
* 
* Desa, W. L. H. M., Kamaruddin, S., & Nawawi, M. K. M. (2012). Modeling of Aircraft Composite Parts Using Simulation. Advanced Material Research, 591–593, 557–560.

## Xarici keçidlər
* Guide to the Computer Simulation Oral History Archive 2003-2018