Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod_lab_TA-2004-ukr.doc
Скачиваний:
1
Добавлен:
17.11.2019
Размер:
8.76 Mб
Скачать

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 приєднаної мережі.

Вхідні дані: Мережа ;

Вихідні дані: Шлях з у ,

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