- •Лекция 1-2: Базовые понятия ии
- •Цель преподавания дисциплины
- •Терминология
- •Философские аспекты проблемы систем ии (возможность существования, безопасность, полезность).
- •История развития систем ии.
- •Лекция3: Архитектура и основные составные части систем ии
- •Различные подходы к построению систем ии
- •Вспомогательные системы нижнего уровня (распознавание образов зрительных и звуковых, идентификация, моделирование, жесткое программирование) и их место в системах ии
- •Лекции 4-7: Системы распознавания образов (идентификации)
- •Понятие образа
- •Проблема обучения распознаванию образов (оро)
- •Геометрический и структурный подходы.
- •Гипотеза компактности
- •Обучение и самообучение. Адаптация и обучение
- •Перцептроны
- •Нейронные сети История исследований в области нейронных сетей
- •Модель нейронной сети с обратным распространением ошибки (back propagation)
- •Нейронные сети: обучение без учителя
- •Нейронные сети Хопфилда и Хэмминга
- •Метод потенциальных функций
- •Метод группового учета аргументов мгуа Метод наименьших квадратов
- •Общая схема построения алгоритмов метода группового учета аргументов (мгуа).
- •Алгоритм с ковариациями и с квадратичными описаниями.
- •Метод предельных упрощений (мпу)
- •Коллективы решающих правил
- •Методы и алгоритмы анализа структуры многомерных данных Кластерный анализ
- •Иерархическое группирование
- •Лекции 8-11. Логический подход к построению систем ии
- •Неформальные процедуры
- •Алгоритмические модели
- •Продукционные модели
- •Режим возвратов
- •Логический вывод
- •Зависимость продукций
- •Продукционные системы с исключениями
- •Язык Рефал
- •Синтаксис термы
- •Константы
- •Переменные
- •Область действия переменных
- •Сложные термы, или структуры
- •Синтаксис операторов
- •Синтаксис списков
- •Синтаксис строк
- •Утверждения
- •Запросы
- •Ввод программ
- •Унификация
- •Арифметические выражения
- •Введение
- •Арифметические выражения
- •Арифметические операторы
- •Вычисление арифметических выражений
- •Сравнение результатов арифметических выражений
- •Структуры данных
- •Бинарные деревья представление бинарных деревьев
- •Представление множеств с помощью бинарных деревьев
- •Механизм возврата и процедурная семантика
- •Механизм возврата
- •Пример: задача поиска пути в лабиринте
- •Элементы нечеткой логики
- •Указатели
- •Содержание
Область действия переменных
Областью действия переменной является утверждение. В пределах утверждения одно и то же имя принадлежит одной и той же переменной. Два утверждения могут использовать одно имя переменной совершенно различным образом. Правило определения области действия переменной справедливо также в случае рекурсии и в том случае, когда несколько утверждений имеют одну и ту же головную цель. Этот вопрос будет рассмотрен в далее.
Единственным исключением из правила определения области действия переменных является анонимная переменная, например, «_» в цели любит(Х,_). Каждая анонимная переменная есть отдельная сущность. Она применяется тогда, когда конкретное значение переменной несущественно для данного утверждения. Таким образом, каждая анонимная переменная четко отличается от всех других анонимных переменных в утверждении.
Переменные, отличные от анонимных, называются именованными,а неконкретизированные (переменные, которым не было присвоено значение) называютсясвободными.
Сложные термы, или структуры
Структура состоит из атома, называемого главным функтором, и последовательности термов, называемых компонентами структуры. Компоненты разделяются запятыми и заключаются в круглые скобки.
Приведем примеры структурированных термов:
собака(рекс), родитель(Х,У).
Число компонент в структуре называется арностью структуры. Так, в данном примере структура собака имеет арность 1 (записывается как собака/1), а структура родитель - арность 2 (родитель/2). Заметим, что атом можно рассматривать как структуру арности 0.
Для некоторых типов структур допустимо использование альтернативных форм синтаксиса. Это синтаксис операторов для структур арности 1 и 2, синтаксис списков для структур в форме списков и синтаксис строк для структур, являющихся списками кодов символов.
Синтаксис операторов
Структуры арности 1 и 2 могут быть записаны в операторной форме, если атом, используемый как главный функтор в структуре, объявить оператором (см. гл. 6).
Синтаксис списков
В сущности, список есть не что иное, как некоторая структура арности 2. Данная структура становится интересной и чрезвычайно полезной в случае, когда вторая компонента тоже является списком. Вследствие важности таких структур в Прологе имеются специальные средства для записи списков. Возможности обработки списков рассматриваются в разд. 5.1.
Синтаксис строк
Строка определяется как список кодов символов. Коды символов имеют особое значение в языках программирования. Они выступают как средство связи компьютера с внешним миром. В большинстве реализации Пролога существует специальный синтаксис для записи строк. Он подобен синтаксису атомов. Строкой является любая последовательность символов, которые могут быть напечатаны (кроме двойных кавычек), заключенная в двойные кавычки. Двойные кавычки в пределах строки записываются дважды «».
В некоторых реализациях Пролога строки рассматриваются как определенный тип объектов подобно атомам или спискам. Для их обработки вводятся специальные встроенные предикаты. В других реализациях строки обрабатываются в точности так же, как списки, при этом используются встроенные предикаты для обработки списков. Поскольку все строки могут быть определены как атомы или как списки целых чисел, и понятие строки является чисто синтаксическим, мы не будем более к нему возвращаться.