Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2013-ПОИСК-Задания и теор мат / 3.ПОИСК-Задания к Пр. зан. ИС-МАГ-2013

.doc
Скачиваний:
11
Добавлен:
27.04.2015
Размер:
83.46 Кб
Скачать

7

Курс ИС/МАГ. Направления ИВТ и АТПП 2013 весна

ЗАДАНИЯ К ПРАКТИЧЕСКИМ ЗАНЯТИЯМ ДЛЯ ГРУПП

М-23 1201(70,72)/ИВТ и М-22 1201(70)/АТПП

ТЕМА: ОСВОЕНИЕ МЕТОДОВ ПОСКА

Задание № 1

Методы "слепого" поиска

1. Разработать блок-схему алгоритма и соответствующую программу поиска пути на графе от заданного начального узла графа до заданного целевого узла на основе следующих методов, использующих "дерево поиска":

- поиск в глубину

- поиск в ширину

- постепенное углубление - необязательно

- наискорейший подъем.

Исходными данными для алгоритма (программы) является граф (заданный, например, матрицей смежности) с указанием стоимости ребер.

Программа должна:

1) Для заданного графа и заданного начального узла S строить дерево поиска.

2) Обеспечивать возможность ВЫБОРА любого из указанных методов поиска на дереве и находить путь выбранным методом от заданного узла S до заданного узла G с возможностью выбора произвольных узлов S и G.

3) Вычислять следующие величины:

L - длину найденного пути от узла S до узла G;

K - число узлов дерева, "закрываемых" ("расширяемых") в процессе поиска

2. Для заданного графа и заданных S и G провести поиск путей на основе разработанной блок-схемы (либо с помощью разработанной программы) всеми указанными методами и сравнить их по параметрам L и K. Результаты представить в виде таблицы Табл. 1

Табл. 1

Граф

Поиск в глубину

Поиск в ширину

Постепенное углубление

Наискорейший подъем

L

K

L

K

L

K

L

K

G 1

G 2

G 3

…..

……

…..

Каждая "бригада" студентов должна выполнить Задание №1 для одного из заданных вариантов (графов) – см. в конце. (возможно также создание студентами своих примеров (графов) для выполнения задания)

Задание № 2

Методы оптимального поиска с использованием дополнительных знаний

1. Разработать блок-схему алгоритма и программу для выполнения поиска пути на графе от заданного начального узла графа до заданного целевого узла на основе следующих методов поиска:

- Алгоритм АТ (поиск на дереве; учитывается только стоимость g(n) пути от начального узла до текущего узла n )

- Алгоритм А КТ (поиск на дереве; учитывается как стоимость g(n), так и оценка h(n) стоимости пути от текущего узла n до целевого узла)

- Алгоритм А * (поиск на произвольном графе; учитывается как стоимость g(n), так и оценка h(n) стоимости пути от текущего узла n до целевого узла)

Исходными данными для программы является граф (заданный, например, матрицей смежности) с указанием стоимости ребер и оценок h(n).

Программа должна:

1) Для заданного графа и заданного начального узла S строить дерево поиска (для Алгоритмов А Т и А КТ).

2) Обеспечивать возможность выбора любого из указанных методов поиска на дереве и находить путь выбранным методом от заданного узла S до заданного узла G с возможностью выбора произвольных узлов S и G.

3) Вычислять длину L найденного пути от S до G и число узлов дерева, "закрываемых" ("расширяемых") в процессе поиска (K).

2. Для заданного графа и заданных S и G провести поиск путей на основе разработанной блок-схемы (либо с помощью разработанной программы) всеми указанными методами и сравнить их по параметрам L и K.

Результаты представить в виде таблицы Табл. 2

Табл. 2

Граф

Алгоритм АТ

Алгоритм А КТ

Алгоритм А *

L

K

L

K

L

K

G 1

G 2

G 3

…..

……

…..

Каждая "бригада" студентов должна выполнить Задание №2 для одного из заданных вариантов (графов) и/или для следующей "Задаче о Ханойской башне" ( возможно также создание студентами своих примеров (графов) для выполнения задания)

При разработке программ можно воспользоваться формализованными описаниями алгоритмов поиска, приведенными в отдельном файле.

ЗАДАЧА О ХАНОЙСКОЙ БАШНЕ

Имеются три стержня A, B, C. На стержне А нанизаны n дисков разного диаметра по возрастанию диаметров так, что в основании лежит наибольший диск, а в самом верху – наименьший.

ЗАДАЧА: перенести все диски со стержня А на стержень С, так что бы они были расположены на нем в том же порядке, в каком были на стержне А, используя стержень В как промежуточный. При этом диски можно перемещать только по одному и ни один диск не может быть помещен на диск меньшего диаметра (на любом из стержней). Эту работу надо выполнить за минимальное время (приняв за единицу времени время переноса одного диска).

(ЛЕГЕНДА. Монахи монастыря около Ханоя работают над этой задачей, имея n = 64диска. Когда они закончат работу, наступит конец света. Но даже при безошибочных перемещениях со скоростью 1 диск в сек. работа будет завершена примерно через триллион лет)

Нам надо решить задачу немного быстрее, поэтому примем n = 2 диска.

Опишем задачу с помощью графа:

УЗЛЫ – состояния, т.е. допустимые расположения двух дисков на трех стержнях.

ДУГИ – действия, т.е. изменения положения одного диска.

Все действия имеют одинаковую стоимость (трудность), равную 1, поэтому путь минимальной стоимости в графе – это путь минимальной длины.

Начальное состояние S:

А В С

Произвольное состояние k:

А В С

Конечное (целевое ) состояние G:

А В С

Требуется :

1. Найти путь минимальной длины в этом графе с пом. Алгоритма А*

2. Построить по этому графу дерево поиска с корнем S и найти путь минимальной длины в этом дереве от S до G с пом. Алгоритма АТ .

3. Найти путь минимальной длины в этом дереве от S до G с пом. Алгоритма А КТ, используя в качестве оценки расстояния, т.е. минимального числа шагов (действий), от каждого данного узла до целевого узла G следующие значения:

Состояние

дисков на

стержне С

в данном

узле k

С

С

С

С

Оценка расстояния (т.е.минимального числа

шагов от данного узла k до целевого узла - G

h = 0

h = 1

h = 2

h = 3

ВАРИАНТЫ ЗАДАНИЙ (ГРАФЫ)

G- 1

3

4 6

8

5 10 7

1

9

G- 2

10 11

3 8

5

1 5 9 4

6

G- 3

5 4 9

6

5

3

3 7

6

9

G- 4

15

5

7

9 9

10

4 8

7

9

G- 5

8 6 7

9

7

8 8

8