- •Введение
- •Требования к выполнению лабораторных работ
- •Примеры с комментариями
- •Вычисление факториала
- •Ханойские башни
- •Задача с ферзями
- •Раздел 1. Основы программирования на языке Пролог Постановка задачи
- •Требования к исполнению
- •Методические указания
- •Задание 2. Пролог для задач искусственного интеллекта Постановка задачи
- •Требования к исполнению
- •Варианты задания
- •1. Система, отвечающая на вопросы о родственных отношениях
- •Программа синтаксического анализа предложений естественного языка
- •Экспертная система классификации объектов (диагностического типа )
- •4. Программа, составляющая головоломку крисс-кросс (перекрестный кроссворд)
- •Программа построения прямоугольного лабиринта
- •Игровая программа
- •Программа генерации геометрических головоломок
- •Программа разработки маршрутов транспортных перевозок
- •Программа составления учебного расписания
- •Методические указания
- •Введение…………………………………………………….……..... 3 Требования к выполнению лабораторных работ……….……...…. 3
Игровая программа
Предлагается выбрать игру из класса игр двух лиц (игроков) с полной информацией [Братко, с.472-475], к которому относятся, например, шахматы и шашки. Игра должна быть достаточно сложной, чтобы практически исключалась возможность полного просмотра дерева игры и обнаружения выигрышной стратегии (если таковая существует), например, шашки без дамок, калах [Уэзерелл, с. 76-78], шахматный эндшпиль, реверси и крестики-нолики на неограниченной доске.
В таких играх для выбора компьютером очередного хода используется так называемая статическая оценочная функция, оценивающая позицию игры как таковую без учета ее продолжений, и альфа-бета процедура поиска наилучшего хода, исходя из заданной игровой позиции [Уэзерелл, с. 78-86; Братко, с. 479-484]. Альфа-бета процедура основана на частичном просмотре возможных продолжений игры на заданное количество D ходов игроков ( т.е. просмотре дерева игры от заданной игровой позиции на глубину D) и оценки возможных игровых позиций (вершин дерева) с помощью статической оценочной функции. В отличие от минимаксной процедуры, решающей ту же задачу, альфа-бета процедура выполняет просмотр дерева и оценку вершин более экономно.
Требуемая игровая программа должна использовать альфа-бета процедуру, оформленную в виде отдельного модуля. Она должна уметь играть как против человека (пользователя), так и против самой себя или другой игровой программы, и при этом визуализировать текущую позицию игры, а ввод ходов игроков осуществлять в наиболее удобной форме.
В программе следует предусмотреть возможность изменения (перед началом игры) глубины D просмотра дерева игры альфа-бета процедурой (2D6, шаг глубины соответствует ходу одного игрока), а также чтобы с программой было интересно играть, случайный выбор хода из нескольких равноценных.
Программа генерации геометрических головоломок
В таких головоломках требуется найти закономерность в наборе из нескольких составных геометрических фигур. Составными элементами каждой фигуры могут быть: точка, квадрат, треугольник, прямоугольник, круг, различные отрезки линий и др. Такие элементы могут быть соединены в фигуре различным образом: они могут быть вложены друг в друга, могут пересекаться или соприкасаться [Стерлинг, с.182-184, 189]. Кроме того, контуры элементов могут быть разного цвета, а их внутренняя часть заштрихованной или цветной. Примеры наборов таких составных фигур показаны на рисунках 6 и 7. Могут быть и более сложные фигуры например, схематические изображения человечков или животных.
В
С
А
D
Рис. 6
1
2
3
4
5
6
Рис. 7
Рис.
8
Поиск закономерности предполагает обнаружение недостающей фигуры (обозначенной на рисунках вопросительным знаком). В первом случае (рис. 6) необходимо обнаружить аналогию, т.е. найти фигуру D, относящуюся к С, как фигура В к фигуре А. Во втором случае (рис. 7) требуется найти фигуру, завершающую закономерность.
В обоих рассмотренных видах задачи поиска закономерностей предлагается несколько вариантов ответа , среди которых надо выбрать правильный. Например, возможный для задачи с рисунка 7 набор вариантов ответа показан на рис. 8, правильный ответ этой задачи фигура 6 на рис. 8. Правильный ответ задачи с рисунка 6 фигура из треугольника, в который вписан круг.
Программа генерации геометрических головоломок должна сформировать задачу на поиск геометрической закономерности, то есть набор составных фигур без некоторой недостающей фигуры и набор различных составных фигур, включающих эту недостающую фигуру (набор ответов). Программа должна показать сгенерированную задачу пользователю и предложить ему на выбор: либо самому решить задачу (в этом случае она проверяет правильность решения и сообщает о результате пользователю), либо показать ему правильное решение (если он затрудняется задачу решить).
Важно предусмотреть возможность решения пользователем за сеанс работы с программой нескольких задач для этого программа при каждом обращении к ней должна порождать разные задачи, причем в разные сеансы последовательности генерируемых задач должны быть разными. Чтобы этого достичь, следует в некоторые моменты процесса генерации задачи производить случайный выбор составных элементов фигур и их конфигурации, используя датчик случайных величин и некоторое доступное программе значение, заранее неизвестное (дату и/или текущее время). Для представительности множества генерируемых задач необходимо, чтобы геометрические фигуры задачи включали не менее 5 различных элементов, включая цвет и штриховку.
Программа построения геометрических головоломок должна быть организована таким образом, чтобы допускать быструю перенастройку системы для генерации задач, в которые входят фигуры с другими составными элементами. Такая перенастройка должна осуществляться без переработки пролог-процедуры генерации головоломки допустимо лишь добавление процедур отрисовки новых элементов фигур.
