Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Презентации 2часть / Лекция_19_20_Дерево_решений.ppt
Скачиваний:
33
Добавлен:
11.05.2015
Размер:
244.22 Кб
Скачать

Тема 2 Стратегии перебора

вариантов

Задача перебора вариантов и модель дерева решений

Задача оптимального выбора (задача о рюкзаке)

Метод полного перебора двоичного дерева

Метод ветвей и границ

Эвристические методы

02.07.19

1

Задача перебора вариантов и модель дерева решений

Решение многих прикладных задач (особенно задач искусственного интеллекта) сводится к перебору большого числа возможных вариантов с целью нахождения наиболее приемлемого из них по заданному критерию.

В этом случае для наглядной интерпретации перебора вариантов удобно использовать модель в виде дерева решений.

Например, для задачи моделирования игры в крестики-нолики всевозможные ситуации можно представить в виде следующего дерева решений

02.07.19

2

Игра в крестики-нолики

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Корень (начало игры)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

О

 

 

 

 

 

 

 

Первый ход

 

 

. . .

 

 

 

 

 

 

 

 

 

. . .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

О

 

 

 

 

О

 

 

 

 

О

 

 

 

О

 

 

 

 

 

О

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

О

О

Второй ход

 

 

 

 

 

 

О

О

О

О

лист

 

О

(конец

 

 

 

 

О

 

 

О

 

игры)

 

 

 

 

 

 

 

 

 

 

02.07.19

3

Описание модели

Каждый узел в дереве интерпретируется как результат выполнения некоторой последовательности шагов решения задачи перебора вариантов.

Ветвь в дереве при этом соответствует принятию очередного решения (шагу), которое ведет к более полному решению. В игровых деревьях, например, каждая ветвь соответствует ходу игрока.

Листы (узлы у которых нет выходящих ветвей) представляют собой окончательные варианты решений.

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

Форма дерева, критерий оптимальности и условия-ограничения

определяются конкретной задачей.

4

02.07.19

Задача о почтальоне

Дерево решений

1 2

2

4

3

3

 

4

1

4

3

1

1

3 4

2 4 2 3

4 2 3 2

1 1 1 1

Почтальон выходит из пункта 1 Он должен обойти все пункты и возвратиться обратно

02.07.19

5

Формализация задачи

Предположим, что на каждом i-том ходу возможен выбор из ki вариантов (ai1..aiki ) хода. Т.е. задана матрица возможных кандидатов на каждом ходу, например такая:

начало

a

a

 

 

 

 

 

11

12

 

 

 

 

 

a22

a23

 

 

 

A a21

a

 

i-й ход (i=1..n)

a

a

a

33

34

 

31

32

 

 

 

a41

a42

a43

 

 

 

J – вариант хода

Один из путей S=(a11, a22, a34, a42) Целевая функция

02.07.19

F(S)= a11+ a22+a34+a42

Попытайтесь

запрограммировать перебор вариантов с помощью операторов цикла и найти максимальный

6

Рекурсивная программа полного перебора

Var S:array[1..n]of тип <кандидатов a11..ankn>;

n,j:word;

Procedure Vbr(i:word);

Begin

j:=0;

Repeat

j:=j+1;

//выбор и запоминание j-го кандидата на i-том ходу

S[i]:= a[i,j];

if i<n then

Vbr(i+1)

else begin

{лист решения сформирован в S[1..n], здесь возможна проверка

 

приемлемости и оптимальности, печать или отображение

 

варианта };

end;

until j=ki ;

// список кандидатов на i – м ходу исчерпан; end;//Vbr

Обращение к процедуре:

Read(n);

For i:=1 to n do S[i]:=0;

 

02.07.19

Vbr(1);

7

 

 

 

Пример (сколькими способами можно укомплектовать рюкзак тремя вещами)

Матрица имеет двух

Программа выдаст следующие 8

 

кандидатов на каждом

вариантов массива S

 

 

шагу

 

 

 

1

2

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

 

 

1

2

0

 

 

 

 

 

0

 

 

 

 

 

 

1

3

 

 

0

 

 

 

 

 

 

 

A 2

 

 

 

0

0

 

 

 

 

 

 

1

 

 

3

0

 

 

0

2

3

 

 

 

 

 

0

2

0

 

 

На основе такого алгоритма создаются

 

 

0

3

 

 

программы игры в шахматы, карты, а также

0

 

 

 

 

 

 

 

решается множество задач искусственного

 

0

0

 

 

интеллекта

 

 

 

8

02.07.19

 

 

 

0

 

Procedure Vbr(i:word);

Begin

j:=0;

Repeat

j:=j+1;

S[i]:= a[i,j];

if i<n

then Vbr(i+1)

else

begin {печать S[1..n],} end;

until j=2 ;

end;

n=3; Vbr(1);

02.07.19

i=1 j=1 s[1]=a[11]

i=2 j=1 s[2]= a[21] i=3 j=1 s[3]= a[31]

Печать (1,2,3)

i=3

j=2

s[3]= a[32]

 

 

Печать

(1,2,0)

 

 

i=2

j=2

s[2]= a[22]

 

 

i=3

j=1

s[3]= a[31]

 

 

Печать

(1,0,3)

 

 

i=3

j=2

s[3]= a[32]

 

 

Печать

(1,0,0)

 

 

i=1 j=2 s[1]=a[12]

 

 

i=2 j=1 s[2]=a[21]

 

 

i=3 j=1 s[3]=a[31]

 

 

Печать

(0,2,3)

и т.д.

9

Задача оптимального выбора (о рюкзаке)

Имеется n элементов a1...an

Каждый элемент ai характеризуется определенными

свойствами, например вес wi и цена ci

(это могут быть размер и время, объем инвестиций и ожидаемый доход, и т.д.).

Требуется найти оптимальную выборку ai1 ...aik

k n

т.е. такую для которой, при заданном ограничении на

суммарный вес достигается максимальная стоимость .

k

 

k

wij

Wmax

max ci j

j 1

 

j 1

02.07.19

10