Simulatsioon

link: http://staff.um.edu.mt/jskl1/simul.html

“Das ganze tschechische Volk ist eine Simulantenbande”

Jaroslav Hašek: The Good Soldier Švejk 

Mis on simulatsioon
Pidev simulatsioon
Diskreetne simulatsioon
Objektorienteeritud simulatsioon
On line simulation
Viited
 

Mis on simulatsioon

Kõige üldisemal tasandil Simulatsiooni tuleks pidada vorm Tunnetus. (Tunnetus = toiming või protsess teadmiste omandamise.) On kolm põhilist meetodit, kuidas saada informatsiooni (teadmiste) objektiivne reaalsus: Eksperiment, Analüüs, Simulatsioon. Võtame ühe praktilise näite, et näidata loodust nende kolme meetodeid. Süsteemi uurinud on bensiinijaam üks saatja. Küsimus on: “mis on keskmiselt kulunud aeg autoga bensiinijaam”. Et saada vastus, meil on kolm võimalust:

Katse: võtta stopperid ja mõõdavad aega iga auto kulutab jaama. Loota autod, lõpus summa kõik korda ja jaga neid autode arvu.

Analüüs: kasutage valem Queueing Teooria, et arvutada keskmist aega veedetud süsteemi otse. Kasutada valemit, siis on eeldada teatud queueing mudelit, mis tähendab märkimisväärset lihtsustamist reaalne süsteem, ja sa pead mõned kvantitatiivsed parameetrid (siin saabumise intensiivsus – mitmed autod saabuvad ühe ajaühiku ja teenuste osatähtsus – autode arvu kätte ühe ajaühiku).

Simulatsioon: kirjutage simulatsiooni mudel, mis genereerib juhuslikult saabunud autod ja kestus teenuseid. Samuti peab jada korralikult kogu tegevust on üks-ühele vastavust tegelikule süsteemile. Ka tähelepanek, statistiliste andmete kogumist ja hindamist tuleb programmeerida (iga auto arvutama kulutatud aega, kogunevad need ajad, count autode arv, aasta lõpus arvutada ja kuvada keskmine).

Need kolm meetodit ei saa järjestada, sest kõik need on plussid ja miinused. Neid saab võrrelda ainult seoses teatavate eriti juhul, võttes arvesse erinevaid kriteeriume. Siiski mõned põhilised faktid on ilmne:

Katse on alati kõige täpsem meetod, mida tuleks kasutada alati, kui see on teostatav. Kahjuks väga sageli katse:
– Liiga ohtlik (käitumine tuumareaktori kriitilistes olukordades, maandumine lennuk üks jet maha, jne.)
– Liiga kallis (kõigil juhtudel, et põhjustada kahju, pikk eksperimendid õpib jõudluse andmete võrku, kasutades renditud telefoniliini, jne.)
Ei ole võimalik üldse, kui süsteemi on uuritud ei ole kättesaadavad (hindamise rohkem võimalike alternatiivide projekteerimise etapis.)

Analüüs (peamiselt matemaatika) on tavaliselt põhineb tugev eeldusi, mis on harva tõsi, praktilises elus. Teine võimalik takistus analüütilised meetodid on liiga keerulised aparaadid, mida kasutatakse ja/või liiga aeganõudev arvutusvõimsus. Näide selle kohta on analüüsi Queueing Võrgustikud. Teiselt poolt, kasutades valemeid annab enamasti kiireid tulemusi ja seda on võimalik kontrollida suure hulga alternatiive lihtsalt sisestamine erinevate parameetrite väärtused valemisse(e). Eksperimentaalsed meetodid on enamasti palju rohkem aeganõudev. Teise probleemi analüüs on olemas vajalikud parameetrid. Nende täpne mõõtmine ei ole ka tingimata otstarbekas või see on võimatu projekteerimise etapis. Kasutades hinnangulised andmed või andmed pärinevad muud sarnased süsteemid vähendab usaldusväärsust tulemusi.

Simulatsioon on ka eksperimentaalne meetod. Selle asemel, et katsetada reaalse süsteemi katseid on läbi simulatsiooni mudel (mille disain on seega oluline punkt simulatsiooni uuringud). Ka simulatsioon on palju puudusi. Siin on kõige olulisemad:
– liiga nõudlik luua simulatsiooni mudelid. Programmeerimine simulatsiooni mudelid üldiselt keeltes (näiteks Pascal) on liiga raske. Seal on tõhusad, simulatsioon keelt, kuid nende mastering esindab suur esialgne investeering ei ole alati põhjendatud. Seal on simulatsiooni vahendid põhinevad tavaliselt mõned graafilist tehnikat, et lihtsustada või isegi automatiseerida loomise simulatsiooni mudelid teatud liiki süsteeme. Kui soovite rohkem teada üks selline vahend, jätkake lehel Petri Võrgud.
– Piiratud teadmiste süsteemi on simuleeritud. Kõigepealt mõned kvantitatiivsed parameetrid peavad olema teada. Eeltoodud näide on vaja genereerida juhuslik vaheaegadel saabumise ja juhuslikult teenus korda. Siin simulatsioon on palju paindlikum kui analüüs – simulatsioon keele tugi põlvkonna suvalisi numbreid praktiliselt iga jaotus. Ülaltoodud näites on nii juhuslikke arve võib olla aluseks mis tahes (nt katseliselt saadud) väljamaksed. Siiski iga jaotuse vajadustele kas mitu parameetrid (kui see on teoreetiline) või otse Turustamise Funktsioon (kui jaotus on saadud mõõtmise teel). Seal saab ka asju süsteem (tavaliselt projekteerimise staadiumis), et ei ole võimalik kvantifitseerida ning sageli on vaja aktsepteerida seda, et seal võiks olla aspekte, me ei tea üldse.
– Liiga aeganõudev arvutusvõimsus. Näiteks on analüüsi suurte süsteemide paljud komponendid töötavad paralleelselt. Kuna rakenduse tõelist parallelism ei ole veel levinud, et sellised süsteemid on simuleeritud programm, mida teostab üks protsessor. Paralleelsed tegevused on siis tehtud ühel ajal (isegi kui kasutaja on mulje paralleelsus ja projekteerimise simulatsiooni mudel “arvab paralleelselt”). Tulemuseks on asjaolu, et simulatsioon oleks palju aeglasem kui reaalne aeg (1 teise mudeli aega võtab 10 minutit PROTSESSORI aeg). See muidugi keelab kohaldamise simulatsioonid reaalajas kontroll.

Üldine rusikareegel võiks olla nagu, et:
“Kui eksperiment on võimalik, kasuta seda. See on alati parim viis, sest kõiki aspekte arvesse võttes. Isegi siis, kui muud meetodid olid, mida kasutatakse projekteerimise etapis, eksperiment võib olla lõplik hindamise süsteemi. Kui katset ei ole võimalik, püüdke leida sobiv analüüsimeetod. Kui see ei ole kättesaadav, kasuta simulatsioon.”
Simulatsioon ei ole mitte ainult viimase võimalusena, kuna ta näeb välja nagu eespool esitatud reegli. Simulatsioon aitab väga palju, et mõista süsteemi on analüüsitud mitte ainult, edastades vastused küsimustele, mis algselt anti. Väga sageli luua simulatsiooni mudel on esimene kord, kus teatud asjad on arvesse võetud. Kirjeldus simuleeritud süsteemis võib (ja sageli see ei) ilmneb vigu või ebatäpsusi süsteemi disain. Nii simulatsioon aitab väga palju, mida vältida tulevikus väga kallis ajakohastamine valmis süsteem.

Pidev simulatsioon

Pidev simulatsiooni keeles välja töötatud viiekümnendate aastate lõpus nagu simulaatorid analoogarvutid. Simulatsiooni analoogarvutid põhineb luua analoog-elektrooniline süsteem, mille käitumist on kirjeldatud sama matemaatilise mudeli (set diferentsiaal), sest süsteem on selgitamisel. Elektrooniline süsteem on loodud sidudes standard plokid põhineb peamiselt operatsioonivõimendid muudetud tegutseda koostajad, lisad ja muud funktsionaalsed üksused. Siis, kui kasutaja teeb eksperimente see elektrooniline süsteem, kohaldades sobivaid sisendeid ja salvestamine pinge teatud väljund punkti (ostsilloskoop, plotter). Muutuv pinge kujutab endast kellaaja funktsioon, mis on sama funktsioon, mis kirjeldab muutusi originaal süsteem, mille füüsiline olemus võivad olla täiesti erinevad (mehaaniline nihe, temperatuur jne.). Peamine probleem analoogarvutid on analoog rakendamine teatud toiminguid nagu korrutamine põlvkonna mõned funktsioonid, põlvkonna viivitusi ja teised. Digitaalarvutid täita kõiki neid funktsioone väga lihtsalt ja täna pidev simulatsioon toimub ainult neile. Siiski on üks operatsioon, kus analoog arvutid on parem – integratsioon. Digitaalarvutid kasutada numbrilist integreerimist, mis on üldiselt aeglasem ja vähem täpsem, võrreldes integratsiooni analoog integraator. Mõningaid spetsiaalseid rakendusi, mis põhinevad kiire reageerimine kasutada seetõttu nn hübriidarvutid, mis sisaldavad analoog-ja digitaalne osad on ühendatud A/D ja D/A muundurid. Digitaalne osa ei kõike, välja arvatud integratsiooni. See arvutab sisendid koostajad, mis on seejärel konverteeritakse D/A muundurid, et analoog signaale inputted, et analoog koostajad. Nende väljundid on töödeldud vastupidi. Digitaalne osa ka kontrollib sidumise analoog osa, mis võib seetõttu muutuda arvutusvõimsus.

Klassifikatsioon pidev simulatsioon keeles

Plokk suunatud simulatsiooni keeled põhinevad meetodid analoogarvutid. Süsteem peab olema väljendatud plokkskeem, mis määratleb vastastikuse sidumise kohta funktsionaalsete üksuste ja nende kvantitatiivseid parameetreid. “Programmeerimine” tähendab sisenemist sidumise plokid ja nende kirjeldus. Siis kui kasutaja lisab, avaldusi ja/või direktiivide, et kontrollida simulatsiooni. Kui süsteem on kirjeldatud kui võrrandi, tuleb need ümber ploki skeemi. Selle muutmine on lihtne ja lihtne protsess. Tüüpiline plokid saadaval kõige pidev blokeerida orienteeritud keeled on koostajad piirajaid, viivitusi, kutsumine, hüstereesi, püsiväärtused, lisad, omanikele, kasum (koefitsient) ja teised.

Väljend suunatud pidev keeled põhinevad kirjalikult avaldisi (valemeid), mis esindavad matemaatiline mudel. Nii et süsteemi simuleerida, peab olema väljendatud kogum valemeid. Siis kui kasutaja lisab, avaldusi ja/või direktiivide, et kontrollida simulatsiooni. Mõned keeled võimaldavad nii plokk-ja sõnavabaduse põhineb viise süsteemi määratlusest. Simulatsioon kontrolli – valik: integratsiooni meetodit (sest mõned keeled pakkuda ka rohkem), integratsiooni samm, muutujad (väljundid plokid), mida tuleks järgida, intervalle, andmete kogumise eest, trükkimine ja/või joonestamist, tagi väljundid (mis võib ka teha automaatselt), kestus simulatsioon töötab, korduste arv ja viis, kuidas teatud väärtused on muutunud neile, jne.

Lae fail models1.zip, mis sisaldab mitu pidev simulatsiooni mudelid kirjutatud Turbo Pascal keeles. Mudelid on loodud kasutades lihtsat pidevat simulatsiooni keskkonda, mis põhineb Väljend orienteeritud lähenemisviisi ning on võimalik lihtsalt muuta, et mudelit, teiste süsteemide poolt kirjeldatud diferentsiaal.

Diskreetne simulatsioon

Diskreetne simulatsiooni käsitleb süsteeme, mille dünaamikat võib pidada tõttu (tase mõte) jada sündmusi diskreetne aeg punktid. Oluline punkt eraldi simulatsiooni keel on viis, kuidas ta kontrollib õige järjestuse tegevuste mudel. See on ka viis, kuidas peab kasutaja “vaata maailma”, kui kasutades keel ja aluse klassifikatsioon diskreetne simulatsiooni keeles.

Klassifikatsioon diskreetne simulatsiooni keeles

Skeem orienteeritud keeled on esindatud keeles, GPSS(General Purpose Simulation System) (Üldine Eesmärk Simulatsiooni Süsteem), mis on olemas mitmeid versioone paljudes arvutites. Kasutaja peab silmas dünaamika süsteem nagu vool nn Tehingud läbi ploki skeemi. Tehingud on loodud, järgige tee läbi võrgu plokid, ja hävitatakse lahkumisel. Plokkide tehingud võivad hilineda, töödelda ja edasi plokki. Plokid on programmis esindatud avaldused, mis täidavad Tegevus mudel.

Tegevus orienteeritud keeled ei ole põhineb konkreetsetel ajakava tulevaste tegevuste. Iga tegevuse kasutaja kirjeldab tingimus, mille kohaselt, kui tegevus võib toimuda (mis hõlmab ka sõiduplaani, kui tingimus on jõuda teatud aja jooksul). Algoritm simulatsiooni kontrolli korduvalt kaupa aega ja katsetingimused kõik tegevused. Kahjuks see lähenemine on ilmne – see on vajalik, et hinnata kõik tingimused iga samm, mis võib olla väga aeganõudev. Teiselt poolt see on sisuliselt väga lihtne ja algoritmi saab kergesti rakendada üldise kõrge taseme keelte (seal on simulatsiooni keelte põhjal seda lähenemist, kuid ei ole laialdaselt kasutusel). Laadige fail alla models2.zip, mis sisaldab kaks mudelit lihtne järjekorrad süsteemi (Turbo Pascal), et tõendada tegevus orienteeritud lähenemisviisi. Need mudelid on kaasas mitu üksust, et rakendada toimingute kahel viisil seotud nimekirjades, mis on hiljem kasutada, et rakendada korstnad ja järjekorrad.

Event orienteeritud keeled põhinevad otseselt planeerimine ja tühistamine tuleviku sündmustest. Lähenemine on väga üldine. Kasutaja peab silmas dünaamika süsteemi simuleeritud jada suhteliselt sõltumatud sündmused. Igal juhul võib ajakava ja/või tühistada teise sündmused. Süsteemi korraliste peab arvestust ning planeeritud üritused. Sellepärast, et iga sündmus on esindatud nn Korral teate, mis sisaldab aega, sündmuse tüüp, ja muid kasutajaandmeid. Juhul teated hoitakse nn Kalender, kus sündmus teated on tellitud ettenähtud ajal. Pärast Sündmuse rutiini, süsteem eemaldab korral teate madalaima ajal kalendrist, uuendused mudeli ajal oma aega, ja alustab vastava rutiinist. Seda korratakse, kuni kalender saab tühjaks või programm lõpetab, sest muul põhjusel. Planeerimine tähendab sisestamine juhul teated kalendriaastal kavandatud aega, tühistades eemaldab need. Lähenemisviisi, mis põhineb selgesõnaline väljendamine sündmuste nimetatakse Discrete Event Simuleerimiseks, mis on mõnikord generaliseerunud diskreetne simulatsioon kui sellist. Tüüpiline esindaja käesoleva rühma keeled keel on SIMSCRIPT (, kuid selle versioon II.5 toetab ka tootmisalane simulatsioon).

Protsess orienteeritud keeled aluseks on asjaolu, et sündmused ei ole sõltumatud. Sündmus on tavaliselt tagajärg muud eelnenud sündmusi. Teiste sõnadega, on sageli võimalik määratleda järjestusi sündmuste kohta, mida võib vaadelda kui üksustele simulatsiooni mudel kõrgemal hierarhia. Sündmuste jada nimetatakse Protsess. Erinevalt sündmuste protsess on mõõde aega. Protsess põhineb abstraktsed süsteemid on väga lähedal tegelikkusele, mis on alati tehtud erinevaid esemeid, mis on olemas ja tegutsevad paralleelselt sega üksteist. Protsessi viis vaatamise süsteemi dünaamika on seega väga loomulik. Enamasti protsessi mudeleid, tegevuse, reaalse objekti. Arvatakse, et protsess orienteeritud diskreetne simulatsioon on parim viis, kuidas luua diskreetne simulatsiooni mudelid. Tüüpiline selle rühma esindajad keeles on MODSIM, SIMSCRIPT II.5 ja süsteemi klassi SIMULATSIOONI Simula keel.

Objektorienteeritud simulatsioon

Objektorienteeritud Simulatsioon(Object Oriented Simulation) (OOS) võib pidada erijuht, objektorienteeritud Programmeerimise (Object Oriented Programming)(OOP). Mõned põhimõtted OOP meeldib olemasolu erineva arvu eksemplare, segavad objektid on standard kasutada simulatsiooni keskkonnas pikka aega, sageli kasutatakse ka teisi termineid. Kui Simula keel (mida nimetatakse Simula 67) on esimene tõeline objektorienteeritud keel. On rohkem kui 30 aastat vana, see on veel kõige (ja kõiki olulisi) mehhanismid ja põhimõtted OOP. Mõned asjad klassid, pärimine, virtuaalsed meetodid, jne. on määratletud Simula kaua aega, enne kui nad olid taasavastas poolt OOP buum viimase aasta jooksul. Lisateavet selle kohta, Simula külastage lehekülge ASU (Association of Simula Users)(Association of Simula Kasutajad). Samuti saate sirvida dokument Sissejuhatus OOP aastal Simula, mis põhineb rääkida esitleti Malta Ülikooli aastapäeva Simula-i 30. aastapäeva. MODSIM on teine objekt orienteeritud simulatsiooni keel.

Need on kõige üldtunnustatud jooned OOS:

1. Algoritm või süsteemi dünaamika on väljendatud objektid (näitlejad), mis eksisteerivad paralleelselt ja omavahel suhelda. Iga objekt on esindatud:
– parameetrid (mis võib olla määratud tegelike väärtuste edastamisel objektid)
– atribuudid (nimetatakse ka sisemist omadust või väärtust atribuudid)
– meetodi (nimetatakse ka meetmete või menetluse atribuudid)
– elu, mis kujutab endast tegevus algas pärast objekti loomise.
Objektid saavad suhelda mitmel viisil:
– otsene juurdepääs parameetrid ja omadused
– vastastikuse kutse meetodid
– side-ja sünkroonimine objektide elu.
Lihtsalt öeldes: Object = Andmed + Protseduurid, mida nimetatakse Kapseldus. Väga sageli objekti andmed või osa sellest on peidetud ja väärtusi saab avada ja muuta ainult läbi (hästi määratletud meetodid). See kontseptsioon on nn Info peitmine.

2. Sarnaseid objekte (näitlejad) on koondatud nn klassi nimetatakse ka prototüübid. Klass kirjeldab objekte, mis on samad parameetrid, omadused, meetodid ja elu. A-klassi deklaratsiooni tõlgendada nii, et see muster. On võimalik luua suvalise arvu üksikuid objekte (näitlejad) nimega objekti juhtudel.. Juhtumid võivad olla erinevad väärtused nende parameetrite ja/või omadust. See on vajalik, et teha selge vahe, klassi kui sellist ja objekti juhtudel koguda, kasutades klassi deklaratsiooni. Klassi võib ka tõlgendada kui teadmised teatud tüüpi objektid. Need teadmised on esindatud andmete osas ja toiminguid, mida saab teha andmete kohta. See on sarnane abstraktsed andmetüübid, kuid klasse on palju rikkam. Abstraktne andmetüüp võib selles kontekstis pidada degenereerunud juhul, klassi, et ei anna mingeid kasutada pärandist.

3. Objektid saab liigitada hierarhiliselt nn pärandi. Väga sageli mõiste alamklass on kehtestatud. A alamklass Y a class X pärib kõik parameetrid, atribuudid ja meetodid klassi X. Oma deklaratsiooni võib lisada mis tahes arvu täiendavad parameetrid, atribuudid ja meetodid. A alamklass võib lisada ka mõned aktiivsuse elu vanema klassi. A alamklass saab kasutada vanema klassi muude alaliikide, jne. Mõned OOP keeltes (ei Simula) võimaldada nn mitu pärandi. Sellisel juhul alamklassi saab pärida rohkem kui üks vanematest klassidest. A alamklass võib tõlgendada nii, et üksikasjalikuma teadmiste kui üks määratletud vanema klassi. Nii vanema klassi esindab üldisi teadmisi, et võib veelgi spetsialiseerunud poolt deklaratsioonide alaliikide suvaline arv samme. Pärandi õigusakte teatud viisil vastu tugevat kirjutades keeltes nagu Pascal. Tavaliselt on võimalik kuulutada viide muutujad, mis võivad viidata näiteks teatud klassi ja juhtumeid kogu selle alaliikide. See võib olla soovitav, et teatud meetodeid, siis käituvad erineval viisil vastavalt valitud objekti näiteks on viidatud, et võib muuta dünaamiliselt ajal programmi täitmine. See mõiste nimega polymorphism toetab mehhanismi nimetatakse hilinenud siduv ja meetodeid, kaasatud on nn virtuaalsed meetodid, mis võib muuta igal tasemel hierarhiat.

4. Paralleelselt olemasolu objekti juhtudel peab rajatiste koostöö toetamine ja sünkroonimine nende elu. Objekti elu ei ole tingimata aja mõõde, aga juhul, kui OOS see on. Simula objektid, nagu näiteks saab suhelda ilma aja mõistet. Kui Simula süsteemi SIMULATSIOONI klass määratletakse klassi “Protsess”, kelle elu on olemas aeg. On vahendid protsessid suhelda ja sünkroonida oma elu

On line simulatsioon

Interneti-koos Java ja JavaScript pakkuda uskumatu võimalused probleemi lahendamisel. Selle asemel, aeganõudev allalaadimine ja paigaldamine tarkvara pakette, on võimalik avada otse erinevate padrunvõtmete, eriti probleeme, mis ei ole sage ja see ei vaja aeganõudvat arvutusvõimsus. Nagu mu esimene samm selles suunas, ma kirjutasin lihtne simulatsiooni mudelid JavaScript, et seda lahendada ja simuleerida ühe järjekorra süsteemide ja queueing võrgustikud. Procede On-Line Solvers & Simulaatorid page proovida simulatsiooni nüüd.

Viited

See lehekülg sisaldab väljavõte tekstist:
Sklenar, J.: Simulatsioon (University of Malta, 2000), mis on kasutatavad mitmete Operatsioonide Uuringud, mis on seotud kursused õpetas Malta Ülikool.
Samuti võite te leida palju asju Internetis, sest kõik otsingumootorid tagasi paljude kirjete kohta, “simulatsioon”. Te võite alustada järgmistest kohtadest, mis sisaldavad muud lingid, viited, teavet, asutuste kohta, konverentsid jne.

Leave a Reply

Your email address will not be published. Required fields are marked *