Simülasyon

The source-page: http://staff.um.edu.mt/jskl1/simul.html

“Bütün Çek halkı basit bir çete”

Jaroslav Hašek: İyi Bir Asker Švejk


Jaroslav Sklenar

Simülasyon Nedir?

En genel seviyede Simülasyon, bir Biliş biçimi olarak düşünülmelidir. (Biliş = eylem veya bilgi edinme süreci.) Objektif gerçekliğin bir bilgisini (bilgisini) elde etmenin üç temel yöntemi vardır: Deney, Analiz, Simülasyon. Bu üç yöntemin doğasını göstermek için pratik bir örnek alalım. İncelenmekte olan sistem, bir görevli ile bir benzin istasyonudur. “Benzin istasyonunda bir arabanın harcadığı ortalama süre nedir” sorusudur. Cevap almak için üç seçeneğimiz var:

Deneme: Saatleri durdurun ve her arabanın istasyonda geçirdiği süreyi ölçün. Sonunda her zaman arabaları sayın ve araba sayısına bölün.

Analiz: Doğrudan sistemde harcanan ortalama süreyi hesaplamak için Kuyruk Kuramı formülünü kullanın. Bir formülü kullanmak için, gerçek sistemin oldukça basitleştirilmesi anlamına gelen belirli bir kuyruklama modelini varsaymanız gerekecektir ve bazı nicel parametrelere ihtiyacınız olacaktır (burada varış yoğunluğu – zaman birimi başına gelen araba sayısı ve servis yoğunluğu – zaman başına servis edilen araba sayısı ünite).

Simülasyon: Otomobillerin rasgele varışlarını ve hizmet sürelerini rastgele oluşturan bir simülasyon modeli yazın. Aynı zamanda, gerçek sistem ile birebir yazışmalarda bulunabilmesi için tüm aktivitelerin düzgün bir şekilde sıralanması gerekir. Ayrıca gözlem, istatistiksel veri toplama ve değerlendirme programlanmalıdır (her araba için harcanan zamanı hesapla, bu zamanları biriktir, araba sayısını say, sonunda hesapla ve ortalamayı göster).

Bu üç yöntem sıralanamıyor çünkü hepsinin avantaj ve dezavantajları var. Çeşitli kriterler göz önünde bulundurularak ancak belirli durumlar bağlamında karşılaştırılabilirler. Bununla birlikte, bazı temel gerçekler açıktır:

Deneme her zaman mümkün olduğunda ne zaman kullanılması gereken en doğru yöntemdir. Ne yazık ki, çok sık deney:
– Çok tehlikeli (kritik durumlarda bir nükleer reaktörün davranışı, bir jet uçağı olan bir uçakla iniş, vb.)
– Çok pahalı (hasar veren tüm durumlar, kiralanan telefon hatlarını kullanarak bir veri ağının çıkışını inceleyen uzun deneyler, vb.)
– İncelenmekte olan sistem mevcut değilse hiç mümkün değil (tasarım aşamasında daha olası alternatiflerin değerlendirilmesi.)

Analiz (çoğunlukla matematiksel) tipik olarak pratik yaşamda nadiren doğru olan güçlü varsayımlara dayanmaktadır. Analitik yöntemlerin bir başka olası dezavantajı, kullanılan çok karmaşık bir cihaz ve/veya çok zaman alan bir hesaplamadır. Buna bir örnek Queuing Networks’ün analizidir. Diğer yandan, formülleri kullanmak çoğunlukla hızlı sonuçlar verir ve çok sayıda alternatifi, farklı parametrelerin formülüne (e) ekleyerek kontrol etmek mümkündür. Deneysel yöntemler çoğunlukla çok daha fazla zaman alır. Diğer bir analiz problemi, gerekli parametrelerin mevcudiyetidir. Kesin ölçümleri de mutlaka mümkün değildir veya tasarım aşamasında imkansızdır. Tahmini verileri veya benzer sistemlerden alınan verileri kullanmak, sonuçların güvenilirliğini azaltır.

Simülasyon deneysel bir yöntemdir. Bunun yerine, gerçek sistemi ile deney deneyleri (konstruktif dolayısıyla simülasyonu çalışmaların önemli bir nokta) Simülasyon modeli ile gerçekleştirilir. Ayrıca simülasyon birçok dezavantajları vardır. İşte en önemli olanları şunlardır:
– Çok simülasyon modellerinin yaratılması talep etti. (Pascal gibi) genel dilde Programlama simülasyon modelleri çok zordur. Orada verimli simülasyon dilleri vardır ama bunların mastering her zaman değil haklı büyük başlangıç yatırımı temsil etmektedir. Basitleştirmek ve hatta sistemin belirli sınıfının simülasyon modellerinin oluşturulmasını otomatik bazı grafiksel tekniğine tipik temelli simülasyon araçları vardır. Daha yaklaşık bir tür aracı öğrenmek istiyorsanız, sayfaya ilerle Petri Ağları.
– Sistemin Sınırlı bilgi simüle ediliyor. Bütün bazı nicel parametrelerin İlk bilinmelidir. Yukarıdaki örnekte geliş ve rasgele servis süreleri arasındaki rastgele aralıklarla üretmek için gereklidir. İşte simülasyon analizi çok daha esnektir – simülasyon dilleri pratikte herhangi dağılmış rasgele sayıların üretilmesini desteklemektedir. Yukarıdaki örnekte, her ikisi de rastgele rakamlar her (örneğin deneysel olarak elde edilen) dağılımları dayalı olabilir. veya doğrudan Dağıtım Fonksiyonu (dağıtım ölçerek elde edilir ise) (bir kuramsal biri olup olmadığını) Yine herhangi bir dağıtım çeşitli parametreler ya ihtiyacı vardır. Orada da nicelikselleştirilemeyen (tipik tasarım aşamasında) sisteminde şeyler olabilir ve çoğu kez biz hiç farkında değildir yönleri olabileceğini gerçeğini kabul etmek gerekir yapabilirsiniz.
– Çok zaman hesaplamasını alıcı. Bir örnek paralel çalışan birçok bileşenlerle büyük ölçekli sistemler analizidir. Gerçek paralellik uygulama hala yaygın olmadığı için, bu tür sistemler, tek bir işlemci tarafından gerçekleştirilen bir program tarafından taklit edilmiştir. Paralel etkinlikler daha sonra bir seferde (kullanıcı paralellik izlenimi olsa bile ve simülasyon modeli “paralel düşünür” tasarımı sırasında) birini gerçekleştirilir. Bunun sonucu, simülasyon (Model süresi 1 saniye işlemci süresi 10 dakika sürer) gerçek zamanlı olarak çok daha yavaş olabileceği bir gerçektir. Bu tabii ki gerçek zamanlı kontrolünde simülasyon uygulaması devre dışı bırakır.

Genel önemli kural böyle olabilir:

“Deneme mümkünse, kullanın. Her zaman en iyi yöntemdir, çünkü tüm yönler dikkate alınır. Tasarım aşamasında diğer yöntemler kullanılmış olsa bile, deney sistemin son bir değerlendirmesi olarak kullanılabilir. Deney, eğer mümkün değil uygun bir analitik yöntem bulmaya çalışın. Eğer mevcut değilse simülasyonu kullanın.”
Simülasyon sadece yukarıdaki kuralda göründüğü gibi son çare değildir. Simülasyon, sadece başlangıçta verilen sorulara cevaplar sağlayarak değil, analiz edilen sistemin anlaşılmasına da çok katkıda bulunabilir. Çoğu zaman simülasyon modelinin oluşturulması, bazı şeylerin hesaba katıldığı ilk durumdur. Simüle edilen sistemin belirlenmesi, sistem tasarımındaki hataları veya belirsizlikleri ortaya çıkarabilir (ve çoğu zaman yapar). Dolayısıyla simülasyon hazır sistemin gelecekteki çok pahalı güncellemesinden kaçınılarak çok yardımcı olabilir.


Sürekli Simülasyon

Analog bilgisayar simülatörleri olarak ellili yıllarda gelişen sürekli simülasyon dilleri. Analog bilgisayarlardaki simülasyon, davranışı incelenen sistemle aynı matematiksel modelle (diferansiyel denklem seti) tanımlanan bir analog elektronik sistemi oluşturmaya dayanır. Elektronik sistem, daha çok entegratörler, ekleyiciler ve diğer işlevsel birimler olarak işlev görecek şekilde modifiye edilmiş işlemsel yükselteçlere dayanan standart blokların birbirine bağlanmasıyla oluşturulur. Daha sonra kullanıcı, uygun girdiler uygulayarak ve belirli çıkış noktalarındaki (osiloskop, çizici) gerilimi kaydederek bu elektronik sistem ile deneyler yapar. Değişen voltaj, bir zaman fonksiyonunu temsil eder; bu, fiziksel doğası tamamen farklı olabilen orijinal sistemdeki değişiklikleri tanımlayan fonksiyonla aynıdır (mekanik yer değiştirme, sıcaklık vb.). Analog bilgisayarların temel sorunu çarpma, bazı fonksiyonların üretilmesi, gecikmelerin üretilmesi ve diğerleri gibi belirli işlemlerin analog bir uygulamasıdır. Dijital bilgisayarlar tüm bu işlevleri çok kolay bir şekilde yerine getiriyor ve günümüzde sürekli simülasyon sadece üzerlerinde gerçekleştiriliyor. Bununla birlikte, analog bilgisayarların daha iyi olduğu bir işlem var – entegrasyon. Dijital bilgisayarlar, bir analog entegratörün entegrasyonuna kıyasla genellikle daha yavaş ve daha az hassas olan sayısal entegrasyon kullanır. Hızlı tepkiye dayanan bazı özel uygulamalar bu nedenle A/D ve D/A dönüştürücülerle birbirine bağlanan analog ve dijital parçaları içeren Hybrid bilgisayarları kullanır. Dijital kısım entegrasyon dışında her şeyi yapar. Daha sonra D/A dönüştürücüler tarafından analog birleştiricilere girilen analog sinyallere dönüştürülen bütünleştirici girişlerini hesaplar. Çıktıları tam tersi şekilde ele alınır. Dijital parça ayrıca analog kısmın ara bağlantılarını da kontrol eder, böylece hesaplama sırasında değişebilir.

Sürekli Simülasyon Dillerinin Sınıflandırılması

Blok yönelimli simülasyon dilleri analog bilgisayarların metodolojisine dayanmaktadır. Sistem fonksiyonel birimleri ve bunların sayısal parametreler ara bağlantı tanımlayan bir blok diyagramı olarak ifade edilmelidir. “Programlama” blokları ve bunların açıklaması arabağlantısına giren demektir. Ardından kullanıcı simülasyon kontrol ifadeleri ve/veya direktifleri ekler. Sistem denklemlerinin kümesi olarak tanımlanmaktadır, bunlar bir blok diyagramına dönüştürülmesi gerekir. Bu dönüşüm, basit basit bir işlemdir. En sürekli blok odaklı dilde tipik blok entegratörleri, sınırlayıcılar, gecikmeler çarpanlar, histerezis, sabit değerler, toplayıcılar, tutucular, kazanç (katsayısı) ve diğer bulunmaktadır.

İfade odaklı sürekli dilleri matematiksel model temsil yazılı anlatım (denklemler) dayanmaktadır. Yani simüle sistem denklemlerinin kümesi tarafından ifade edilmelidir. Ardından kullanıcı simülasyon kontrol ifadeleri ve/veya direktifleri ekler. Bazı dillerde sistem tanımının hem blok ve ifade bazlı yollarını sağlar. Simülasyon kontrol seçimi şu anlama gelir: bir bütünleşme yöntemi (bazı dilleri daha sağladığı için), entegrasyon aşaması, değişkenler dikkate alınmalıdır (blok çıkışları), çıkışların ölçekleme baskı için veri toplama ve/veya çizilmesi için aralıklarla (yani Ayrıca tekrarlama sayısı ve yolu belli değerler vb onlarda değiştirilir, simülasyon süresi çalışır) otomatik olarak yapılabilir.

Dosya İndirme models1.zip Turbo Pascal dilinde yazılmış birçok sürekli simülasyon modelleri içerir. Modeller İfade odaklı yaklaşıma dayalı basit sürekli simülasyon ortamı kullanılarak oluşturulur ve kolayca diferansiyel denklemler tarafından açıklanan herhangi diğer sistemlerin modellenmesi değiştirilebilir.

Ayrık Simülasyon

Kesikli benzetim, dinamikleri (soyutlama seviyesinden dolayı) kesikli zaman noktalarındaki olayların bir dizisi olarak düşünülebilecek sistemler ile ilgilidir. Ayrık bir simülasyon dilinin kilit noktası, modeldeki etkinliklerin uygun sıralanmasını kontrol etme şeklidir. Bu aynı zamanda bir kullanıcının dili ve ayrık simülasyon dillerinin sınıflandırılması için bir üs kullanırken “dünyayı görmesi” yoludur.

Kesikli Simülasyon Dillerinin Sınıflandırılması

Akış Şeması yönelik diller çeşitli bilgisayarlarda birçok versiyonu var dil GPSs (Genel Amaçlı Simülasyon Sistemi) ile temsil edilmektedir. Kullanıcı adı verilen bir akış olarak sistem dinamiklerini görüntülemek gereken işlemler, bir blok diyagramı yoluyla. İşlemler blokların ağı üzerinden bir yol takip oluşturulur ve çıkışta yok edilir. Bloklarda işlemler, gecikmiş işlenir ve diğer bloklara aktarılabilir. Bloklar gerçekleştirmek ifadeleri ile temsil programda olan Etkinlikleri modelin.

Etkinlik odaklı diller gelecekteki etkinliklerin açık planlamasına dayalı değildir. Her aktivite için kullanıcı (koşul belirli bir zaman ulaşıyor eğer ayrıca zamanlama kapaklar) etkinliği gerçekleşebilir sağlayan koşulları açıklar. Simülasyon kontrolünün algoritması tekrar tekrar tüm faaliyetlerin zaman ve testler koşulları artırır. Bu yaklaşımın dezavantajı açıktır – bu çok zaman alıcı olabilir her adımda tüm koşulları değerlendirmek gerekir. Diğer taraftan kavramsal çok basittir ve algoritma kolayca genel üst düzey diller (orada bu yaklaşımına dayalı simülasyon dilleri vardır, ancak yaygın olarak kullanılmıyor) uygulanabilir. Dosya İndirme models2.zip Bu aktivite yönlendirilmiş yaklaşımı göstermek (Turbo Pascal) basit sıralama sisteminin iki model içerir. Bu modeller daha sonra yığınlar ve sıraları uygulamak için kullanılan iki yönlü bağlantılı listeler üzerinde işlem uygulamak birkaç birimler eşlik ediyor.

Olay odaklı diller direkt zamanlama ve gelecekteki olayların iptali dayanmaktadır. yaklaşım çok genel. Kullanıcı nispeten bağımsız olaylar dizisi aşağıdaki gibi gerçekleştirilir sistem dinamiklerini görmelidir. Her olay planlamak ve/veya başka olayları iptal edebilir. Sistem rutin planlanan etkinliklerin kaydını tutmak zorundadır. Her etkinlik saatini içermektedir sözde Olay haber, etkinlik türü ve diğer kullanıcı verileri ile temsil edilir nedeni budur. Olay bildirimleri olay bildirimler zamanlanmış saate göre sıralanır sözde Takvim tutulur. Olay rutin tamamlanmasından sonra, sistem, takvimden en düşük zamanla olay bildirimi kaldırır onun zaman modeli süresini günceller ve ilgili rutin başlar. takvim boşaldığında veya program nedeniyle diğer nedeni duruncaya kadar bu tekrarlanır. planlanan zamana göre takvime olay bildirimleri sokma araçlarını Zamanlama, iptali onları kaldırır. açık olayların ifade dayalı yaklaşım bazen gibi ayrık simülasyon olarak genellenebilir, Ayrık Olay Simülasyonu denir. Dillerin bu grubun tipik temsilcisi dildir SIMSCRIPT (ancak sürüm II.5 destekler de yönelimli simülasyon işlemek).

Süreç odaklı diller olaylar bağımsız olmadıklarını, aslında dayanmaktadır. Bir olay tipik önceki diğer olayların bir sonucudur. Diğer bir deyişle, hiyerarşinin daha yüksek bir seviyede, bir simülasyon modeli birimler olarak görülebilir olayların dizilerini tanımlamak için genellikle mümkündür. Olaylar dizisi olarak adlandırılır işlem. Olaylar sürecinde farklı olarak zaman içinde bir boyuta sahiptir. Süreç bazlı soyut sistemler her zaman mevcuttur ve birbirine müdahale paralel hareket çeşitli nesneler yapılır, gerçeğe çok yakındır. Sistem dinamikleri inceleyen Süreci yolu böylece çok doğaldır. Çoğunlukla bir süreç modelleri gerçek nesnenin bir faaliyet. O süreç odaklı ayrık simülasyon ayrık simülasyon modelleri oluşturmak için nasıl en iyi yoldur, inanılmaktadır. Dillerin bu grubun tipik temsilcileri MODSİM, SIMSCRIPT II.5 ve sistem sınıfı SİMÜLASYONU olan Simula dilinde.


Nesne Tabanlı Simülasyon

Nesneye Dayalı Simülasyon (OOS) nesne yönelimli programlama (OOP) ait özel bir durum olarak kabul edilebilir. Müdahale nesnelerin örneklerini değişen sayıda varlığı gibi OOP bazı ilkeler genellikle diğer terminoloji kullanarak, uzun süre simülasyon ortamında standart kullanımda olmuştur. (Simula 67 çağrılacak kullanılan) Simula dil ilk gerçek nesne yönelimli bir dildir. 30 yıldan fazla eski olmak, hala en (ve tüm önemli) mekanizmaları ve OOP ilkelerini sahiptir. Geçen yıllarda OOP patlamasıyla yeniden keşfedilen önce vb sınıflar, miras, sanal yöntemleri gibi bazı şeyler Simula uzun zamandır tanımlanmıştır. Simula hakkında daha fazla bilgi edinmek için sayfasını ziyaret ASU (Simula Kullanıcılar Derneği). Ayrıca belge tarayabilir Simula içinde OOP için giriş Simula 30. yıldönümü vesilesiyle Malta Üniversitesi’nde sunulan bir konuşmaya dayanmaktadır. MODSİM başka nesne yönelimli simülasyon dilidir.

Bunlar OOS’un en yaygın kabul gören özellikleri:

1. Algoritması ya da sistem dinamiklerini paralel bulunurlar ve bu birbiriyle etkileşim nesneleri (aktör) cinsinden ifade edilir. Her nesne ile temsil edilir:
– parametreler (nesne oluştururken gerçek değerler atanabilir)
– nitelikler (ayrıca dahili nitelikler veya değer özellikleri de denir)
– yöntemler (aynı zamanda eylemler veya prosedür özellikleri olarak da adlandırılır)
– Nesne oluşturma üzerine başlatılan etkinliği temsil eden yaşam.
Nesneler şu şekillerde etkileşimde bulunabilir:
– parametrelere ve niteliklere doğrudan erişim
– Karşılıklı yöntem çağrısı
– nesnelerin hayatlarının iletişim ve senkronizasyonu.
Basitçe ifade etmek gerekirse: adlandırılır Nesne = Veri + Prosedürler Kapsülleme. Çok sık nesnenin verileri ya da bunun bir parçası gizlenir ve değerler, sadece (iyi tanımlanmış) yöntemlerle erişilebilir ve değiştirilebilir. Bu kavram denir Bilgi gizleme.

2. Benzer nesneler (aktörler) sözde için gruplandırılmış sınıflara da prototip çağırdı. A sınıfı aynı parametreleri, nitelikleri, yöntemler ve hayatları olan nesneleri açıklar. Bir sınıf bildirimi bir model yorumlanır. Ayrı ayrı nesneler (aktör) olarak adlandırılan herhangi bir sayıda oluşturmak mümkündür Nesne örnekleri. Örnekleri onların parametreleri ve/veya özelliklerinin değerleri bakımından farklılık gösterebilir. Sınıf tanımlaması kullanılarak oluşturulan bu ve nesne oluşumları gibi bir sınıf arasında açık bir fark yaratmak için gereklidir. Bir sınıf, nesnelerin belirli tipte bir bilgi olarak yorumlanabilir. Bu tür bilgiler, bir veri parçası ve veriler üzerinde gerçekleştirilen işlemleri ile temsil edilir. Bu özet veri türlerine benzer, ancak sınıflar daha zengindir. Soyut veri tipi kalıtım bir kullanan bir sınıfın bir dejenere bir durum olarak kabul bu bağlamda olabilir.

3. Nesne sözde göre hiyerarşik sınıflandırılabilir miras. Çoğu zaman terim alt sınıf tanıtıldı. Bir sınıf X bir alt sınıf Y tüm parametreleri devralır niteliklerini ve sınıf, X yöntemler Onun beyanı ek parametreler, nitelikler ve yöntemlerin herhangi bir numara ekleyebilirsiniz. Bir alt sınıf da üst sınıfın yaşama bazı etkinlikler ekleyebilir. Bir alt sınıf olarak adlandırılan etkinleştirmek diğer alt sınıflarının bir üst sınıfa, vb Bazı cepten dilleri (değil Simula) olarak kullanılabilir çoklu miras. Bu durumda bir alt sınıf birden fazla ana sınıflarından devralabilir. Bir alt üst sınıfı tarafından tanımlanan bir daha ayrıntılı bilgi olarak yorumlanabilir. Yani üst sınıf ileri adımlar herhangi bir sayıdaki alt sınıflarının beyanları ile uzman olabilir genel bilgi, temsil eder. Kalıtım Pascal gibi dillerin güçlü yazarak karşı belli bir şekilde hareket eder. Tipik olarak, belirli sınıfın bir örneği ve tüm alt sınıflarının örnekleri için bakınız, referans ile değişkenleri bildirmek için mümkündür. Bazı yöntemler, daha sonra program yürütme sırasında dinamik olarak değişebilir başvurulan mevcut nesne örneği göre farklı bir şekilde davranması, istenebilir. Bu kavram denir polimorfizmi hiyerarşinin her düzeyinde değişebilir bağlama geç denilen mekanizma ve sanal metotlar denir katılan yöntemlerle, tarafından desteklenmektedir nesne örnekleri.

4. Paralel varlığı hayatlarının işbirliği ve senkronizasyon destek tesisleri ihtiyacı var. Nesnenin hayat mutlaka bir zaman boyutu var, ama sahip stoksuzluk durumunda değildir. bu zamana kavramı olmaksızın etkileşim gibi Simula itiraz ediyor. Simula sistem sınıfı SİMÜLASYONU Hayatı zamanında var olan sınıf “Süreç” tanımlar. Süreçler iletişim kurmak ve hayatlarını senkronize etmek için tesisleri bulunmaktadır.


Çizgi Simülasyon Açık

Birlikte Java ve JavaScript ile İnternet problem çözme inanılmaz imkanlar sunmaktadır. Bunun yerine zaman indirme ve yazılım paketlerinin kurulumunu tüketmek, özellikle sık değildir ve bu hesaplama vakit harcatan yok sorunlar için, doğrudan çeşitli çözücüler açmak mümkündür. Bu doğrultuda ilk adım olarak, ben tek kuyruk sistemleri ve kuyruk ağları çözmek ve taklit JavaScript basit simülasyon modelleri yazdı. İçin çanağa Çevrimiçi Çözücüler ve Simülatörleri sayfası şimdi simülasyon denemek için.


Referanslar

Bu sayfa metinden bir özü içerir:
Sklenar, J.: Simülasyonu Malta Üniversitesi’nde ders birkaç Yöneylem Araştırması ilgili dersler kullanılır (Malta Üniversitesi, 2000).
Tüm arama motorları “simülasyon” konulu çok sayıda giriş dönmek çünkü Ayrıca internette bir sürü bulabilirsiniz. Sen vb diğer bağlantılar, referanslar, kurumlara bilgi, konferanslar içeren aşağıdaki yerlerde, ile başlayabilir.