Процесът на математическото моделиране

Отличителна черта на математическите модели, създавани днес, е тяхната сложност, произтичаща от сложността на моделираните обекти. Това води до все по-усложняващи се модели и до необходимост едновременно да се използват няколко теории от различни области на знанието, както и съвременни изчислителни методи и изчислителна техника за получаване и анализ на резултатите от симулацията. При сложните обекти обикновено е невъзможно да се удовлетворят всички изисквания в рамките на един-единствен модел. Вместо това трябва да се създаде цял спектър от модели на един и същ обект (в някои случаи — йерархичен набор от „вложени” модели), всеки от които е най-подходящ за решаване на конкретните задачи, поставени пред него.

Необходимостта от мащабно изграждане на модели налага разработването на набор от правила и подходи, които биха намалили разходите за разработка на модели и биха намалили вероятността от грешки, трудни за отстраняване по-късно. Такъв набор от правила може да се нарече технология за създаване на математически модели.

Процесът на изграждане на всеки математически модел може да бъде представен като последователност от етапи:

  1. Обследване на обекта, който ще се моделира, и подготовка на техническо задание за разработка на модела (съдържателна постановка на проблема);
  2. Концептуална и математическа формулировка на проблема;
  3. Качествен анализ и проверка на коректността на модела;
  4. Избор и обосновка на методите за решаване;
  5. Получаване на решението;
  6. Разработка на алгоритъма за решение и изследване на неговите свойства; реализация на алгоритъма като софтуер;
  7. Валидиране на модела;
  8. Практическо приложение на изградения модел.

Математическите модели — особено тези, използващи числени методи и изчислителна техника — изискват значителни интелектуални, финансови и времеви ресурси за своето изграждане. Затова решението за разработка на нов модел се взема само когато няма по-прости начини за решаване на разглежданите проблеми (например чрез модифициране на съществуващ модел).

Необходимостта от нов модел може да възникне във връзка с научни изследвания, по-специално на пресечната точка на различни области на знанието. След като бъде взето решението за изграждане на нов математически модел, възложителят търси екип, който да извърши работата. По правило проектният екип включва специалисти с различен профил: приложни математици, експерти в предметната област, добре запознати с моделирания обект, и разработчици на софтуер. След като решението за създаване на модела бъде потвърдено и проектният екип бъде сформиран, започва фазата на обследването. Основната цел на тази фаза е подготовката на съдържателна постановка на задачата за моделиране. Съдържателната постановка на проблема представлява списък от основните въпроси относно моделирания обект, изразени на общ език, на които възложителят желае да получи отговор.

Подготовката на списъка с въпроси, на които новият модел трябва да отговори, често сама по себе си е проблем, изискващ специалисти със специфични знания и умения. Те трябва не само да имат задълбочено разбиране на предметната област на моделирането и да са запознати с възможностите на съвременната изчислителна математика и изчислителна техника, но и да умеят да общуват с хора — да успяват да „извлекат” от практическите специалисти интуитивното им усещане за моделирания обект и нюансите на неговото поведение. Такива специалисти са например системните анализатори, системните инженери и специалистите по операционни изследвания.

Въз основа на анализ на цялата събрана информация, лицето, формулиращо проблема, трябва да определи изискванията към бъдещия модел така, че от една страна да удовлетворяват възложителя, а от друга — да позволяват моделът да бъде реализиран в рамките на зададения срок и бюджет. Системните анализатори (или специалистите по операционни изследвания) трябва да притежават способността от голям обем слабо структурирана и разнородна информация за моделирания обект и от различните смътно изразени желания и изисквания на възложителя да отделят същественото, което действително може да бъде реализирано.

Въз основа на събраната информация за моделирания обект системният анализатор (инженер, специалист по операционни изследвания) заедно с възложителя формулира съдържателната постановка на проблема, която по правило не е окончателна и може да бъде уточнявана и доразработвана в хода на разработката на модела. Всички последващи корекции и промени в съдържателната постановка обаче трябва да бъдат от несъществен, непринципен характер.

Целият материал, събран по време на обследването — натрупаните знания за обекта, съдържателната постановка на проблема, допълнителните изисквания към реализацията на модела и представянето на резултатите — се документира под формата на техническо задание за проектиране и разработка на модела. Техническото задание представлява заключителният документ на фазата на обследването. Колкото по-пълна е информацията за обекта, събрана по време на обследването, толкова по-ясно може да бъде формулиран съдържателният проблем, толкова по-пълно могат да бъдат отчетени натрупаният опит и знания и толкова повече трудности на следващите етапи от разработката на модела могат да бъдат избегнати.

За разлика от съдържателната формулировка, концептуалната формулировка на задачата за моделиране обикновено се подготвя от членовете на проектния екип без участието на представители на възложителя, въз основа на техническото задание, разработено в предходната фаза, и с използване на наличните знания за моделирания обект и изискванията към бъдещия модел. Анализът и съвместното обсъждане на цялата налична информация за моделирания обект от членовете на екипа позволяват да се формира концептуален модел на обекта — синтез на познавателните модели, разработени от всеки член на екипа.

Концептуалната формулировка на задачата за моделиране представлява списък от основните въпроси, представляващи интерес за възложителя, изразени с термините на конкретни дисциплини, заедно с набор от хипотези относно свойствата и поведението на моделирания обект.

Най-големите трудности при формулирането на концептуалната постановка възникват при модели, намиращи се на пресечната точка на различни дисциплини. Различията в традициите, понятията и езиците, използвани за описание на едни и същи обекти, представляват много сериозни препятствия при създаването на междудисциплинарни модели.

Завършената концептуална формулировка позволява да се изгради математическата формулировка на задачата за моделиране, включваща набор от математически съотношения, описващи поведението и свойствата на моделирания обект.

Математическата формулировка на задачата за моделиране представлява набор от математически съотношения, описващи поведението и свойствата на моделирания обект.

Математическият модел се счита за коректен, ако всички проверки за верификация са проведени с положителен резултат: анализ на размерностите, проверка на порядъка на величините, проверка на характера на зависимостите, анализ на екстремни случаи, гранични условия, физически смисъл и математическа затвореност. Математическата формулировка е дори по-абстрактна от концептуалната, тъй като свежда изходния проблем до чисто математическа задача, за която съществуват добре разработени методи за решаване.

Всички методи за решаване на задачите, съставляващи „ядрото” на математическите модели, могат да бъдат разделени на аналитични и алгоритмични (числени).

Следва да се отбележи, че когато аналитичните решения се използват за получаване на числени резултати, често е необходимо и разработването на съответни алгоритми, реализирани на компютър.

В този случай обаче изходното решение има форма на аналитичен израз (или набор от изрази). Решенията, базирани на алгоритмични методи, за разлика от това, по принцип не могат да бъдат сведени до точни аналитични решения на разглежданата задача.

Изборът на конкретен изследователски метод зависи в значителна степен от квалификацията и опита на членовете на проектния екип. Аналитичните методи са по-удобни за последващ анализ на резултатите, но са приложими само за сравнително прости модели. Ако математическата задача (дори в опростена постановка) допуска аналитично решение, то то несъмнено е за предпочитане пред числено решение.

Алгоритмичните методи свеждат задачата до алгоритъм, който извършва изчислителен експеримент с използване на изчислителна техника. Точността на моделирането в такъв експеримент зависи критично от избрания метод и неговите параметри. Алгоритмичните методи обикновено са по-трудоемки за реализация и изискват членовете на проектния екип да имат сериозни знания в областта на изчислителната математика, обширна библиотека от специализиран софтуер и мощни изчислителни ресурси.

Числените методи са приложими само за коректно поставени математически задачи, което съществено ограничава тяхното използване в математическото моделиране. Общо за всички числени методи е свеждането на математическата задача до крайномерна задача. Това най-често се постига чрез дискретизация на изходната задача — тоест чрез заместване на функции на непрекъснат аргумент с функции на дискретен аргумент. Прилагането на всеки числен метод неизбежно внася грешка в резултатите. Могат да се разграничат три основни компонента на грешката, възникваща при числено решаване на изходната задача: присъщата грешка, свързана с неточното задаване на входните данни (начални и гранични условия, коефициенти на уравненията и десни части); грешката от дискретизация, свързана с прехода към дискретен аналог на изходната задача; и грешката от закръгляване, свързана с крайната точност на представяне на числата в компютъра.

Естествено изискване към всеки конкретен изчислителен алгоритъм е съгласуваност между порядъците на тези три вида грешки.

Числовият, или приближен, метод винаги се реализира като изчислителен алгоритъм. Затова всички изисквания, приложими към алгоритмите като цяло, важат и за изчислителните алгоритми. На първо място, алгоритъмът трябва да бъде изпълним — да решава задачата в приемливо изчислително време. Важна характеристика на алгоритъма е неговата точност — способността да се получи решение на изходната задача с дадена точност в краен брой операции.

Времето за изпълнение на алгоритъма зависи от броя на операциите, необходими за постигане на зададената точност. За всяка математическа задача по правило могат да бъдат предложени няколко алгоритъма, даващи решение с желаната точност, но с различен брой операции. Алгоритмите, изискващи по-малко операции за постигане на същата точност, се наричат по-икономични, или по-ефикасни.

По време на изпълнението на изчислителен алгоритъм на всяка изчислителна стъпка възниква определена грешка. От стъпка на стъпка тази грешка може да нараства или да не нараства (а в някои случаи дори да намалява). Ако грешката нараства неограничено по време на изчислението, алгоритъмът се нарича неустойчив, или дивергентен. В противен случай алгоритъмът се нарича устойчив, или сходящ.

Огромното разнообразие от числени методи значително затруднява избора на конкретен метод във всеки отделен случай. Тъй като за реализация на даден модел могат да се използват няколко алтернативни алгоритмични метода, изборът на конкретен метод се прави с оглед на това кой е най-подходящ за модела по отношение на ефикасност, устойчивост и точност на резултатите, както и кой е най-добре познат на членовете на проектния екип.

При създаването на различни софтуерни системи, използвани за решаване на широк кръг от изследователски, проектантско-инженерни и управленски задачи, математическите модели днес по правило служат за основа. Това поражда необходимостта от реализация на модела като компютърна програма. Процесът на разработка на надежден и ефикасен софтуер не е по-малко сложен от всички предходни етапи на създаване на математическия модел. Успешното решаване на тази задача е възможно само при уверено владеене на съвременни програмни езици и технологии, познаване на изчислителните възможности, наличния софтуер и спецификата на реализация на методите на изчислителната математика.

Процесът на разработка на софтуер може да бъде разделен на няколко етапа:

  • подготовка на техническото задание за разработка на софтуер;
  • проектиране на структурата на софтуерната система;
  • кодиране на алгоритъма;
  • тестване и отстраняване на грешки;
  • поддръжка и експлоатация.

Техническото задание за разработка на софтуер се документира под формата на спецификация. На етапа на проектиране се формира общата структура на софтуерната система. Цялата програма се разделя на софтуерни модули. За всеки модул се формулират функционални изисквания и се разработва алгоритъм, реализиращ тези функции. Определя се схемата на взаимодействие между модулите — известна като диаграма на потоците от данни на софтуерната система. Разработва се план за тестване и се определят входни данни за тестване на отделните модули и на системата като цяло.

Повечето програми, реализиращи математически модели, се състоят от три основни части:

  • препроцесор (подготовка и проверка на входните данни на модела);
  • решаващ модул (решаване на задачата, провеждане на изчислителния експеримент);
  • постпроцесор (визуализация и представяне на резултатите).

Значително внимание следва да се обърне на прилагането на съвременни програмни технологии. Целта на всяка такава технология е преди всичко да повиши надеждността на софтуера и да увеличи производителността на разработчиците. Колкото по-сериозен и мащабен е софтуерният проект, толкова по-важни стават въпросите за прилагането на съвременни програмни технологии. Пренебрегването на тези въпроси може да доведе до значителни закъснения по време и намалена надеждност на софтуерната система.

Критичен фактор за осигуряване на надеждността и краткия срок за разработка на софтуерна система за решаване на определен клас задачи е наличието на добре разработена библиотека от взаимно съвместими софтуерни модули. Програмата е по-надеждна и може да бъде разработена по-бързо, когато стандартните софтуерни компоненти се използват във възможно най-голяма степен.

Адекватността на математическия модел е степента, в която резултатите, получени от разработения модел, съответстват на експерименталните данни или на резултатите от еталонна задача.

Валидирането на модела служи за постигане на две цели:

  • да провери валидността на набора от хипотези, формулирани на етапите на концептуалната и математическата формулировка. Към проверката на хипотезите следва да се пристъпи едва след като методите за решаване са проверени и софтуерът е преминал цялостно отстраняване на грешки и конфликти;
  • да установи, че точността на резултатите съответства на точността, зададена в техническото задание.

Валидирането на разработения математически модел се извършва чрез съпоставяне с наличните експериментални данни за реалния обект или с резултатите от други, вече създадени и добре доказали се модели. В първия случай се говори за валидиране чрез сравнение с експеримент, а във втория — за сравнение с резултатите от еталонна задача.

Въпросът за точността на моделирането зависи от изискванията, поставени към модела, и от неговото предназначение. Трябва да се вземе предвид и точността на експерименталните резултати или спецификата на постановките на еталонните задачи. За модели, предназначени за грубо изчисление по порядък на величината, точност от 10–15% се смята за задоволителна. За модели, използвани в системи за контрол и мониторинг, необходимата точност може да бъде 1–2% или дори по-висока.

При възникване на проблеми с адекватността на модела, корекцията следва да започне със систематичен анализ на всички възможни причини за разминаването между резултатите от моделирането и експерименталните резултати. Първо моделът трябва да бъде изследван и степента му на адекватност — оценена за различни стойности на променливите параметри (начални и гранични условия, параметри, характеризиращи свойствата на моделираните обекти). Ако моделът е неадекватен в интересуващия изследователя диапазон от параметри, може да се направи опит за уточняване на стойностите на константите и началните параметри на модела. Ако това все още не дава положителни резултати, тогава единственият останал начин за подобряване на модела е преразглеждане на приетата система от хипотези. Това решение на практика означава връщане към втория етап от процеса на разработка на модела и може да наложи не само значителна промяна в математическата формулировка, но и в методите за решаване (например преход от аналитични към числени методи), пълна преработка на софтуера и нов цикъл на валидиране на модела. Затова решението за преразглеждане на приетата система от хипотези трябва да бъде добре обмислено и взето само когато всички други възможности за подобряване на адекватността на модела са изчерпани.

Описателните модели са предназначени да характеризират изследваните параметри в дадено явление или процес, както и да изследват закономерностите, управляващи промените в тези параметри. Тези модели могат да се използват за изследване на свойствата и поведението на изследвания обект при различни комбинации от входни данни и работни условия; при изграждане на оптимизационни модели; и при изграждане на симулационни модели на сложни системи.

Моделите, разработвани за изследователски цели, обикновено не се довеждат до нивото на софтуерни системи, предназначени за разпространение сред външни потребители. Тяхната продължителност на живот обикновено е ограничена до продължителността на изследователската програма в съответната област. Тези модели се характеризират с изследователски характер, използване на нови изчислителни процедури и алгоритми и неразвит потребителски интерфейс.

Моделите и изградените на тяхна основа софтуерни системи, предназначени за последващо разпространение сред външни потребители или за комерсиално издаване, притежават добре разработен, удобен за потребителя интерфейс и мощни препроцесори и постпроцесори. Тези модели обикновено се основават на доказани и добре установени постановки и изчислителни процедури. Трябва обаче да се помни, че такива модели са предназначени само за решаване на ясно определен клас задачи.

Независимо от предназначението на модела, екипът разработчици е задължен да извърши както качествен, така и количествен анализ на резултатите от моделирането.

Чрез работата с модела разработчиците стават специалисти в областта, свързана с моделирания обект. Те развиват достатъчно задълбочено разбиране на свойствата на обекта и са способни да прогнозират и обясняват неговото поведение.

Всеобхватният анализ на резултатите от моделирането следователно позволява:

  • да се модифицира разглежданият обект, да се намерят неговите оптимални характеристики или най-малкото по възможно най-добър начин да се вземат предвид неговото поведение и свойства;
  • да се очертае областта на приложимост на модела;
  • да се провери валидността на хипотезите, приети на етапа на математическата формулировка, и да се прецени възможността за опростяване на модела с цел повишаване на неговата ефикасност при запазване на изискваната точност;
  • да се посочи посоката, в която моделът следва да бъде доразвит.