Программирование на языке ПРОЛОГ для искуственного интеллекта
Расширение программы-примера с помощью правилУпражнения
Общий обзор языка пролог
Пример программы: родственные отношения
Рекурсивное определение правил
Декларативный и процедурный смысл программ
Резюме
Литература
Как пролог-система отвечает на вопросы
AVL - дерево: приближенно сбалансированное дерево
Резюме
Основные стратегии решения задач
Предварительные понятия и примеры
Стратегия поиска в глубину
Поиск в ширину
Списковое представление множества кандидатов
Древовидное представление множества кандидатов
Замечания относительно поиска в графах, оптимальности к сложности
Резюме
Поиск с предпочтением: эвристический поиск
Поиск с предпочтением
Усовершенствованные методы представления множеств деревьями
Двоично - троичные справочники
Поиск c предпочтением применительно к головоломке "игра в восемь"
Упражнение
Применение поиска с предпочтением к планированию выполнения задач
Проект
Резюме
Сведение задач к подзадачам и / или-графы
Представление задач в виде И / ИЛИ-графов
И / ИЛИ-представление задачи поиска маршрута
Задача о ханойской башне
Формулировка игровых задач в терминах И / ИЛИ-графов
Базовые процедуры поиска в И / ИЛИ-графах
Экспертные системы
Функции, выполняемые экспертной системой
Грубая структура экспертной системы
Эвристические оценки и алгоритм поиска
Программа поиска
Пример отношений, определяющих конкретную задачу: поиск маршрута
Резюме
Разработка оболочки
Программирование на языке ПРОЛОГ для искуственного интеллекта
Процесс рассужденийФормирование ответа на вопрос "почему"
Формирование ответа на вопрос "как"
Реализация
Процедура рассмотреть
Процедура ответпольз
Усовершенствование процедуры ответпольз
Процедура выдать
Драйвер верхнего уровня
Одно замечание по поводу программы-оболочки
Цели с отрицанием
Степень достоверности
Модель Prospector'а
Принципы реализации
Правила типа "если-то" для представления знаний
Заключительные замечания
Проекты
Резюме
ИГРЫ
Игры двух лиц с полной информацией
Проект
Минимаксный принцип
Минимаксные игровые программы: усовершенствования и ограничения
Альфа-бета алгоритм: эффективная реализация минимаксного принципа
Знания о типовых ситуациях и механизм "советов"
Цели и ограничения на ходы
Выполнимость совета
Правила и таблицы советов
ПРОГРАММИРОВАНИЕ В ТЕРМИНАХ ТИПОВЫХ КОНФИГУРАЦИЙ
Основные понятия
Прологовские программы как системы, управляемые образцами
Пример составления программы
Программа на языке AL для игры в шахматном эндшпиле
Миниатюрный интерпретатор языка AL0
Программа на языке советов для эндшпиля "король и ладья против короля"
Проект
Резюме
Простой интерпретатор программ, управляемых образцами
Заключительные замечания
Проект
Резюме
Простая программа для автоматического докаэательства теорем
Программирование на языке ПРОЛОГ для искуственного интеллекта
Синтаксис и семантика Пролог программОбъекты данных
Атомы и числа
Переменные
Имеетребенка( X) :- родитель( X, Y)
Имеетребенка( X) :- родитель( X, _ )
Некто_имеет_ребенка :- родитель( X, Y)
?- Родитель( X, _ )
Структуры
Сопоставление
Процедурная семантика
Пример: обезьяна и банан
Декларативный смысл пролог-программ
Замечания о взаимосвязи между Прологом и логикой
Резюме
Опасность бесконечного цикла
Варианты программы, полученые путем переупорядочивания предложений и целей
Сочетание декларативного и процедурного подходов
СПИСКИ, ОПЕРАТОРЫ, АРИФМЕТИКА
Представление списков
Операторная запись (нотация)
Арифметические действия
Резюме
Некоторые операции над списками
Принадлежность к списку
Сцепление ( конкатенация)
Добавление элемента
Удаление элемента
Подсписок
Перестановки
Использование структур: примеры
Получение структурированной информации из базы данных
Абстракция данных
Планирование поездки
Моделирование недетерминированного автомата
Управление перебором
Ограничение перебора
Эксперимент 1
Задача о восьми ферзях
Программа 2
Программа 3
Заключительные замечания
Резюме
Вычисление максимума
Процедура проверки принадлежности списку, дающая единственное решение
Добавление элемента к списку, если он в нем отсутствует (добавление без дублирования)
Задача классификации объектов
Трудности с отсечением и отрицанием
Резюме
Ввод и вывод
Связь с файлами
Reаd и write
Вывод списков
Формирование термов
Обработка произвольного файла термов
Программирование на языке ПРОЛОГ для искуственного интеллекта
Отрицание как неуспехОтрицание как неуспех - 2
Отрицание как неуспех - 3
Упражнения
Обработка символов
Упражнение
Создание и декомпозиция атомов
Упражнения
ДРУГИЕ ВСТРОЕННЫЕ ПРОЦЕДУРЫ
Предикаты var, nоnvar, atom, integer, atomic
Решение числового ребуса с использованием nonvar
Упражнения
Создание и декомпозиция термов: =, functor, arg, name
Упражнения
Различные виды равенства
Работа с базой данных
Упражнения
Средства управления
Ввод программ: consult, reconsult
Резюме
Bagof , setof и findall
Упражнения
Резюме
СТИЛЬ И МЕТОДЫ ПРОГРАММИРОВАНИЯ
Общие принципы хорошего программирования
Как представлять себе программы на Прологе
Использование рекурсии
Обобщение
Использование рисунков
Стиль программирования
Некоторые правила хорошего стиля
Табличная организация длинных процедур
Отладка
Эффективность
Повышение эффективности решения задачи о восьми ферзях
Повышение эффективности программы раскраски карты
Повышение эффективности конкатенации списков за счет совершенствования структуры данных
Повышение эффективности зa счет добавления вычисленных фактов к базе данных
Упражнения
Резюме
ОПЕРАЦИИ НАД СТРУКТУРАМИ ДАННЫХ
Замечания в некоторых альтернативных способах представления списков
Упражнения
Сортировка списков
Упражнения
Представление множеств двоичными деревьями
Упражнения
Двоичные справочники: добавление и удаление элемента
Отображение деревьев
Упражнение
Ivan Bratko
ИНТЕЛЛЕКТА
Братко И
Представление графов
Поиск пути в графе
Построение остовного дерева
Упражнение
Резюме
Литература
Я страница обложки
Программирование на языке Пролог для искусственного интеллекта
ПРЕДИСЛОВИЕ АВТОРА
Благодарности
ПРЕДИСЛОВИЕ
ОТ РЕДАКТОРА ПЕРЕВОДА
Самоучитель по Adobe Questions And Answers далее
Lotus далее