Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TA_last_u3.doc
Скачиваний:
0
Добавлен:
30.12.2019
Размер:
2.69 Mб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ

КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ”

ФІЗИКО-ТЕХНІЧНИЙ ІНСТИТУТ

ТЕОРІЯ АЛГОРИТМІВ

МЕТОДИЧНІ ВКАКЗІВКИ ДЛЯ СТУДЕНТІВ СПЕЦІАЛЬНОСТЕЙ “ЗАХИСТ ІНФОРМАЦІЇ”, “ІНФОРМАТИКА”

Затверджено Методичною радою НТУУ “КПІ”

Київ

ПОЛІТЕХНІКА”

2006

Методичні вказівки для студентів спеціальностей “Захист інформації”, “Прикладна інформатика” з дисципліни „Математична логіка і теорія алгоритмів”, частина 2 „Теорія алгоритмів”.

Укладачі; Теленик Сергій Федорович

Амонс Олександр Анатолійович

Букасов Максим Михайлович

ЗМІСТ

Найменування тем, їхній зміст, обсяг у годинах лекційних занять 6

Алгоритми й структури даних 8

Стеки, списки 9

Хеш-таблиці 10

Дерева пошуку 10

Бінарні дерева 10

Двійкові дерева 11

Червоно- чорні дерева 12

Частково впорядковані дерева 13

Статья I. При створенні ЧУД елементи вводилися в наступному порядку: (13, 6, 15, 5, 10, 6, 3, 13, 5, 6, 35, 8). Пояснити побудова (переформування) дерева. 13

Рекурсія 14

Перебір з поверненням 16

Машина Тьюрінга 16

NP-повнота. 18

Послідовний пошук 20

Структури даних. Масиви 20

Решето Ератосфена 20

Обчислення найближчої точки 20

Структури даних. Списки 21

Приклад циклічного списку (задача Йосипа) 21

Сортування методом вставки в список 21

Звертання порядку проходження елементів списку 22

Структури даних. Рядки 22

Сортування масиву рядків 22

Абстрактні типи даних (АТД) 23

Інтерфейс абстрактного типу даних стека 23

Реалізація черги FIFO на базі масиву 23

Реалізація черги FIFO на базі зв'язного списку 23

Перетворення з інфіксної форми в постфіксну 24

Рекурсія 24

Алгоритм Евклида 24

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

Рішення задачі про ханойські вежі 25

Варіанти функцій, які підлягають обчисленню 25

Приклад 1. 26

Завдання 26

Формат вводу та виводу 26

Розв’язання 27

Приклад 2 28

Завдання 28

Розв’язання 28

Приклад 3 29

Завдання 29

Розв’язання 29

Приклад 4 29

Завдання 29

Розв’язання 29

Приклад 5 30

Завдання 30

Розв’язання 30

Приклад 6 31

Завдання 31

Розв’язання 31

Приклад 7 31

Завдання 31

Розв’язання 31

Приклад 8 32

Завдання 32

Розв’язання 33

Машина Тьюринга 33

Алгоритм роботи машини Т’юринга 34

Дослідження функції на рекурсивність 34

Нормальні алгоритми Маркова 34

Алгоритм роботи програми. 36

Приклад роботи програми. 36

Алгоритм виконання курсової роботи: 39

Приклад1. 39

2. Побудова моделі. 40

3. Розроблення алгоритму. 40

4. Правильність алгоритму. 41

5. Реалізація алгоритму. 41

7. Перевірка програми. 43

Приклад2 43

Постановка задачі 43

Перший варіант розв’язку 43

Другий варіант розв’язку. 45

Приклад3 47

Опукла оболонка 48

Метод обходу Грехема 51

Метод обходу Джарвіса 52

Алгоритм апроксимації опуклої оболонки 53

Швидкі методи побудови опуклої оболонки 54

Алгоритм типу розділяй та пануй 55

Побудова опуклої оболонки простого многокутника 56

Динамічні алгоритми побудови опуклої оболонки 59

Порівняльний аналіз алгоритмів побудови опуклої оболонки 60

Висновки 63

В цих методичних вказівках розглянуті питання організації проведення та зміст самостійної роботи студентів з другої частини “Теорія алгоритмів” дисципліни “Математична лвгіка і теорія алгоритмів”, яка разом із дисципліною “Дискретний аналіз” та іншими дисциплінами математичного циклу покликана формувати основи математичного апарату бакалавра комп'ютерних наук, спеціаліста і магістра з спеціальностей “Захист інформації” та „Прикладна інформатика”.

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

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

По-третє, для виконання курсових і розрахунково-графічних робіт з дисципліни в ці методичні указівки включені необхідні теоретичні знання, методики виконання, варіанти і приклади виконання робіт і корисні рекомендації фахівців із певним досвідом виконання типових розрахунків і розв'язання стандартних проблем.

  1. Зміст дисципліни.

Частина 2 “Теорія алгоритмів” дисципліни “Математична лвгіка і теорія алгоритмів” складається з чотирьох розділів:

  1. Проблеми та алгоритми. Розроблення та аналіз алгоритмів.

  2. Уточнення алгоритму та встановленяя нерозвязуваності масових проблем.

  3. Теорія складності та звідності.

  4. Автоматизація проектування алгоритмів

До розділу 5 включено три теми. В першій з них – проблеми і алгоритми – розглядається зв’язок між проблемами і алгоритмами, які їх розв’язують, вводяться фундаментальні концепції розв’язності, обчислюваності та перераховуваності, пов’язані з алгоритмами, аналізуються структури даних, які використовуються при розв’язанні проблем за допомогою комп’ютерів, висвітлюються особливості структурного програмування.

Друга тема присвячена розробленню алгоритмів. Зокрема в ній розглядаються універсальні методи розроблення алгоритмів, роль рекурсії та евристик, наводяться приклади, які ілюструють усі етапи розв’язання проблем.

В третій темі розглядаються алгоритми розв’язання цілої низки проблем, які знаходять широке застосування при проектуванні інформаційних систем. Серед них варто назвати алгоритми для: пошуку в глибину і ширину для задач теорії графів; визначення кістякового дерева мінімальної ваги; паралельних обчислень; пошуку підрядків

До розділу 6 включено три теми. В першій із них — уточнення алгоритму за Т’юрінгом і дослідження модельних досліджень модельних властивостей теорії S арифметики — розглядаються уточнення алгоритму за Т’юрінгом і Марковим, рекурсивними функціями, демонструється дослідження модельних властивостей теорії S арифметики методами теорії алгоритмів, доводиться низка результатів стосовно рекурсивних перераховності і розв’язності, накреслюється загальна схема встановлення нерозв’язності 10-ої проблеми Гільберта.

Друга тема присвячена дослідженню теорії рекурсивних функцій та схемі її застосування для встановлення нерозв’язності 10-ї проблеми Д.Гільберта.

В третії темі йдеться про ще один підхід до уточнення інтуїтивного визначення алгоритму, що запропонований А.А. Марковим.

До розділу 7 входить дві теми. У першій описується як, використовуючи машину Т’юрінга за обчислювальну модель, визначити класи P і NP. Визначені напрямки використання звідності для встановлення поліноміальності і NP-повноти масових проблем..

У другій темі буде завершено розгляд основних понять та застосувань теорії NP-повних проблем. Спочатку буде продемонстровано як сфера застосувань цієї теорії може бути розширена за межі класу NP проблем при використанні зводимості задач більш загального вигляду. Потім після короткої історичної довідки про розвиток теорії NP-повноти будуть наведені деякі поширені в літературі альтернативні визначення і терміни.

У розділі 8 демонструється як методи і засоби математичної логіки та алгебри спільно з ме­тодами і засобами інших розділів дискретної математики дозволяють вирішувати важливі проблеми програмування, а саме:

  • визначення семантики мов програмування;

  • верифікація програм;

  • автоматизація програмування.

Матеріал розділу має подвійне призначення:

  1. Поглиблення знань з важливих розділів математичної логіки та алгебри, формування уявлень про важливу проблему обгрунтування математики в цілому та методи її розв’язання;

  2. Формування математичного фундаменту сучасних інформаційних технологій, призначених для розробки програмного забезпечення, насамперед технологій та інструментальних засобів, що поєднують концептуальне моделювання, методи автоматизації програмування та уніфіковані процеси проектування.

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