Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Поиск решений

Читайте также:
  1. V) Инициатива решений
  2. Алгоритм поиска литературы в электронном каталоге
  3. Алгоритм поиска литературы и др. документов
  4. Армия Спасения открыла первый центр поиска пропавших людей, чтобы помочь семьям найти близких.
  5. Библиографический поиск - информационный поиск, осуществляемый на основании библиографических данных.
  6. В поисках затерянного города
  7. В поисках зомби

 

Пример: 1) likes (mary, аpples) – факт,

2) likes (beth, X):– likes (mary, Х) – правило.

Введем цель:

likes (beth, аpples)? – любит ли Бет яблоки? X= аpples

совпали подцель

Цель сопоставляется с фактом 1 пословно: терм предиката цели likes совпадает с термом факта 1. Т.е. сопоставление начинается слева направо до тех пор, пока очередное сопоставление окажется неуспешным. beth не совпадает c mary и поэтому дальше уже не проверяется. Пролог ищет следующую точку входа и находит правило 2. Если факт совпадает с левой частью правила – головой, то он пытается выполнить часть правила справа (тело). likes и beth совпали у обоих, но apples и Х не сопоставимы. Однако Х – это переменная, следовательно, она может быть сопоставлена с любым значением. Т.е. Х присваивается значение apples. Это связывание используется до тех пор, пока либо не будет вычислена цель, либо нельзя будет выполнить никакого другого сопоставления с учетом этого связывания. Следовательно, предикат likes(beth, X) имеет значение likes(beth, apples). Теперь пытаемся выполнить условие if likes(mary, X) и проверяем факт likes(mary, apples) как подцель. Снова сначала просматривается база и находится факт likes(mary, apples). Так как тело совпало, то цель достигнута, и решение есть X=apples и является истиной. Как цели, так и правила могут быть связаны с помощью союзов и (,) и или(;).

Число аргументов в предикате называется арностью. Если в предикате нет аргументов, то арность равна нулю. Совпадение проверяется на имя аргумента (likes – пример), на число аргументов (арность), на тип аргументов, на совпадение значений (слева направо)

При сравнении аpples, Х происходит процесс связывания: Х=аpples, так как переменная может принимать любое значение. Из этого следует, что цель совпала с головой. При появлении подцели начинается проверка заново.

Ответ задачи: X=аpples.

В теле правила может быть несколько подцелей, подцели обрабатываются последовательно слева направо. Если одна из подцелей несопоставима, то и вся цель является неуспешной. Сопоставление и поиск решений выполняются внутренними унификационными процедурами. Они выполняют сопоставление целей и подцелей с фактами и головами правил, чтобы доказать эти цели или подцели, а также определяют, сгенерированы ли новые подцели правой части. При сопоставлении с правилами, где имеется переменные Х, переменные сначала не имеют значения, т.е. они не означены, не идентифицированы, свободные. Когда переменная сопоставляется с объектом (apples), она связывается. Внешние цели заставляют программу выдать все решения, удовлетворяющие цели, а внутренние цели заставляют программу остановиться после первого успешного сопоставления целей. Таким образом, переменная освобождается после неуспешного сопоставления или при успешном достижении цели, и ее значения не являются одновременными.

Для присваивания значения переменным используется оператор (=), который практикуется двояко: как присваивание или как сравнение в зависимости от того является ли значение объектов свободными или означенными.

Пример:

1) аpples=аpples – это сравнение. Равенство истинно, цель достигнута.

2) аpples=oranges – это тоже сравнение. Равенство ложно, цель недостигнута

3) X=аpples, если Х не означено, то это присвоение, в противном случае это сравнение.

Если оба значения известны, то трактуется как сравнение, даже если оба объекты являются переменными: х=у

Если известно одно значение, то оно присваивается второму, независимо от того где оно стоит: аpples=X.

 


Дата добавления: 2015-09-06; просмотров: 81 | Нарушение авторских прав


Читайте в этой же книге: Понятие семантической сети. | Задача поиска кратчайшего обхода образца в семантической сети. | Понятие о логическом выводе на семантических сетях. | Базовая искусственная модель | Применение нейронных сетей | Элементы теории формальных языков | Элементы семиотики | Модель непосредственных составляющих | Расширенные сети переходов | Глубинные (семантические) падежи |
<== предыдущая страница | следующая страница ==>
Пакет Turbo Prolog| Метод отсечения и отката (ОО).

mybiblioteka.su - 2015-2024 год. (0.006 сек.)