AI-2010 Day 06 - part 1 (1156505), страница 2
Текст из файла (страница 2)
(use T1 [ ]) - вызвать теорему с именем T1, а если вызов неуспешен, вызывать все остальные,
(try [NOT T3]) - вызывать все теоремы кроме T3,
(use1) - если найдена одна успешная теорема, отменить все развилки.
Пример определения теоремы типа «при вычеркивании»:
[define КУБИК_ОСВ (erasing (X)
(=ЗАНЯТ= *X)
[assert (=СВОБОДЕН= .X)])]
Если из базы данных вычеркивается утверждение о том, что "поверхность некоторого кубика X занята" (если так, то на него нельзя поставить другой кубик), то автоматически будет вызвана и выполнена эта теорема. Она запишет в базу данных утверждение: "поверхность этого кубика X освободилась" (теперь на него можно поставить другой кубик).
Вызов теорем типа «при вычеркивании» осуществляется с помощью функции change – либо явно: [change pat rec?], либо неявно (из функции erase).
Пример определения теоремы типа «при записи»:
[define ПРИШЕЛ (antec (X Y Z)
(*X =ПРИШЕЛ= *Y)
[search1 (.X =НАХОДИТСЯ_В= *Z)]
[erase (.X =НАХОДИТСЯ_В= .Z)]
[assert (.X =НАХОДИТСЯ_В= .Y)])]
Если в базу данных записывается утверждение о том, что "X пришел в Y (из Z)", то автоматически будет вызвана и выполнена эта теорема. Она найдет в базе данных утверждение о прежнем местонахождении X, вычеркнет это утверждение и запишет, что "X находится вY".
Вызов теорем типа «при записи» осуществляется с помощью функции draw – опять же либо явно: [draw pat rec?], либо неявно (из функции assert).
7
Программное обеспечение работ по ИИ