Simuliranje

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

“Cijeli je Češki narod simulirajuća banda”

Jaroslav Hašek: Dobri vojnik Svejk

Što je simulacija
Kontinuirana simulacija
Diskretna simulacija
Objektno orijentirana simulacija
On-line simulacija
Reference


Što je simulacija

Na najopćenitijoj razini, simulaciju treba smatrati oblikom spoznaje. (Spoznaja = akcija ili postupak stjecanja znanja.) Postoje tri osnovne metode kako doći do informacija (znanja) o objektivnoj stvarnosti: eksperiment, analiza, simulacija. Uzmimo jedan praktični primjer da dokažemo prirodu ove tri metode. Sustav koji se istražuje je benzinska pumpa s jednim polaznikom. Pitanje je “koliko je prosječno vrijeme automobila provedeno na benzinskoj stanici”. Da bismo dobili odgovor, imamo tri mogućnosti:

Eksperimentirajte: uzmite satove i izmjerite vrijeme koje svaki automobil provede u postaji. Prebrojite automobile, na kraju sve to vrijeme i podijelite s brojem automobila.

Analiza: koristite formulu Teorije čekanja da biste izračunali prosječno vrijeme provedeno u sustavu izravno. Za upotrebu formule morat ćete pretpostaviti određeni model čekanja koji znači znatno pojednostavljenje stvarnog sustava i trebat će vam neki kvantitativni parametri (ovdje intenzitet dolaska – broj automobila koji stižu po jedinici vremena i intenzitet usluge – broj automobila opsluženih po vremenu jedinica).

Simulacija: napišite simulacijski model koji generira nasumično dolaske automobila i trajanje usluga. Također mora pravilno slijediti sve aktivnosti kako bi odgovarao jedan na jedan sa stvarnim sustavom. Također se moraju programirati promatranje, prikupljanje statističkih podataka i procjena (za svaki automobil izračunati utrošeno vrijeme, akumulirati ih, računati broj automobila, na kraju izračunati i prikazati prosjek).

Ove tri metode se ne mogu rangirati, jer sve one imaju prednosti i nedostatke. Mogu se usporediti samo u kontekstu određenog određenog slučaja uzimajući u obzir različite kriterije. Ipak su neke osnovne činjenice očite:

Eksperiment je uvijek najpreciznija metoda, koju treba primjenjivati kad god je to izvedivo. Nažalost, vrlo je često eksperiment:
– Preopasno (ponašanje nuklearnog reaktora u kritičnim situacijama, slijetanje u avion s jednim mlazom i sl.)
– Preskupo (svi slučajevi koji uzrokuju štetu, dugi eksperimenti proučavanja propusnosti podatkovne mreže koristeći unajmljene telefonske linije itd.)
– Uopće nije moguće ako sustav koji se istražuje nije dostupan (procjena mogućih alternativa u fazi dizajna.)

Analiza (uglavnom matematička) obično se temelji na snažnim pretpostavkama koje su rijetko istinite u praktičnom životu. Drugi mogući nedostatak analitičkih metoda je previše kompliciran aparat koji se koristi i/ili računanje previše vremena. Primjer za to je analiza mreža u redu za čekanje. S druge strane, korištenje formula daje uglavnom brze rezultate i moguće je provjeriti veliki broj alternativa jednostavnim umetanjem različitih vrijednosti parametara u formulu. Eksperimentalne metode uglavnom zahtijevaju mnogo vremena. Drugi problem analize je dostupnost potrebnih parametara. Njihovo točno mjerenje također nije nužno izvedivo ili je nemoguće u fazi projektiranja. Korištenje procijenjenih podataka ili podataka preuzetih iz drugih sličnih sustava smanjuje vjerodostojnost rezultata.

Simulacija je također eksperimentalna metoda. Umjesto eksperimentiranja sa stvarnim sustavom, eksperimenti se izvode s simulacijskim modelom (čiji je dizajn stoga ključna točka simulacijskih studija). Također simulacija ima mnogo nedostataka. Evo najvažnijih:

– Previše zahtjevna izrada simulacijskih modela. Programiranje simulacijskih modela u općim jezicima (poput Pascal) je preteško. Postoje učinkoviti jezici za simulaciju, ali njihovo savladavanje predstavlja veliko početno ulaganje koje nije uvijek opravdano. Postoje simulacijski alati koji se obično temelje na nekoj grafičkoj tehnici koja pojednostavljuje ili čak automatizira stvaranje simulacijskih modela određenih klasa sustava. Ako želite saznati više o jednom takvom alatu, prijeđite na stranicu Petri mreže.

– Ograničena znanja o sustavu koji se simulira. Prije svega moraju se znati određeni kvantitativni parametri. U gornjem primjeru potrebno je generirati slučajne intervale između dolazaka i slučajnih servisnih vremena. Ovdje je simulacija mnogo fleksibilnija od analize – simulacijski jezici podržavaju generiranje slučajnih brojeva s praktički bilo kojom raspodjelom. U gornjem primjeru obje slučajne brojke mogu se temeljiti na bilo kojoj (npr. Eksperimentalno dobivenoj) distribuciji. Ipak, svaka distribucija treba ili nekoliko parametara (ako je teoretski) ili izravno funkciju raspodjele (ako se raspodjela dobiva mjerenjem). U sustavu mogu biti i stvari (obično u fazi dizajna) kojih se ne može kvantificirati i često je potrebno prihvatiti činjenicu da mogu postojati aspekti kojih uopće nismo svjesni.

– Izračun previše vremena. Primjer je analiza sustava velikih razmjera s mnogim komponentama koje rade paralelno. Kako primjena stvarnog paralelizma još uvijek nije česta, takvi sustavi simuliraju program koji izvodi jedan procesor. Paralelne aktivnosti se izvode jedna za drugom (čak i ako korisnik ima dojam paralelizma i tijekom dizajna simulacijskog modela „razmišlja paralelno“). Rezultat toga je činjenica da bi simulacija mogla biti puno sporija od stvarnog vremena (1 sekunda vremena modela traje 10 minuta vremena CPU). To naravno onemogućuje primjenu simulacije u kontroli u stvarnom vremenu.

Opće pravilo može biti kao što je to:

“Ako je eksperiment izvediv, koristite ga. Uvijek je najbolja metoda jer se uzimaju u obzir svi aspekti. Čak i ako su korištene druge metode tijekom faze dizajna, eksperiment može poslužiti kao konačna procjena sustava. Ako je eksperiment nije izvedivo, pokušajte pronaći odgovarajuću analitičku metodu. Ako ona nije dostupna, koristite simulaciju.”
Simulacija nije samo posljednje sredstvo kao što izgleda u gornjem pravilu. Simulacija može jako puno pridonijeti razumijevanju sustava koji se analizira ne samo pružanjem odgovora na prvobitno postavljena pitanja. Vrlo često je stvaranje simulacijskog modela prva prilika kada se određene stvari uzimaju u obzir. Specifikacije simuliranog sustava mogu (a često to čine) otkriti pogreške ili nejasnoće u dizajnu sustava. Tako da simulacija može jako pomoći tako da izbjegnemo buduće i skupo ažuriranje spremnog sustava.


Kontinuirana simulacija

Kontinuirani simulacijski jezici razvijeni su u kasnim pedesetima kao simulator analognih računala. Simulacija na analognim računalima temelji se na stvaranju analognog elektroničkog sustava čije ponašanje opisuje isti matematički model (skup diferencijalnih jednadžbi) kao i sustav koji se istražuje. Elektronski sustav stvoren je međusobnim povezivanjem standardnih blokova koji se uglavnom temelje na operativnim pojačalima modificiranim da djeluju kao integratori, dodaci i ostale funkcionalne jedinice. Tada korisnik provodi eksperimente s ovim elektroničkim sustavom primjenom odgovarajućih ulaza i bilježenje napona u određenim izlaznim točkama (osciloskop, crtač). Promjenjivi napon predstavlja vremensku funkciju, tj. Funkciju koja opisuje promjene u izvornom sustavu čija fizička priroda može biti potpuno drugačija (mehanički pomak, temperatura itd.). Glavni problem analognih računala je analogna provedba određenih operacija poput množenja, generiranja nekih funkcija, generiranja kašnjenja i drugih. Digitalna računala sve ove funkcije obavljaju vrlo lako i danas se kontinuirana simulacija vrši samo na njima. Ipak postoji jedna operacija u kojoj su analogna računala bolja – integracija. Digitalna računala koriste numeričku integraciju koja je općenito sporija i manje točna u usporedbi s integracijom analognog integratora. Stoga se neke posebne aplikacije temeljene na brzom odzivu koriste takozvana hibridna računala koja sadrže analogne i digitalne dijelove povezane A/D i D/A pretvaračima. Digitalni dio čini sve osim integracije. Izračunava ulaze integratora koji se zatim pretvaraju D/A pretvaračima u analogne signale unesene u analogne integratore. Njihovi se rezultati tretiraju na suprotan način. Digitalni dio također kontrolira međusobno povezivanje analognog dijela, što se na taj način može promijeniti tijekom računanja.

Klasifikacija jezika kontinuirane simulacije

Blok orijentirana simulacija jezici temelje se na metodologiji analognih računala. Sustav mora biti izražena kao blok dijagrama koji definira međusobnu funkcionalnih jedinica i njihovih kvantitativnih parametara. „Programiranje” znači ulazak u povezivanje blokova i njihov opis. Tada korisnik dodaje izjave i/ili smjernice koje kontroliraju simulaciju. Ako je sustav opisan kao skup jednadžbi, moraju se pretvoriti u blok dijagramu. Ova pretvorba je jednostavan jednostavan proces. Tipična blokovi dostupni u većini kontinuiranim blok orijentiranih jezika su integratora, graničnici, kašnjenja, multiplikatori, histereza, stalne vrijednosti, riđovke, držači, dobitak (koeficijent) i druge.

Izraz orijentirani kontinuirano jezici temelje se na pisanje izraza (jednadžbe) koje predstavljaju matematički model. Dakle, sustav simulirati mora biti izražena skupom jednadžbi. Tada korisnik dodaje izjave i/ili smjernice koje kontroliraju simulaciju. Neki jezici omogućuju oba bloka i izraz načine definiranja sustava temelji. Kontrola Simulacija znači izbor: metode integracije (jer neki jezici ponuditi više), korak integracije, varijable (neposredni blokova) koji treba poštivati, intervali za prikupljanje podataka za ispis i/ili crtanje, skaliranje izlaza (koji mogu se također obavlja automatski), trajanje simulacije radi, broj ponavljanja i način određene vrijednosti se mijenjaju u njima, itd

Preuzmite datoteku models1.zip koji sadrži nekoliko kontinuiranih simulacijskih modela napisane u turbo Pascal jezik. Modeli su izrađeni pomoću jednostavnog kontinuirane simulacije okoliša temelji se na Izraz orijentirani pristup i može se lako modificirati model bilo koje druge sustave opisani pomoću diferencijalnih jednadžbi.


Diskretna simulacija

Diskretna simulacija bavi se sustavima čija se dinamika može (zbog razine apstrakcije) smatrati redoslijedom događaja u diskretnim vremenskim točkama. Ključna točka diskretnog simulacijskog jezika je način na koji on kontrolira pravilno sekvenciranje aktivnosti u modelu. Ovo je i način na koji korisnik mora „pogledati svijet“ kada koristi jezik i osnovu za klasifikaciju diskretnih simulacijskih jezika.

Klasifikacija diskretnih simulacijskih jezika

Dijagram toka orijentirana jezici zastupljeni su jezične GPS-ovi (Simulacijski sustav opće namjene), koji postoji u mnogim verzijama na raznim računalima. Korisnik mora vidjeti dinamiku sustava kao protok tzv transakcije kroz blok dijagrama. Transakcije se generiraju, slijediti put kroz mrežu blokova, te su uništene na izlazu. U blokovima transakcije mogu biti odgođen, obrađivati i prošao s drugim blokovima. Blokovi su u programu zastupa izjavama koje obavljaju aktivnosti modela.

Aktivnost orijentirani jezici se ne temelje na izričitu raspoređivanje budućih aktivnosti. Za svaku aktivnost korisnik opisuje stanje u kojem se aktivnost može održati (koji također pokriva raspoređivanje ako je uvjet postizanja određenog vremena). Algoritam za kontrolu simulacije puta povećava vrijeme i ispitivanja uvjeta za sve aktivnosti. Nedostatak ovog pristupa je očita – potrebno je procijeniti sve uvjete u svakom koraku, to može biti vrlo dugotrajan. S druge strane, to je konceptualno vrlo jednostavan i algoritam se može lako provesti u općim visoke razine jezika (postoje simulacijski jezici na temelju ovog pristupa, ali ne često koristi). Preuzmite datoteku models2.zip koji sadrži dva modela jednostavnog sustava redova čekanja (u Turbo Pascalu) koji pokazuju pristup aktivnosti orijentirane. Ovi modeli su u pratnji nekoliko jedinica koje provode operacije na dva puta povezani popisi, koji su kasnije korišteni za provedbu hrpe i redove.

Poslovne orijentirani jezici temelji se na izravnoj raspoređivanje i otkazivanje budućih događaja. Pristup je vrlo općenito. Korisnik mora vidjeti dinamiku sustava simulirani kao slijed relativno nezavisnih događaja. Svaki događaj može zakazati i/ili otkazati drugi događaji. Rutina sustav mora voditi evidenciju o rasporedu događanja. Zato svaki događaj predstavlja obavijest o tzv događaj, koji sadrži vrijeme, vrsti događaja i drugih korisničkih podataka. obavijesti o događajima se čuvaju u tzv kalendar, gdje su obavijesti o događajima kojima je to odredio zakazano vrijeme. Nakon završetka jednog događaja rutinu, sustav uklanja obavijest o događaju s najnižom vremena iz kalendara, ažurira i vrijeme modela po vremenu, i počinje odgovarajuću rutinu. To se ponavlja sve dok se kalendar isprazni ili program prestaje zbog drugog razloga. Raspoređivanje sredstava umetanje obavijesti o događajima u kalendaru prema rasporedu vremena, poništavanje ih uklanja. Pristup se temelji na eksplicitno izražavanje događaja naziva Diskretna događaja simulacija, koja se ponekad generalizirati na diskretne simulacije kao takve. Tipičan predstavnik ove skupine jezika je jezik SIMSCRIPT (ali njegova verzija II.5 podržava i proces orijentiran simulacije).

Procesni orijentirani jezici temelje se na činjenici da događaji nisu neovisni. Događaj je obično posljedica drugih prijašnjih događaja. Drugim riječima često je moguće definirati sekvence događaja koji se mogu vidjeti kao entiteta u simulaciji modela na višoj razini hijerarhije. Slijed događaja naziva Postupak, za razliku od događaja procesu ima dimenziju vremena. Postupak koji se temelji apstraktne sustavi su vrlo blizu stvarnosti, koja je uvijek napravljen od raznih predmeta koji postoje i djeluju paralelno ometali jedni s drugima. Proces način gledanja dinamiku sustava je stoga vrlo prirodno. Uglavnom modeli procesa djelatnost od stvarnog objekta. Smatra se, da je proces orijentiran diskretna simulacija je najbolji način kako napraviti diskretne simulacijskih modela. Tipični predstavnici ove skupine jezika su MODSIM, SIMSCRIPT II.5, a sustav klasa simulacija Simula jeziku.


Objektno orijentirana simulacija

Objektno orijentirana simulacija (OOS) može se smatrati posebnim slučajem objektno orijentiranog programiranja (OOP). Neki principi OOP-a, poput postojanja različitog broja slučajeva ometajućih predmeta, već su dulje vrijeme u standardnoj uporabi u simulacijskom okruženju, često koristeći drugu terminologiju. Jezik simulacije (nekada se zvao Simula 67) prvi je pravi objektno orijentirani jezik. S više od 30 godina i dalje ima većinu (i sve važne) mehanizme i načela OOP-a. Neke stvari poput klasa, nasljeđivanja, virtualnih metoda itd. Definirane su u Simulau davno prije nego što ih je OOP boom ponovno otkrio posljednjih godina. Da biste saznali više o Simula, posjetite stranicu ASU (Udruga Simula korisnika). Također možete pregledavati dokument Uvod u oop u Simula temelji na razgovor predstavljena na Sveučilištu u Malti u povodu 30. godišnjice Simula je. MODSIM je još jedan objekt orijentiran simulacija jezik.

Ovo su najčešće prihvaćene značajke OOS:

1. Algoritam ili sustav dinamika se izražava u smislu objekata (glu) koji postoje u paralelno i koje su u interakciji s drugom. Svaki objekt je predstavljen:
– parametre (koji se može dodijeliti i stvarne vrijednosti prilikom generiranja predmeta)
– osobine (tzv unutarnje atribute ili vrijednosti atributa)
– metode (također se naziva radnji ili postupak dodjeljuje)
– život, koji predstavlja aktivnost započela na objekt stvaranje.
Predmeti mogu komunicirati na ovaj način:
– izravan pristup parametrima i atribute
– uzajamno poziv metode
– komunikaciju i sinkronizaciju objekata života.
Jednostavno govoreći: Object = podataka + postupke koji se zove Ovijanje, Vrlo često objekta podaci ili dio toga je skriven i vrijednosti može se pristupiti i mijenjati samo kroz (dobro definirane) metoda. Ovaj koncept se zove informacije skriva.

2. Slični objekti (glumci) su grupirani u tzv klase također zove prototipova. Klasa opisuje predmete koji imaju iste parametre, atribute, metode i živote. Klasa izjava se tumači kao uzorak. Moguće je stvoriti neograničen broj pojedinačnih objekata (glumci) nazivaju objekt instance, Slučajevi se mogu razlikovati u vrijednosti njihovih parametara i/ili atributa. Potrebno je napraviti jasnu razliku između klase kao takve i objekata slučajevima generiranih pomoću klase izjavu. Klasa se također može tumačiti kao znanje o određenoj vrsti predmeta. Takvo znanje predstavlja dio podataka i operacija koje se mogu obavljati na podacima. To je slično apstraktnih tipova podataka, ali klase su mnogo bogatiji. Apstraktni tip podataka može biti u tom kontekstu smatra degenerirane slučaju klase koja čini nikakve koristi od nasljedstva.

3. Objekti se mogu klasificirati hijerarhijski po tzv baštinu. Vrlo često termin podrazred uvodi. Potklasa Y klase X nasljeđuje sve parametre, svojstva i metode iz razreda X. očitovanju može dodati bilo koji broj dodatnih parametara, atribute i metode. Potklasa može također dodati neke aktivnosti u život matične klase. Potklasa može se koristiti kao roditelj klasa drugih podrazreda, itd Neki OOP jezika (ne Simula) omogućuju tzv višestruko nasljeđivanje, U tom slučaju podklasa može naslijediti od više od jednog roditelja klase. Potklasa može se tumačiti kao detaljnijeg znanja od onog definiranog matičnog klase. Dakle, roditelj klasa predstavlja opće znanje, koje se može dodatno specijaliziran je deklaracijama podrazreda u bilo kojem broju koraka. Nasljeđivanje djeluje na određeni način protiv jakog tipkanje jezika poput Pascala. Obično je moguće proglasiti referentne varijable koje se mogu odnositi na primjer od određene klase i instance svim svojim podklase. To bi moglo biti poželjno, da određene metode onda se ponašaju na drugačiji način u skladu s trenutnom objekta primjer koji se upućuje, da se može dinamički mijenjati tijekom izvođenja programa. Ovaj koncept se zove polimorfizam je podržan od strane mehanizma koji se zove kasno obvezujuće i metoda koji su uključeni nazivaju virtualne metode, koje se mogu mijenjati na svakoj razini hijerarhije.

4. Paralelno postojanje objekta slučajevima treba objekata koji podržavaju suradnju i usklađivanje njihova života. Život objekta ne nužno vremensku dimenziju, ali u slučaju OOS ima. Simula objekata kao takva može komunicirati bez pojma vremena. Simula sustav klasa SIMULACIJA definira klase „proces” čiji je život postoji u vremenu. Postoje objekti za procese komunicirati i sinkronizirati svoje živote


On-line simulacija

Internet zajedno s Java i JavaScript nude nevjerojatne mogućnosti rješavanja problema. Umjesto preuzimanja i instaliranja softverskih paketa za koje je potrebno puno vremena, moguće je izravno otvoriti razne solvere, posebno za probleme koji nisu česti i koji ne zahtijevaju računanje dugotrajno. Kao moj prvi korak u tom smjeru napisao sam jednostavne simulacijske modele u JavaScript-u koji rješavaju i simuliraju sustave s jednim redom i mreže čekanja. Postupiti na on-line solvers i simulatora stranici pokušati simulacije sada.


Reference

Ova stranica sadrži izvadak iz teksta:
Sklenar, J.: Simulacija (Sveučilište na Malti, 2000) koji se koristi u nekoliko Operacijska istraživanja vezanih kolegijima koji se izvode na Sveučilištu Maltese.
Također možete pronaći puno stvari na internetu, jer su svi tražilice vratiti mnoge unose na „simulacije”. Možete početi sa sljedećim mjestima, koje sadrže druge veze, reference, informacije o institucijama, konferencije i sl

Uncategorized
Spekulativna egzomuzikologija

Source: https://sethares.engr.wisc.edu/exo.html William A. Sethares (Bill)   Spekulativna egzomuzikologija     Što je uopće egzomuzikologija? Iako je muzikologija definirana kao “povijesno i znanstveno proučavanje glazbe”, taj se izraz tipično primjenjuje samo na proučavanje glazbe iz europske klasične tradicije. “Etnomuzikologija” se koristi za opisivanje izučavanja zapadne glazbene tradicije i za komparativno proučavanje …

Uncategorized
Učinak imena

Source: https://www.anesi.com/presname.htm Kako odlučuju imena kandidata za američke predsjedničke izbore Od 1789. do 2020. bilo je 59 predsjedničkih izbora. U 45 od njih vodeći su kandidati imali imena koja se razlikuju po broju slogova koje posjeduju. I na tih 45 izbora, kandidat s više slogova u svoje ime pobijedio je 31 …

Uncategorized
Nemojte spremati, ispisivati ili označavati web stranice – umjesto toga stvorite prečace.

Source: http://www.zisman.ca/blog/2020-07-16%20Two%20ways%20to%20create%20a%20shortcut%20or%20alias%20to%20a%20website.html Napisao Alan Zisman ©     2020-07-16 Kako pronaći i vratiti se na web stranicu koja vam se učinila korisnom? Puno je standardnih načina, ali ima i problema. Koliko od ovih ste isprobali na prijenosnom ili stolnom računalu? Mogli biste (na primjer): Provjerite Povijest svog web preglednika – pretpostavljam da se …