A napjainkban létrehozott matematikai modellek jellegzetes vonása a bonyolultságuk, amely a modellezett objektumok bonyolultságából fakad. Ez egyre kidolgozottabb modellek létrehozásához vezet, valamint ahhoz, hogy egyszerre több, különböző tudományterületről származó elméletre kell támaszkodni, illetve modern számítási módszereket és számítástechnikát kell alkalmazni a szimulációs eredmények megszerzéséhez és elemzéséhez. Összetett objektumok esetén rendszerint lehetetlen az összes követelményt egyetlen modellben kielégíteni. Ehelyett ugyanannak az objektumnak a modelljeiből álló teljes spektrumot kell létrehozni (bizonyos esetekben egymásba „ágyazott” modellek hierarchikus halmazát), amelyek közül mindegyik a legjobban a rá bízott konkrét feladatok megoldására alkalmas.
A nagyszabású modellalkotás igénye szükségessé teszi olyan szabály- és megközelítésrendszer kidolgozását, amely csökkenti a modellfejlesztés költségeit, és mérsékli a később nehezen kiküszöbölhető hibák előfordulásának valószínűségét. Az ilyen szabályrendszert nevezhetjük a matematikai modellek létrehozásának technológiájának.
Bármely matematikai modell felépítésének folyamata a következő szakaszok sorozataként ábrázolható:
- a modellezendő objektum felmérése és a modellfejlesztés megbízási feltételeinek (a probléma tartalmi megfogalmazásának) elkészítése;
- a probléma fogalmi és matematikai megfogalmazása;
- a modell helyességének minőségi elemzése és ellenőrzése;
- a megoldási módszerek kiválasztása és indoklása;
- a megoldás megszerzése;
- a megoldási algoritmus kidolgozása és tulajdonságainak vizsgálata; az algoritmus szoftverként történő megvalósítása;
- a modell validálása;
- a felépített modell gyakorlati alkalmazása.
A matematikai modellek — különösen a numerikus módszereket és számítástechnikát alkalmazók — jelentős szellemi, pénzügyi és időbeli erőforrásokat igényelnek felépítésükhöz. Ezért egy új modell kifejlesztéséről szóló döntés csak akkor születik meg, ha nincs egyszerűbb módja a fennálló problémák megoldásának (például egy meglévő modell módosításával).
Egy új modell iránti igény tudományos kutatással összefüggésben merülhet fel, különösen különböző tudományterületek metszéspontjában. Miután megszületett a döntés egy új matematikai modell felépítéséről, a megbízó fél csapatot keres a munka elvégzésére. A projektcsapat rendszerint különböző hátterű szakembereket foglal magában: alkalmazott matematikusokat, a modellezett objektumot alaposan ismerő szakterületi szakértőket és szoftverfejlesztőket. Miután a modell létrehozásáról szóló döntés megerősítést nyert és a projektcsapat megalakult, kezdetét veszi a felmérési szakasz. Ennek a szakasznak az elsődleges célja a modellezési probléma tartalmi megfogalmazásának előkészítése. A probléma tartalmi megfogalmazása azon kulcskérdések köznyelven megfogalmazott listája a modellezett objektummal kapcsolatban, amelyekre a megbízó fél választ szeretne kapni.
Az új modellnek megválaszolandó kérdések listájának elkészítése gyakran önálló problémát jelent, amely speciális ismeretekkel és képességekkel rendelkező szakembereket igényel. Nekik nemcsak a modellezés tárgyát képező szakterületet kell alaposan ismerniük, és tisztában kell lenniük a modern számítási matematika és számítástechnika lehetőségeivel, hanem képesnek kell lenniük az emberekkel való kommunikációra is — hogy kiderítsék a gyakorlati szakértők véleményét, akiknek megérzésük van a modellezett objektumról és viselkedésének árnyalatairól. Ilyen szakemberek például a rendszerelemzők, a rendszertervezők és az operációkutatók.
Az összegyűjtött összes információ elemzése alapján a probléma megfogalmazójának úgy kell meghatároznia a leendő modellel szemben támasztott követelményeket, hogy azok egyrészt kielégítsék a megbízó felet, másrészt lehetővé tegyék a modell megadott határidőn és költségvetésen belüli megvalósítását. A rendszerelemzőknek (vagy operációkutatóknak) képesnek kell lenniük arra, hogy a modellezett objektumról szóló nagy mennyiségű, lazán strukturált és sokféle információból, valamint a megbízó fél különböző, homályosan megfogalmazott kívánságaiból és követelményeiből kiszűrjék a ténylegesen megvalósítható lényeget.
A modellezett objektumról összegyűjtött információk alapján a rendszerelemző (mérnök, operációkutató) a megbízó féllel együtt megfogalmazza a probléma tartalmi megfogalmazását, amely rendszerint nem végleges, és a modellfejlesztés során finomítható és bővíthető. Mindazonáltal a tartalmi megfogalmazás utólagos módosításainak és kiegészítéseinek kisebb, nem alapvető jellegűnek kell lenniük.
A felmérés során összegyűjtött teljes anyag — az objektumról felhalmozott ismeretek, a probléma tartalmi megfogalmazása, a modell megvalósítására és az eredmények bemutatására vonatkozó további követelmények — a modell tervezésére és fejlesztésére vonatkozó megbízási feltételek formájában kerül dokumentálásra. A megbízási feltételek jelentik a felmérési szakasz záró dokumentumát. Minél teljesebb a felmérés során az objektumról összegyűjtött információ, annál egyértelműbben fogalmazható meg a probléma tartalmi megfogalmazása, annál teljesebben vehető figyelembe a felhalmozott tapasztalat és tudás, és annál több nehézség kerülhető el a modellfejlesztés későbbi szakaszaiban.
A tartalmi megfogalmazástól eltérően a modellezési probléma fogalmi megfogalmazását jellemzően a projektcsapat tagjai készítik el a megbízó fél képviselőinek bevonása nélkül, az előző szakaszban kidolgozott megbízási feltételek alapján, a modellezett objektumról rendelkezésre álló ismeretek és a leendő modellel szemben támasztott követelmények felhasználásával. A modellezett objektumról rendelkezésre álló összes információ csapattagok általi elemzése és közös megvitatása lehetővé teszi az objektum fogalmi modelljének kialakítását — amely az egyes csapattagok által kidolgozott kognitív modellek szintézise.
A modellezési probléma fogalmi megfogalmazása a megbízó fél számára érdekes kulcskérdések listája, amelyeket az adott tudományágak fogalmaival fejeznek ki, valamint a modellezett objektum tulajdonságaira és viselkedésére vonatkozó hipotézisek halmaza.
A fogalmi megfogalmazás elkészítésének legnagyobb nehézségei a különböző tudományágak metszéspontjában elhelyezkedő modellek esetén merülnek fel. Az ugyanazon objektumok leírására használt hagyományok, fogalmak és nyelvek közötti különbségek igen komoly akadályokat jelentenek az interdiszciplináris modellek létrehozásában.
A befejezett fogalmi megfogalmazás lehetővé teszi a modellezési probléma matematikai megfogalmazásának elkészítését, amely a modellezett objektum viselkedését és tulajdonságait leíró matematikai összefüggések halmazát tartalmazza.
A modellezési probléma matematikai megfogalmazása a modellezett objektum viselkedését és tulajdonságait leíró matematikai összefüggések halmaza.
Egy matematikai modell akkor tekinthető helyesnek, ha minden ellenőrzési vizsgálatot pozitív eredménnyel elvégeztek: dimenzióanalízis, nagyságrendi ellenőrzés, a függőségek jellegének ellenőrzése, szélsőérték-elemzés, határfeltételek, fizikai jelentés és matematikai zártság. A matematikai megfogalmazás még a fogalminál is elvontabb, mivel az eredeti problémát tisztán matematikai problémára redukálja, amelyhez jól kidolgozott megoldási módszerek állnak rendelkezésre.
A matematikai modellek „magját” alkotó problémák megoldására szolgáló összes módszer analitikus és algoritmikus (numerikus) módszerekre osztható.
Megjegyzendő, hogy amikor analitikus megoldásokat használnak numerikus eredmények megszerzésére, gyakran szükség van a megfelelő, számítógépen megvalósított algoritmusok kidolgozására is.
Ebben az esetben azonban a kiinduló megoldás egy analitikus kifejezés (vagy kifejezések halmaza) formáját ölti. Az algoritmikus módszereken alapuló megoldások ezzel szemben alapvetően nem redukálhatók a kérdéses probléma pontos analitikus megoldásaira.
Egy adott kutatási módszer kiválasztása nagymértékben függ a projektcsapat tagjainak képzettségétől és tapasztalatától. Az analitikus módszerek kényelmesebbek az eredmények későbbi elemzéséhez, de csak viszonylag egyszerű modellekre alkalmazhatók. Ha a matematikai probléma (akár egyszerűsített megfogalmazásban is) analitikus megoldást enged meg, akkor az a megoldás kétségtelenül előnyösebb a numerikusnál.
Az algoritmikus módszerek a problémát olyan algoritmusra redukálják, amely számítástechnika segítségével számítási kísérletet hajt végre. Az ilyen kísérletben a modellezés pontossága nagymértékben függ a választott módszertől és annak paramétereitől. Az algoritmikus módszerek megvalósítása általában munkaigényesebb, és megköveteli, hogy a projektcsapat tagjai erős ismeretekkel rendelkezzenek a számítási matematikáról, széles körű specializált szoftverkönyvtárral, valamint jelentős számítási erőforrásokkal.
A numerikus módszerek csak jól definiált matematikai problémákra alkalmazhatók, ami jelentősen korlátozza felhasználásukat a matematikai modellezésben. Minden numerikus módszer közös jellemzője, hogy a matematikai problémát véges dimenziósra redukálja. Ezt leggyakrabban az eredeti probléma diszkretizálásával érik el — vagyis a folytonos argumentumú függvényeket diszkrét argumentumú függvényekkel helyettesítik. Bármely numerikus módszer alkalmazása elkerülhetetlenül hibát visz be az eredményekbe. Az eredeti probléma numerikus megoldása során fellépő hiba három fő összetevője különböztethető meg: a bemeneti adatok pontatlan megadásához kapcsolódó eredendő hiba (kezdeti és határfeltételek, egyenletegyütthatók és jobb oldalak); az eredeti probléma diszkrét analógjára való áttéréssel összefüggő diszkretizációs hiba; valamint a számítógépben ábrázolt számok véges pontosságával összefüggő kerekítési hiba.
Bármely konkrét számítási algoritmussal szemben természetes követelmény, hogy ennek a háromfajta hibának a nagyságrendje összhangban legyen egymással.
Egy numerikus, vagyis közelítő módszer mindig számítási algoritmusként valósul meg. Ezért mindazok a követelmények, amelyek az algoritmusokra általában vonatkoznak, a számítási algoritmusokra is érvényesek. Mindenekelőtt az algoritmusnak megvalósíthatónak kell lennie — a problémát elfogadható számítási időn belül kell megoldania. Az algoritmus egyik fontos jellemzője a pontossága — az a képesség, hogy véges számú műveletben adott pontossággal megoldást kapjunk az eredeti problémára.
Egy algoritmus futási ideje a megadott pontosság eléréséhez szükséges műveletek számától függ. Bármely matematikai problémára rendszerint több olyan algoritmus is javasolható, amely a kívánt pontosságú megoldást adja, de eltérő számú műveletben. Azokat az algoritmusokat, amelyek ugyanolyan pontosság eléréséhez kevesebb műveletet igényelnek, gazdaságosabbnak, vagyis hatékonyabbnak nevezzük.
Egy számítási algoritmus végrehajtása során minden számítási lépésnél bizonyos hiba keletkezik. Lépésről lépésre ez a hiba nőhet vagy nem nő (bizonyos esetekben akár csökkenhet is). Ha a hiba a számítás során korlátlanul nő, az algoritmust instabilnak, vagyis divergensnek nevezzük. Ellenkező esetben az algoritmust stabilnak, vagyis konvergensnek nevezzük.
A numerikus módszerek rendkívüli sokfélesége jelentősen megnehezíti egy adott módszer kiválasztását minden konkrét esetben. Mivel egy adott modell megvalósításához több alternatív algoritmikus módszer is használható, a konkrét módszer kiválasztásánál figyelembe veszik, hogy melyik felel meg leginkább a modellnek hatékonyság, stabilitás és az eredmények pontossága szempontjából, valamint hogy melyik a legismertebb a projektcsapat tagjai számára.
A kutatási, tervezési-mérnöki és irányítási feladatok széles körének megoldására szolgáló különféle szoftverrendszerek létrehozásában napjainkban a matematikai modellek általában alapul szolgálnak. Ez felveti annak szükségességét, hogy a modellt számítógépes programként valósítsák meg. A megbízható és hatékony szoftver fejlesztésének folyamata nem kevésbé bonyolult, mint a matematikai modellalkotás összes megelőző szakasza. E feladat sikeres megoldása csak a modern programozási nyelvek és technológiák magabiztos ismeretével, a számítási lehetőségek, a rendelkezésre álló szoftverek, valamint a számítási matematikai módszerek megvalósítási sajátosságainak ismeretével lehetséges.
A szoftverfejlesztés folyamata több szakaszra bontható:
- a szoftverfejlesztés megbízási feltételeinek elkészítése;
- a szoftverrendszer szerkezetének megtervezése;
- az algoritmus kódolása;
- tesztelés és hibakeresés;
- karbantartás és üzemeltetés.
A szoftverfejlesztés megbízási feltételei specifikáció formájában kerülnek dokumentálásra. A tervezési szakaszban kialakul a szoftverrendszer általános szerkezete. A teljes programot szoftvermodulokra bontják. Minden modulhoz funkcionális követelményeket fogalmaznak meg, és kidolgozzák az e funkciókat megvalósító algoritmust. Meghatározzák a modulok közötti kapcsolódási sémát — amelyet a szoftverrendszer adatáramlási diagramjának neveznek. Kidolgozzák a tesztelési tervet, és meghatározzák az egyes modulok, valamint a teljes rendszer teszteléséhez szükséges bemeneti adatokat.
A matematikai modelleket megvalósító programok többsége három fő részből áll:
- előfeldolgozó (a modell bemeneti adatainak előkészítése és ellenőrzése);
- megoldó (a probléma megoldása, a számítási kísérlet elvégzése);
- utófeldolgozó (az eredmények megjelenítése és bemutatása).
Jelentős figyelmet kell fordítani a modern programozási technológiák alkalmazására. Bármely ilyen technológia célja mindenekelőtt a szoftver megbízhatóságának javítása és a fejlesztők termelékenységének növelése. Minél komolyabb és nagyszabásúbb a szoftverprojekt, annál jelentősebbé válnak a modern programozási technológiák alkalmazásának kérdései. E kérdések elhanyagolása jelentős időbeli csúszásokhoz és a szoftverrendszer megbízhatóságának csökkenéséhez vezethet.
Egy adott problémaosztály megoldására szolgáló szoftverrendszer megbízhatóságának és rövid fejlesztési idejének biztosítása szempontjából kritikus tényező az egymással kompatibilis szoftvermodulokból álló jól kidolgozott könyvtár rendelkezésre állása. Egy program megbízhatóbb, és gyorsabban fejleszthető, ha a lehető legnagyobb mértékben szabványos szoftverkomponenseket használnak.
Egy matematikai modell megfelelősége az a mérték, amennyire a kidolgozott modellből kapott eredmények megfelelnek a kísérleti adatoknak vagy egy referenciaprobléma eredményeinek.
A modell validálása két célt szolgál:
- a fogalmi és matematikai megfogalmazási szakaszokban megfogalmazott hipotézishalmaz érvényességének ellenőrzése. A hipotézisek ellenőrzésére csak azután szabad rátérni, hogy a megoldási módszereket ellenőrizték, és a szoftver átfogó hibakeresésen, valamint az összes hiba és konfliktus kiküszöbölésén átesett;
- annak megállapítása, hogy az eredmények pontossága megfelel-e a megbízási feltételekben előírt pontosságnak.
A kidolgozott matematikai modell validálását a valós objektumra vonatkozó rendelkezésre álló kísérleti adatokkal, vagy más, korábban létrehozott és jól bevált modellek eredményeivel való összehasonlítás útján végzik. Az első esetben kísérlettel való összehasonlítás útján történő validálásról, a másodikban egy referenciaprobléma eredményeivel való összehasonlításról beszélünk.
A modellezés pontosságának kérdése a modellel szemben támasztott követelményektől és a modell rendeltetésétől függ. Figyelembe kell venni a kísérleti eredmények pontosságát vagy a referenciaprobléma-megfogalmazások sajátosságait is. A durva és nagyságrendi számításokra szánt modellek esetében a 10–15%-os pontosság kielégítőnek tekinthető. A vezérlő és megfigyelő rendszerekben használt modellek esetében a megkívánt pontosság 1–2%, vagy akár ennél is magasabb lehet.
A modell megfelelőségével kapcsolatos problémák felmerülésekor a korrekciót a modellezési és a kísérleti eredmények közötti eltérés lehetséges okainak szisztematikus elemzésével kell kezdeni. Először is meg kell vizsgálni a modellt, és fel kell mérni annak megfelelőségi fokát a változó paraméterek (kezdeti és határfeltételek, a modellezett objektumok tulajdonságait jellemző paraméterek) különböző értékei mellett. Ha a modell a kutató számára érdekes paramétertartományban nem megfelelő, megpróbálhatjuk pontosítani a modell konstansainak és kezdeti paramétereinek értékeit. Ha ez sem hoz pozitív eredményt, akkor a modell javításának egyetlen fennmaradó módja az elfogadott hipotézisrendszer felülvizsgálata. Ez a döntés valójában a modellfejlesztési folyamat második szakaszához való visszatérést jelenti, és nemcsak a matematikai megfogalmazás jelentős megváltoztatásával járhat, hanem a megoldási módszerekével is (például az analitikus módszerekről a numerikus módszerekre való áttéréssel), a szoftver teljes átdolgozásával, valamint a modell validálásának új ciklusával. Ezért az elfogadott hipotézisrendszer felülvizsgálatáról szóló döntést alaposan mérlegelni kell, és csak akkor szabad meghozni, ha a modell megfelelőségének javítására szolgáló összes egyéb lehetőséget kimerítették.
A leíró modellek célja egy adott jelenség vagy folyamat vizsgált paramétereinek jellemzése, valamint az e paraméterek változását szabályozó törvényszerűségek vizsgálata. Ezek a modellek felhasználhatók a vizsgált objektum tulajdonságainak és viselkedésének tanulmányozására a bemeneti adatok és üzemi feltételek különböző kombinációi mellett; optimalizálási modellek felépítésében; valamint összetett rendszerek szimulációs modelljeinek felépítésében.
A kutatási célokra kifejlesztett modelleket jellemzően nem juttatják el a külső felhasználók számára terjesztésre szánt szoftverrendszerek szintjére. Élettartamuk általában az adott terület kutatási programjának időtartamára korlátozódik. Ezeket a modelleket feltáró jelleg, új számítási eljárások és algoritmusok alkalmazása, valamint kidolgozatlan felhasználói felület jellemzi.
A külső felhasználók számára történő későbbi terjesztésre vagy kereskedelmi forgalomba hozatalra szánt modellek és az azokra épülő szoftverrendszerek jól kidolgozott, felhasználóbarát felülettel, valamint erőteljes előfeldolgozókkal és utófeldolgozókkal rendelkeznek. Ezek a modellek általában bevált és jól megalapozott megfogalmazásokon és számítási eljárásokon alapulnak. Fontos azonban megjegyezni, hogy az ilyen modelleket csak egy egyértelműen meghatározott problémaosztály megoldására tervezték.
A modell tervezett alkalmazásától függetlenül a fejlesztőcsapat köteles a modellezési eredmények minőségi és mennyiségi elemzését egyaránt elvégezni.
A modellel végzett munka révén a fejlesztők a modellezett objektumhoz kapcsolódó szakterület szakértőivé válnak. Kellően alapos ismereteket szereznek az objektum tulajdonságairól, és képesek annak viselkedését előre jelezni és magyarázni.
A modellezési eredmények átfogó elemzése ezért lehetővé teszi:
- a vizsgált objektum módosítását, optimális jellemzőinek megtalálását, vagy legalábbis viselkedésének és tulajdonságainak lehető legjobb figyelembevételét;
- a modell alkalmazhatósági tartományának lehatárolását;
- a matematikai megfogalmazási szakaszban elfogadott hipotézisek érvényességének ellenőrzését, valamint annak felmérését, hogy a modell egyszerűsíthető-e a hatékonyságának javítása érdekében a szükséges pontosság megőrzése mellett;
- annak meghatározását, hogy a modellt milyen irányban célszerű továbbfejleszteni.