Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теорія алгоритмів 1. Вступ до курсу.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
290.08 Кб
Скачать

Вступ до курсу теорії алгоритмів

Метою вивчення дисципліни «Теорія алгоритмів» є описування фундаментальних понять теорії алгоритмів, формування практичних навичок розробки алгоритмів, розв'язування прикладних задач, формування математичної й інформаційної культури студентів.

Предметом дисципліни є основні поняття та методи математичної логіки та теорії алгоритмів. Основним завданням є засвоєння теоретичних знань і формування практичних навичок з основ теорії алгоритмів та математичної логіки у студентів.

Тема 1: «Алгоритми та їх властивості»

  1. Неформальні поняття і визначення алгоритму.

  2. Форми подання алгоритму.

При вирішенні багатьох теоретичних і практичних задач необхідно визначити алгоритм, тобто набір інструкцій, виконуючи який ми за скінченну кількість кроків розв'яжемо задачу.

Визначення точного поняття алгоритму є одним із більш значимих досягнень науки XX століття. Дане визначення було представлене в роботах Геделя, Черча, Поста, Тюрінга та Марко. Систематичне вивчення алгоритму та різноманітних моделей стало передумовою для творення певних дисциплін. В багатьох розділах математики, логіки таінформатики розглядаються процедури механічного характеру. В них необхідно знайти розв'язок поставленої задачі по правилу (алгоритму) для розв'язку задач класу.

Алгоритм - це точна операція, що задає обчислювальну процедуру. Дана процедура перетворює вхідний об'єкт (Р) і направлена на отримання обумовленого цими даними результат (Ц). Ця процедура складається з окремих елементарних кроків. Кожен крок полягає в зміні одного набору даних на інший. Перехід від попереднього стану до наступного відбувається по заданому скінченному набору інструкцій. Вони не повинні містити здогадок та ймовірностей міркувань, як зі сторони людини, так і машини. !х необхідно тільки виконувати. Деякі стани розглядаються як заключні або цільові, при яких обчислення закінчуються. При цьому на основі деякої інструкції визначається, що необхідно вважати результатом обчислень.

Розглянемо 3 випадки проходження алгори:мінного процесу:

    1. На деякому кроці виникає стан, що розглядається як заключний або цільовий. При цьому відбувається зупинка обчислень і видається результат.

    2. Кожний поточний стан змінюється наступним до безкінечності.

    3. При деякому стані виникає ситуація, коли процес обчислень переривається без видачі результату. Немає переходу до наступного кроку і результату обчислень. Тоді говорять, що відбувається безрезультатна зупинка.

Вважається, що алгоритм А можна застосувати до вхідного об'єкта, коли виконується випадок 1 Тобто тоді, коли процес обчислень закінчено і отримано результат. Даний результат будемо позначати як А(Р). У випадках 2 і 3 результату А(Р) не існує.

Термін «алгоритм» походить від латинської транскрипції арабського імені середььо азійського вченого Абу Абдулла Абу Джафлр Мухаммад ібн iv!уса аль-Хорезмі. Базові властивості алгоритму:

      1. Дискретність алгоритму: процес дискретного перетворення алгоритмічного набору даних відбувається по кроках. Кожний крок є зміною одного набору даних в інший.

      2. Детермінованість алгоритму: в алгоритмічному процесі відбувається перетворення Р . на і.іході в Ц на виході. При чому всі кроки алгоритму А, величини проміжних

обч.плено і об'єкт Ц однозначне ебум'о і*. . • жданням пари (А, Р). Детермінованість алгоритму означає, що при повторному використанні А з об'єктом Р на вході знову отримаємо 0..

3. Масовість алгоритму - це вимога знайти єдиний алгоритмічний розв'язок не окремої задачі, а серії задач деякого класу. Відокремлення задач класу відбувається при варіації (зміні вхідних даних). Тому для кожного алгоритму існує деяка потенційно нескінчена сукупність X можливих вхідних даних. З неї відбирається вхідний об'єкт, що поступає на вхід алгоритму

Абстракції теорії алгоритмів

Вивчаючи теорію алгоритмів, ми дотримуємося таких умов (абстракцій):

        1. Абстракція потенційної реалізації. Алгоритмічний процес при визначенні результату О з вхідних даних Р здійснює декілька окремих кроків. їх число може бути настільки великим, що досягнення результату може бути практично неможливим. Але в загальній теорії алгоритмів, ми не враховуємо практичну реалізацію і вважаємо можливим виконати будь-яку скінченну кількість кроків.

        2. Абстракція потенційної реалізації алгориіму передбачає те, що ми можемо оперувати як завгодно великими об'єктами.

Під алгоритмом розуміють скінченну сукупність правил дій, що виконуються в порядку для розв'язування задач класу. Щоб побудувати алгоритм необхідно дотримуватися певних правил:

          1. Вхідні та вихідні дані задаються у вигляді послідовності слів.

          2. Процес розв'язування задачі -- перетворення вхідних даних на результат.

          3. Процес перетворення складається з елементарних припустимих операцій формального характеру.

          4. Припустима елементарна операція - це проста механічна дія результат якої не залежить від виконавця.

          5. Послідовність операцій не залежить від вхідних даних.

          6. Порядок виконання визначений однозначно.

          7. Сукупність операцій визначено класами задач і типом даних.

Введемо поняття алфавіт. Абстракцією «алфавіт» називають будь-яку скінченну сукупність об'єктів, які називають символами або літерами алфавіту. Слово - це будь-яка скінченна впорядкована послідовність з його символів. Кількість символів у слові визначає його довжину. Якщо довжина дорівнює нулю, то алфавіт називають пустим.

Алфавітним оператором, або ф називають будь-яку відповідність (функцію), яка зіставляє слова в алфавіті. Якщо алфавітний оператор зіставляє з вхідним словом лише одне вихідне, то він називається однозначним. Зауваження: саме такі оператори використовуються в алгоритмах, бо тільки вони забезпечують їм властивість визначеності, тобто один єдиний результат як кожної операції, так і алгоритму в цілому.

існує теорема, за якою- 8 кожному алфавітному оператору в алфавіті А відповідає оператор в алфавіті В, спряжений з ним.

Алфавітні оператори, що задаються системами правил, називаються алгоритмами. Алгоритмом є алфавітний оператор разом із правилами, які встановлюють його дію. Два алфавітні оператори вважаються рівними, якщо вони мають одну і ту саму область визначення і кожному слову з області ставлять вихідні слова. Алгоритми є еквівалентними, якщо у них збігаються алфавітні оператори, а способи їх задання (реалізації) не збігаються. Характер алгоритмів:

            1. Область задання алгоритму - це множина даних, до яких алгоритм застосований. Якщо алгоритм припиняється без результату, то говорять про незастосовність.

            2. Складність алгоритму - величина, що характеризує довжину опису алгоритму. Алгоритмічна розв'язність масової проблеми - можливість розв'язку проблеми для

всіх задач.

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

1. Словесна форма.

>Кч і (.'! р \ К І \ ріГгН Н !.Н V ми' ч ПІК ос І ЮНКИ \ понять Г.1 Г Ц'Мі'НПН. Ні.- .

.сі: • гиічг

Необхідність уточнення поняття алгоритму

Нехай існує деяка алгоритмічна проблема, тобто необхідно знайти алгоритм для деякого класу задач. Якщо такий спосіб знайдений, то він призначається як алгоритм, виходячи з власної інтуїтивної уяви про алгоритм. В цьому випадку визначення поняття «алгоритм» не існує. Ситуація стає протилежною, якщо після безуспішних спроб пошуку алгоритму виникає гіпотеза, що такого алгоритму не існує. Для того, щоб мати можливість доводити, що алгоритму не існує, нам потрібно точно, з математичної точки зору визначити об'єкт, існування якого може заперечуватись.

Висновок: для доведення факту існування алгоритму необхідно мати строіе визначення алгоритму.

У 20-х роках минулого століття задача визначення строгого визначення алгоритму стала проблемою. Дана проблема полягає у спробі дати точне визначення алгоритму, яке відповідало б існуючій в той час інтуїтивній уяві про алгоритм.

  1. Словесно-формульна форма.

  2. Графічні схеми.

  3. Структурні схеми.

  4. Операторні схеми.

  5. НІРО-схеми.

  6. Таблиці рішень.

Строге визначення алгоритму, запропоноване Алонзом Черчем і Стефаном Кліні базується на понятті частково рекурсивної функції. Дані вчені запропонували ототожнювати поняття алгоритму із строгим математичним поняттям рекурсивної функції. З точки зору англійського вченого Алана Тюринга, алгоритмічний процес - це робота уявної обчислювальної машини - машини Тюринга. Він запропонував ототожнювати інтуїтивне поняття «алгоритм» з поняттям «машина Тюрінга». Третій варіант визначення алгоритму запропонував у 1947 році російський математик Марков. З його точки зору, алгоритмічний

процес - це переробка слів деякого алфавіту за допомогою точних правил переробки. Замість інтуїтивного Марков вводить строге математичне поняття «нормальний алгорифм».

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]