>UniverseOfDiscourse.end(), *this); if(I == UniverseOfDiscourse.end()){
>TruthValue = false;
>return(false);
>}
>TruthValue = true; return(true);
В обоих методах >validTrip ()
и >directTrip ()
используется алгоритм find() из стандартной библиотеки С++. UniverseOfDiscourse — это контейнер, который содержит убеждения агента и подготовленные для него утверждения. Вспомните, что одним из первых действий, предпринимаемых агентом, является вызов метода updateBeliefs(), который заполняет контейнер UniverseOfDiscourse. Определение метода updateBeliefs () приведено в листинге 12.8.
>// Листинг 12.8. Обновление убеждений
>void agent::updateBeliefs(void) {
>performance_statement TempP;
>TempP.sales(203.0);
>TempP.perHour(10 0.0);
>TempP.bays(4);
>PerformanceBeliefs.push_back(TempP);
>trip_announcement Temp;
>Temp.origin(«Detroit»);
>Temp.destination(«LA»);
>TripBeliefs.push_back(Temp);
>Temp.origin(«LA»);
>Temp.destination(«NJ»);
>TripBeliefs.push_back(Temp);
>Temp.origin(«NJ»);
>Temp.destination(«Windsor»);
>TripBeliefs.push_back(Temp);
>}
На практике убеждения обычно поступают из среды выполнения агента ( т.е. из файлов, от датчиков, портов, устройств сбора данных и пр.). В листинге 12.8 инфор м ация, поступающая в списки TripBeliefs и PerformanceBeliefs, представляет новые высказывания, которые агент получает о приемлемых маршрутах и эффективности авторемонтной мастерской. Эти высказывания оцениваются относительно директив, выданных агенту. Установкой директив агента зани м ается м етод setGoals (). (Его опреде л ение приведено в л истинге 12.9.)
>// Листинг 12.9. Метод установки целей агента
>void agent::setGoals(void) {
>Managerl.perHour(15.0);
>Managerl.bays(8);
>Managerl.sales(123.2 3);
>Manager2.perHour(2 5.3 4);
>Manager2.bays(4);
>Manager2.sales(12.33);
>Manager3.perHour(3 4.3 4);
>Manager3.sales(100000.12);
>Manager3.bays(10);
>Trip1.origin(«Detroit»);
>Tripl.destination(«Chicago»);
>Trip2.origin(«Detroit»);
>Trip2.destination(«NY»);
>Trip3.origin(«Detroit»);
>Trip3.destination(«Windsor»);
>}
Эти директивы сообщают агенту о том, что его владелец хотел бы отправиться в отпуск из Детройта в Чикаго, из Детройта в Нью-Йорк или из Детройта в Виндзор. Помимо маршрутов, также устанавливаются финансовые цели. Чтобы отпуск состоялся, необходимо достижение одной или нескольких таких целей. После установки целей агент обновляет свои убеждения, и его следующая задача будет определена в зависимости от целей и убеждений при условии возможности планирования отпуска. И тогда вызывается второй компонент методов рассуждений агента: >determineVacationAppropriate()