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

Метод отсечения и отката (ОО).

Читайте также:
  1. Battement tendu. Методика преподавания, виды.
  2. I. Задачи и методы психологии народов.
  3. II. Метод они должны иметь поистине универсальный, где нужно соблюдать следующее.
  4. III. Методы строительства
  5. IV. Изучите методику объективного обследования.
  6. IV. Методические указания студентам по подготовке к занятию
  7. PEST-аналіз як ефективний метод дослідження макросередовища діяльності підприємства.

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

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

Но последующие подцели могут создать новые указатели отката и тем самым создать условия поиска новых решений. Но если все более поздние цели окажутся неуспешными, то барьер cut заставит механизм отката отсечь все решения в области действия cut путем немедленного отката к другим возможным решениям вне области действия cut. Метод ОО использует fail для имитации неуспешного вычисления и выполнения последующего отката до тех пор, пока не будет обнаружено определенное условие. Предикат cut служит для устранения всех последующих откатов.

Пример. Напечатать список детей до Петра включительно

domain

person=symbol – дети

preducates

child(person) – список

show – показывает список

make_cut – отсекает на Петре

gool

write(“Дети”), nl, show.

clauses

child(“Маша”)

child(“Мила”)

child(“Миша”)

child(“Петр”)

child(“Катя”)

show:– child (Name), write (“имя”, Name), nl, make_cut (Name),!.

make_cut(Name):– Name=”Петр”.

 

Метод повтора, определенный пользователем.

Этот метод выполняет откат всегда в отличие от метода ОО, где откат выполняется только после искусственно созданного неуспешного результата. Используется при реализации доступа к данным в базе и файлам, организации выдачи на экран и формировании меню.

repeat:– repeat (повторяй себя) – это рекурсивное правило.

Предикат repeat будет вычисляться успешно при каждой новой попытке его вызвать после отката.

Пример:

domain

name=symbol

predicacates

write_mеs

repeat

do_echo

check(name) – проверить имя

gool

write_mеs, – получить сообщение и его напечатать

do-echo

clauses

repeat

repeat:– repeat.

Write_mеs:- nl, write (“введи слово для окончания”), nl.

do_echo:– repeat, readeln (Name) – операторы ввода строки с клавиатуры

write(Name), nl,

check(name),!.

check(stop):– nl, write (“конец”).

check(_):– fail.

 


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


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

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