Допустим также, что пользователя просят
. . .
( X1 имеет Y1) и
% Второй вариант - Цель2
. . .
Допустим также, что пользователя просят (через механизм возвратов) предложить несколько решений для
Цель1. Затем процесс рассуждений продвигается вплоть до
Цель2. Так как у нас уже есть несколько решений для
Цель1, мы захотим, чтобы система автоматически применила их и к
Цель2 (поскольку очевидно, что они удовлетворяют
Цель2). Теперь предположим, что система пытается применить эти решения к
Цель2, но ни одно из них не удовлетворяет некоторой другой цели, расположенной ниже. Система делает возврат к
Цель2
и просит пользователя предложить новые решения. Если пользователь введет еще несколько решений, то их также придется запомнить. И если система в дальнейшем сделает возврат к
Цель1, то эти новые решения надо будет применить к
Цель1.
Для того, чтобы правильным образом использовать информацию, вводимую пользователем по запросам из разных точек программы, мы будем снабжать каждую такую информацию специальным индексом. Таким образом, факты, запоминаемые системой, будут иметь вид
сказано( Цель, Истинность, Индекс)
где
Индекс - это значение счетчика, ответов пользователя. Процедура
ответпольз( Цель, Трасса, Ответ)
теперь должна будет отслеживать число решений, уже порожденных механизмом возвратов к моменту обращения к этой процедуре. Это можно сделать при помощи другого варианта процедуры
ответпольз
с четырьмя аргументами:
ответпольз( Цель, Трасса, Ответ, N)
где N - некоторое целое число. Такое обращение к
ответпольз
должно порождать решения для
Цель с индексами, начиная с N и далее. Обращение
ответпольз( Цель, Трасса, Ответ)
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий