Какие предикаты обычно используются для представления свойств объектов
Для того чтобы манипулировать всевозможными знаниями из реального мира с помощью компьютера, необходимо осуществить их моделирование.
При проектировании модели представления знаний следует учесть два требования: однородность представления; простоту понимания.
Выполнение этих требований позволяет упростить механизм логического вывода и процессы приобретения знаний и управления ими, однако, как правило, создателям интеллектуальной системы приходится идти на некоторый компромисс в стремлении обеспечить одинаковое понимание знаний и экспертами, и инженерами знаний, и пользователями.
Классификация методов моделирования знаний с точки зрения подхода к их представлению в ЭВМ показана на рис. 13.1.
Дадим общую характеристику основных методов представления знаний.
Модели на основе эвристического подхода.Представление знаний тройкой «объект — атрибут — значение». Один из первых методов моделирования знаний. Как правило, используется для представления фактических знаний в простейших системах.
Примеры.
Очевидно, что для моделирования знаний даже об одном объекте (например, о «студенте» или «доме») из предметной области необходимо хранить значительное число «троек».
Продукционная модель. Модель правил; модель продукций — от англ. production — изготовление, выработка. В настоящее время наиболее проработанная и распространенная модель представления знаний, в частности в ЭС.
Модель предусматривает разработку системы продукционных правил (правил продукций), имеющих вид:
ЕСЛИ А1И А2 И … И Аn, ТО B1ИЛИ В2ИЛИ … ИЛИ Вт,
где Аiи Bj — некоторые высказывания, к которым применены логические операции И и ИЛИ. Если высказывания в левой части правила (ее часто называют антецедент — условие, причина) истинно, истинно и высказывание в правой части (консеквент — следствие).
Полнота базы знаний (базы правил) определяет возможности системы по удовлетворению потребностей пользователей. Логический вывод в продукционных системах основан на построении прямой и обратной цепочек заключений, образуемых в результате последовательного просмотра левых и правых частей соответствующих правил, вплоть до получения окончательного заключения.
Пусть в некоторой области памяти (базе знаний) хранятся следующие правила (суждения):
· правило 1: ЕСЛИ в стране происходит падение курса национальной валюты, ТО материальное положение населения ухудшается;
· правило 2: ЕСЛИ объемы производства в стране падают, ТО курс национальной валюты снижается;
· правило 3: ЕСЛИ материальное положение населения ухудшается, ТО уровень смертности в стране возрастает.
Если на вход системы поступит новый факт (факт 1) «В стране высокий уровень падения объемов производства», то из правил можно построить цепочку рассуждений и сформулировать два заключения:
где заключение 1 (промежуточный вывод) — «Материальное положение населения ухудшается»; заключение 2 (окончательный вывод) — «В стране возрастает уровень смертности».
Отметим, что в современных ЭС в базе знаний могут храниться тысячи правил, а коммерческая стоимость одного невыводимого (нового, дополнительного) правила весьма высока.
Главными достоинствами продукционных систем являются простота пополнения и изъятия правил; простота реализации механизма логического вывода и наглядность объяснений результатов работы системы.
Основной недостаток подобных систем — трудность обеспечения непротиворечивости правил при их большом числе, что требует создания специальных правил (так называемых метаправил) разрешения возникающих в ходе логического вывода противоречий. Кроме того, время формирования итогового заключения может быть достаточно большим.
Фреймовая модель. Сравнительно новая модель представления знаний. Само понятие «фрейм» (англ. frame — рама, рамка, скелет, сгусток, сруб и т.д.) было введено в 1975 г. М.Минским (M.Minsky, США).
Фрейм — это минимальная структура информации, необходимая для представления знаний о стереотипных классах объектов, явлений, ситуаций, процессов и др. С помощью фреймов можно моделировать знания о самых разнообразных объектах интересующей исследователя предметной области — важно лишь, чтобы эти объекты составляли класс концептуальных (повторяющихся: стереотипных) объектов, процессов и т. п. Примерами стереотипных жизненных ситуаций могут служить собрание, совещание; сдача экзамена или зачета; защита курсовой работы и др. Примеры стереотипных бытовых ситуаций: отъезд в отпуск, встреча гостей, выбор телевизора, ремонт и др. Примеры стереотипных понятий: алгоритм; действие; методика и др. На рис. 13.2 представлен фрейм технологической операции «соединять» [21].
Данный фрейм описывает ситуацию «Субъект X соединяет объект Y с объектом Z способом W».
Наполняя слоты конкретным содержанием, можно получить фрейм конкретной ситуации, например: «Радиомонтажник соединяет микросхему с конденсатором способом пайки». Заполнение слотов шанциями называют активизацией фрейма.
С помощью фреймов можно моделировать как процедурные, так и декларативные знания. На рис. 13.2 представлен пример представления процедурных знаний.
На рис. 13.3 приведен пример фрейма «технологическая операция», иллюстрирующий представление декларативных знаний для решения задачи проектирования технологического процесса.
По содержательному смыслу фрейма выделяют [21]:
· фреймы-понятия;
· фреймы-меню;
· фреймы с иерархически вложенной структурой.
Фрейм-понятие — это фрейм типа И. Например, фрейм «операция» содержит объединенные связкой И имена слотов «что делать», «что это дает», «как делать», «кто делает», «где делать» и т.д., а фрейм «предмет» — слоты с именами «назначение», «форма», «вес», «цвет» и т.д.
Фрейм-меню — это фрейм типа ИЛИ. Он служит для организации процедурных знаний с помощью оператора «выбрать». Например, фрейм «что делать» может состоять из объединенных связкой ИЛИ слотов «решить уравнение», «подставить данные», «уточнить задачу» и т.д., причем каждый из этих слотов может иметь несколько значений.
Фрейм с иерархически вложенной структурой предполагает, что в нем в качестве значений слотов можно использовать имена других фреймов, слотов и т.д., т. е. использовать иерархическую структуру, в которой комбинируются другие виды фреймов (в итоге получают так называемые фреймы-сценарии).
Значения слотов могут содержать ссылки на так называемые присоединенные процедуры. Различают два вида присоединенных процедур: процедуры-демоны; процедуры-слуги.
Процедуры-демоны присоединяются к слоту и активизируются при изменении информации в этом слоте (выполняют вспомогательные операции — например, автоматически корректируют информацию во всех других структурах, где используется значение данного слота).
1. Процедура «Если — добавлено» (IF —ADDED) выполняется, когда новая информация помещается в слот.
2. Процедура «Если — удалено» (IF —REMOVED) выполняется, когда информация удаляется из слота.
3. Процедура «Если —нужно» (IF —NEEDED) выполняется, когда запрашивается информация из пустого слота.
Процедуры-слуги активизируются при выполнении некоторых условий относительно содержимого слотов (часто по запросу). Данные процедуры определяются пользователем при создании фрейма. Например, во фрейме «Учебная аудитория» можно предусмотреть слоты «Длина» и «Ширина», а по их значениям вычислять значение слота «площадь».
Фреймы позволяют использовать многие свойства знаний и достаточно широко употребляются. Их достоинства и недостатки схожи с достоинствами и недостатками семантических сетей, которые будут рассмотрены ниже.
Модель семантической сети (модель Куилиана). Семантическая сеть — это направленный граф с поименованными вершинами и дугами, причем узлы обозначают конкретные объекты, а дуги — отношения между ними [21]. Как следует из определения, данная модель представления знаний является более общей по отношению к фреймовой модели (иными словами, фреймовая модель — частный случай семантической сети). Семантическую сеть можно построить для любой предметной области и для самых разнообразных объектов и отношений.
В семантических сетях используют три типа вершин:
· вершины-понятия (обычно это существительные);
· вершины-события (обычно это глаголы);
· вершины-свойства (прилагательные, наречия, определения).
Дуги сети (семантические отношения) делят на четыре класса:
· лингвистические (падежные, глагольные, атрибутивные);
· логические (И, ИЛИ, НЕ);
· теоретико-множественные (множество — подмножество, отношения целого и части, родовидовые отношения);
· квантифицированные (определяемые кванторами общности и существования ).
(Кванторы — это логические операторы, переводящие одну высказывательную форму в другую и позволяющие указывать объем тех значений предметных переменных, для которых данная выcказывателъная форма истинна).
Приведем два примера.
На рис. 13.4 представлена семантическая сеть для предложения (ситуации) «студент Табуреткин добросовестно изучает новый план счетов на 2002 г. перед сдачей экзамена по дисциплине «Бухгалтерский учет».
Рис. 13.5 содержит фрагмент семантической сети для понятия «автомобиль».
Из приведенных примеров понятно, почему многие специалисты по ИИ считают фрейм частным случаем семантической сети со строго структурированными знаниями.
Основное достоинство методов моделирования знаний с помощью семантических сетей и фреймов — универсальность, удобство представления как декларативных, так и процедуральных знаний. Существует и два недостатка:
· громоздкость, сложность построения и изменения;
· потребность в разнообразных процедурах обработки, связанная с разнообразием типов дуг и вершин.
Модели на основе теоретического подхода.В рамках реализации теоретического подхода применяют логические модели, прежде всего использующие представления знаний в системе логики предикатов. Преимущества такого подхода очевидны: единственность теоретического обоснования и возможность реализации системы путем введения формально точных определений и правил получения выводов. Однако в полной мере претворить в жизнь данный подход даже для «простых» задач оказалось весьма сложно. Поэтому появились попытки перейти от формальной логики к так называемой человеческой логике (модальной логике, многозначной логике и др.), модели которой в большей или меньшей степени учитывают «человеческий фактор», т.е. являются в определенном смысле компромиссными в плане использования и теоретического, и эвристического подходов.
Очень коротко остановимся на ставшей классической предикатной модели представления знаний. Первые попытки использовать такую модель относятся к 50-м гг. прошлого века. Дадим несколько определений.
Пусть имеется некоторое множество объектов, называемое предметной областью. Выражение P(x1, x2, …, хn), где х1…xn — предметные переменные, а Р принимает значения 0 или 1, и называется логической функцией, или предикатом.
Предикат Р(х1, х2, …, хn) задает отношение между элементами х1 х2, …, хnи обозначает высказывание, что «х1, х2, …, хnнаходятся между собой в отношении Р». Например, если А — множество целых чисел, а Р(а) — высказывание «а — положительное число», то Р(а) = 1 при а > 0 и Р(а) = 0 при а £0.
Из подобного рода элементарных высказываний с помощью логических связок образуют более сложные высказывания, которые могут принимать те же значения — «истина» и «ложь». В качестве связок используются конъюнкция, дизъюнкция, импликация, отрицание, эквивалентность.
Предикат от п переменных называют n-местным.
Одноместные (унарные) предикаты отражают свойства определенного объекта или класса объектов. Многоместные предикаты позволяют записывать отношения, которые существуют между группой элементов.
Если а — тоже предикат, то Р(а) — предикат 2-го порядка и далее до n-го порядка.
Приведем примеры различных предикатов.
1. Унарный предикат (высказывание) «река впадает в Каспийское море» имеет значение 1, если «река» = «Волга», и значение 0, если «Река» = «Днепр».
2. Двухместный предикат «x1не меньше х2» может иметь значение 1 или 0 в зависимости от значений х1и х2. Если значение предиката тождественно равно 1 при любых значениях предметных переменных, он называется тавтологией.
В аппарат исчисления предикатов входят также символы функций (обычно обозначаемые латинскими буквами f, g, h и т.д.), задаваемых на множестве предметных переменных, и кванторы общности и существования .
3. Представление с помощью предиката знаний, заключенных в теореме Пифагора: P{g[f(x),f(y)],f(z)}, где предикат Р— «быть равным», функция g(x, у) = х + у; функция f(х) = х2.
Иногда используется такая форма записи:
РАВНЫ [СУММА (КВАДРАТ(х), КВАДРАТ(y)), КВАДРАТ (z)].
Предикат Р равен 1, если х, у, z — соответственно длины катетов и гипотенузы прямоугольного треугольника.
Как уже отмечалось, предикаты удобны для описания декларативных знаний (фактов, событий и т.п.). Их главные достоинства — возможность реализации строгого вывода знаний (исчисления предикатов) и сравнительная компактность модели. К сожалению, предикаты мало пригодны для записи процедуральных знаний. Кроме того, опыт показал, что человеческое знание по своей структуре много сложнее структуры языков предикатного типа, поэтому требуются специальные навыки «подгонки» структуры реального знания под структуру модели (как правило, значительно обедняющей исходные знания).
Источник
Что такое предикат
Предикат (с латинского praedicatum означает «заявленное, упомянутое, сказанное») — понятие в логике, которым называют утверждение, высказанное о том или ином субъекте. Субъект высказывания — это та вещь или явление, о котором или которой делается утверждение.
Одна из важнейших особенности логики предикатов в том, что все общие имена (такие, как «цветок», «деревня»), знаки свойств («розовый», «большая») и знаки отношений («красивее», «роднее») рассматриваются как относящиеся к одной категории знаков: категории предикаторов (иначе говоря, предметно-истинных функторов).
Предикаторы, в свою очередь, показывают функции, у которых вероятные аргументы — это универсальные в рассмотрении объекты, а значения — истинные оценки. В классической логике они называются «истина» и «ложь». К примеру, возьмем предикатор «человек», который представляет функцию, определяемую как истина каждым отдельным человеком, а каждым отличным от человека существом — как ложь.
Другой пример: функция, которая соответствует предикатору «больше», сопоставляет истину каждой паре объектов или субъектов, один из которых больше. Например, такая пара, как «слон, мышь». Но всем остальным парам, по типу «мышь, слон» и «мышь, мышь», такая функци будет сопоставлять оценку «ложь».
Предикаторы могут быть:
- Одноместные. Те, которые представляют предметно-истинные функции от одного аргумента. Например, «человек».
- Двухместные. Те, которым соответствуют функции двух аргументов. Например, «больше».
- Другие, в зависимости от количества соответствующих аргументов.
Логические операции над предикатами
Так как предикаты принимают два значения, «истина» и «ложь» (1 и 0), к ним можно применить все операции алгебры логики.
Представим, что в неком множестве N определены два предиката P(x) и Q(x). Рассмотрим все операции с ними по-отдельности.
Конъюнкция — предикат (P(x)^Q(x)), приминающий значение «истина» исключительно при значениях (xin N), при которых каждый из предикатов принимает значение «истина», а значение «ложь» принимает во всех остальных случаях. Область истины предиката (P(x)^Q(x)) — пересечение областей истинности обоих предикатов: (I_{P^Q}I_Pcap I_Q.)
Дизъюнкция двух предикатов — предикат (P(x)vee Q(x)), принимающий значение «ложь» исключительно при значениях, когда каждый предикат принимает значение «ложь». Во всех остальных случаях он принимает значение «истина».
Область истины в этом случае — объединение областей истинности обоих утверждений.
(I_{Pvee Q}I_Pcap I_Q.)
Отрицание высказывания P(x) — предикат (overline{P(x)}), принимающий значение «истина» при всех значениях (xin N), когда высказывание P(x) принимает значение «истина».
Область истины здесь — дополнение множества истинности утверждения P(x) до множества N, иначе говоря (I_overline{P}=NI_P=CI_P.)
Импликация — предикат (P(x)rightarrow Q(x)), который остается ложным исключительно при тех значениях (xin N), в которых одновременно P(x) — истинно, а Q(x) — ложно, во всех остальных значениях истинно.
При каждом x справедливо равенство (P(x)rightarrow Q(x)=overline{P(x)}vee Q(x)), а это значит, что область истинности (P(x)rightarrow Q(x)) — объединение дополнения области истинности P(x) до множества N и области истинности предиката Q(x). Обозначается выражением: (I_{Prightarrow Q}=I_overline Pcup I_Q.)
Эквиваленция утверждений (P(x) и Q(x) — P(x)leftrightarrow Q(x)), который делает истинным высказывание при всех (xin N), где одновременно (P(x)) и (Q(x)) принимают одинаковые значения истинности.
При каждом фиксированном x справедливо равенство (P(x)leftrightarrow Q(x)=(overline Pvee Q)wedge(Pveeoverline{Q)}). Это значит, что области истинности утверждения (P(x)leftrightarrow Q(x)) — конъюнкция объединений дополнения области истинности (P(x)) до множества N и области истинности (Q(x)), а также области истинности (Q(x)) до множества N и ОИ (P(x)7). Обозначается формулой (I_{Pleftrightarrow Q}=(I_overline Pcup I_Q)cap(I_overline Qcup I_P).)
Кванторные операции над предикатами
Прежде чем изучить квантовые операции, нужно разобраться, что из себя представляет сам квантор.
Квантор — общее название для логических операций, ограничивающих область истинности какого-либо предиката и создающих высказывание.
Кванторы впервые были определены немецким математиком Готлобом Фреге. Он упомянул их в своей работе «Begriffsschrift» («Исчисление понятий», 1879 года). Однако сам термин был изобретен английским логиком Чарльзом Пирсом в 1885 году. Вместе со словом «квантор» он ввел также и термин «квантификация», который означает измерение качеств признаков.
Обозначение кванторов
Символическое обозначение кванторов придумал итальянский математик Дж. Пеано в 90-е годы XIX века. Выглядят эти символы так:
(forall) — «для любого», «для каждого», «для всех»;
(exists) — «существует», «найдётся».
Кроме самих кванторов и вместе с ними используют обозначения («!», «:», «|»), которые являются сокращениями:
! – «единственный»;
: – «такой, что»;
| – «такой, что».
Знак «:» обычно используется в формулировках определений или теорем, которые записываются с помощью кванторов. Знак «|» применяется в определениях множеств.
Виды кванторов
Квантор общности (forall)
Операция связывания квантором общности — это правило, в соответствии с которым каждому одноместному предикату P(x) во множестве N сопоставляется высказывание ((forall x)(P(x))), которое произносится, как «для всякого [значения] (x — P(x)) [истинное высказывание]».
Оно истинно только в том случае, когда (P(x)) — тождественно истинен. В ином случае данное высказывание ложно.
Операция связывания квантором общности по переменной (x_1) — это правило, в соответствии с которым каждому n-местному ((ngeqslant2)) предикату (P(x, x_2, …, x_n)), на множествах (N_1, N_2, …, N_n), в соответствие ставится новый ((n-1)) – местный предикат. Он обозначается как ((forall x)(P(x, x_2, …, x_n)).)
Оно истинно только в том случае, когда одноместный предикат (P(x, a_2, …, a_n)) на множестве (N_1) тождественно истинен. В противном случае оно ложно.
Квантор существования ( exists)
Операция связывания квантором существования — это правило, по которому каждому одноместному утверждению (P(x)) на множестве N соответствует высказывание ( (exists)(P(x))), которое звучит так: « существует ( [значение] x), такое, что ( P(x)), [истинное высказывание]»).
Это высказывание ложно только, когда (P(x)), тождественно ложен. В противном случае оно истинно.
Операция связывания квантором существования по переменной (x_1) — это правило, в соответствие с которым каждому n-местному ((ngeqslant2)) высказыванию (P(x_1, x_2, …, x_n)) на множествах (N_1, N_2, …, N_n) соответствует новый (n-1-местный предикат. Он обозначается как ((exists)(P(x_1, x_2, …, x_n)). Это высказывание ложно только в том случае, если одноместный предикат ((P(x_1, a_2, …, a_n)) на множестве (N_1) тождественно ложен. В противном случае данное высказывание истинно.
Примеры применения
Использование предикатов
- Пусть предикат (P(x, y)): («x=y») обозначает отношение равенства, в котором x и y принадлежат множеству целых чисел. Тогда утверждение P будет истинным для всех равных x и y.
- Дан предикат Работает ((x, y, z)) для отношения «x работает в городе y в компании z».
- Дан предикат Нравится ((x, y)) для «x нравится y» для x и y, которые принадлежат множеству людей N.
Использование кванторов
Пусть предикат «x кратно 5». Тогда с помощью квантора общности можно записать ложные высказывания:
- любое натуральное число делится на 5;
- каждое натурально число делится на 5;
- все натуральные числа делятся на 5.
В этом случае решение будет выглядеть так:
((forall_xin N)P(x).)
Чтобы обозначить истинные высказывания, используем квантор существования:
- существуют натуральные числа, которые делятся на 5;
- найдется натуральное число, которое делится на 5;
- хотя бы одно натуральное число делится на 5.
В записи оно будет выглядеть так:
((exists_xin N)P(x).)
На множестве x простых чисел существует предикат: «Простое число является нечетным». Если мы поставим перед предикатом слово «любое», то получим ложное высказывание «Любое простое число является нечетным». Если мы поставим перед предикатом слово «существует», то получим истинное высказывание «Существует простое число, которое является нечетным».
Так, предикат можно превратить в высказывание, если поставить перед ним квантор.
Источник