- •Глава 1 Представление знаний
- •1.1. Данные и знания
- •1.2. Логические модели
- •Логическое следствие и логический вывод
- •1.3. Сетевые модели
- •1.4. Продукционные модели
- •1.5. Сценарии
- •1.6. Ленемы
- •2.1. Приобретение и формализация знаний
- •Методы работы со знаниями
- •2.2. Пополнение знаний
- •2.3. Обобщение и классификация знаний
- •2.4. Дедуктивный вывод на знаниях
- •Резолюция с абстракцией
- •2.5. Неточный вывод на знаниях а. Р. Хачатрян
- •Краткая история
- •Глава 3 Общение
- •3.1. Уровни понимания
- •Основные определения
- •Классификация уровней понимания
1.2. Логические модели
Г. С. Плесневач
Основные определения
Постановка и решение любой задачи всегда связаны с ее «погружением» в подходящую предметную область. Так, решая задачу составления расписания обработки деталей на металлорежущих станках, мы вовлекаем в предметную область такие объекты, как конкретные станки, детали, интервалы времени, и общие понятия «станок», «деталь», «тип станка» и т. п. Все предметы и события, которые составляют основу общего понимания необходимой для решения задачи информации, называются предметной областью. Мысленно предметная область представляется состоящей из реальных или абстрактных объектов, называемых сущностями.
Сущности предметной области находятся в определенных отношениях друг к другу (ассоциациях), которые также можно рассматривать как сущности и включать в предметную область. Между сущностями наблюдаются различные отношения подобия. Совокупность подобных сущностей составляет класс сущностей, являющийся новой сущностью предметной области.
Отношения между сущностями выражаются с помощью суждений. Суждение—это мысленно возможная ситуация, которая может иметь место для предъявляемых сущностей или не иметь места. В языке (формальном или естественном) суждениям отвечают предложения. Суждения и предложения также можно рассматривать как сущности и включать в предметную область. Языки, предназначенные для описания предметных областей, называются языками представления знаний. Универсальным языком представления знаний является естественный язык. Однако использование естественного языка в системах машинного представления знаний наталкивается на большие трудности ввиду присущих ему нерегулярностей, двусмысленностей, пресуппозиций и т. п. Но главное препятствие заключается в отсутствии формальной семантики естественного языка, которая имела бы достаточно эффективную операционную поддержку.
Для представления математического знания в математической логике давно пользуются логическими формализмами — главным образом исчислением предикатов, которое имеет ясную формальную семантику и операционную поддержку в том смысле, что для него разработаны механизмы вывода. Поэтому исчисление предикатов было первым логическим языком, который применили для формального описания предметных областей, связанных с решением прикладных задач.
Описания предметных областей, выполненные в логических языках, называются (формальными) логическими моделями.
Рассмотрим логический язык, называемый многосортным исчислением предикатов первой ступени (или многосортной логикой первого порядка). Приведем пример описания в этом языке предметной области, связанной с обработкой деталей на станках.
В логических моделях, основанных на исчислении предикатов, классам сущностей предметной области отвечают так называемые сорта (или типы). Точнее, в логических моделях участвуют имена сортов, которые интерпретируются как классы сущностей. Для примера введем такие имена сортов: Деталь, Станок, Операция, Время, ТилДетали, ТипСтанка, а также следующие функции и предикаты:
дет:Операция ->-Деталь, ст:Операция ->Станок (1)
нач:Операция -»-Время, кон:Операция -*Время (2)
тип_дет:Деталь -+-ТипДетали, тип_ст:Станок -*-ТипСтанка (3)
ток: ->-ТипСтанка, фрез -мГипСтанка (4) 14
(5) (6) (7) (8) (9)
вал шест: ->-ТипДетали, ставал: ->ТипДетали
0: -^-Время, 1: -^Время t: ->Время .
+ :ВремяХВремя -НВремя
<; ;ВремяХВремя -*-Т
фрез_торц:Операция -+-Т, ток_обр:Операция -*Т
Выражения (1) — (9), составляющие так называемую сигнатуру, имеют следующий смысл:
задает две функции дет (деталь) и ст (станок), которые, будучи при менены к объекту е сорта Операция, дают деталь дет(е) и станок ст(е), участ вующие в операции е;
задает функции начала и конца операции е, причем нач(^) и кон(е) есть объекты сорта Время;
задает функции, значениями которых служат типы деталей и типы станков;
задает две константы: ток (токарный станок) и фрез (фрезерный ста нок) сорта ТипСтанка (эти константы рассматриваются как нуль-местные функции);
задает константы вал-шест (вал-шестерня) и ст_вал (ступенчатый вал) сорта ТипДетали;
задает счетное множество констант, обозначающих натуральные числа (эти константы принадлежат сорту Время);
задает двуместную функцию, аргументами которой служат объекты сорта Время (предполагаемая интерпретация этой функции — сложение нату ральных чисел, измеряющих моменты времени);
задает двуместный предикат на объектах сорта Время (предполагае мая интерпретация предиката — двуместное отношение «меньше или равно» между натуральными числами);
задает два одноместных предиката фрез_торц (фрезерование торцов) и ток_обр (токарная обработка); эти предикаты представляют свойства опе раций; фрез_торц(е) = 1 тогда и только тогда, когда е есть операция фрезеро вания торцов (и аналогично для ток_обр).
В общем случае сигнатурой называется множество 2 выражений* вида f:AiXA2X -XAn -*-В, где А}, В — сорта, а / — функция, или предикат. Имя / есть имя предиката в 2, если В = Т, т. е. если значением / служит «истина» или «ложь» (обычно обозначаемые 1 и 0).
Сорта сигнатуры интерпретируются как множества. Сорт Т является осо бым в том смысле, что он всегда интерпретируется как множество истинност- ных значений {0, 1}. Остальные сорта сигнатуры могут интерпретироваться по-разному. Таким образом, предикат рассматривается как функция, заданная на объектах (вообще говоря, разных сортов) и принимающая значение «истина» или «ложь». Предикат можно рассматривать также как многоместное отноше* ние между объектами (разных) сортов: объекты еи е%,..., еп находятся в от ношении р, что записывается как p(ei, е2 еп) тогда и только тогда, когда
р(еи е2,...,е„)=*1. Заметим, что для двуместных предикатов часто используется инфиксная запись: вместо р(еи е2) пишут eipe2 (например, пишут х<# для предиката «меньше или равно»).
Сигнатура задает структурные связи между понятиями предметной области, представленными предикатами и функциями. Логические связи между этими понятийми задаются формулами, которые записываются в сигнатуре. Структурные и логические связи выражают некоторое знание о предметной области. Таким образом, сигнатура формально представляет одну часть знания о предметной области, а формулы, записанные в этой сигнатуре, представляют другую часть знания.
Рассмотрим, например, как формально представляется в языке многосортного исчисления предикатов следующее знание:
15
Зн1 — каждая деталь должна сначала пройти фрезерование торцов, а затем токарную обработку;
Зн2 — станки не должны все вместе простаивать ни в какой момент времени до того момента, когда нее станки прекратят работу;
ЗнЗ — токарная обработка ступенчатого вала длится 7 мин, а вала-шестерни— 12 мин; фрезерование торцов ступенчатого вала длится 5 мин, а вала-шестерни — б мин;
Зн4 — на производственном участке имеется три станка: два токарных и один фрезерный;
Зн5 — всего было совершено восемь операций;
Знб — было обработано четыре детали: два ступенчатых вала и два вала-шестерни;
Зн7 — станок стЗ является фрезерным;
Зн8 — операция оперЗ совершалась над деталью дет2 на станке стЗ в течение интервала времени от момента 5 до момента 10.
Для того чтобы формально представить Зн1, перефразируем его следующим образом: для каждой детали х существуют операции у и г, такие, что конец операции у наступает не позже начала операции z, операция у есть фрезерование торцов, операция г — токарная обработка и в обеих операциях участвует одна и та же деталь х. Соответствующая формула будет такой:
еталь) (д у, г£ Операция), [(кон (у) < нач (г)) Д (дет (у) =*)) Л
(дет (г) = х) Л Фрез_торц (у) Д ток_обр(г)] (10)
В (10) использованы следующие формальные обозначения: (у) —квантор общности (вдля всех х из А*); (дх^Л) —квантор существования („существует х из А'у, /\—коньюнщия („аи Р"). Вместо блока кванторов (yXjGА) (ух2^А) ... (ухр^А) сокращенно можно писать (\xt, ха, ..., XpEzA); аналогично для блока кванторов д.
Перефразируем знание Зн2: существует момент времени х, такой, что: а) существует операция у, заканчивающаяся в момент х, б) каждая операция г заканчивается не позже момента х, в) не существует момента и, такого, что и<х, и какова бы ни была операция v, интервал ее исполнения не содержит и (т. е. неверно, что нач(£>Хы и и^кон(о)). Соответствующая формула
(3*е Время). (ЗУGE Операция) (кон(#)=х) Д
(уг €~ Операция) (кон (г)<х) Д 1 (3«Е Время). (и<х)Д
(yv€? Операция) ~1 [(нач (с)< и)М(«< кон (и)) (11)
(Здесь точка выполняет роль скобок, отделяя соответствующую подформулу, стоящую в ряду слева от точки.)
В (11) использован символ ~|> обозначающий логическое отрицание (~|а читается: «не верно, что а»).
Перифразируем знание ЗнЗ: для любой операции х, если х есть токарная обработка и тип детали, участвующей в операции х, есть ступенчатый вал, то нач(х)+7=кон(дг) и т. д. Соответствующая формула
(V*£ Операция). [ток_обр (х) Д (тип„_дет (дет (х)) = ст_вал) ->
(нач (х) +7 = кон (х))1 Д
[ток_обр (х) Д (тип_дет (дет (х)) =■ вал-шест) -» (нач (х) + 12 = кон (х))1Д
[фрез_торц (х) Д (тип_дет (дет (х)) — ст_вал) -♦ (нач(х) + 5 = кон(х))] Д
[фрез_торц (х) V (тип_дет (дет (х)) = вал-шест) ->
(нач (а)+6 = кон (х))] (12)
16
Для того чтобы формально представить знание Зн4, введем три константы ст1, ст2 и стЗ сорта Станок. Получим
(VX6 Станок). [(х= ст1)\/(* = ст-2) V(* = стЗ)1Д (тцп_ст (ст1) = ток) V
(тип_ст (ст2) == ток) Д(тип_ст (стЗ) = фрез) (13)
В (12) и (13) появились два новых логических символа — V и ->-, называемых дизъюнкция и импликация (aVP читается: «а или |3»; а-^Р читается: «если а, то р»).
Знание Знб формализуется аналогично, если ввести константы, обозначающие операции:
(ух €= Операция). (х = опер!) V (х — опер2) \J (х= оперЗ) V (х = опер4) V (х = опер5) \/ (х = оперб) V (v = опер7)\/(х= опер8) (14)
Знание Знб представляется формулой
(V*^Деталь) \(х = дет1)\/(х = дет2) V (х =- детЗ) V(* = Дет4)] Д
(тип_дет (дет1) = ст_вал) Д (тип_дет (дет2) = ст_вал) Д (тип_дет (детЗ) = вал-шест)Д(тип_дет (дет4) = вал-шест) (15)
Знание Зн7 передается формулой (тип_ст(стЗ) =фрез) (16)
Наконец, знание Зк8 передается формулой (дет(оперЗ)=дет2)Л(ст(оперЗ)=стЗ)Л<нач(оперЗ)=5)Л (17)
Рассмотрим общий случай, когда задана произвольная сигнатура 2. Через °&i обозначим множество всех формул языка многосортного исчисления предикатов (первого порядка), построенных на основе сигнатуры 2. Произвольная формула ££ составляется из атомарных формул (атомов) с использованием логических связок ~~|, Д, V. -*■ и кванторов по следующим правилам:
П1. Каждый атом есть формула. Всякая входящая в атом переменная является свободной в этом атоме.
П2. Если а и Р — уже построенные формулы, то выражения ~| а, (рДР), (aVP). (а-»-Р) —также формулы. Всякая переменная, входящая свободно (связанно) в а или Р, входит свободно и в новые формулы.
ПЗ. Если a — уже построенная формула, в которую свободно входит переменная х, значения которой принадлежат к сорту А, то выражения (у*е еЛ)а и (дхеЛ)а также являются формулами. Переменная х считается связанной в новых формулах.
Атомы SSX составляются из термов, предикатных символов и символа равенства по следующим правилам:
П4. Если сигнатура 2 содержит выражение р: А1ХА2Х. — У\Ап~+Т н Ti, т2,..., тп — термы сортов А\, Аг,...,Ап соответственно, то p(ti, T2,.... тп) — атом;
П5. Если т и а — термы одинакового сорта, то выражение т=о* есть атом.
Термы составляются по следующим правилам:
Пб. Переменная, принимающая значения из сорта А, есть терм сорта А.
П7. Если сигнатура 2 содержит выражение /: А\Х^2 Х- ХАп-+В, причем ВфТ, и Т], Тг, ...,т„ — уже построенные термы сортов At, А?,..., Ап соответственно, то выражение /(ti, Tj, .... тп) есть терм сорта В.
Рассмотренный пример механообработки иллюстрирует общую ситуацию построения логической модели с использо^*игагяэы*сэ многосортного исчисления предикатов. Разработчик на ochqjs# тгредв&рительногс анализа предметной области дает имена для констант,' ерртов, функций и предикатов. Имена эти выбирают так, чтобы их мнемоники ^оответстврвала наэвалиям неформаль-
Ь К::'ч:;л'-: ■'-■•■;.; : "■ 17
ных
понятий предметной области. Структурные
связи между понятиями предметной
области формально представляются в
сигнатуре 2, составленной из введенных
имен.
Другие связи между понятиями предметной области представляются формулами из 2. Пусть Я обозначает множество формул, -построенных для предметной области. Эти формулы должны быть истинны в той формальной структуре, которая представляет предметную область (если это представление ей адекватно). Структура, интерпретирующая заданную сигнатуру 2, строится следующим образом. Указывается непустое множество U, называемое универсумам. Для каждого имени сорта А из сигнатуры 2 указывается некоторое подмножество универсума, которое также обозначается A (A^U). Для каждого выражения /: А1ХА2Х ••• ХАп-+В из сигнатуры указывается функция, отображающая множество Л|ХЛгХ-ХЛп в множество В; эта функция также обозначается /.
Для примера формализации фрагмента предметной области «механообработка» структура может быть построена следующим образом:
£/={дет^, ctj, onepj\j^N, /^1}U{tok, фрез, ст-вал, вал-шест}иЛГ (где N=
=0, 1,2,...);
Деталь =iдет 1, дет2, детЗ, дет4}; Станок = {ст1, ст2, стЗ};
Операция = {onepl, опер2 опер8};
ТипСтанка = {ток, фрез); ТипДетали={ст_вал, вал-шест}; Время=jV
Функции дет, ст, нач, кон, тип_дет, тил_ст, фрез-торц и ток_обр указаны в табл. 1.2—1.4. Предикат < имеет смысл отношения «меньше или равно» на множестве ./V натуральных чисел; функция -| смысл операции сложения на туральных чисел. В указанной структуре истинны все формулы (10)—(17). Как говорят в математической логике, структура эта является моделью мно жества формул Я={(10), (11),..., (17)}. Но здесь термин «модель» означает не то, что в словосочетании «логическая модель».
Таблица 1.2
Операция |
дет |
ст |
нач |
кон |
ток_обр |
фрез_торц |
onepl |
дет! |
стЗ |
0 |
5 |
0 |
1 |
опер2 |
дет! |
ст! |
5 |
12 |
1 |
0 |
оперЗ |
дет2 |
стЗ |
5 |
10 |
0 |
1 |
опер4 |
дет2 |
ст2 |
10 |
17 |
1 |
0 |
опер5 |
детЗ |
стЗ |
10 |
16 |
0 |
1 |
опер 6 |
детЗ |
ст1 |
16 |
24 |
! |
0 |
опер7 |
дет4 |
стЗ |
16 |
22 |
0 |
1 |
оперв |
дет4 |
ст2 |
22 |
28 |
1 |
0 |
Станок |
тип_ст |
сг! ст2 стЗ |
ТОК ТОК фрез |
Таблица 1.4
Таблица 1.3
Деталь |
тип_дет |
дет1 дет2 детЗ дет4 |
ст-вал ст-вал вал-шест вал-шест |
18
Пусть 2—произвольная сигнатура и М — интерпретирующая ее структура. Каждая замкнутая формула а. £Е S6 (т. е. формула, не включающая свободные переменные) в структуре М истинна или ложна. Если а истинна в М, то пишут М \—а. Формальное определение истинности или ложности замкнутой формулы а в структуре М выполняется по индуктивным правилам П8 и П9. Для применимости этих правил нужно расширить исходную сигнатуру 2, присоединив к ней выражения а: ~*-А для каждого элемента а сорта А и каждого сорта А из 2. Другими словами, расширенная сигнатура 2' включает все литеральные константы, обозначающие элементы тех множеств, которые интерпретируют в М сорта. Благодаря такому расширению множество всех формул SS ' оказывается замкнутым относительно подстановок любых литеральных констант вместо свободных переменных.
Базу индуктивных правил П8 и П9 составляют константные (т. е. не содержащие переменных) атомарные формулы. Истинность или ложность каждого такого атома устанавливается в М непосредственно.
П8. Для любых замкнутых формул а, р€Е<2? ; М |=~] а тогда и только тогда, когда не имеет места М \==а-, М |=(« А Р) тогда и только тогда, когда М |= а и М |= р; М | — (а V р) тогда и только тогда, когда М |= а или М |=Р; М j=(a -+ Р) тогда и только тогда, когда не имеет места М \ = а или имеет место
П9. Для любой формулы а£2Е', содержащей одну свободную переменную х, т. е. a = o[jc], полагаем
•М \~ (ЗЯ^Л) a Т0ГДа и только тогда, когда М | = afa], для хотя бы одной константы а сорта А из 2'.
Структура М, интерпретирующая сигнатуру 2, называется модельной структурой для заданной совокупности замкнутых формул Sc^1, если все
формулы из Q истинны в М, т. е. М\—а для всех aeQ.
Обращаясь к примеру сигнатуры 2 = {(1), <(2),..., (9)}, которая была по строена для фрагмента предметной области «механообработка», видим, что указанная для этой сигнатуры структура является модельной структурой для совокупности формул Q = {(10), (11) (17)}.
Совокупность замкнутых формул может не иметь ни одной модельной структуры. Тогда она называется логически невыполнимым (или просто невыполнимым) множеством. Другими словами, для невыполнимого множества формул нельзя указать такую интерпретацию, что в ней будут истинны все формулы множества. Синонимом термина «невыполнимое» является термин «противоречивое».
