В листинге 11.1 показана одна из задач организации перевозок с помощью воздушного грузового транспорта, в которой предусматривается загрузка и разгрузка грузов в самолеты и из самолетов, а также перелет из одного места в другое. Эта задача может быть определена с помощью трех действий: Load, Unload и Fly. Действия влияют на значения двух предикатов: предикат In (с, р) означает, что груз с находится в самолете р, а предикат At (х, а) означает, что объект χ (либо самолет, либо груз) находится в аэропорту а. Следует отметить, что предикат At больше вообще не обусловливает местонахождение груза, если предикат In определяет, что груз находится в самолете, поэтому At фактически означает "доступен для использования в указанном местонахождении". Для того чтобы научиться прорабатывать все эти детали должным образом, необходимо приобрести определенный опыт составления определений действий. Ниже приведен план, который является решением данной задачи. Листинг 11.1. Задача Strips, в которой предусматривается транспортировка груза между аэропортами В применяемом здесь представлении используется чистый (т.е. не дополненный) язык Strips. В частности, это представление не исключает того, что самолет может вылететь и прилететь в один и тот же аэропорт. Возникновение такой ситуации могут предотвратить литералы неравенства, предусмотренные в языке ADL.
|