Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Представление знаний семантическими сетями




 

Одним из способов представления знаний является семантическая сеть.

Изначально семантическая сеть была задумана как модель представления

структуры долговременной памяти в психологии, но впоследствии стала одним из

основных способов представления знаний в инженерии знаний.

Моррис дал точное определение семантическим и прагматическим отношениям в

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

Другими словами, семантика означает определенные (общие) отношения между

символами и объектами, представленными этими символами, а прагматика –

выразительные (охватывающие) отношения между символами и создателями (или

пользователями) этих символов.

Первоначально в психологии изучались объекты, именуемые семантическими с

точки зрения известных ассоциативных свойств, накапливаемых в системе

обучения и поведения человека. Однако с развитием психологии познания стали

изучаться семантические структуры, включающие некоторые объекты. Затем были

изучены принцип действия человеческой памяти (способы хранения информации и

знаний), в частности предположительные (гипотетические) структурные модели

долговременной памяти, и созданы моделирующие программы, понимающие смысл

слов.

Фреймовая модель, или модель представления знаний, основанная на фреймовой

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

человека и его сознания.

Теория фреймов - это парадигма для представления знаний с целью

использования этих знаний компьютером. Впервые была представлена Минским в

1975 году, как попытка построить фреймовую сеть, или парадигму с целью

достижения большего эффекта понимания. С одной стороны он пытался

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

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

структурированной и упорядоченной форме. Эта структура позволила бы

компьютеру вводить информацию в более гибкой форме, имея доступ к тому

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

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

объединенными в сеть, называемую системой фреймов. Новый фрейм активизируется

с наступлением новой ситуации. Отличительной его чертой является то, что он

одновременно содержит большой объем знаний и в то же время является

достаточно гибким для того, чтобы быть использованным как отдельный элемент

базы данных. Термин «фрейм» был наиболее популярен в середине семидесятых

годов, когда существовало много его толкований, отличных от интерпретации

Минского.

Итак, как было сказано выше фреймы – это фрагменты знания, предназначенные

для представления стандартных ситуаций. Термин «фрейм» (Frame – рамка) был

предложен Минским. Фреймы имеют вид структурированных компонентов ситуаций,

называемых слотами. Слот может указывать на другой фрейм, устанавливая, таким

образом, связь между двумя фреймами. Могут устанавливаться общие связи типа

связи по общению. С каждым фреймом ассоциируется разнообразная информация (в

том числе и процедуры), например ожидаемые процедуры ситуации, способы

получения информации о слотах, значение принимаемые по умолчанию, правила

вывода.

Формальная структура фрейма имеет вид:

f[<N1, V1>, <N2, V2>,., <Nk,Vk>],

где f – имя фрейма; пара <Ni, Vi> - i-ый слот, Ni – имя слота и Vi – его значение.

Значение слота может быть представлено последовательностью

<K1><Li>;...; <Kn><Ln>; <R1>;.; <Rm>,

где Ki – имена атрибутов, характерных для данного слота; Li – значение этих

атрибутов, характерных для данного слота; Rj – различные ссылки на другие

слоты.

Каждый фрейм, как структура хранит знания о предметной области

(фрейм–прототип), а при заполнении слотов знаниями превращается в конкретный

фрейм события или явления.

Фреймы можно разделить на две группы: фреймы-описания; ролевые фреймы.

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

Фрейм описание: [<программное обеспечение>, <программа 1С бухгалтерия,

версия 7.7>, <программа 1С торговля, версия 7.7>, <правовая

программа «Консультант +» проф.>].

Ролевой фрейм: [<заявка на продажу>, <что, установка и покупка

программы 1С торговля, версия 7.7>, <откуда, фирма ВМИ>, <куда,

фирма «Лукойл»>, <кто, курьер Иванова>, <когда, 27 октября

1998г.>].

Во фрейме-описании в качестве имен слотов задан вид программного обеспечения,

а значение слота характеризует массу и производителя конкретного вида

продукции. В ролевом фрейме в качестве имен слотов выступают вопросительные

слова, ответы на которые являются значениями слотов. Для данного примера

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

фреймами – примерами, либо фреймами – экземплярами. Если в приведенном

примере убрать значения слотов, оставив только имена, то получим так

называемый фрейм – прототип.

Достоинство фрейма – представления во многом основываются на включении в него

предположений и ожиданий. Это достигается за счет присвоения по умолчанию

слотам фрейма стандартных ситуаций. В процессе поиска решений эти значения

могут быть заменены более достоверными. Некоторые переменные выделены таким

образом, что об их значениях система должна спросить пользователя. Часть

переменных определяется посредством встроенных процедур, называемых

внутренними. По мере присвоения переменным определенных значений

осуществляется вызов других процедур. Этот тип представления комбинирует

декларативные и процедурные знания.

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

Это достигается за счет свойств наследования и вложенности, которыми обладают

фреймы, т.е. в качестве слотов может выступать система имен слотов более

низкого уровня, а также слоты могут быть использованы как вызовы каких-либо

процедур для выполнения.

Для многих предметных областей фреймовые модели являются основным способом

формализации знаний.

 

 

31.Назначение разделов в языке Пролог.

Программа, написанная на языке Пролог состоит из пяти основных разделов: раздел описания доменов (типов объектов), раздел внутренней базы данных, раздел описания предикатов, раздел описания предложений и раздел описания цели. Ключевые слова domains, facts(database), predicates, clauses и goal отмечают начала соответствующих разделов. Назначение этих разделов таково:

• раздел domains содержит определения доменов, которые описывают различные типы объектов, используемых в программе, если используются стандартные типы, то раздел может не использоваться;

• раздел facts(database) содержит описание предикатов динамической (внутренней) базы данных, которые являются предикатами базы данных и могут быть изменены в процессе работы программы без перекомпиляции, если программа такой базы данных не требует, то этот раздел может быть опущен;

• раздел predicates служит для описания используемых программой предикатов, этот раздел является обязательным;• в раздел clauses заносятся факты и правила статической базы данных, которая и является собственно программой, этот раздел является обязательным;

• в разделе goal на языке Пролога формулируется цель(запрос) созданной программы. Составными частями при этом могут являться некие подцели, из которых формируется единая цель программы, этот раздел является обязательным.

 

32.Обработка списков в программах на Прологе.

Список - упорядоченная последовательность элементов, имеющая произвольную длину. В ПРОЛОГЕ элементы списка не обязаны принадлежать одному типу и могут быть в свою очередь списками.

Список в ПРОЛОГе - это либо пустой список, обозначаемый [], либо структура с функтором "."(точка) и двумя компонентами: головой и хвостом списка. Признаком конца списка служит хвост, являющийся пустым списком [].

Например:

[] - пустой список
.(a,[]) - список из одного элемента a
.(a,.(b,.(c,[]))) - список из трёх элементов a, b, c

В некоторых реализациях ПРОЛОГа функтор "." определён как инфиксный оператор, тогда третий пример будет иметь вид a.(b.(c.[])).

Однако в любом случае использование "." оказывается неудобным, поэтому в ПРОЛОГе предусмотрена привычная форма записи списков: [], [a], [a,b,c].

Списки, как и любые другие структуры, могут содержать переменные, например, допустим такой список [X,a,[b,X,Y],Z].

Работа со списками основана на расщеплении их на голову и хвост. Голова - это первый элемент списка, хвост - список из остальных элементов.

Пример.

Список Голова Хвост
[a, b, c] a [b, c]
[[a, b], c] [a, b] [c]
[a] a []
[] Нет Нет

Пустой список [] не имеет ни головы, ни хвоста.
В ПРОЛОГе используется специальная форма представления списка с головой H и хвостом T - [H|T].

Примеры сопоставления списков:

?- [X,Y,Z]=[a,b,c]. X = a, Y = b, Z = c

?- [cat]=[X|Y]. X = cat, Y = []

?- [[a,Y]|Z]=[[X,b],[c,d]]. X = a, Y = b, Z = [[c,d]]

Примечание. Существует ещё одна область применения списков - представление строк литер (символов): строка, заключённая в двойные кавычки (") эквивалентна списку десятичных значений ASCII.

Для работы со списками в ПРОЛОГе используется рекурсия. Рассмотрим пример, в котором необходимо определить правила проверки принадлежности элемента списку. Для этого дадим рекурсивное определение принадлежности - некоторый элемент принадлежит списку, если а) он является первым элементом списка (головой списка) или б) принадлежит хвосту списка.

member(X, [Y|Z]):- X=Y. или

member(X, [Y|_]):- X=Y. или

member(X, [X|_]).

member(X, [_|Y]):- member(X,Y).

Для правильного применения рекурсии (а это очень мощное средство) необходимо обращать внимание на два момента:

· граничные условия (в примере: элемент содержится в списке или нет), которые обязательно должны учитываться в программе;

· способ использования рекурсии (она каждый раз должна применяться к более короткому списку).

Рассмотрим, как работают наши правила на следующих запросах: member(a,[a,b,c,d,e]) и member(d,[a,b,c,d,e]).

При получении запроса в виде

?-member(a,[a,b,c,d,e]).

ПРОЛОГ устанавливает маркер на первое правило для member и начинает попарное сопоставление компонентов предиката-запроса и заголовка этого правила. При сопоставлении первых компонентов происходит конкатенация переменной X из заголовка значением a из запроса, при сопоставлении вторых - удачное сравнение двух атомов a (одного - из запроса, другого - из заголовка).

При получении запроса в виде

?-member(d,[a,b,c,d,e]).

ПРОЛОГ закончит неудачей попытку использовать первое правило для member и установит маркер первого уровня на второе правило. Использование этого правила порождает подцель в виде member(d,[b,c,d,e]). Для реализации этой подцели ПРОЛОГ вынужден опять использовать второе правило, установив на него маркер второго уровня, при этом возникает очередная подцель member(d,[c,d,e]). На третьем уровне рекурсии ПРОЛОГ вновь использует второе правило, что инициирует подцель member(d,[d,e]), которая удовлетворяется на четвертом уровне рекурсии благодаря первому правилу для member.

Задание. Самостоятельно рассмотреть процесс поиска ответов ПРОЛОГом на следующие запросы:

?-member(a,[]).

?-member(a,X).

?-member(a,[b,C,d,e]).

СПИСКИ - это структура данных Турбо-Пролога для формирования составных объектов. Список состоит из элементов (термов), заключенных в квадратные скобки и разделенных запятыми. Список целых чисел представляется как [1,2,3,9,-3,-2]. Он принадлежит к определяемому домену ilist, объявляемому как:

domains ilist = integer *

Если элементы в списке смешанного типа, например, список, содержащий как символы, так и целые числа, он должен быть выражен символами в соответствующем описании:

domains

element = c(char); i(integer)

list = element *

представляет, например, такой список

[i(12), i(34), i(-567), c('x'), c('y'), c('z'), i(987)].

 

 

33.Методы и алгоритмы распознавания в экспертных системах.

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

ЭС- это н

абор программ или программное обеспечение, которое выполняет функции эксперта при решении какой-либо задачи в области его компетенции. ЭС, как и эксперт-человек, в процессе своей работы оперирует со знаниями. Знания о предметной области, необходимые для работы ЭС, определенным образом формализованы и представлены в памяти ЭВМ в виде базы знаний, которая может изменяться и дополняться в процессе развития системы.

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

Главное достоинство ЭС- возможность накапливать знания, сохранять их длительное время, обновлять и тем самым обеспечивать относительную независимость конкретной организации от наличия в ней квалифицированных специалистов. Накопление знаний позволяет повышать квалификацию специалистов, работающих на предприятии, используя наилучшие, проверенные решения.

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

 

34.Представление и обработка знаний с использованием логических функций.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...