![]() |
![]() |
Прямой вывод основан на следующих шагах. Подбирается правило вывода, условие которого можно образовать из формул начальной базы с использованием, если это необходимо, унификации. Обычно начинается все с формул, представляющих знания о начальном состоянии среды. По правилу вывода получаются новые истинные формулы, являющиеся его унифицированными следствиями. Эти формулы помещаются в начальную базу знаний, в результате чего она превращается в другую базу знаний. Из нее извлекаются новые формулы, и все повторятся сначала до тех пор, пока на очередном шаге унифицированное следствие не совпадет с целевой формулой. Таким образом, в процессе прямого вывода на каждом его шаге база знаний пополняется выведенными истинными формулами.
В обратном выводе все делается наоборот: на первом шаге подбирается правило вывода, следствием которого является целевая формула, а условие может быть образовано из формул начальной базы знаний с использованием, если это необходимо, унификации. Унифицированные формулы, входящие в условие, принимаются за новые целевые формулы, обычно называемые подцелевыми формулами. И все повторяется сначала, но уже для каждой из них, и так до тех пор, пока все унифицированные подцелевые формулы не окажутся аксиомами, входящими в начальную базу знаний.
При выводе на основе использованного обобщенного правила вывода, унификации и хорновских формул используется только первый тип правил, поэтому нет необходимости осуществлять выбор подходящего правила вывода, превращая их в итеративную процедуру выполнения однотипных шагов.
<предложение> ::= <правило> | <подсказка> | <перевод>
<правило> ::= <номер>ЕСЛИ<условие>ТО<вывод> |<номер>ТО<вывод>
<номер> ::= <цифра> | <цифра><номер>
<условие> ::= <выражение> | <выражение>И<условие>
<выражение> ::= <атрибут><значение>
<вывод> ::= <выражение>
<атрибут> ::= <лексема>
<значение> ::= <лексема>
<подсказка> ::= ПОДСКАЗКА<атрибут> EOLn <текст> EOLn
<перевод> ::= ПЕРЕВОД<атрибут> EOLn <текст> EOLn
EOLn – End Of Line
![]() |
![]() |