Matematiksel Modelleme Süreci

Bugün oluşturulan matematiksel modellerin ayırt edici bir özelliği, modellenen nesnelerin karmaşıklığından kaynaklanan karmaşıklıklarıdır. Bu durum, giderek daha ayrıntılı modellerin ortaya çıkmasına ve farklı bilgi alanlarından birden fazla teoriden aynı anda yararlanma gerekliliğine, ayrıca simülasyon sonuçlarını elde etmek ve analiz etmek için modern hesaplama yöntemlerinin ve bilgi işlem teknolojisinin kullanılmasına yol açar. Karmaşık nesneler söz konusu olduğunda, tüm gereksinimlerin tek bir model içinde karşılanması genellikle mümkün değildir. Bunun yerine, aynı nesnenin tüm bir model yelpazesinin (bazı durumlarda hiyerarşik bir 〈iç içe geçmiş〉 modeller kümesinin) oluşturulması gerekir; bunların her biri kendisine verilen belirli görevleri çözmeye en uygun olanıdır.

Büyük ölçekli model oluşturma gerekliliği, model geliştirme maliyetini düşürecek ve daha sonra ortadan kaldırılması zor hataların olasılığını azaltacak bir kurallar ve yaklaşımlar kümesinin geliştirilmesini gerektirir. Bu tür bir kurallar kümesine matematiksel model oluşturma teknolojisi denebilir.

Herhangi bir matematiksel modelin oluşturulma süreci bir aşamalar dizisi olarak temsil edilebilir:

  1. Modellenecek nesnenin incelenmesi ve model geliştirme için görev tanımının (içeriksel problem ifadesinin) hazırlanması;
  2. Problemin kavramsal ve matematiksel formülasyonu;
  3. Modelin doğruluğunun niteliksel analizi ve doğrulanması;
  4. Çözüm yöntemlerinin seçilmesi ve gerekçelendirilmesi;
  5. Çözümün elde edilmesi;
  6. Çözüm algoritmasının geliştirilmesi ve özelliklerinin incelenmesi; algoritmanın yazılım olarak uygulanması;
  7. Modelin doğrulanması;
  8. Oluşturulan modelin pratik uygulaması.

Matematiksel modeller —özellikle sayısal yöntemler ve bilgi işlem teknolojisi kullananlar— oluşturulmaları için önemli düzeyde entelektüel, finansal ve zaman kaynağı gerektirir. Bu nedenle yeni bir model geliştirme kararı, ele alınan problemleri çözmek için daha basit bir yol bulunmadığında (örneğin mevcut bir modeli değiştirerek) alınır.

Yeni bir modele olan gereksinim, özellikle farklı bilgi alanlarının kesişim noktasında olmak üzere bilimsel araştırmalarla bağlantılı olarak ortaya çıkabilir. Yeni bir matematiksel model oluşturma kararı verildikten sonra, işi veren taraf çalışmayı gerçekleştirecek bir ekip arar. Kural olarak proje ekibi farklı uzmanlık alanlarından uzmanları içerir: uygulamalı matematikçiler, modellenen nesneyi çok iyi tanıyan alan uzmanları ve yazılım geliştiricileri. Model oluşturma kararı onaylandıktan ve proje ekibi kurulduktan sonra inceleme aşaması başlar. Bu aşamanın temel amacı, modelleme probleminin içeriksel ifadesini hazırlamaktır. İçeriksel problem ifadesi, işi veren tarafın yanıtlanmasını istediği, sade bir dille ifade edilmiş, modellenen nesneye ilişkin temel soruların bir listesidir.

Yeni modelin yanıtlaması gereken soruların listesinin hazırlanması, çoğunlukla belirli bilgi ve becerilere sahip uzmanlar gerektiren, kendi başına bir problem oluşturur. Bu uzmanların yalnızca modelleme çalışmasının konu alanını derinlemesine anlamaları ve modern hesaplamalı matematik ile bilgi işlem teknolojisinin olanaklarından haberdar olmaları değil, aynı zamanda insanlarla iletişim kurabilmeleri de gerekir —yani modellenen nesneye ve davranışının inceliklerine ilişkin sezgisel bir 〈his〉 taşıyan pratik uzmanların bilgisini ortaya çıkarabilmeleri gerekir. Bu tür uzmanlar arasında, örneğin, sistem analistleri, sistem mühendisleri ve yöneylem araştırmacıları bulunur.

Toplanan tüm bilgilerin analizine dayanarak, problemi formüle eden kişi, bir yandan işi veren tarafı tatmin edecek, diğer yandan da modelin verilen zaman ve bütçe çerçevesinde uygulanmasına imkân verecek şekilde gelecekteki model için gereksinimleri tanımlamalıdır. Sistem analistleri (veya yöneylem araştırmacıları), modellenen nesne hakkındaki gevşek yapılandırılmış ve çeşitli büyük miktarda bilgiden ve işi veren tarafın belirsiz bir biçimde dile getirdiği çeşitli istek ve gereksinimlerinden, gerçekten uygulanabilecek özü çıkarma yeteneğine sahip olmalıdır.

Modellenen nesne hakkında toplanan bilgilere dayanarak, sistem analisti (mühendis, yöneylem araştırmacısı), işi veren tarafla birlikte, kural olarak nihai olmayan ve model geliştirme sürecinde iyileştirilip ayrıntılandırılabilecek içeriksel problem ifadesini formüle eder. Ancak içeriksel ifadede yapılacak sonraki tüm düzenleme ve değişiklikler küçük, temel nitelikte olmayan bir karakterde olmalıdır.

İnceleme sırasında toplanan tüm materyal —nesne hakkında biriken bilgi, içeriksel problem ifadesi, modelin uygulanması ve sonuçların sunumu için ek gereksinimler— modelin tasarımı ve geliştirilmesi için görev tanımı biçiminde belgelendirilir. Görev tanımı, inceleme aşamasının sonuç belgesidir. İnceleme sırasında nesne hakkında toplanan bilgi ne kadar eksiksiz olursa, içeriksel problem o kadar açık ifade edilebilir, biriken deneyim ve bilgi o kadar tam olarak hesaba katılabilir ve model geliştirmenin sonraki aşamalarında o kadar çok zorluktan kaçınılabilir.

İçeriksel formülasyondan farklı olarak, modelleme probleminin kavramsal formülasyonu genellikle proje ekibi üyeleri tarafından, işi veren tarafın temsilcilerinin katılımı olmadan, önceki aşamada geliştirilen görev tanımına dayanarak ve modellenen nesne hakkında mevcut bilgi ile gelecekteki model için gereksinimler kullanılarak hazırlanır. Ekip üyelerinin modellenen nesne hakkındaki tüm mevcut bilgileri analiz etmesi ve birlikte tartışması, nesnenin kavramsal bir modelinin —her ekip üyesinin geliştirdiği bilişsel modellerin bir sentezinin— oluşturulmasını mümkün kılar.

Modelleme probleminin kavramsal formülasyonu, işi veren tarafın ilgilendiği temel soruların belirli disiplinlerin terimleriyle ifade edilmiş bir listesi ile modellenen nesnenin özellikleri ve davranışına ilişkin bir hipotezler kümesinden oluşur.

Kavramsal ifadenin formüle edilmesinde en büyük zorluklar, farklı disiplinlerin kesişiminde bulunan modellerde ortaya çıkar. Aynı nesneleri tanımlamak için kullanılan gelenekler, kavramlar ve dillerdeki farklılıklar, disiplinler arası modellerin oluşturulmasında çok ciddi engeller oluşturur.

Tamamlanmış bir kavramsal formülasyon, modelleme probleminin matematiksel formülasyonunun oluşturulmasını mümkün kılar; bu formülasyon, modellenen nesnenin davranışını ve özelliklerini tanımlayan bir matematiksel ilişkiler kümesini içerir.

Modelleme probleminin matematiksel formülasyonu, modellenen nesnenin davranışını ve özelliklerini tanımlayan matematiksel ilişkiler kümesidir.

Bir matematiksel model, şu doğrulama kontrollerinin tümü olumlu sonuçla gerçekleştirilmişse doğru kabul edilir: boyut analizi, büyüklük mertebesi kontrolleri, bağımlılıkların doğasına ilişkin kontroller, uç durum analizi, sınır koşulları, fiziksel anlam ve matematiksel kapanış. Matematiksel formülasyon, kavramsal formülasyondan daha da soyuttur, çünkü özgün problemi, iyi geliştirilmiş çözüm yöntemlerinin bulunduğu tamamen matematiksel bir probleme indirger.

Matematiksel modellerin 〈çekirdeğini〉 oluşturan problemlerin çözümü için kullanılan tüm yöntemler, analitik ve algoritmik (sayısal) olarak ikiye ayrılabilir.

Sayısal sonuçlar elde etmek için analitik çözümler kullanıldığında, bilgisayarlarda uygulanan ilgili algoritmaların geliştirilmesinin de sık sık gerekli olduğu belirtilmelidir.

Ancak bu durumda başlangıç çözümü analitik bir ifade (veya bir ifadeler kümesi) biçimini alır. Algoritmik yöntemlere dayanan çözümler ise, ele alınan problemin tam analitik çözümlerine temelde indirgenemez.

Belirli bir araştırma yönteminin seçimi büyük ölçüde proje ekibi üyelerinin yeterlilik ve deneyimine bağlıdır. Analitik yöntemler sonuçların sonraki analizi için daha uygundur, ancak yalnızca nispeten basit modellere uygulanabilir. Matematiksel problem (basitleştirilmiş bir formülasyonda bile) analitik bir çözüme imkân veriyorsa, bu çözüm şüphesiz sayısal bir çözüme tercih edilir.

Algoritmik yöntemler problemi, bilgi işlem teknolojisi kullanılarak bir hesaplama deneyi gerçekleştiren bir algoritmaya indirger. Böyle bir deneyde modellemenin doğruluğu, seçilen yönteme ve onun parametrelerine kritik biçimde bağlıdır. Algoritmik yöntemlerin uygulanması genellikle daha fazla emek gerektirir ve proje ekibi üyelerinin hesaplamalı matematik konusunda güçlü bilgiye, kapsamlı bir özel yazılım kütüphanesine ve güçlü hesaplama kaynaklarına sahip olmasını gerektirir.

Sayısal yöntemler yalnızca iyi tanımlanmış matematiksel problemlere uygulanabilir, bu da onların matematiksel modellemede kullanımını önemli ölçüde sınırlar. Tüm sayısal yöntemlerin ortak noktası, matematiksel problemin sonlu boyutlu bir probleme indirgenmesidir. Bu, en çok özgün problemin ayrıklaştırılması yoluyla —yani sürekli bir değişkenin fonksiyonlarının ayrık bir değişkenin fonksiyonlarıyla değiştirilmesiyle— gerçekleştirilir. Herhangi bir sayısal yöntemin uygulanması, sonuçlara kaçınılmaz olarak hata katar. Özgün problemin sayısal çözümünde ortaya çıkan hatanın üç ana bileşeni ayırt edilebilir: girdi verilerinin (başlangıç ve sınır koşulları, denklem katsayıları ve sağ taraf ifadeleri) hassas olmayan biçimde belirtilmesiyle ilişkili doğal hata; özgün problemin ayrık bir benzerine geçişle ilişkili ayrıklaştırma hatası; ve bilgisayarda sayıların sonlu duyarlılıkla temsil edilmesiyle ilişkili yuvarlama hatası.

Herhangi bir belirli hesaplama algoritması için doğal bir gereksinim, bu üç hata türünün büyüklük mertebelerinin birbiriyle uyumlu olmasıdır.

Sayısal, ya da yaklaşık, bir yöntem her zaman bir hesaplama algoritması olarak uygulanır. Bu nedenle, genel olarak algoritmalar için geçerli olan tüm gereksinimler hesaplama algoritmaları için de geçerlidir. Öncelikle bir algoritma uygulanabilir olmalıdır —yani problemi kabul edilebilir bir hesaplama süresi içinde çözmelidir. Bir algoritmanın önemli bir özelliği doğruluğudur —yani özgün probleme sonlu sayıda işlemde verilen bir hassasiyette çözüm elde edebilme yeteneğidir.

Bir algoritmanın çalışma süresi, belirtilen doğruluğa ulaşmak için gereken işlem sayısına bağlıdır. Herhangi bir matematiksel problem için, kural olarak, istenen doğrulukta çözüm veren, ancak farklı sayıda işlem gerektiren birden fazla algoritma önerilebilir. Aynı doğruluğa ulaşmak için daha az işlem gerektiren algoritmalar daha ekonomik, ya da daha verimli, olarak adlandırılır.

Bir hesaplama algoritmasının yürütülmesi sırasında, her hesaplama adımında belirli bir hata ortaya çıkar. Bu hata adımdan adıma büyüyebilir veya büyümeyebilir (ve bazı durumlarda azalabilir bile). Eğer hata hesaplama sırasında sınırsız biçimde büyürse, algoritma kararsız, ya da ıraksak, olarak nitelendirilir. Aksi halde algoritma kararlı, ya da yakınsak, olarak nitelendirilir.

Sayısal yöntemlerin muazzam çeşitliliği, her belirli durumda belirli bir yöntemin seçilmesini önemli ölçüde zorlaştırır. Belirli bir modelin uygulanması için birden fazla alternatif algoritmik yöntem kullanılabileceğinden, belirli bir yöntemin seçimi, hangisinin verimlilik, kararlılık ve sonuçların doğruluğu açısından modele en uygun olduğu ve proje ekibi üyelerine en tanıdık olduğu göz önünde bulundurularak yapılır.

Geniş bir araştırma, tasarım-mühendislik ve yönetim görevleri yelpazesini çözmek için kullanılan çeşitli yazılım sistemlerinin oluşturulmasında, matematiksel modeller bugün genellikle temel oluşturur. Bu durum, bir modelin bilgisayar programı olarak uygulanması gerekliliğini doğurur. Güvenilir ve verimli yazılım geliştirme süreci, matematiksel model oluşturmanın önceki tüm aşamalarından daha az karmaşık değildir. Bu görevin başarıyla çözülmesi, ancak modern programlama dilleri ve teknolojilerine güvenli bir şekilde hâkim olunması, bilgi işlem olanakları ve mevcut yazılımlar hakkında bilgi sahibi olunması ve hesaplamalı matematik yöntemlerinin uygulanmasının özelliklerinin bilinmesiyle mümkündür.

Yazılım geliştirme süreci birkaç aşamaya ayrılabilir:

  • yazılım geliştirme için görev tanımının hazırlanması;
  • yazılım sisteminin yapısının tasarlanması;
  • algoritmanın kodlanması;
  • test edilmesi ve hata ayıklama;
  • bakım ve işletim.

Yazılım geliştirme için görev tanımı bir teknik şartname biçiminde belgelendirilir. Tasarım aşamasında yazılım sisteminin genel yapısı oluşturulur. Programın tamamı yazılım modüllerine bölünür. Her modül için işlevsel gereksinimler formüle edilir ve bu işlevleri gerçekleştiren bir algoritma geliştirilir. Modüller arasındaki etkileşim şeması —yazılım sisteminin veri akış diyagramı olarak bilinen— tanımlanır. Bir test planı geliştirilir ve tek tek modüllerin ve sistemin bütününün test edilmesi için girdi verileri belirlenir.

Matematiksel modelleri uygulayan programların çoğu üç ana bölümden oluşur:

  • bir ön işlemci (modelin girdi verilerinin hazırlanması ve doğrulanması);
  • bir çözücü (problemin çözülmesi, hesaplama deneyinin gerçekleştirilmesi);
  • bir son işlemci (sonuçların görselleştirilmesi ve sunulması).

Modern programlama teknolojilerinin benimsenmesine büyük önem verilmelidir. Bu türden herhangi bir teknolojinin amacı, her şeyden önce, yazılım güvenilirliğini artırmak ve geliştirici üretkenliğini yükseltmektir. Yazılım projesi ne kadar ciddi ve büyük ölçekli olursa, modern programlama teknolojilerinin uygulanmasına ilişkin sorular o kadar önem kazanır. Bu konuların ihmal edilmesi, önemli zaman aşımlarına ve yazılım sisteminin güvenilirliğinin düşmesine yol açabilir.

Belirli bir problem sınıfını çözmek için bir yazılım sisteminin güvenilirliğini ve kısa geliştirme süresini sağlamada kritik bir etken, birbirine uyumlu yazılım modüllerinden oluşan iyi geliştirilmiş bir kütüphanenin bulunmasıdır. Standart yazılım bileşenleri mümkün olduğunca geniş ölçüde kullanıldığında bir program daha güvenilir olur ve daha hızlı geliştirilebilir.

Bir matematiksel modelin yeterliliği, geliştirilen modelden elde edilen sonuçların deneysel verilere veya bir referans problemin sonuçlarına ne ölçüde karşılık geldiğidir.

Model doğrulaması iki amaca hizmet eder:

  • kavramsal ve matematiksel formülasyon aşamalarında oluşturulan hipotezler kümesinin geçerliliğini doğrulamak. Hipotez doğrulamasına, ancak çözüm yöntemleri doğrulandıktan ve yazılım kapsamlı hata ayıklamadan geçip tüm hata ve çakışmalar ortadan kaldırıldıktan sonra geçilmelidir;
  • sonuçların doğruluğunun görev tanımında belirtilen doğrulukla uyumlu olduğunu tespit etmek.

Geliştirilen matematiksel modelin doğrulanması, gerçek nesneye ilişkin mevcut deneysel verilerle veya daha önce oluşturulmuş ve kendini kanıtlamış diğer modellerin sonuçlarıyla karşılaştırılarak gerçekleştirilir. Birinci durumda deneyle karşılaştırma yoluyla doğrulamadan, ikinci durumda ise referans problemin sonuçlarıyla karşılaştırmadan söz edilir.

Modelleme doğruluğu sorunu, modele konulan gereksinimlere ve modelin amacına bağlıdır. Deneysel sonuçların doğruluğu veya referans problem formülasyonlarının özellikleri de dikkate alınmalıdır. Kaba ve büyüklük mertebesi hesaplamaları için tasarlanan modellerde %10–15 doğruluk yeterli sayılır. Kontrol ve izleme sistemlerinde kullanılan modellerde ise gereken doğruluk %1–2 veya daha yüksek olabilir.

Model yeterliliğiyle ilgili sorunlar ortaya çıktığında, düzeltmeye modelleme sonuçları ile deneysel sonuçlar arasındaki tutarsızlığın olası tüm nedenlerinin sistematik bir analiziyle başlanmalıdır. Öncelikle model incelenmeli ve değişken parametrelerin (başlangıç ve sınır koşulları, modellenen nesnelerin özelliklerini karakterize eden parametreler) farklı değerleri için yeterlilik derecesi değerlendirilmelidir. Model, araştırmacının ilgilendiği parametre aralığında yetersizse, modelin sabitlerinin ve başlangıç parametrelerinin değerleri iyileştirilmeye çalışılabilir. Bu da olumlu sonuç vermezse, modeli geliştirmek için kalan tek yol, benimsenen hipotezler sistemini yeniden gözden geçirmektir. Bu karar, fiilen model geliştirme sürecinin ikinci aşamasına geri dönmek anlamına gelir ve yalnızca matematiksel formülasyonda değil, aynı zamanda çözüm yöntemlerinde de (örneğin analitikten sayısal yöntemlere geçiş) büyük bir değişikliği, yazılımın tamamen yeniden yapılmasını ve yeni bir model doğrulama döngüsünü gerektirebilir. Bu nedenle, benimsenen hipotezler sistemini yeniden gözden geçirme kararı iyice tartılmalı ve model yeterliliğini artırmanın diğer tüm yolları tükendiğinde alınmalıdır.

Betimsel modeller, belirli bir olgu veya süreçte incelenen parametreleri karakterize etmek ve bu parametrelerdeki değişimleri yöneten örüntüleri araştırmak için tasarlanmıştır. Bu modeller, incelenen nesnenin özelliklerini ve davranışını çeşitli girdi verisi ve işletim koşulu birleşimleri altında incelemek; optimizasyon modelleri oluşturmak; ve karmaşık sistemlerin simülasyon modellerini kurmak için kullanılabilir.

Araştırma amacıyla geliştirilen modeller genellikle dış kullanıcılara dağıtılmak üzere tasarlanan yazılım sistemleri düzeyine getirilmez. Bunların ömrü genellikle ilgili alandaki araştırma programının süresiyle sınırlıdır. Bu modeller keşifsel bir nitelik, yeni hesaplama prosedürleri ve algoritmalarının kullanımı ve gelişmemiş bir kullanıcı arayüzüyle karakterize edilir.

Dış kullanıcılara dağıtılmak veya ticari olarak piyasaya sürülmek üzere tasarlanan modeller ve bunlar üzerine kurulan yazılım sistemleri, iyi geliştirilmiş, kullanıcı dostu bir arayüze ve güçlü ön işlemcilere ve son işlemcilere sahiptir. Bu modeller genellikle kanıtlanmış ve iyi kurulmuş formülasyonlara ve hesaplama prosedürlerine dayanır. Ancak bu tür modellerin yalnızca açıkça tanımlanmış bir problem sınıfını çözmek için tasarlandığı unutulmamalıdır.

Modelin amaçlanan uygulamasından bağımsız olarak, geliştirme ekibi modelleme sonuçlarının niteliksel ve niceliksel analizini gerçekleştirmekle yükümlüdür.

Modelle çalışarak geliştiriciler, modellenen nesneyle ilişkili alanda uzman hâline gelirler. Nesnenin özelliklerine ilişkin yeterince kapsamlı bir anlayış geliştirir ve davranışını tahmin edip açıklayabilirler.

Bu nedenle modelleme sonuçlarının kapsamlı bir analizi şunları mümkün kılar:

  • ele alınan nesneyi değiştirmek, en iyi özelliklerini bulmak veya en azından davranışını ve özelliklerini mümkün olan en iyi şekilde hesaba katmak;
  • modelin uygulanabilirlik alanını sınırlandırmak;
  • matematiksel formülasyon aşamasında benimsenen hipotezlerin geçerliliğini doğrulamak ve gereken doğruluğu korurken modelin verimliliğini artırmak için basitleştirilmesi olasılığını değerlendirmek;
  • modelin daha ileriye nasıl geliştirilmesi gerektiğine yönelik yönü belirtmek.