
- •Кафедра Iнформатики
- •«Наука вся - лишь море заблуждений, где нету дна, а правды нет и тени»
- •«Складні проблеми завжди мають прості, легкі для розуміння невірні розв'язання» (закон Гросмана) Формалізація алгоритму
- •«Ускладнювати просто. Спрощувати складно» (закон Мейера) Алгоритмічні системи
- •... Sk0 skj1 skj2 ... Qi sjk ... Skjr-1 skjr sk0 ..., k[1;n]
- •Відлагодження алгоритму
- •«Якщо факти не підтверджують теорію, то їх треба позбутися» (Закон Майєрса) Етапи розв’язання задач на комп’ютері
- •Математична модель
- •Інформаційна модель
- •«Перед тим, як увійти, подумай, як вийти» (Китайське прислів'я) Техноогії проектування алгоритмів
- •«Створіть систему, якою зможе скористатися навіть дурень, і тільки дурень захоче нею користуватися»
- •(Принцип Шоу)
- •Блок-схема алгоритму лінійної структури
- •Алгоритм розгалуженої структури
- •Блок-схема алгоритму розгалуженої структури
- •Алгоритми циклічної структури
- •Алгоритм циклічної структури (параметр циклу змінюється з кроком у заданому сегменті)
- •Блок-схема алгоритму циклічної структури (параметр циклу змінюється з кроком у заданому сегменті)
- •Алгоритм циклічної структури (параметр циклу є елементом масиву)
- •Блок-схема алгоритму циклічної структури (параметр циклу є елементом масиву)
- •Алгоритм складної циклічної структури
- •Блок-схема алгоритму складної циклічної структури
- •Алгоритм обліку суми і добутку
- •Блок-схема алгоритму обліку суми і добутку
- •Алгоритм пошуку мінімуму і максимуму
- •Блок-схема алгоритму пошуку мінімуму і максимуму
- •Алгоритми сортування наданих
- •«Маленька практика краща за велику теорію» (закон Букера)
- •Алгоритми розв’язання інженерних задач
- •Ізоляція кореня
- •Уточнення значення кореня
- •Блок-схема алгоритму методу хорд
- •Початок циклу
- •Кінець циклу
- •Алгоритм розв’язання системи лінійних рівнянь
- •1. Прямий хiд
- •2. Зворотній хiд
- •Блок-схема алгоритму методу Гауса
- •Алгоритми розв’язання диференціального рівняння
- •Алгоритми до методу Эйлера
- •Алгоритми до методу Рунге - Кутта
- •Блок-схеми алгоритмів розв’язання диференціальних рівнянь першого порядку
- •Блок-схеми алгоритмів розв’язання диференціальних рівнянь другого порядку
- •Алгоритм обліку визначеного інтегралу
- •Алгоритм до методу Ньютона - Котеса
- •Блок-схема алгоритму обліку визначеного інтегралу методом Ньютона - Котеса Функція «Інтеграл»
- •Алгоритми апроксимації і інтерполяції функції
- •Алгоритм до методу інтерполяції поліномами Лагранжа
- •Алгоритм до методу апроксимації та інтерполяції в-сплайнами
- •Блок-схеми алгоритмів інтерполяції і апроксимації функції
- •Алгоритм статистичної обробки результатів експерименту
- •Перспективи розвитку теорії алгоритмів «Як тільки теорія стає зрозумілою всім, її пора змінювати» (закон Джексо на)
Відлагодження алгоритму
В
ідлагодження алгоритму - систематичний процес іспиту алгоритму і виправлення що виявляються при цьому помилок.
При розробці алгоритму можуть допускатися синтаксичні помилки (порушення правил запису алгоритму) і логічні помилки (порушення логіки рішення задачі). Локалізувати помилки в алгоритмі можна спеціальними методами:
статичною перевіркою, що передбачає структурний аналіз керуючих конструкцій алгоритму «вичитуванням» опису алгоритму з метою виявлення описок, недотримання відповідності типів даних у виразах, неузгодженістю фактичних і формальних параметрів модулів і т.п.;
динамічною перевіркою (тестуванням) із метою виявлення відхилення дійсних результатів від очікуваних.
Тест - набір вихідних даних, що дозволяє судити про правильність виконання алгоритму або його частин. Тест типу «білий ящик» основано на знанні внутрішньої структури алгоритму і полягає в перевірці роботи всіх блоків, кожного окремо й у складі модулів. Тест типу «чорний ящик» передбачає перевірку еквівалентності вихідних даних їхнім описам і коректності функціонування модулів для граничних значень параметрів.
Відомо, що модуль із 100 кроків містить 4..8 помилок, із яких приблизно 40% - алгоритмічні і 60% - помилки постановки задачі. Оскільки цілком уникнути помилок навряд чи можливо, прийнято вважати відлагодження успішним, якщо у процесі відлагодження виявлено 50% алгоритмічних помилок.
«Якщо факти не підтверджують теорію, то їх треба позбутися» (Закон Майєрса) Етапи розв’язання задач на комп’ютері
Розв'язання задачі за допомогою комп'ютера потребує безмашинного і машинного опрацювання інформації.
Безмашинне опрацювання задачі займає приблизно 60...70 % часу, необхідного для її розв'язання, і містить у собі етапи: - формалізація; - вибір чисельного методу розв'язання; - алгоритмізація; - програмування.
Машинне опрацювання задачі полягає в обробці програми на комп'ютері за допомогою системи програмування.
Н
а цьому етапі задача моделюється математичними методами і будуються математична й інформаційна моделі.
Моделювання - дослідження об'єктів (явищ, процесів або систем) шляхом побудови і вивчення їхніх моделей.
Модель - ідеальний або фізичний об'єкт (явище, процес або система), аналіз і спостереження за яким дозволяє пізнавати суттєві риси іншого досліджуваного об'єкта.
Математична модель
Математична модель - модель, у котрій досліджуваний об'єкт подано у вигляді абстрактних величин і математичних співвідношень між ними.
Модель називають ізоморфною, якщо між нею і реальною системою існую повна поелементна відповідність. Модель називають гомоморфною, якщо відповідність існує лише між найбільш значимим складовими частинами об’єкта і моделі.
Функцією мети називають розрахункову характеристику моделі, що визначає необхідну її якість. Параметром функції мети називають вихідну величину, необхідну для розрахунку значень функції мети. Областю визначення функції мети називається інтервал зміни її параметрів, для якого визначено формули розрахунку функції мети. Областю існування функції мети називається інтервал її кінцевих дійсних значень.
У процесі побудови математичної моделі:
- визначаються функції мети і їхні параметри; задача записується у вигляді математичних співвідношень, придатних для автоматизованої обробки даних, які вони містять;
- чисельним аналізом математичних співвідношень виявляються області визначення й існування функцій мети; визначаються обмеження, що накладаються на ці області;
- установлюються припустимі похибки чисельних розрахунків.
Наприклад, математична модель:
{
описує залежність функції мети Y від параметра X. Область визначення функції обмежено множиною значень параметра X, що змінюється на сегменті [Xn; Xk]. Функцію не визначено при X=0. Областю існування функції мети є вся множина дійсних значень, за винятком значень Y (X = 5) і Y (X -14).
У загальному вигляді математична модель об’єкта має функціональну специфікацію і представляється системою функціоналів: Ф (X, Y, Z, t) = 0, де: X, Y - вектори вхідних і вихідних координат, Z - вектор зовнішніх впливів, t - координата часу. Залежності між невідомими величинами фазових перемінних (X, Y, Z, t) і їхніми похідними визначаються з використанням різницевих методів апроксимації. Засіб представлення Ф залежить від мети моделювання, призначення об'єкта, обсягу інформації і характеру вихідних даних. По засобах представлення математичні моделі підрозділяються на детерміновані і стохастичні, які у свою чергу класифікуються на безупинні і дискретні, аналітичні й імітаційні.
Детерміновані моделі
Поведінку більшості технічних систем можна охарактеризувати за допомогою так називаних фазових змінних - фізичних величин типу потоку і потенціалу. При цьому доцільно виділити в об'єктах моделювання достатньо важливі елементи, розглянуті як неподільні одиниці. Закони функціонування елементів системи задаються компонентними рівняннями, що зв'язують різнорідні фазові змінні. Спільність опису процесів, що відбуваються у різноманітних технічних системах, дозволяє виділити декілька типів елементів: R - елемент розсіювання енергії, С і L - елементи накопичення енергії. Сполученням цих найпростіших елементів і джерела фазових змінних одержують еквівалентну схему технічної системи будь-якої складності та її математичну модель. Сенс деяких фазових змінних найпростіших елементів фізичних систем наведено у таблиці:
Підсистема |
Фазові змінні |
Элементи |
|||
типу струму |
типу потенціалу |
типу Р |
типу С |
Типу L |
|
Электрична |
Струм |
Напруга |
Опір |
Ємність |
Індуктивність |
Механічна поступова |
Сила |
Швидкість |
Тертя |
Маса |
Пруткість |
. . . |
. . . |
. . . |
. . . |
. . . |
. . . |
Детермінована безупинна аналітична модель технічного об'єкта у загальному випадку є системою звичайних диференціальних рівнянь. Подібну систему можна розв’язати тільки чисельними методами, замінюючи безупинну незалежну змінну її дискретним аналогом. Ця операція визначає зміну безупинного типу моделі на дискретний тип.
Сукупність значень фазовий перемінних і їхній похідних на k-му кроці інтегрування утворюється як розв'язання системи n алгебраїчних рівнянь. (у загальному випадку нелінійних) із n невідомими Х1, Х2, ... , Хn:
f
1{
Х1,
Х2,
... , Хn )
= 0;
f2{ Х1, Х2, ... , Хn ) = 0;
...... ...... ...... ...... ...... ...... ..
fn{ Х1, Х2, ... , Хn ) = 0;
Розв'язання такої системи рівнянь можливо ітераційними методами, найпоширеним із який є метод Ньютона.
Стохастичні моделі
Стохастичні моделі за звичай мають додаткову процедурну специфікацію, що передбачає створення і використання алгоритмів (процедур) моделювання об’єктів. Під час опису об'єктів виділяють такі види стохастичного (ймовірносного) моделювання.
Статистичне моделювання (що також називають методом Монте-Карло), окрім задач математичного моделювання, також застосовується при розв'язанні окремих задач чисельних методів, наприклад, узятті інтегралів чи розв'язанні диференціальних рівнянь. Статистичні моделі випадкових процесів можуть бути реалізовані як на звичайних комп’ютерах (аналогових і цифрових), так і на спеціалізованих статистичних комп’ютерах, постачених моделюючими блоками для створення і перетворення випадкових чисел.
Аналітичне ймоврносне моделювання передбачає побудову моделей, що оперують не з конкретними випадковими числовими послідовностями, а безпосередньо з їх ймовірносними (закони розподілу ймовірностей) і спектральними (спектральні щільності або кореляційні функції) характеристиками. У загальному випадку побудова аналітичних ймовірносних моделей являє собою складну обчислювальну задачу, що не дозволяє повною мірою використовувати такої їхньої переваги, як можливість точного аналітичного задання характеристик випадкових процесів, відсутність необхідності генерації й опрацювання великих вибірок випадкових чисел, пристосованість до оперативної оптимізації. У літературі описано результати досліджень, спрямованих на створення спеціалізованих проблемно-орієнтованих систем і пакетів прикладних програм, що об'єднують чисельні алгоритми розв'язання найбільш характерних обчислювальних процедур аналітичного ймовірносного моделювання і засоби опису структур систем. Створення такого програмного забезпечення поряд із розробкою спеціалізованих моделюючих комплексів дозволяє значно підвищити ефективність побудови і використання аналітичних моделей і, на цій основі, розв'язання задач стохастичного моделювання.
У поточний час основним методом стохастичного моделювання є метод статистичного моделювання на комп’ютері, що оперує зі стохастичними дискретними імітаційними моделями.
Методика статистичного моделювання включає ряд послідовних етапів:
- моделювання на комп’ютері псевдовипадкових числових послідовностей із заданою кореляцією і законом розподілу ймовірностей, що імітують вхідні сигнали і обурюючі впливи у системі;
- моделювання перетворень отриманих числових послідовностей у системі;
- статистичну обробку результатів моделювання.