- •Л.І. Маркова
- •1 Розв’язання задач з використанням методів пошуку
- •1.1 Мета роботи
- •1.2 Вказівки з підготовки до роботи
- •Лінійний пошук
- •З метою поліпшення можна прийти до питання, а чи потрібна перевірка
- •1.3 Варіанти індивідуальних завдань до лабораторної роботи 1
- •2.3 Варіанти індивідуальних завдань до лабораторної роботи 2
- •2.4 Контрольні запитання та завдання
- •3 Розв’язання задач з використанням алгоритмів сортування
- •3.1 Мета роботи
- •3.2 Підготовка до роботи
- •Бульбашкове сортування
- •4.3 Варіанти індивідуальних завдань до лабораторної роботи 4
- •6 Розв’язання задач у просторі станів
- •6.3 Варіанти індивідуальних завдань до лабораторної роботи 6
- •Початок // Begin
- •7.3 Варіанти індивідуальних завдань до лабораторної роботи 7
- •7.4 Контрольні запитання та завдання
- •"Теорія алгоритмів"
- •Віддруковано в учбово-виробничому видавничо-поліграфічному центрі хнуре
- •61166, , Харків, просп. Леніна, 14.
6.3 Варіанти індивідуальних завдань до лабораторної роботи 6
1-3.Жодна зі стріл не знаходиться на одній лінії чи діагоналі з іншою. Пересуньте 3 стріли, кожну на одну із сусідніх кліток так, щоб при цьому всі 9 стріл розташувалися знову таким чином, щоб жодна не лежала на одній прямій ні з якою іншою стрілою (рис. 6.1 – рис. 6.3).
Рисунок 6.1
Рисунок 6.2
Рисунок 6.3
4. Маємо три стовпчики. На першому стовпчику знаходяться п'ять дисків. Вони розташовані в порядку зменшення розмірів. Необхідно перенести їх на третій стовпчик так, щоб вони розташовувалися в початковому стані. Потрібно переміщати тільки один диск, при цьому більший диск не повинний лежати на меншому (рис. 6.4)
Рисунок 6.4
5-8. Є річка і через неї два мости. Необхідно знайти шлях з одного пункту в іншій з можливим руйнуванням одного моста (рис. 6.5 – рис. 6.8).
Рисунок 6.5
Рисунок 6.6
Рисунок 6.7
Рисунок 6.8
9-12. Є річка і через неї три мости. Необхідно знайти шлях з одного пункту в іншій з можливим руйнуванням одного моста (рис. 6.9 – рис. 6.12).
Рисунок 6.9
Рисунок 6.10
Рисунок 6.11
Рисунок 6.12
13-16. Є двоє дверей і один вихід. Необхідно знайти вихід (рис. 6.13 – рис. 6.16).
Рисунок 6.13
Рисунок 6.14
Рисунок 6.16
Рисунок 6.15
17. Розставити слонів на шахівниці так, щоб жоден слон не міг "убити" інших слонів.
18. Розставити ферзів на шахівниці так, щоб жоден ферзь не міг "убити" інших ферзів.
19. Маємо чотири стрижні. На одному з них знаходяться диски різних розмірів, зменшені до верху (піраміда). Потрібно перенести ці диски на четвертий стрижень, використовуючи два допоміжних стрижні. При цьому за один раз можна перенести тільки один диск, а більший за розміром диск неприпустимо ставити на диск меншого розміру.
20. На шахівниці знаходиться тура. Необхідно її "убити" конем. Причому тура не повинна атакувати коня.
21. На шахівниці знаходиться офіцер. Необхідно її "убити" конем. Причому, офіцер не повинний атакувати коня.
22. Маємо чотири табурети. На крайньому табуреті знаходиться 8 голівок сиру різних розмірів, зменшені до верху (піраміда). Необхідно, перекладаючи круги сиру з одного табурета на іншій, перенести їх на четвертий табурет. При цьому необхідно, щоб круг сиру меншого розміру не покривався кругом більшого розміру. Потрібно вирішити цю задачу з найменшим числом перекладання. Ваша програма має виконати її за 33 ходи.
23. Маємо чотири табурети. На крайньому табуреті знаходиться 10 голівок сиру різних розмірів, зменшені до верху (піраміда). Необхідно, перекладаючи круги сиру з одного табурета на іншій, перенести їх на четвертий табурет. При цьому необхідно, щоб круг сиру меншого розміру не покривався кругом більшого розміру. Потрібно вирішити цю задачу з найменшим числом перекладання. Ваша програма має виконати її за 49 ходів.
24. Маємо чотири табурети. На крайньому табуреті знаходиться 21 голівка сиру різних розмірів, зменшені до верху (піраміда). Необхідно, перекладаючи круги сиру з одного табурета на іншій, перенести їх на четвертий табурет. При цьому необхідно, щоб круг сиру меншого розміру не покривався кругом більшого розміру. Потрібно вирішити цю задачу з найменшим числом перекладання. Ваша програма має виконати її за 321 хід.
25. На рис.6.17 показано вісім грибків; на першому і третьому сидять чорні жаби, а на шостому і восьмому – білі жаби. Головоломка полягає в тому, щоб пересуваючи за один раз по одній жабі в будь-якому напрямку уздовж прямих ліній від одного грибка до іншого, поміняти жаби місцями, тобто білі жаби повинні зайняти грибки 1 і 3, а чорні 6 і 8. На одному грибку одночасно може знаходитися лише одна жаба (рис. 6.17).
26.Дано шахівницю з 49 кліток (рис. 6.18). Святий Георгій хоче вразити дракона. Покажіть, як, починаючи з центральної клітки, він зуміє відвідати кожну клітку рівно один раз, проробивши безупинний ланцюжок ходів конем, наприкінці якого, на своєму останньому ході він вразить дракона.
Рисунок 6.17
Рисунок 6.18
27-30. Дано граф, що складається з двох сукупностей крапок {1,...,5} і {6,…,10}... Відстані між крапками задаються довільно. Знайти найкоротшу відстань між двома довільно заданими крапками, з однієї та іншої сукупності (рис. 6.19 – рис. 6.22).
Рисунок 6.19
Рисунок 6.20
Рисунок 6.21
Рисунок 6.22
6.4 Контрольні запитання та завдання
1. Наведіть приклади класів задач, що допускають представлення в просторі станів.
2. Назвіть основні методи пошуку в просторі станів і розкрийте їхню суть.
3. Які переваги в роботі дає метод перебору?
4. У чому складається підхід, заснований на зведенні задач до підзадач?
7 РОЗВ’ЯЗАННЯ ЗАДАЧ ОПТИМІЗАЦІЇ ПОТОКІВ У МЕРЕЖАХ
7.1 Мета роботи
Одержати практичні навички розв’язання мережних задач. У результаті виконання лабораторної роботи студенти повинні опанувати методом Форда – Фалкерсона для максимального потоку в мережах.
7.2 Підготовка до роботи
Під час підготовки до роботи студенти повинні вивчити основні поняття теорії потоків у мережах. Слід звернути увагу на способи завдання мережі.
У роботі розглядається один з основних класів розв’язання задач щодо максимального потоку у мережі. Вперше ця задача була вирішена Фордом і Фалкерсоном у 1962р.
Студентам пропонується один із варіантів даного алгоритму, заснованого на побудові приєднаної мережі.
Алгоритм послідовно будує приєднану мережу, знаходить у ній шлях від джерела до стоку (якщо він існує), модифікує цей потік вздовж цього шляху.
Перемінні, стосовні до побудованої приєднаної мережі SX, відрізняються від перемінних, стосовних до вихідної мережі , першою буквою . В алгоритмі викликається функція для перебування шляху з у стік t . Крім цього, використовується функція AD, що є індикатором погодженості чи непогодженості дуг у мережі .
Вхідні дані: Мережа , пропускні здібності
, джерело і стік .
Вихідні дані: потік ,
BEGIN
for повторити
for повторити
if(F[u][v]<C[u][v]){CX[u][v]=C[u][v]-F[u][v];// погоджена дуга
AD[u][v]=1;}
else {CX[u][v]=F[u][v];
AD[u][v]=-1;}// неузгоджена дуга
End for(v)
Викликати функцію пошуку шляху в межах від S до t приєднаної мережі.
if PRZ==0, то пошук завершується
// (PRZ – ознака досяжності стоку – потік F максимальний)
else
{DELE min{CX[u][v];u,v WAY}
for
if (AD[u][v]==1) F[u][v]= F[u][v]+DEL;
else F[u][v]= F[u][v]-DEL;
End for(u)
END
Функція пошуку шляху в межах від S до t приєднаної мережі.
Вхідні дані: Мережа ;
Вихідні дані: Шлях з у ,