22. Модели представлений знаний. Логическое программирование. Представление знаний о предметной области в виде фактов и правил базы знаний.

Знания - это выявленные закономерности предметной области (принципы, связи, законы), позволяющие решать задачи в этой области.

Знания представленные в интеллектуальной системе, образуют базу знаний.

Существуют десятки моделей (или языков) представления знаний для различных предметных областей.

Большинство из них может быть сведено к следующим классам:

-        продукционные;

-        сематические сети;

-        фреймы;

-        формальные логические модели;

Модели представлений знаний

1.      Продукционная модель, или, модель, основанная на правилах, позволяет представить знания в виде предложений типа: Если (условие), то (действие).

Под условием понимается некоторое предложение-образец, по которому осуществляется поиск в базе знаний, а под действием – действия, выполняемые при успешном исходе поиска.

При использовании продукционной модели база знаний состоит из набора правил. Программа, управляющая перебором правил, называется машиной вывода. Чаще всего вывод бывает прямой (от данных к поиску цели), или обратный (от цели для ее подтверждения – к данным). Данные – это исходные факты, на основании которых запускается машина вывода – программа, перебирающая правила из базы.

Правило в общем виде записывается так:

ЕСЛИ А1, А2, …….., АN ТО B.

Такая запись означает, что "если все условия от А1 до АN являются истинными, то B также истинно" "когда все условия от А1 до АN выполняются, то следует выполнить действие B".

Рассмотрим пример:

ЕСЛИ (1) y является отцом x

(2) x является братом y

ТО z является дядей x

В данном случае n = 2.

В случае n = 0 продукция описывает знание, состоящее только из вывода, т.е. факт. Примером такого знания является факт "атомная масса железа 55, 847 а.е.м.".

Переменные x, y и z показывают, что правило содержит некое универсальное, общее значение, абстрагированное от конкретных значений переменных. Одна и таже переменная, использованная в выводе и различных посылках, может получать различные конкретные значения.

В интеллектуальную систему входит также механизм выводов, который позволяет на основе знаний, имеющихся в базе знаний, получать новые знания:

ЕСЛИ (1) z является отцом x

(2) z является отцом y

(3) x и y не являются одним и тем же человеком

ТО x и y являются братьями

Простота и наглядность представления знаний с помощью продукций обусловила его применение во многих промышленных экспертных системах, которые называются продукционными.

Имеется большое число программных средств, реализующих продукционный подход, например язык OPS 5, "оболочки" или "пустые" ЭС - EXSYS, ЭКСПЕРТ.

2.      Семантические сети – ориентированный граф, вершины которого – понятия, а дуги – отношения между ними.

Семантические сети способны отображать структуру знаний во всей сложности их взаимосвязей, увязать в единое целое объекты и их свойства.

Понятиями обычно выступают абстрактые или конкретные объекты, а отношения – это связи типа: «это» (“is”), «имеет частью» (“has part”), «принадлежит», «любит». Характерной особенностью семантических сетей является обязательное наличие трех типов отношений:

- Класс – элемент класса;

- Свойство – значение;

- Пример элемента класса.

 

Классификации семантических сетей.

 

 

 

 

 

 

 

 

 

 

 


Наиболее часто в семантических сетях используются следующие отношения:

o       Связи типа «часть-целое» («класс-подкласс», «элемент-множество» и т.п.);

o       Функциональные связи (определяемые обычно глаголами «производит», «влияет»…);

o       Количественные (больше, меньше, равно…);

o       Пространственные (далеко от, близко от, за, под, над…);

o       Временные (раньше, позже, в течение…);

o       Атрибутивные связи (иметь свойство, иметь значение…);

o       Логические связи (и, или, не) и др.

 

Пример.

Часть семантической сети, относящейся к понятию "фрукты":

Проблема поиска решения в базе знаний типа семантической сети сводится к задаче поиска фрагмента сети, соответствующего некоторой подсети, соответствующей поставленному вопросу.

Основное преимущество этой модели – в соответствии современным представлениям об организации долговременной памяти человека.

Недостаток – сложность поиска вывода на семантической сети.

Для реализации семантических сетей существуют специальные сетевые языки, например NET.

3.      Фреймы.

Слово "фрейм" в переводе с английского языка означает "рамка". Фрейм является единицей представления знаний об объекте, которую можно описать некоторой совокупностью понятий и сущностей. Фрейм имеет определённую внутреннюю структуру, состоящую из множества элементов, называемых слотами. Каждый слот в свою очередь, представляется определённой структурой данных, процедурой, или может быть связан с другим фреймом.

Под фреймом понимается абстрактный образ или ситуация. В психологии и философии известно понятие абстрактного образа. Например, слово «комната» вызывает у слушателя образ комнаты: «жилое помещение с четырьмя стенами, полом, потолком, окнами и дверью, площадью 6-20 м2». Из этого описания ничего нельзя убрать (например, убрав окна, мы получим чулан, а не комнату), но в нем есть «дырки», или «слоты», - это незаполненные значения некоторых атрибутов – количество окон, цвет стен, высота потолка, покрытие пола и т.д.

В теории фреймов такой образ называется фреймом. Фреймом называется также и формализованная модель для отображения образа.

Структуру фрейма можно представить так:

ИМЯ ФРЕЙМА:

(имя 1-го слота: значение 1-го слота),

(имя 2-го слота: значение 2-го слота),

…………………………………………,

(имя N-го слота: значение N-го слота).

Ту же запись представим в виде таблицы, дополнив двуми столбцами

Имя фрейма

Имя слота

Тип слота

Значение слота

Присоединенная процедура

 

 

 

 

В таблице дополнительные столбцы предназначены для описания типа слота и возможного присоединения к тому или иному слоту специальных процедур, что допускается в теории фреймов. В качестве значения слота может выступать имя другого фрейма; так образуют сети фреймов.

Различают фреймы-образцы, или прототипы, хранящиеся в базе знаний, и фреймы-экземпляры, которые создаются для отображения реальных ситуаций на основе поступающих данных.

Модель фрейма является достаточно универсальной, поскольку позволяет отобразить все многообразие знаний о мире через:

o       Фреймы-структуры, для обозначений объектов и понятий (заем, залог, вексель);

o       Фреймы-роли (менеджер, кассир, клиент);

o       Фреймы-сценарии (банкротство, собрание акционеров, празднование именин);

o       Фреймы-ситуации (тревога, авария, рабочий режим устройства) и др.

Важнейшим свойством теории фреймов является заимствованное из теории семантических сетей наследование свойств. И во фреймах, и в семантических сетях наследование происходит по АКО-связям (А-Kind-Of = это). Слот АКО указывает на фрейм более высокого уровня иерархии, откуда неявно наследуются, то есть переносятся, значения аналогичных слотов.

Основным преимуществом фреймов как модели представления знаний является способность отражать концептуальную основу организации памяти человека, а также ее гибкость и наглядность.

Пример.

Фрейм: человек

Класс : Животное

Структурный элемент : Голова, шея, руки, ноги,…

Рост : 30 - 220 см

Масса : 1 - 200 кг

Хвост : Нет

Фрейм аналогии : Обезьяна

4.      Формальные логические модели

Основаны на классическом исчислении предикатов I порядка, когда предметная область или задача описывается в виде набора аксиом. Исчисление предикатов I порядка в промышленных экспертных системах практически не используется. Эта логическая модель применима в основном в исследовательских «игрушечных» системах, так как предъявляет очень высокие требования и ограничения к предметной области.

Формальные логические модели занимаются изучением законов мышления, одной из главных их задач является моделирование правильных человеческих рассуждений. Особый интерес к логике возник с появлением ЭВМ, с попытками научить машину рассуждать, т. е. делать логические

Логическое программирование

Новую область — логическое, или реляционное программирование, — открыло появление языка PROLOG (Пролог) (PROgramming in LOGic — программирование в терминах логики). Этот язык был создан французским ученым А. Кольмероэ в 1973 году. В настоящее время известны и другие языки, однако наиболее развитым и распространенным языком логического программирования является именно Пролог.

Центральным понятием в логическом программировании является отношение. Программа представляет собой совокупность определений отношений между объектами (в терминах условий или ограничений) и цели (запроса). Процесс выполнения программы трактуется как процесс общезначимости логической формулы, построенной из программы по правилам, установленным семантикой используемого языка. Результат вычисления является побочным продуктом этого процесса. В реляционном программировании нужно только специфицировать факты, на которых алгоритм основывается, а не определять последовательность шагов, которые требуется выполнить. Это свидетельствует о декларативности языка логического программирования. Она метко выражена в формуле Р. Ковальского: «алгоритм = логика + управление». Языки логического программирования характеризуются:

Логические программы, в принципе, имеют небольшое быстродействие, так как вычисления осуществляются методом проб и ошибок, поиском с возвратами к предыдущим шагам.

Представление знаний о предметной области в виде фактов и правил базы знаний

Знания - это выявленные закономерности предметной области (принципы, связи, законы), позволяющие решать задачи в этой области.

Представление знаний - это соглашение о том, как описывать реальный мир. В естественных и технических науках принят следующий традиционный способ представления знаний. На естественном языке вводятся основные понятия и отношения между ними. При этом используются ранее определенные понятия и отношения, смысл которых уже известен. Далее устанавливается соответствие между характеристиками (чаще всего количественными) понятий знания и подходящей математической модели.
Основная цель представления знаний - строить математические модели реального мира и его частей, для которых соответствие между системой понятий проблемного знания может быть установлено на основе совпадения имен переменных модели и имен понятий без предварительных пояснений и установления дополнительных неформальных соответствий. Представление знаний обычно выполняется в рамках той или иной системы представления знаний.

Системой представления знаний (СПЗ) называют средства, позволяющие описывать знания о предметной области с помощью языка представления знаний, организовывать хранение знаний в системе (накопление, анализ, обобщение и организация структурированности знаний), вводить новые знания и объединять их с имеющимися, выводить новые знания из имеющихся, находить требуемые знания, устранять устаревшие знания, проверять непротиворечивость накопленных знаний, осуществлять интерфейс между пользователем и знаниями.

Центральное место в СПЗ занимает язык представления знаний (ЯПЗ). В свою очередь, выразительные возможности ЯПЗ определяются лежащей в основе ЯПЗ моделью представления знаний (иногда эти понятия отождествляют).

Данные - это отдельные факты, характеризующие объекты, процессы и явления в предметной области, а также их свойства.

В отличие от данных знания обладают следующими свойствами:

· Внутренней интерпретируемостью - вместе с информацией в БЗ представлены информационные структуры, позволяющие не только хранить знания, но и использовать их;

· Структурированностью - выполняется декомпозиция сложных объектов на более простые и установление связей между ними;

·  Связанностью - отражаются закономерности относительно фактов,
процессов, явлений и причинно-следственные отношения между ними;

·  Активностью - знания предполагают целенаправленное использование
информации, способность управлять информационными процессами по
решению определенных задач.

Также знания можно разделить на:

· ПОВЕРХНОСТНЫЕ - знания о видимых взаимосвязях между отдельными событиями и фактами в предметной области;

· ГЛУБИННЫЕ - абстракции, аналогии, схемы, отображающие структуру и процессы в предметной области.

Современные экспертные системы работают в основном с поверхностными знаниями. Это связано с тем, что на данный момент нет адекватных моделей, позволяющих работать с глубинными знаниями.

Кроме того знания можно разделить на ПРОЦЕДУРНЫЕ и ДЕКЛАРАТИВНЫЕ. Исторически первичными были процедурные знания , т.е. знания , "растворённые в алгоритмах". Они управляли данными и для их изменения требовалось изменять программы. Однако с развитием искусственного интеллекта приоритет данных постепенно изменялся, и всё большая часть знаний сосредотачивалась в структурах данных (таблицы, списки, абстрактные типы данных), т.е. увеличивалась роль декларативных знаний. Сегодня же знания приобрели чисто декларативную форму, т.е. знаниями считаются предложения, записанные на языках представления знаний, приближенных к естественному и понятных неспециалистам.

Hosted by uCoz