Цель работы: выработать у обучаемого навыки правильного выделения целей системы, ее декомпозиции и поиска возможных (как можно больше) путей ее достижения.
Содержание работы: цель, дерево целей, декомпозиция целей; факты и правила; прямая и обратная цепочка рассуждений
Постановка задачи примером. Одно из возможных определений интеллектуальной программы - это компьютерная программа, управляемая целями, а не данными. При разработке такой программы в первую очередь следует думать не об алгоритме, а о целях, которые данная программа должна достигать.
Цель системы можно понять неправильно, либо правильно, но неточно. Умение правильно и точно определять цели, достигаемые при применении интеллектуальной программы - одно из базовых умений специалиста по ИИ.
Разделы и темы для самостоятельного изучения | Виды и содержание самостоятельной работы |
Правильная постановка целей | Задания: Выделить цель, дерево целей, выполнить декомпозицию целей; определить факты и правила; прямую и обратную цепочку рассуждений в следующих задачах: 1. Как добраться на работу вовремя. 2. Как сделать салат. 3. Как узнать, хочет ли кошка есть. 4. Тест: знаете ли вы английскую грамматику? 5. Загадка: «угадай животное» (птица, зверь или рыба). 6. Как получить диплом специалиста. |
|
|
Методические рекомендации к выполнению:
Одно из возможных определений интеллектуальной программы — это компьютерная программа, управляемая целями, а не данными. При разработке такой программы в первую очередь следует думать не об алгоритме, а о целях, которые данная программа должна достигать.
Цель системы можно понять неправильно, либо правильно, но неточно. Позтому при решении задачи необходиммо придерживаться следующего порядка действий:
- Определение цели
- Уточнение цели
- Декомпозиция уточненной цели, построение дерева целей системы с указанием степени достижения цели
Возможны нескольнесколько правильных вариантов декомпозиции, различающихся количеством и порядком следования подцелей, т. е. экономичностью модели.
Пример выполнения задания:
«Создать компьютерную программу, которая оценит, умеет ли ребенок считать».
При построении дерева целей можно использовать, по крайней мере, две различные стратегии, основанные на рассуждениях вида:
1) что нужно сделать, чтобы получить заданный результат;
2) что получится, если я поступлю «вот так».
Первая хороша тем, что позволяет относительно быстро наметить план действий, приводящий к достижению поставленной цели.
Например, «для того, чтобы достать высоко висящий предмет, следует подпрыгнуть и схватить, а при неудаче — подставить ящик, подпрыгнуть и схватить». При таком подходе мы как бы «обслуживаем заданную цель», поясняем, какими путями она точно могла бы быть достигнута, идем от цели к фактам. Варианты, которые мы генерируем, обладают различной экономичностью. Некоторые из них приводят к цели за малое число «сложных» шагов, другие требуют много «простых» шагов.
|
|
Например, получить диплом можно «экстерном» или обучаясь на протяжении 5 лет.
Преимущество второй стратегии в том, что, проанализировав каждое из возможных действий, можно выработать оптимальную последовательность действий (например, самую короткую). Пример:
«если я подпрыгну, то, возможно, схвачу высоко висящий предмет»,
«если я встану на ящик, то точно смогу достать выше, подпрыгнув».
Перебирая такие последовательности, мы рано или поздно найдем ту, которая приводит к поставленной цели. Здесь мы идем от фактов к цели.
Первую стратегию называют нисходящей или, что тоже самое, «обратной цепочкой рассуждений», вторую — восходящей или прямой.
Прямая цепочка не обязательно приводит к достижению поставленной цели. В общем случае два дерева целей, про которые известно, что они оба приводят к достижению поставленной цели, но получены на основе разных стратегий, различны.
Дерево целей может быть получено методом «встречной волны», когда анализируются противоречия между результатами обратной и прямой волны. Такое дерево обеспечивает оптимальный путь достижения цели.
Контроль выполнения работы:
1. В отчете отразить последовательность разработки программы:
1) определения целей;
2) определения фактов, имеющих отношение к этим целям (важно, чтобы факты исчерпывающе соответствовали своей цели), например при проверке «знает ли ребенок правила сложения» следует проверить знание сложения с «О», с «1», без переноса разряда, с переносом разряда);
3) получение данных, соответствующих фактам, характеристик для заданной ситуации или объекта;
4) оценки данных, используя правила и механизм вывода.
Литература:
1. Братко И. Программирование на языке Пролог для искусственного интеллекта: Пер. с англ. – М.: Мир, 1990. – 560с.
2. Смолин Д.В. «Введение в искусственный интеллект», М.: Изд. Академия, 2005 г.
3. Адаменко А.Н., Кучуков А.М. Логическое программирование и Visual Prolog. – СПб.: БХВ-Петербург, 2003.
4. Девятков В.В. Системы искусственного интеллекта. - М.: Изд-во МГТУ им. Н. Э. Баумана, 2001.
5. Новицкая Ю.В. Основы логического и функционального программирования (учебное пособие). – http://ermak.cs.nstu.ru/flp/