В листинге 11.1 показана одна из задач организации перевозок с помощью воздушного грузового транспорта, в которой предусматривается загрузка и разгрузка грузов в самолеты и из самолетов, а также перелет из одного места в другое. Эта задача может быть определена с помощью трех действий: Load, Unload и Fly. Действия влияют на значения двух предикатов: предикат In (с, р) означает, что груз с находится в самолете р, а предикат At (х, а) означает, что объект χ (либо самолет, либо груз) находится в аэропорту а. Следует отметить, что предикат At больше вообще не обусловливает местонахождение груза, если предикат In определяет, что груз находится в самолете, поэтому At фактически означает "доступен для использования в указанном местонахождении". Для того чтобы научиться прорабатывать все эти детали должным образом, необходимо приобрести определенный опыт составления определений действий. Ниже приведен план, который является решением данной задачи. ![](http://rriai.org.ru/illustr/ai3-19.jpg) Листинг 11.1. Задача Strips, в которой предусматривается транспортировка груза между аэропортами ![](http://rriai.org.ru/illustr/ai3-20.jpg) ![](http://rriai.org.ru/illustr/ai3-21.jpg) В применяемом здесь представлении используется чистый (т.е. не дополненный) язык Strips. В частности, это представление не исключает того, что самолет может вылететь и прилететь в один и тот же аэропорт. Возникновение такой ситуации могут предотвратить литералы неравенства, предусмотренные в языке ADL.
|