
- •Кафедра Iнформатики
- •«Наука вся - лишь море заблуждений, где нету дна, а правды нет и тени»
- •«Складні проблеми завжди мають прості, легкі для розуміння невірні розв'язання» (закон Гросмана) Формалізація алгоритму
- •«Ускладнювати просто. Спрощувати складно» (закон Мейера) Алгоритмічні системи
- •... Sk0 skj1 skj2 ... Qi sjk ... Skjr-1 skjr sk0 ..., k[1;n]
- •Відлагодження алгоритму
- •«Якщо факти не підтверджують теорію, то їх треба позбутися» (Закон Майєрса) Етапи розв’язання задач на комп’ютері
- •Математична модель
- •Інформаційна модель
- •«Перед тим, як увійти, подумай, як вийти» (Китайське прислів'я) Техноогії проектування алгоритмів
- •«Створіть систему, якою зможе скористатися навіть дурень, і тільки дурень захоче нею користуватися»
- •(Принцип Шоу)
- •Блок-схема алгоритму лінійної структури
- •Алгоритм розгалуженої структури
- •Блок-схема алгоритму розгалуженої структури
- •Алгоритми циклічної структури
- •Алгоритм циклічної структури (параметр циклу змінюється з кроком у заданому сегменті)
- •Блок-схема алгоритму циклічної структури (параметр циклу змінюється з кроком у заданому сегменті)
- •Алгоритм циклічної структури (параметр циклу є елементом масиву)
- •Блок-схема алгоритму циклічної структури (параметр циклу є елементом масиву)
- •Алгоритм складної циклічної структури
- •Блок-схема алгоритму складної циклічної структури
- •Алгоритм обліку суми і добутку
- •Блок-схема алгоритму обліку суми і добутку
- •Алгоритм пошуку мінімуму і максимуму
- •Блок-схема алгоритму пошуку мінімуму і максимуму
- •Алгоритми сортування наданих
- •«Маленька практика краща за велику теорію» (закон Букера)
- •Алгоритми розв’язання інженерних задач
- •Ізоляція кореня
- •Уточнення значення кореня
- •Блок-схема алгоритму методу хорд
- •Початок циклу
- •Кінець циклу
- •Алгоритм розв’язання системи лінійних рівнянь
- •1. Прямий хiд
- •2. Зворотній хiд
- •Блок-схема алгоритму методу Гауса
- •Алгоритми розв’язання диференціального рівняння
- •Алгоритми до методу Эйлера
- •Алгоритми до методу Рунге - Кутта
- •Блок-схеми алгоритмів розв’язання диференціальних рівнянь першого порядку
- •Блок-схеми алгоритмів розв’язання диференціальних рівнянь другого порядку
- •Алгоритм обліку визначеного інтегралу
- •Алгоритм до методу Ньютона - Котеса
- •Блок-схема алгоритму обліку визначеного інтегралу методом Ньютона - Котеса Функція «Інтеграл»
- •Алгоритми апроксимації і інтерполяції функції
- •Алгоритм до методу інтерполяції поліномами Лагранжа
- •Алгоритм до методу апроксимації та інтерполяції в-сплайнами
- •Блок-схеми алгоритмів інтерполяції і апроксимації функції
- •Алгоритм статистичної обробки результатів експерименту
- •Перспективи розвитку теорії алгоритмів «Як тільки теорія стає зрозумілою всім, її пора змінювати» (закон Джексо на)
Перспективи розвитку теорії алгоритмів «Як тільки теорія стає зрозумілою всім, її пора змінювати» (закон Джексо на)
Паралельно із загальною теорією алгоритмів розвиваються і інші споріднені наукові напрямки.
Одним із цих напрямків виступає дисципліна «теорія автоматів» Вона займається математичним моделюванням динамічних систем і охоплює процеси, які задано на скінчених множинах у переліченому часі. Методи моделювання, розроблені цією дисципліною, є теоретичною основою побудови і роботи цифрових автоматів. Проте, створення теорії моделювання таких систем все одно призводить до загального класу систем, еквівалентного поняттю «алгоритм».
Другий напрямок - дисципліна «математична лінгвістика», яка виникла із формального вивчення природної мови і спроб відповісти на питання: «Чи усяку природну фразу можна перекласти з однієї мови на іншу за допомогою комп’ютера?». Такі спроби вимагали формалізації і класифікації понять «мова» і «граматика». Математична лінгвістика в основному займається формалізацією мов і машинним перекладом. Спільність задач і методів цих напрямків стала основою для їх об'єднання у загальну теорію мов.
У зв'язку з розробкою комп’ютерів апарати алгоритмічних систем загальної теорії алгоритмів виявилися незручними, тому що для розв’язання поданих ними задач необхідно було перекласти алгоритми у команди комп’ютера. Переклад «вручну» потребує багато праці та й часу. Для прискорення процесу перекладу алгоритмів задач із мови алгоритмічної системи у мову комп’ютера були розроблені спеціальні алгоритмічні системи - «алгоритмічні мови», що являють собою основу «теорії програмування» (побудови трансляторів і алгоритмічних мов для комп'ютерів). Формалізація й однозначність опису алгоритму в алгоритмічній мові дозволила перекласти на комп’ютер і сам переклад з алгоритмічної мови на мову комп’ютера: автоматизувати «програмування» як процес підготовки задач для їх обліку на комп’ютері. Для цього комп’ютер постачається «програмуючою програмою» - транслятором, що аналізуює опис алгориму розв’язання задачі на алгоритмичній мові і переробляє його у програму, що складається з комп’ютерних команд. Розроблено багато ріноманітних алгоритмічних мов: С++ Builder, Delphi, Visual Basic, Ada та ін. Мови програмування інтенсивно розвиваються; з’являються нові технології програмування: об’єктно-орієнтоване, візуальне і т.і.
Традиційними галузями застосування теорії алгоритмів виступають дискретна математика і математична логіка, проте вона також щільно пов'язана з філософією, психологією, фізіологією мозку, іншими дисциплінами природознавства у зв'язку зі спробами формалізації алгоритмів розумової діяльності людини, створення нейрокомп'ютерів та штучного інтелекту.
Рекомендована лiтература
Алферова З.В. Теория алгоритмов - М.: «Статистика», 1973.
Грис Д. Конструирование компиляторов для цифровых вычислительных машин - М.: «Мир», 1975. - 544 с.
Ахо А., Ульман Д. Теория синтаксического анализа, перевода и компиляции. - М.: «Мир», 1978.
Кауфман В.Ш. Языки программирования. Концепции и принципы. - М.: «Радио и связь», 1993.
Методичні вказівки до практичних занять з дисципліни «Теорія алгоритмів» / Скл. О.Г. Бурса - Маріуполь, ПДТУ, 2000.
1 у подальшому для скорочення тексту слово «абстрактний» будем випускати
2 чарунка - на російській мові «ячейка»
3 дошкульний - на російській мові «чувствительный»
4 іноді команди машини Тюрінга задаються п’ятьма символами вигляду qjskqjsmЛ (без стрілки)
5 елементарні оператори у подальших малюнках інколи позначаються скороченням ЕО, а елементарні розпізнавачі - ЕР
6 Ієрархія - Вхід - Процес - Вихід
7 у деяких мовах програмування для цього застосовується тип даних long double
8 однак також допускаються зв’язки модулів за допомогою глобальних загальних даних
9 який також називають методом покрокової деталізації чи послідовного уточнення