- •Глава 1. Основные концепции искусственного интеллекта 1
- •Глава 2. Механизмы вывода в интеллектуальной системе 38
- •Глава 3. Место и роль интеллектуальных систем в автоматизированном проектировании 65
- •Глава 1. Основные концепции искусственного интеллекта
- •1.1. Основные понятия и структура исследований в области искусственного интеллекта
- •1.2. Способы представления знаний
- •1.2.1. Определение понятия знание
- •1.2.2. Продукционные модели
- •1.2.3. Семантические сети
- •1.2.4. Фреймовые модели
- •1.2.5. Исчисление предикатов
- •1.2.6. Применение теории нечетких множеств при формализации знаний
- •Глава 2. Механизмы вывода в интеллектуальной системе
- •2.1. Стратегия управления и механизм вывода в сии
- •2.2. Общие методы поиска решений в пространстве состояний
- •2.3. Дедуктивные методы поиска решений
- •Глава 3. Место и роль интеллектуальных систем в автоматизированном проектировании
- •3.1. Процесс проектирования как поиск решений
- •3.2. Структура и принципы функционирования интеллектуальной сапр
- •3.3. Интеллектуальные системы в сапр
- •3.4. Инструментальная экспертная система протей для задач проектирования и диагностики
- •3.5. Экспертная оболочка экспрэс для построения экспертных консультирующих систем в сапр
- •3.6. Экспертные системы в управлении производством на основе имитационного моделирования
1.2.4. Фреймовые модели
Фреймы - это определенная структура данных, отождествляемая с объектами, процессами и правилами данной предметной области. Они служат для описания стереотипных ситуаций и понятий. Если интеллектуальной системе нужна информация об одном из объектов в базе знаний, то открывается доступ к соответствующему фрейму, и представляются сразу все сведения об этом объекте, которые только могут оказаться полезными. Общая структура фрейма представлена на рис. 1.7.
Рис. 1.7. Общая структура фрейма
В общем случае фрейм может быть описан строкой следующего вида:
<ИФ, (ИС, ЗС, ПП), ... , (ИС, ЗС, ПП)>,
где ИФ - имя фрейма, ИС - имя слота, ЗС - значение слота, 1111 - имя присоединенной процедуры (необязательный параметр).
Каждый фрейм, прежде всего, имеет неизменные факты, определяющие описываемый данным фреймом объект или действие. Одним из обязательных неизменных фактов является имя фрейма. Фрейм содержит несколько слотов (slot - щель), которые заполняются конкретной информацией при его вызове. В каждом слоте могут перечисляться условия, которым потенциальные значения слота обязаны удовлетворять. В простейших случаях эти условия сводятся к указанию, что значениям для данного слота может быть какое-либо действие, подходящий по смыслу объект или указатель на другой фрейм. В более сложных случаях условия могут касаться отношений между значениями из нескольких слотов.
Значением слота может быть идентификатор процедуры, которая выполняется, как только становится истинным соответствующее условие. Выделяются два вида процедур: процедуры-демоны и процедуры-слуги. Процедуры-демоны активизируются при каждой попытке добавления или удаления данных из слота. Процедуры-слуги активизируются только при выполнении условий, которые были определены пользователем при создании фрейма.
Слотам фрейма могут быть заранее предписаны некоторые стандартные значения, так называемые «значения по умолчанию». Это позволяет анализировать ситуации, в которых отсутствует упоминание о целом ряде деталей. Значения по умолчанию могут быть заменены «лучшими» значениями, если они получены в результате обработки возникшей ситуации. Использование в качестве значений слотов имен других фреймов позволяет связать родственные фреймы в систему. В системе фреймов можно предсказать переход от одного состояния, выражаемого фреймом А, к другому, зависимому от него состоянию, выражаемому фреймом В.
В системах фреймов, организованных по правилу соподчиненности, есть возможность наследования свойств и сборки сведений. Суть наследования свойств заключается в том, что вся информация, записанная в «главных» фреймах (фреймах-прототипах), доступна из «подчиненных» фреймов (фреймах-примерах).
Сборка сведений позволяет фрейму - прототипе получить информацию из фреймов - примерах.
Фреймы могут быть организованы в некоторую систему, образующую информационно-поисковую сеть. Эта сеть используется в случаях, когда предложенный фрейм не удается привести в соответствии с данной ситуацией, т.е. когда не выполнены условия изменения значения слотов. В подобных случаях задача сети состоит в том, чтобы предложить какой-либо другой фрейм.
Применительно к задачам автоматизированного проектирования существенным является возможность следующей классификации фреймов по их содержательному смыслу:
Фрейм-понятие, отражающий процедуры логической связки типа «И». Например, такой фрейм, как «проектная процедура анализа» может содержать объединенные связкой «И» имена таких слотов, как «назначение», «объект применения», «условия применения» и т.д., а фрейм «базовый элемент» - слоты с именами «назначение», «форма», «вес» и др.
Фрейм-меню, служащий для организации процедурных знаний с помощью оператора «выбрать». Например, фрейм «выполнение проектной процедуры анализа» может состоять из объединенных связкой «ИЛИ» слотов «решить систему уравнений», «упорядочить данные», «уточнить задачу» и т.д., причем каждый из этих слотов может иметь несколько значений.
Фрейм с иерархически вложенной структурой. В таком фрейме в качестве значений слота используют имена других фреймов, в которых значениями слотов могут быть имена новых фреймов и т.д., так что получается иерархическая вложенная структура. Комбинируя в этих структурах фреймы-понятия типа «И» и фреймы-процедуры типа «ИЛИ», можно отображать сложные ситуации, получая в результате так называемые «фреймы-сценарии».
1. Пример Фрейма-прототипа:
Имя фрейма: Руководитель
Есть_некто: Служащий
Фамилия: ...
Имя: ...
Отчество: ...
Год_рождения: ...
Адрес: ...
Зарплата: ...
Дата зачисления: ...
Дата увольнения: ...
Отдел: ...
2. Пример Фрейма-экземпляра:
Имя фрейма: Руководитель
Есть_некто: Служащий
Фамилия: Агрегат (Иванов)
Имя: Агрегат (Петр)
Отчество: Агрегат (Кузьмич)
Год_рождения: Агрегат (1960)
Адрер: Адрес_Иванов
Зарплата: Зарплата_Иванов
Дата зачисления: Агрегат (12.03.1996)
Дата увольнения: Увольнение_Иванов
Отдел: Интервал (цех, отдел КБ, ВЦ)
Для уменьшения информационной избыточности во фреймовых системах реализуют принцип наследования информации, позволяющий общую (глобальную) для системы информацию хранить в отдельном фрейме, а во всех остальных фреймах указывать лишь ссылку на место хранения этой информации.
В рамках фреймового подхода предполагается, что знания в системе представляются в виде отдельных кластеров знаний, или подструктур, содержащих сведения о стереотипах (т.е. о некоторых общих характеристиках данного класса объектов или ситуаций). Согласно данному предположению понимание ситуации для системы означает поиск в перечне накопленных структур такой структуры, которая наилучшим способом описывала бы рассматриваемую ситуацию. При этом слоты заполняются некоторой информацией, и заполненный фрейм проверяется на адекватность данной ситуации. В случае несовпадения ищется новый фрейм и процесс продолжается.
Таким образом, можно выделить три основных процесса, происходящих во фреймовых системах:
Создание экземпляра фрейма. Для создания экземпляра фрейма необходимо найти подходящий фрейм и заполнить его слоты информацией, описывающей специфику рассматриваемой ситуации. Для того чтобы заполнить слоты используется специальная информация о том, как найти потенциальные «заполнители» слотов - «шпации». Заполнитель слота может быть константой или именем другого фрейма. Кроме того, существуют обозначения «агрегат» и «диапазон». Они необходимы в тех случаях, когда надо наложить определенные ограничения на свойства объекта, который может быть использован для заполнения слота. Обозначение «агрегат» указывает на то, что должны быть заданы определенные объекты, а обозначение «диапазон» - на то, что должен быть выбран один из множества объектов. В конечном итоге, к заполнителю соответствующих слотов присоединяются указанные в скобках подразумеваемые (принимаемые по умолчанию) значения. Обозначения «агрегат», «диапазон», «подразумеваемый» называют фасетами слота (fasets).
Активация фреймов. В том случае, когда фрейм считается подходящим для описания данной ситуации, осуществляется его активация глобальным процессом. Если обнаруживается слишком много отличий содержимого фреймов от специфических особенностей рассматриваемой ситуации или они носят достаточно серьезный характер, организуется поиск другого, более подходящего фрейма. При этом «отвергнутый» фрейм может содержать указания на то, какие именно фреймы следует исследовать взамен данного (например, более общие или, наоборот, более специализированные). Часть данных, используемых для заполнения слотов «отвергнутого» фрейма, может быть использована при рассмотрении новых кандидатов.
Организация вывода, заключающаяся в последовательном поиске активации в сети фреймов до нахождения наиболее соответствующего и построения на его основе экземпляра фрейма.
Фреймы позволяют объединить преимущества декларативного и процедурального представления знаний. Суть этого объединения состоит в том, что знания, касающиеся функций непосредственного представления их с помощью фреймов, должны храниться в декларативной форме, а знания об использовании фреймов — в процедуральной.
В частности, процедуры могут хранить знания, позволяющие давать ответ на следующие вопросы:
1. Когда активировать фрейм? Подобно «демонам» фреймы могут активировать сами себя в случае, если распознана соответствующая ситуация.
2. В каком случае считать, что данный фрейм неадекватен ситуации, и что в этом случае делать? Фрейм мог бы, например, автоматически передать управление другому фрейму или деактивировать себя.
3.Когда осуществлять заполнение слотов — в момент вызова или позднее, по мере необходимости?
Реализация этих функций может быть возложена на присоединенные процедуры. Процедуры могут также реализовывать эвристики, направленные на поиск необходимой для заполнения слотов информации.
Рассмотрим некоторые конкретные примеры практического использования теории фреймов. Аппарат теории фреймов нашел применение при создании диалоговой информационно-логической системы (ДИЛОС) [56], предназначенной для организации интерфейса между ЭВМ и непрограммирующим пользователем. Система использует специальный формальный язык (Ф-язык), в основе которого лежат фреймы. Элементы Ф-языка можно условно разделить на Ф-объекты, описывающие предметную область, и Ф-выражения, используемые для создания, поиска и модификации Ф-объектов на основе обработки входных сообщений на естественном языке.
Информация, накапливаемая в базе данных системы, может быть разделена на следующие группы:
фреймы, описывающие используемые понятия и семантические отношения между ними;
экземпляры фреймов, содержащие конкретные фактические данные о предметной области;
закономерности;
дескрипторы, обеспечивающие хранение информации о схемах вычислений, прикладных программах и данных, необходимых для решения формулируемой задачи.
Фреймы, используемые в рассматриваемой системе, могут быть представлены в таком виде:
имя фрейма:
IS<суперфрейм>
<спецификатор>
<спецификатор>
<значение
специального свойства 1>
<значение
специального свойства т> В указателе
IS
содержится ссылка на суперфрейм, стоящий
выше по иерархии в том же классе понятий
(объектов), что и данный фрейм. Спецификаторы
указывают
на имена других фреймов, а также на
условия их конкретизации при формировании
экземпляров данного фрейма. Специальные
свойства служат для указания специфических
условий, влияющих на формирование
экземпляров данного фрейма и на их связи
с экземплярами других фреймов.
Функционирует система следующим образом. На вход системы поступает информация в виде фраз естественного языка. Эти фразы с помощью препроцессора подвергаются морфологическому анализу, после чего лингвистический процессор осуществляет перевод текста в Ф-выражения, построенные с помощью фреймов. На следующем этапе семантический процессор выполняет анализ полученных Ф-выражений. В заключение осуществляется формирование планов вычислений, запуск прикладных программ и обращение к базе данных для получения результатов. Для этого используются планирующий, вычислительный и информационные процессоры.
Для решения задачи анализа и синтеза АСУ была разработана система автоматизированного проектирования (САПР) АСУ—КАТИ, содержащая фреймовые модели: математического обеспечения задач АСУ; информационного обеспечения задач АСУ; технического и программного обеспечения задач АСУ; организационного обеспечения АСУ.
В системе КАТИ обрабатываются фреймы знаний и фреймы данных. Фреймы знаний описывают общие понятия (например, типовой модуль АСУ). Они декомпозируются в сеть подфреймов (субфреймов), отражающих отдельные свойства данного понятия. Фреймы данных содержат некоторые фактические данные. Каждому субфрейму понятия соответствует фрейм данных. Совокупность фреймов знаний и фреймов данных, относящихся к нему, образуют модуль фрейма понятия.
На множестве фреймов знаний вводятся отношения копирования, модификации, сборки и проекции, с помощью которых становится возможным осуществление операций создания новых фреймов знаний, внесение изменений и т. д. На множество фреймов данных определены следующие отношения типа:
вычисление, обеспечивающее выполнение арифметических операций;
подмножество, выделяющее из некоторого множества данных его подмножества;
соединение, позволяющее присоединять к данному фрейму некоторые элементы других фреймов;
объединение, с помощью которого несколько фреймов могут быть сведены в один.
Система сетей фреймов образует базу знаний КАТИ, на основе которой решается задача автоматизированного анализа и синтеза АСУ.
При разработке АСУ важным вопросом является построение адекватной модели объекта. При этом необходимо учитывать большое число параметров, что делает неэффективным формирование модели вручную..
Построение модели осуществляется следующим образом (см. рис. 1.8.):
1. Ввод информации с внешнего носителя (ВН) и формирование на ее основе из символических фреймов (СФ) экземпляров фреймов (ЭВ).
Активация присоединенных процедур (ПП), реализующих контроль введенной информации и формирование ссылок на соответствующие фреймы-шаблоны (ФШ).
Заполнение выбранных фреймов-шаблонов и формирование модели (М).
4. Вывод сформированной модели на внешний носитель (ВН).
Так как вносимые в ходе решения коррективы затрагивают, как правило, не всю модель, а лишь какую-то ее часть, то выбранные фреймы-шаблоны и модель хранятся на внешнем носителе, претерпевая необходимые изменения, и формирование заново всей модели и ввод ее не требуются.
Рис. 1.8. Схема построения модели
В системе автоматизированного проектирования ТЕМП, предназначенной для конструирования абстрактных структур данных, используемых в процессе проектирования программ и алгоритмов, было выделено четыре типа фреймов:
Фрейм запроса (QUERY), содержащий описание структуры, процессов, внешних входов производственной системы в неформальном виде в терминах профессионального языка.
Фрейм модели (MODEL), формально описывающий задачу, т.е. целевую функцию, ограничения и т. д.
3.Фрейм алгоритма (SCHEME), описывающий элементы алгоритма решения задачи.
4. Фрейм программы (PROG), содержащий описание вычислительных процессов в терминах конкретного языка программирования.
Совокупность этих фреймов, а также специальные процедуры, реализованные на языке Лисп, образуют базу знаний системы. Синтаксис используемых фреймов имеет следующий вид:
<фрейм>::=(<имя фрейма><тело фрейма>)
<имя фрейма>::=СЛА
<тело фрейма>::={(слот)}
<слот>::=<фрейм>
<слот>::=<аспект>
<аспект>::=(<имя аспекта><тело аспекта>)
<имя аспекта>::=& IF—NEEDED|& ARO & REQUIRE|& VALUE
<тело аспекта>::=<& IF—NEEDED—тело>|<& АКО тело><& REQURE
тело><& VALUE тело>
<& IF—NEEDED тело>::={<условная процедура>}
<условная процедура>::=(<предикатная функция>{<обращение к процедуре>})
<предикатная функция>::=СВ
<обращение к процедурен :=СВ
<& АКО тело>::= имя фрейма
<имя фрейма>::=СЛА
<& VALUE тело>::=ЛА
<& VALUE тело>::=СВ
Здесь СЛА, СВ и ЛА означают соответственно символьный Лисп-атом, выражение Лисп и Лисп-атом. Телом & IF—NEEDED является список условных процедур, которые выполняются при активизации фрейма функцией FNEED, если соответствующие предикатные функции приобрели истинное значение. Тело & АКО есть имя фрейма, свойства которого наследуется данным слотом. Тело & REQUIRE представляет собой предикатную функцию, которая вычисляется при активации фрейма функцией CHECK и приобретает истинное значение, если рассматриваемый слот заполнен семантически и синтаксически правильно. Телом & VALUE являются данные.
Таким образом, следует отметить, что, несмотря на различия в толковании понятия «фрейм», последний пользуется достаточной популярностью и получает широкое распространение в системах представления знаний.
Понятие фрейма во многом близко понятию семантической сети. Основное отличие состоит в том, что фрейм - это семантическая сеть со структурированными знаниями. Можно построить фреймовую семантическую сеть, в которой каждой вершине будет соответствовать фрейм. Связи между фреймами в этой сети могут быть созданы путем использования либо имен фреймов в качестве значений слотов либо общих имен слотов в разных фреймах.
В отличие от обычной семантической сети с разными типами вершин и связей, фреймовая семантическая сеть имеет достаточно четкую структуру и легко позволяет строить различные сценарии проведения проектных процедур, отображать различные иерархические классификации проектируемых объектов и процедур с помощью вложенных фреймов-понятий.
