SİMÜLASYON – GENEL KAVRAM

 

    Simülasyon; gerçek dünyanın belli bir bölümünün modelinin tasarlanması işlemidir. Daha sonra gerçek sistemin davranışlarını tanımlamak, açıklamak ve önceden tahmin etmek için, modelle ilgili deneyler yapmak gerekir. Yöneticilerin ve tasarımcıların hedefi; yüksek performansı en düşük maliyetle elde etmektir. Bir sistem tasarlanırken, modelleme ve simülasyon, gerçek dünyadaki mühendislik kararları için iyi bir hazırlıktır. Simülasyon, sistemin performansının ve güvenilirliğinin anlaşılması ve optimum kılınması için kullanıldığı gibi tasarımın doğruluğunun test edilmesinde de kullanılır.  Örneğin uçak tasarımcıları, önerilen tasarımın ölçekli bir modelini kurduklarında ve bu modeli dışarıda, rüzgar tünelinde test ettiklerinde, bu modelin, uçakla ilgili her ayrıntıyı kapsamasını ve rüzgar tünelinin de uçuş şartlarını  yeterli ve uygun olarak yansıtmasını isterler.

 

Tasarımda simülasyon önemlidir çünkü; ortaya çıkan hataların onarım masrafı, ürünün hayat eğrisi boyunca artmaktadır. Tasarımcılar önce, gerçek sistemin belli bir bölümü ile ilgilenirler. (Örneğin bir uçak ve onun havadaki davranışları) sonra, gerçek sistemin bu kısmını çok daha kolay kullanılabilecek bir araca çevirirler. (Model kurarlar) ve daha sonra modelde çeşitli denemeler yaparlar. (Rüzgar tünelinde test etmek gibi) Sonuçları tekrar sistemde kullandıktan sonra sistemle ilgili kararı verirler.  Eğer ilgili açılardan dönüşüm yanlışsız ise, model ve yapılan denemelerin sonuçları gerçeği yansıtır. Fakat dönüşümler hiçbir zaman tamamlanmaz. Örneğin rüzgar tüneli için hazırlanan model, sağlam bir ağaçtan yapılmış olabilir, bu modelle tasarlanan uçağın şeklidir. Ağırlık dağılımı, dayanıklılığı, yapısı ve güç sistemi tasarlanmaz. Ancak bunların bir kısmı gerçekten modelle ilgili olabilir.  Modelin gerçeğe oldukça yakın kurmak için, modele bir çok detay eklenmesi ve bunların gerçeği yansıtması için dikkatli kontroller yapılması gerekir. Örneğin, model, fiziksel boyutların ölçülmesi için kurulmuşsa, modelde mikroskobik perçinler ve çok ince metal folyonun kullanılması gerekir. Ancak bu durumda model gerçek uçağın esnekliğini ve sağlamlığını yansıtmaz. Yani tüm fiziksel özellikler aynı yolla ölçülmez. Yeni Boeing 777’ler tamamen bilgisayarlı iş istasyonlarında tasarlanmıştır. Uçaklar, başlangıçtan itibaren, CAD/CAM sistemleri kullanılarak dizayn edilmiştir. Bu sistemler kapsamlı bilgisayar simülasyonlarında model olarak kullanılmışlardır. Böylece, aynı veri tabanını kullanarak tasarım ve denemeler birlikte yapılmıştır. Yani tasarım tamamen bittiğinde, bilgisayar testleri de bitmiştir. Böylece uçak CAD/CAM veri tabanına göre yapılmış ve beklenildiği gibi başarılı bir şekilde uçmuştur.

 

Simülasyonun bir diğer önemli uygulama alanı ise; “görsel çevreler” yaratılmasıdır. Ünlü televizyon dizisi Star Trek’te olduğu gibi, simülasyon aracılığıyla, kullanıcıların “Eğer gerçekten var olsaydı ne olurdu?” sorularının cevapları bulunabilir. Bu tip simülasyonlar günümüzde, savaş durumları için, askeri personelin eğitiminde kullanılmaktadır. Böylece, gerçek uçak ya da tank kullanımının yaratacağı yüksek maliyetin önüne geçilmektedir.

 

Sistem simülasyonu, gerçek bir sisteme ait bir işlemin davranışlarını canlandırmaktadır. Örneğin; bir bankanın günlük işlemleri, bir fabrikanın belli bir zaman içindeki stok hareketleri, bir fabrikadaki montaj hattı çalışması ya da bir hastanede personel ataması gibi işlemlerin sonuçları simülasyonla önceden belirlenebilir. Uzmanlar, geniş çaplı matematiksel modeller kurmak yerine, var olan simülasyon yazılımlarını kullanarak, gerçek bir sistemle ilgili bir işlemi modelleyebilmekte ve sonuçlarını analiz edebilmektedir. Hatta bu işi yapmak için uzman olmaya da gerek yoktur, herhangi bir yönetici kolaylıkla gerçekleştirebilir.

 

Simülasyon, incelenen sistemle ilgili bilgileri veren ve bilgisayar programı tarafından sunulan modelin bir uygulamasıdır.  Model analizinde simülasyon yaklaşımı, analitik yaklaşımın karşısında yer almaktadır. Bu yöntemin daha güvenilir olmasına rağmen simülasyon daha fazla esneklik ve kolaylık sağlar. Bir model, çeşitli zamanlarda meydana gelen ve tüm sistemi etkileyen olaylardan meydana gelir. Herhangi bir olayın gerçekleştiği zaman noktası rasgele olduğu için, simülasyon, sistem bilgisi dışında başka bir bilgiye ihtiyaç duymaz. Olaylar kendiliğinden ortay çıktığı ve tek tek oluştuğu için, iki olay arasında hiçbir olay meydana gelmez.

 

Şu senaryo üzerinde düşünelim: siz ATM ağları için yeni bir switch tasarımcısısınız. Ürününüzün başarılı olacağını garanti etmek için, ürününüzün makul bir maliyetle mümkün olan en yüksek performansı önemlidir.  Bir switch içine ne kadar hafıza yerleştirilebilir? Switch içinde kullanılması gereken donanım kombinasyonlarının en iyisi hangisidir? Bunlar cevap vermek zorunda olduğunuz sorulardan bazılarıdır.

 

Son dönemlerde çok popüler olan simülasyon teknolojisiyle, birçok simülasyon yazılımı gerçekleştirilmiş ve oluşturulan yapay dünyalar yardımıyla “what-if” senaryolarının güvenle test edilmesi mümkün hale gelmiştir.

 

MODELLEME VE SİMÜLASYON

 

Genel anlamda simülasyon;  kusursuz olarak işleyen bir taklitten yola çıkarak gerçek dünyada ne olabileceğini bulma eğilimidir. Yöneylem araştırmalarında taklitler, simüle edilmiş gerçekliğin bilgisayar modelidir. PC’lerdeki uçuş simülasyonu; uçuşun çeşitli açılarının bilgisayar modelinden başka bir şey değildir. Kumanda paneli ekrandadır ve pilot her şeyi kokpitten yani sandalyesinden takip edebilir.

 

 

Şekil-1

 

Sistem terminolojisi

 

Durum (state): Stok düzeyi ya da kuyrukta bekleyen iş sayısı gibi nitelikleri kaarkterize eden değişken.

Olay (event): meydana geldiği anda, sistemin durumunu değiştirebilecek oluşum (Bir müşterinin gelmesi ya da bir işe başlanması gibi)

Varlık (entity): Sistemin içinde yer alan bir nesne (fabrikaya gelen bir sipariş) ya da olayla ortaya çıkan bir varlık (müşteri gelmesi)

Kuyruk (queue): Kuyruk, sadece kişilerin oluşturduğu fiziki kuyruk değildir, görev listesi, sevkıyat bekleyen mamuller de kuyruk olabilir.

            Yaratma (creating): Herhangi bir zamanda sisteme yeni bir varlık eklenmesine neden olan yaratım faaliyeti.

            Programlama (scheduling): Yeni bir olayı, var olanlar arasına yerleştirme.

            Rasgele değişken (random variable): Kesin olmayan bir niteliği temsil eder. (İnen iki uçak arasında geçen zaman –interarrival time- gibi)

            Yapay rasgele değişken (random variate): Yapay olarak belirlenmiş rasgele değşken.

            Dağılım (distribution): Rasgele değişkenin olasılık özelliklerini belirleyen matematiksel kanun.

 

Neden modeller kullanılır?

Bir simülatörü uçurmak, gerçek  bir uçağı uçurmaktan daha güvenli ve daha ucuzdur.  Bu nedenle modeller genellikle ticari ve askeri sanayilerde kullanılır. Gerçek sistemlerle deney yapmak pahalı, tehlikeli ve genellikle de imkansızdır. Modeller, gerçeğe yeterince uygundur ve modellerle deneye yapmak paradan tasarruf sağlar ve aynı zamanda insanların yaralanmasına engel olur.

 

Simülasyonlar ne zaman kullanılır?

Araçların giriş çıkış yaptığı bir benzin istasyonu gibi (dinamik sistem) zamanla değişen ve rasgelelik (hiç kimse bir sonraki aracın her zaman geleceğini tahmin edemez) gerektiren sistemler, simülasyon için iyi adaylardır. Karmaşık dinamik sistemleri simüle etmek için, bir çok basitleştirmeler gerektirir.

 

            Simülasyon nasıl yapılır?

Şekil-2 bir simülasyon modelini oluşturma işleminin sistematiğini gösterir. İşlem birkaç adımdan oluşur ve tatmin edici bir model elde edilene kadar bu adımlar tekrarlanır. Öncelikle kavramsal bir model kurmak için, üzerinde çalışılan sistem ve sistem girdileri modellenir. Bu kavramsal model bilgisayar ortamına aktarılır ve her aşamada sistemde bazı küçük değişikliklere yol açacak, basitleştirici varsayımlar yapılır. Sistem girdileri, girdilerin matematiksel gösterimlerini oluşturmak için analiz edilir ve bunlar bilgisayar simülasyonunu destekler. Simülasyonun sonuçları, gerçek sistemin sonuçları ile karşılaştırılır. Eğer bir farklılık varsa, simülasyon modelinde veya sistem girdilerinde düzeltmeler yapılır ve bu işlem gerçeğe uygun bir model kurulana kadar tekrarlanır.

 

                                 

 

 

  Şekil-2

                                                             

SİMÜLASYONUN AŞAMALARI

 

         Simülasyon birbiri ile yakın ilişkili ve tekrarlanır bileşimlerden oluşmuştur:

1.      Model kurma

2.      Modeli uygulama

3.      Uygulama analizi.

 

Problemin  Formülasyonu:         Gerçek sistemin simülasyon modelini kurmanın ilk aşaması, sistemle ilgili problemin tanımlanmasıdır.Kontrol edilebilir ve edilemez girdiler belirlenir. Değişken sistemin performans ölçümleri çıkarılır. Girdilerle performans ölçümü arasındaki ilişkiyi kurmak için bir başlangıç modeli geliştirilir.

Verilerin toplanması ve analizi: İkinci aşama sistemle ilgili verileri toplamaktır. Veriler sembolik veya sayısal yapıda olabilir. Genellikle sayısal veriler, fiziksel veya beşeri şekilde toplanır.  Veri olmadan da modeller oluşturulabilir. Ancak bu durumda modelin doğruluğu açısından sorunlar ortaya çıkar. Böyle modellerde tahmin edilen parametreler kullanılır. Amaç herhangi bir modeli açık şekilde ifade etmek olduğundan, model çoğunlukla matematiksel olarak ifade edilir. 

Simülasyon modelinin geliştirilmesi: Veriler toplandıktan sonraki aşama; simülasyon modelinin geliştirilmesidir. Sistemin yeterince doğru anlaşılmasından sonra, kavramsal, mantıklı bir model geliştirmek simülasyon analizinin en zor adımlarından biridir.

Modeli doğrulama, onaylama ve kalibrasyon:  Genelde, doğrulama (validation), modelin iç istikrarı üzerinde odaklanır. Doğrulama, modelle gerçek arasındaki uygunlukla ilgilidir. Doğrulama, “Doğru sistemle mi ilgileniyoruz?” sorusunun cevabıyla bağlantılıdır. Öte yandan, onaylama (verification); “sistemi doğru oluşturuyor muyuz?” sorusuna yanıt araştırır. Onaylama, simülasyon modelinin, modele uyup uymadığını kontrol eder. Doğrulama ise, modelin gerçeğe uyup uymadığını kontrol eder. Kalibrasyonun (calibration) işlevi, simülasyonun ürettiği bilgilerin gerçek bilgiye uyup uymadığını kontrol etmektir.

Girdi ve çıktı analizi:  Kesikli-olaylı simülasyon modelleri genelde, incelenmekte olan sistemin olasılık yapısını taklit eden stokastik elemanlar içerir. Başarılı bir girdi (input) modellemesi, girdi modeli ile olasılıklı bir yapıya sahip sistem arasında güçlü bir uyuşma gerektirir. Bu aşama, dışsal, rasgele veya deterministik girdiler üzerinde duyarlık hata analizini gerçekleştirir.

Performans değerlendirme ve “What-if” analizleri: “What-if” analizleri simülasyon modelinin kalbidir.

Duyarlık tahminlemesi: kullanıcılar, modelin hangi ilişkilerinin bir anlam taşıdığını anlayabilmek için çeşitli teknikler kullanarak duyarlık analizleri yaparlar.

Optimizasyon: Geleneksel optimizasyon teknikleri büyük ölçüde tahminlemelere dayanmaktadır. Duyarlık analizleriyle birlikte, optimizasyon için günümüzde kullanılan yaklaşımlar, yaklaşık bir çözüm kümesi oluşturmak için daha çok simülasyonlardan yararlanmaktadır.

 

            Bir Örnek:

         Tek görevlinin çalıştığı, tek pompalı bir benzin istasyonu simülasyonu. Araçların gelişleri ve hizmet alma sürelerinin rasgele olduğunu kabul edelim.  Önce çeşitli değişkenleri tanımlayalım:

Durum: herhangi bir anda hizmet bekleyen ve hizmet almış araba sayısı

Olaylar: araçların gelişi, hizmetin başlaması, hizmetin sona ermesi

Varlıklar: araçlar

Kuyruk: pompanın önündeki araba kuyruğu

Rasgele yapay değişkenler: araçların varışları arasında geçen süre, hizmet süreleri

Dağılımlar: varışlar arası süre ve hizmet sürelerinin ikisi için de üstel (exponential) dağılım gösterdiğin varsayalım.

 

         İkinci olarak; her olay için ne yapılacağını belirleyelim. Örneğimiz için:

Varlığın geliş anında: Bir sonraki gelişi yarat. Eğer pompa boşsa varlığı hizmetin başlaması için pompaya gönder. Aksi durumda, kuyruğa ekle.

Servisin başladığı anda: Görevli meşgul duruma geçer. Bu varlık için hizmetin sonunu programla.

Hizmetin bitiş anında: Görevli boş duruma geçer. Eğer kuyrukta bekleyen varsa, ilk sıradakini kuyruktan al, hizmetin başlaması için pompaya gönder.

Hala bazı başlatmalar gereklidir: Örneğin ilk aracın gelişi.

 

         Son olarak yukarıdakiler, kullanılan programlama diline veya yazılıma ait kodlara çevrilir.

 

         Program, her değişiklikten önce ve sonra, araç sayısın ve her olayın süresini kaydeder.

 

SİMÜLASYONUN AVANTAJLARI VE DEZAVANTAJLARI

 

         Simülasyonun avantajları model kurmanın avantajlarıdır. Kolayca kullanılabilen model, planlama ve deneme için çok uygundur. Gerçek ortamda, zor veya imkansız denemelerden kaçınılabilir. Matematiksel örneklemede de olduğu gibi gerçek durumun mevcut olması gibi bir zorunluluk yoktur. Soyutlama ve matematiksel örneklemenin zor işlemlerinden kaçınılır, böylece çok zor durumlar bile taklit edilebilir. Simülasyon bir defa oluşturulduğunda, tasarım değişikliklerinin etkilerine göre simülasyonda kolay ve hızlı küçük değişiklikler yapmak mümkün olur. Aynı zamanda simülasyon sayesinde gözden kaçan bağlantılar veya düzensiz durumlar da fark edilebilir. Simülasyon zaman içinde sık sık geliştirilebilir, kullanılabilir veya simülasyon animasyonlar yapmak için kullanılabilir. Simülasyonlar aynı zamanda eğitim için de kullanılabilir ya da simülasyon sayesinde belli bir sitem için bazı sorunları önceden sezme imkanı kazanılır.

        

         Ancak simülasyonun dezavantajları da vardır. Simülasyonlar kesin sonuçlar vermeyebilir. Genellikle simülasyonlarda bir takım soyutlamaların ve matematiksel modellerin yapılma zorunluluğu vardır. Bu da hatalara yol açar. Karmaşık simülasyonlarda bu küçük hatalar çok hızlı bir şekilde ortaya çıkar. Bu da modelin geçerliliğini sağlamayı zorlaştırır. Diğer bir dezavantajı da; bazen simülasyondan genel sonuçlar çıkarmak zorlaşır. Buna bağlı olarak da simülasyon yardımıyla optimum bir çözüm bulmak da çok zordur.

 

            Avantajları:

·  Analitik metotlara başvurulmadan birkaç stokastik elemanla karmaşık gerçek sistemler modellenebilir.

·  Değişik çalışma koşulları altında mevcut sistemlerin performansları değerlendirilebilir.

·  Alternatif sistemler ve çalışma politikaları kararlaştırılabilir.

·  Deneysel ortamlarda daha iyi kontrol imkanı sağlar.

·  Simülasyon denemeleri kopyalanabilir.

·  Kısa sürede uzun vadeli etkiler üzerinde çalışma yapmak mümkündür.

·  Simülasyonlar, istisnalar dahil, mevcut ve potansiyel ve muhtemel durumları yansıtır.

·  Basit veya karmaşık durumlarda uygulanabilir.

    

            Dezavantajları:

·  Her bir simülasyon uygulaması sadece gerçek sistem performans tahminine yöneliktir. Kesin sonuçlar elde etmek için istatistiksel metotlara ihtiyaç vardır.

·  Simülasyon modellerini geliştirme maliyetli ve zaman alan bir işlemdir.

·  Modelleri geçerli kılmak genelde zordur.

·  Geniş hacimli çıktı verisi ve etkileyici grafikler genellikle varsayımlardaki problemleri gizleyebilir.

 

Gizli Tehlikeler:

·  Çalışmaların amaçlarını tanımlamadan başarısız olunabilir.

·  Detayların seviyeleri uygun olmayabilir.

·  Sadece bilgisayar programlamada uygulanamayabilir.

·  Uygun analitik ve istatistiksel tekniklerin uygulanması başarısız olabilir.

·  Animasyonların yanlış kullanılma ihtimali vardır.

·  Performansların yanlış ölçülmesi tehlikesi vardır.

 

            SİMÜLASYONDA KULLANILAN ARAÇLAR:  YAZILIMIN SEÇİLMESİ

 

         Simülasyon yazılımlarının çok büyük bir bölümü, yeni kullanıcılar için çok zor olabilir. Aşağıdakiler, bugün piyasada bulunan yazılımların bir bölümüdür:

 

         ACSL, APROS, ARTIFEX, Arena, AutoMod, C++SIM, CSIM, Call$im, FluidFlow, GPSS, Gepasi, JavSim, MJX, MedModel, Mesquite, Multiverse, NETWORK, OPNET, Modeler, POSES++, Simulat8, Powersim, QUEST, REAL, SHIFT, SIMPLE++, SIMSCRIPT, SLAM, SMPL, SimBank, SimPlusPlus, TIERRA, Witness and javasim.

 

         Bir yazılımı ideal bir paket yapan çeşitli noktalar vardır. Bu noktaların bazıları paketlerin (support, reactivity to bug notification, interface vs), bazıları da kullanıcıların özellikleridir.( kullanıcının ihtiyaçları, uzmanlık düzeyleri vs) Bu nedenle, hangi yazılım paketinin en iyi olduğunu sormak genellikle değerlendirme hatasına yol açar.

 

         Asıl sorun; “Bir paket program için, önemli taraflar nelerdir?” sorusudur. Cevap, uygulama alanlarına göre değişir. Ancak bazı genel kriterler de vardır: Girdi kolaylığı sağlaması, programlamaya izin vererek işlem yapması, optimizasyon yeteneği, çıktı kolaylığı sağlaması, eğitim ve destek olanakları, girdi-çıktı istatistiksel veri analizi yeteneği ve genellikle maliyet faktörü.

 

         Sizin sorununuz için hangi özelliklerin önemli ve gerekli olduğunu bilmeniz ve yazılımla ilgili son kararınızı buna dayandırmanız en iyi sonucu verecektir.