Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИПСАПР - ответы госы.docx
Скачиваний:
21
Добавлен:
11.05.2015
Размер:
301.16 Кб
Скачать
  1. Как определяется «отрицание» в Прологе? Как негативная информация (т.Е. Информация о том, что не имеет место) представляется в Пролог-программах. Какие недостатки отрицания в Прологе?

Отрицание в Прологе реализовано прагматически и не имеет эквивалента в логике.

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

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

Отрицание в явной форме. Встроенный предикат not («не») имеет один аргумент. Этим аргументом является цель, значение истинности которой (после обработки данного запроса) заменяется противоположным.

Если запрос успешен, то отрицание этой цели (запроса) является неудачей, и наоборот, если запрос терпит неудачу, то его отрицание будет успехом.

Запрос:

?- поt(отец(пнтер,Х).

будет истинным тогда и только тогда, когда ?- отец(питер,Х). потерпит неудачу.

Недостатки отрицания. Отрицание в Прологе определено через отсечение. Есть два встроенных предиката: true («истина») и fail («неудача»). Эти предикаты не имеют аргументов, первый всегда истинен, второй всегда ложен:

?- true.

Yes ?- fail.

No

Следующее определение «отрицания» дает искомое процедурное значение этого предиката: not(P):-

P,!,fail.

not(P):- true.

Отрицание определено через отсечение, поэтому к принятому недостатку отрицания («замкнутый мир») добавляются и недостатки отсечения.

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

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

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

Семантическая сеть. Сеть (network) - это четверка Н = <А, В, Р, C>, где А - множество вершин: В - множество имен (весов) вершин: Р - множество дуг. соединяющих пары вершин: С - множество весов (имен) дуг.

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

Для примера на рисунке приведена семантическая сеть. Сеть соответствует тексту: «В центре комнаты стоит стол. Слева от него окно. У стола глубокое удобное кресло. Недалеко от него столик с телефоном».

Многообразие объектов сети можно подразделить на три группы:

- объекты-понятия - сведения о физических и абстрактных объектах, предметной области;

- объекты-события - абстрактные или конкретные действия, которые могут привести к изменению состояния предметной области;

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

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

- лингвистические отношения;

- логические отношения (конъюнкция, дизъюнкция, отрицание, импликация);

- теоретико-множественные отношения включают в себя отношения типа «множество-подмножество» («род-вид», «класс-подкласс»), «целое-часть», «элемент множества» и др.;

- квалифицированные отношения;

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

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

- временные (раньше, позже, в течение,...).

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

Недостатком этой модели является сложность организации процедуры поиска вывода на семантической сети.

  1. В чем различаются три предиката: =, =:= и is?

Пусть имеются две элементарные формулы А и В языка первого порядка. Эти формулы могут содержать индивидные (предметные) переменные. В некоторых случаях возможна такая подстановка термов вместо переменных в этих формулах, что формулы А и В (вообще говоря, различные) становятся тождественными. Такая подстановка называется унификатором. Для записи предиката - унификации, используется символ «=». Следующий вызов выдает истину, если эти два терма можно унифицировать.

?- <терм1> = <терм2>.

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

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

?- X is 1+2.

X = 3 Yes

При этом операция сложения была выполнена с помощью специальной процедуры, которая связана с операцией is. Нельзя рассматривать операцию is как оператор присваивания (необходимый оператор в процедурных языках). На самом деле - это предикат, вычисление которого связано с побочным эффектом. Но и побочный эффект нельзя описать в терминах присваивания. Слева от is может стоять не только переменная, но и число. В этом случае вычисленное значение правого операнда (арифметического выражения) сравнивается с данным числом и выдается Yes или No. Невозможно переменной, имеющей значение, с помощью is присвоить новое значение (и любым другим способом). Предикат унификации и предикат проверки на равенство =:= отличаются друг от друга. Например, они по-разному ведут себя в целях x=Y и х=:=у. Первая цель вызывает унификацию термов х и Y. и если объекты унифицируются, то это может привести к конкретизации некоторых переменных в термах х и Y. В этом случае вычисление не выполняется. С другой стороны, операция =:= вызывает вычисление арифметических выражений, но не может стать причиной какой-либо конкретизации переменных.