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