Information Technology Reference
In-Depth Information
die die gewünschten Flugzeiten und Ticketpreise genauer festlegen. Es werden einige Re-
gelvariablen ( departs , retums und price ) verwendet, die während des Schlussfol-
gerungsvorgangs die Zeit- und Preisinformationen enthalten.
Die Methode initialize() des Agenten legt die Regelbasis für den Flug durch
Aufruf der Methode initFlightRules() fest. Der Sleep-Timer ist beispielsweise
auf dreißig Sekunden und der Status auf initialisiert ( INITIATED ) eingestellt. Nachdem
der Informations-Agent initialisiert wurde, wird die Methode processAgent Event()
aufgerufen, um alle Ereignisse zu verarbeiten, die er empfängt. Der InformationA-
gent verarbeitet nur Ereignisse, die die Aktion process enthalten. Alle anderen Ereig-
nisse werden ignoriert. Wird ein Ereignis empfangen, das process enthält oder wird der
Agent synchron aufgerufen, sendet die Methode process() die Flugpreisanfrage zu der
Website und überprüft die als Ergebnis erhaltenen Flüge darauf, ob sie für den Anwender
interessant sind.
In der Methode initFlightRules() wird zunächst eine Regelvariable mit der
Bezeichnung departureTime definiert, die die Werte morning , afternoon oder
evening enthalten kann. Eine weitere Regelvariable, desiredDeparture , kann die
Werte yes oder no annehmen, um anzuzeigen, ob die Abflugzeit den Wünschen des An-
fragenden entspricht. Die gleichen Regelvariablen werden für die Rückflugzeit festge-
legt. Eine weitere Regelvariable mit der Bezeichnung rank wird verwendet, um jede
Zusammenstellung von Flugoptionen einzustufen. Sie kann die Werte good , better
oder best annehmen. Zusätzlich werden Objekte als Bedingung ( condition ) für = ,
! = , > und < definiert. Die erste Regel, morningDeparture , hat eine Prämissenklausel,
die als Regelvariable departs definiert und auf kleiner als 1200 gesetzt ist (Mittag). Die
nächste Klausel dieser Regel weist der Variablen departureTime den Wert morning
zu. Auf dieselbe Weise werden unter Verwendung der passenden Zeiten und Bedingungen
aus den Prämissenklauseln die Regeln für afternoonDeparture , eveningDepar-
ture , morningReturn , afternoonReturn und eveningReturn definiert. Der
nächste Satz von Regeln gibt an, ob die Hin-und Rückflugzeiten im gewünschten Bereich
liegen. Die Variable desiredDeparture wird auf yes gesetzt, wenn departure-
Time den Wert evening hat. Die Variable desiredReturn wird auf yes gesetzt,
wenn returnTime den Wert morning oder afternoon enthält. Der letzte Satz von
Regeln bewertet die Flüge. Wenn ein Flug eine gewünschte Hin- und Rückflugreisezeit
hat und weniger als 1000 $ kostet, wird die Regelvariable rank für diesen Flug auf den
Wert best gesetzt. Wenn die Zeit für den Hin- oder für den Rückflug nicht den Wünschen
entspricht, der Flug aber weniger als 800 $ kostet, erhält die rank den Wert better .
Wenn weder Hin- noch Rückflugzeit im gewünschten Rahmen liegen, der Preis aber ge-
ringer als 600 $ ist, wird die rank für diesen Flug auf den Wert good gesetzt. Die Re-
gelbasis ist bewusst etwas komplizierter gestaltet, als es der Anfwendungsfall eigentlich
erfordert. Es soll jedoch gezeigt werden, wie Regeln mit Prämissenklauseln von den Kon-
sequenzklauseln anderer Regeln abhängen. Dadurch wird eine interessantere Situation für
die Vorwärtsverkettung geschaffen, da einige Regeln beim Fortschreiten der Verarbeitung
das Hinzufügen weiterer Regeln zur Konfliktmenge verursachen.
Search WWH ::




Custom Search