Дерево решений – это граф, представляющий правила в

реклама
Российский государственный университет нефти и газа имени
И.М. Губкина
Лабораторная работа №1
Москва, 2007
1
Содержание
1. Теоретический материал ...................................................................................................... 3
2. Постановка задачи ................................................................................................................ 4
3. Применение Excel для решения задачи .............................................................................. 8
Исходные данные ................................................................................................................. 8
Средний доход по альтернативам ....................................................................................... 8
4. Описание Supertree ............................................................................................................... 9
5. Использование Supertree для решения задачи ................................................................. 16
Расчет дерева....................................................................................................................... 17
Анализ дерева ..................................................................................................................... 18
2
1. Теоретический материал
Дерево решений – это граф, представляющий правила в
иерархической последовательной структуре, где каждому объекту
соответствует единственный узел, дающий решение.
Дерево решений обычно строится следующим образом. Сначала
берется весь набор данных, который представляется исходной или
корневой вершиной. Затем определяются способы (правила) разбиения на
ветви всего множества записей или вариантов, соответствующих
корневому узлу. Ветви образуют дерево, повернутое кроной вниз. На
ветвях дерева отмечают узлы, отвечающие подмножеству записей или
вариантов. На каждом узле снова определяются правила разбиения на
ветви и т.д. до тех пор, пока процесс не дойдет до конечных узлов,
называемых листьями. В связи с этим, деревья решений часто
применяются для моделирования (генерации) «многоэтапных» процессов
принятия решений, в которых взаимосвязанные решения принимаются
последовательно. Такое представление облегчает описание процесса
принятия решений.
Правило или способы разбиения множеств записей или вариантов
называют решающим правилом:
1, если условие выполняется;
аik  
0 в противном случае,
где аik  1 , если условие S i для правила rk выполняется;
Ssi i  1, I
- множество условий, описывающих параметры выбранной
предметной области,
R  rk   k  1, K - множество решающих правил, описывающих конкретные
действия, выполняемых при заданных значениях параметров из множества
условий.
Это правило фактически является логической структурой «если …,
то …», делящее анализируемое множество на две группы. По мере спуска
по дереву решений от вершины к листьям, создается все больше
отфильтрованных
однородных
множеств,
удовлетворяющих
определенному набору условий, сформулированных в узлах дерева.
Для генерации различных вариантов решений и их оценки
наибольшее распространение получили деревья решений, содержащие два
типа вершин: вершины, в которых решение принимает эксперт (ЛПР) и
вершины, где решение принимает «случай», выходящие из вершины дуги
задают определенные вероятности направлений принятия решения.
Приведенный ниже пример иллюстрирует принцип использования
дерева решений.
3
2. Постановка задачи
Предположим, что на территории деятельности компании открыто и
подготовлено к эксплуатации нефтяное месторождение. Проектным
институтом составлена технологическая схема разработки данного
месторождения, предусматривающая его эксплуатацию с помощью двух
альтернативных вариантов, отличающихся фондом скважин и их
размещением по площади, системами воздействия на пласт, динамикой
добычи нефти и жидкости, динамикой капитальных и текущих затрат и
другими технико-экономическими показателями.
Компания может принять решение о разработке месторождения
первым или вторым способом. Решение о выборе способа разработки,
кроме технологических соображений, определяется еще и предполагаемой
ценой на нефть.
Таким образом, для принятия решения о выборе варианта разработки
необходимо рассчитать доходность каждой альтернативы с учетом
выбора способа разработки и предположений об уровне цен и рассчитать
ожидаемую доходность всего проекта разработки.
Пусть первый способ разработки месторождения для своей
реализации требует затрат в 45 млн.рублей. Второй способ разработки для
своей реализации требует затрат в 23 млн. рублей. Через 5 лет после
эксплуатации месторождения начинается второй этап и требуется
принятие решения о смене способа эксплуатации. Следует учесть, что
смена способа эксплуатации связана с дополнительными издержками,
которые необходимо учитывать в расчетах.
I этап = 5 лет
II этап = 5 лет
1 способ
2 способ
1 способ
2 способ
высокие низкие высокие низкие высокие низкие высокие низкие
цены
цены
цены
цены
цены
цены
цены
цены
9,0
7,0
6,0
5,0
7,0
6,0
5,0
4,0
Стоимость разработки 1 способом - 45 млн.
Стоимость разработки 2 способом – 23 млн.
Смена стоимости разработки - 5 млн.
Построим дерево решений, основываясь на условиях, заданных
таблично:
4
Второй
этап
5 лет
Первый
этап
5 лет
Высокий уровень цен
8
Низкий уровень цен
17
Высокий уровень цен
18
Первый способ
4
Второй способ
9
Низкий уровень цен
Высокий уровень цен
Высокий уровень цен
2
16
19
20
10
Первый способ
Низкий уровень цен
Низкий уровень цен
21
Первый способ
5
Второй способ
11
Высокий уровень цен
22
Низкий уровень цен
23
1
Высокий уровень цен
Первый способ
6
Второй способ
Высокий уровень цен
12
Второй способ
13
3
Низкий уровень цен
25
Высокий уровень цен
26
Низкий уровень цен
Низкий уровень цен
Высокий уровень цен
7
Первый способ
24
14
27
28
Низкий уровень цен
29
Высокий уровень цен
30
Второй способ
15
Низкий уровень цен
31
Рисунок 1.1: Дерево решений.
На рисунке 1.1 рассматриваемая задача представлена в виде дерева
решений. Предполагается, что спрос может оказаться высоким или низким.
Дерево решений имеет два типа вершин: «решающие» вершины ( ) и
5
«случайные» вершины ( ). Таким образом, начиная с вершины 1
(решающей вершины), необходимо принять решение относительно
способа разработки. Вершина 2 является случайной, из нее выходят две
ветви, соответствующие низкому и высокому уровням цен в зависимости
от сложившейся ситуации на рынке. Каждая из этих ситуаций
представлена соответствующим значением вероятности ее реализации.
Вершина 3 также является случайной, из нее выходят две ветви,
обозначающие разные уровни цен.
Данные, необходимые для поиска решения, должны включать:
1. вероятности реализации каждой ветки, выходящей из
случайной вершины
2. доходы (или расходы), связанные с каждой альтернативой
решения задачи.
3. Стоимость смены способа разработки (Сс).
Средне взвешенный доход по альтернативам составляет:
1. 9*5*0,9 + 7*5*0,8 – 45 - Сс = 18,5 млн. р.
2. 9*5*0,9 + 6*5*0,2 – 45 - Сс = -3,5 млн. р.
3. 9*5*0,9 + 5*5*0,8 – 45 – (23*5/10) - Сс = 1 млн. р.
4. 9*5*0,9 + 4*5*0,2 – 45– (23*5/10) - Сс = –17 млн. р.
5. 7*5*0,1 + 7*5*0,8 – 45 - Сс = –18,5 млн. р.
6. 7*5*0,1 + 6*5*0,2 – 45 - Сс = –40,5 млн. р.
7. 7*5*0,1 + 5*5*0,8 – 45 – (23*5/10) - Сс = –38 млн. р.
8. 7*5*0,1 + 4*5*0,2 – 45– (23*5/10) - Сс = –54 млн. р.
9. 6*5*0,9 + 7*5*0,8 – 23– (45*5/10) - Сс = 4,5 млн. р.
10.6*5*0,9 + 6*5*0,2 –23– (45*5/10) - Сс = – 17, 5 млн. р.
11.6*5*0,9 + 5*5*0,8 – 23 - Сс = 19 млн. р.
12.6*5*0,9 + 4*5*0,2 –23 - Сс = 3 млн. р.
13.5*5*0,1 + 7*5*0,8 – 23– (45*5/10) - Сс = – 20 млн. р.
14.5*5*0,1 + 6*5*0,2 –23– (45*5/10) - Сс = – 42 млн. р.
15.5*5*0,1 + 5*5*0,8 – 23 - Сс = – 5,5 млн. р.
16.5*5*0,1 + 4*5*0,2 –23 - Сс = – 21, 5 млн. р.
Таким образом, оптимальным решением в вершине 1 является
решение о выборе первого варианта разработки при высоком уровне цен в
первый и второй этапы разработки. На практике решение подобных задач
характеризуется большой размерностью показателей и различным набором
возможных исходов. В этом случае решение задачи осуществляется с
помощью специализированных программ, например Supertree.
Деревья решений являются достаточно популярным методом.
Популярность объясняется наглядностью и понятностью представления
решений в виде графа. Но деревья решений, реализуя только
последовательный перебор признаков, принципиально не могут находить
«лучшие» (наиболее полные, особенно, многокритериальные оптимальные
и т.п.) решения.
Все задачи, решаемые с помощью деревьев решений, могут быть
сведены к следующим трем типам:
6
 описание данных, содержащее их характеристику;
 классификация, т.е. отнесение объекта к одному из заранее
известных классов;
 регрессия, устанавливающая зависимость целевой переменной
от независимых (входных) данных.
Часто алгоритмы построения деревьев решений дают сложные
деревья, переполненные данными, имеют много узлов и ветвей. В них
трудно разобраться. В таких случаях бывает удобнее разбить дерево на
несколько деревьев решений.
Деревья решений поддержаны программными комплексами
различных фирм: так система MiniSet содержит визуализатор деревьев
(TreeVisualizer) и визуализатор правил (Rule Visualizer), специально для
работы с деревьями решений созданы программные системы Clementine
(Integral Solution, Великобритания), SIPINA (Лионский университет,
Франция) и др.
В данной лабораторной работе предлагается провести расчет с
использованием программы SuperTree.
7
3. Применение Excel для решения задачи
Исходные данные
Стоимость разработки первым способом (1 этап)
Стоимость разработки вторым способом (1 этап)
Стоимость разработки первым способом (2 этап)
Стоимость разработки вторым способом (2 этап)
Смена способа разработки
Срок эксплуатации (первый этап)
Срок эксплуатации ( второй этап)
Высокий уровень цен
Первый этап
Низкий уровень цен
Высокий уровень цен
Второй этап
Низкий уровень цен
Высокий ур-нь цен
1
способ
Низкий ур-нь цен
Первый этап
(доход)
Высокий ур-нь цен
2
способ Низкий ур-нь цен
Высокий ур-нь цен
1
способ
Низкий ур-нь цен
Второй этап
(доход)
Высокий ур-нь цен
2
способ Низкий ур-нь цен
45
23
22,5
11,5
0
5
5
0,9
0,1
0,8
0,2
9
7
6
5
7
6
5
4
Средний доход по альтернативам
Доход 16
Доход 17
Доход 18
Доход 19
Доход 20
Доход 21
Доход 22
Доход 23
Доход 24
Доход 25
Доход 26
Доход 27
Доход 28
Доход 29
Доход 30
Доход 31
23,5
1,5
4
-12
-13,5
-35,5
-33
-49
9,5
-12,5
24
8
-15
-37
-0,5
-16,5
8
4. Описание работы в программе Supertree
Программу Supertree можно скачать на сайте www.supertree.net. Для
решения данного примера использовалась версия 10.41. Для начала
работы, установите программу обязательно в корневую папку диска.
Рисунок 4.1: Стартовая страница.
Меню File, Edit и Help содержат стандартные элементы управления,
которые не будут отдельно описываться.
Рассмотрим меню Structure (Структура).
Рисунок 4.2: Меню Структура
Команда Input or Change Node Data используется для того, чтобы
ввести или изменить данные узла. При вызове этой команды на экране
появляется окно (рисунок 4.3)
Здесь необходимо указать номер узла (Node Number) и его тип (Node
type).
9
Рисунок 4.3: Данные узла
Существует три типа узлов: decision (решение принимает ЛПР),
chance (решение принимает случай), endpoint (конечная точка ветви, в
которой рассчитывается доходность ветви ).
Заполнив все поля, нажмите ОК. Если выбран тип узла Decision, то перед
вами появится следующее окно для заполнения данных узла (рисунок 4.4).
В поле Number of brаnches вводится количество ветвей, исходящих
из узла (на рисунке их две). В поле Node Name вводится имя узла
(произвольное).
Рисунок 4.4: Окно параметров узла Decision
Поле Reward заполняется, как правило, только для первого узла. Для
остальных узлов в поле Reward оставляем 0. Reward – это сумма,
добавляемая к числовому значению конечной точки для быстрого
представления прибыли (или убытка). В условиях данной задачи в поле
Reward вводим затраты на разработку месторождения тем или иным
способом или поправку на смену способа разработки (со знаком « – »).
Используйте мышь или клавишу Tab для перемещения из поля в
поле, вводя информацию для узла.
Outcome – это величина, присваиваемая конкретному узлу. В поле
Outcome вводим значения переменных, с которыми будем оперировать для
расчета дерева решений.
В полях Successor Node (Узел-наследник) вводим номера узлов,
следующих за каждой ветвью, исходящей из данного узла.
10
Если выбран тип узла Chance, то перед вами появится окно как на
рисунке 4.5.
Рисунок 4.5: Окно параметров узла Chance
По интерфейсу оно отличается от окна узла Decision только полем
Probability. В данное поле вводим вероятность, с которой появляется та
или иная ситуация (в нашем случае - вероятность установления высоких
или низких цен на нефть). Вероятность, которая вводится в поле
Probability, используется для анализа дерева решений и построения
графиков (которые наглядно представляют ситуацию для ЛПР) (рисунок
4.6).
11
Рисунок 4.6: График совокупной вероятности.
Если выбран тип узла Endpoint, появится окно как на рисунке 4.7.
Рисунок 4.7: Окно параметров узла Endpoint
В поле Name of program (название программы) можно ввести Basic
(таким образом, конечные точки будут подсчитаны с помощью выражений
Basic), а можно также обратиться к Excel (в операционных системах
Macintosh и Windows), IFPS, Lotus 1-2-3, и Quattro Pro (Windows).
12
Рисунок 4.8: Окно параметров узла Endpoint
В поле Expression (Выражение) необходимо ввести выражение
(формулу), зависящее от переменных имен узлов, для расчета конкретной
конечной точки.
В поле Nodes upon which endpoint depends необходимо ввести номера
узлов, от которых зависит выражение, введенное в поле Expression.
Для того чтобы удалить узел, в меню Structure необходимо выбрать
вкладку Delete Node (рисунок 4.9). В единственное заполняемое поле
необходимо ввести номер узла, который требуется удалить.
Рисунок 4.9: Окно удаления узла
Для того, чтобы присвоить узлу другой номер, в меню Structure
выберите вкладку Renumber Node. Перед вами появится окно как на
рисунке 4.10. В поле Increase all node numbers at and above node number
необходимо ввести узел, номер которого требуется изменить, а в поле
Number by which to increase these node numbers вводим номер узла,
который требуется присвоить.
Рисунок 4.10: Окно переименования узла
Для того, чтобы посмотреть структуру дерева после того, как
заполнены данные всех узлов, выберите вкладку Show Tree Structure в
меню Structure для просмотра всей введенной информации. Supertree
отобразит информацию так, как показано на рисунке 4.11.
13
Рисунок 4.11: Структура дерева
Под Структурой первая колонка показывает номер узла, вторая –
первую букву- сокращение типа узла, последующие колонки показывают
номера узлов-наследников для каждой ветви. Например, 2 С 3 3 3 означает
«Узел 2 – это случайная вершина с тремя ветвями, каждая из которых
ведет к узлу 3». Остальная информация берется прямо из окон ввода. Для
узла 4 В$ перед выражением означает, что это Basic-выражение.
Другой способ отображения данных - использовать опцию Show
Schematic Tree (Показать Схематичное Дерево) из меню Structure. Supertree
отобразит все данные как на схеме 4.12.
Рисунок 4.12: Схематичное дерево
Для подсчета конечных значений дерева выберите опцию
Рассчитать Дерево (Evaluate tree) из меню Расчет (Evaluate) и ответьте
Да, когда программа спросит, хотите ли вы продолжить расчет.
Рисунок 4.13: Диалоговое окно
Supertree подсчитает и сохранит значения конечных точек и
отобразит на экране внизу (рисунок 4.14).
Рисунок 4.14: Окно расчета дерева
Чтобы избежать потерь значений конечных точек, следует всегда
сохранять файл после завершения расчетов.
14
После того, как Supertree рассчитала и сохранила значения конечных
точек («Evaluated the tree»), вы можете начать анализ результатов для
определения наиболее предпочтительного результата. Для получения
такого результата, Supertree просматривает дерево справа налево,
подсчитывая ожидаемые значения на каждом случайном узле
(вероятности, умноженные на значения, и затем суммированные) и
выбирая ветвь с самым большим ожидаемым значением на узле принятия
решения.
Выберите опцию Rollback Tree из меню Analyze (Анализ), чтобы
подсчитать дерево и отобразить ожидаемое значение наиболее
предпочтительного решения (Expected value). Когда Supertree спросит о
новом порядке узлов, введите 1 2 3 и т.д. – или просто нажмите Enter. Вы
можете использовать опцию Display Tree (Отобразить Дерево) в меню
Analyze для просмотра всего дерева, как показано на рисунке 4.15.
Рисунок 4.15: Отображение дерева
15
5. Использование Supertree для решения задачи
Рассмотрим задачу поиска ожидаемой доходность проекта разработки.
1. Создаем 31 узел. для узлов 1, 4, 5, 6, 7 выбираем тип decision, для
узлов 2, 3, 8-15 выбираем chance, а для узлов 16-31 -endpoint.
2. Вводим данные для каждого узла.
a. В узле 1 заполняем поле Reward, где указываем затраты на
разработку месторождения тем или иным способом (рисунок
5.1)
Рисунок 5.1: Окно узла 1
b. В узлах 4, 5, 6, 7 в поле Reward указываем поправку на смену
способа разработки месторождения (рисунок 5.2)
Рисунок 5.2: Окно узла 5
c. Окно для узла 9 выглядит так, как на рисунке 5.3. В поле
Number of branches вводим число 2 (т.е. две ветви выходят из
узла), в поле Outcome вводим выходные данные узла
(ожидаемую прибыль). Для девятого узла (второй этап) в
зависимости от цен, прибыль может быть равна 5*5, т.е. 5
лет(срок эксплуатации второго этапа), 5млн руб (ежегодный
доход), в поле Successor Node вводим номер следующего узла,
для данной ветви. Когда вы закончите ввод данных, в поле
Reward оставьте нули. В поле Probability вводим вероятность, с
которой появляется та или иная ситуация, в данном случае
16
вероятность установления высоких или низких цен на нефть. В
расчете значений ветвей данные, введенные в поле Probability,
не участвуют.
Рисунок 5.3: Пример ввода данных узла
Нажмите ОК или ОК, Next для ввода информации о следующем узле.
Если вы сделали ошибку и хотите удалить информацию и начать заново,
нажмите Отмена (Cancel).
Когда вы доберетесь до конечных узлов endpoint (начиная с 16-го) –
выберите программу Basic. И введите в поле Выражение (Expression) –
формулу расчета ветви (суммарная прибыль на обоих этапах минус расход
на разработку). В поле Nodes upon which endpoint depends вводим номера
узлов, от которых зависит расчетная формула.
Рисунок 5.4: Ввод данных для узла 18 типа endpoint
Когда вы закончили, используйте опцию Показать структуру
дерева (Show Tree Structure) из меню Структура (Structure) для просмотра
всей введенной информации. Supertree отобразит информацию.
Расчет дерева
Для подсчета конечных значений дерева выберите опцию
Рассчитать Дерево (Evaluate tree) из меню Расчет (Evaluate) и ответьте
Да, когда программа спросит, хотите ли вы продолжить расчет.
17
Рисунок 5.5: Диалоговое окно
Supertree подсчитает и сохранит значения конечных точек и
отобразит на экране внизу.
Рисунок 5.6: Расчет дерева.
Анализ дерева
Вы можете использовать опцию Отобразить Дерево (Display Tree) в
меню Анализ для просмотра всего дерева. В поле New order of nodes
записываем порядок узлов (записываем все узлы, кроме конечных точек).
Нажав кнопку OK, получаем дерево решений.
Рисунок 5.7: Окно ввода параметров для отображения дерева
При отображении дерева в узлах принятия решения программа
анализирует и показывает, по какой ветке следует пойти, чтобы получить
наилучший результат. Эта ветка выделена красным цветом (рисунок 5.8).
18
Рисунок 5.8
19
20
Скачать