Объектно-ориентированное проектирование с примерами


Архитектура информационной доски - часть 11


На рис. 11-4 показан сценарий такого взаимодействия:
 

Рис. 11-4. Взаимодействия с источником знаний.

Что такое правило? Для иллюстрации приведем (в формате Lisp) правило, касающееся знаний об общеупотребительных суффиксах:

((* I ? ?)


(* I N G)


(* I E S)


(* I E D))

Это правило означает, что заданному шаблону *I?? (условие - antecedent) могут соответствовать суффиксы ING, IES и IED (заключение - consequent). В C++ можно определить следующий класс для представления правил:

class Rule {


public:


...

int bind(String<char>& antecedent, String<char>& consequent);


int remove(Strlng<char>& antecedent);


int remove(String<char>t antecedent, String<char>& conseiruent);


int hasConflict(const String<char>& antecedent) const;

protected:

String<char> antecedent;


List<String<char>> consequents;

};

Смысл приведенных операций полностью понятен из их наименований. Мы здесь повторно использовали некоторые классы из главы 9.

С точки зрения строения данного класса можно утверждать, что источники знаний являются разновидностью механизма вывода. Кроме того, они ассоциированы с объектами доски, поскольку находят там приложение своим усилиям. Наконец, каждый источник знаний связан с контроллером и посылает ему свои соображения. Контроллер, в свою очередь, может активизировать источники знаний.

Выразим все сказанное следующим образом:

class KnowledgeSource : public InferenceEngine, public Dependent  {


public:

KnowledgeSource(Blackboard*, Controller*);


void reset();


void evaluate();

protected:

Blackboard* blackboard;


Controller* controller;


UnboundedOrderedCollection<Assumption*> pastAssumptions;

};

В этот класс введен защищенный элемент данных pastAssumptions, позволяющий сохранять всю историю предположений в целях самообучения.

Экземпляры класса Blackboard служат для хранения объектов информационной доски. По схожим соображениям, необходим также класс KnowledgeSources, охватывающий все источники знаний, относящиеся к решаемой задаче:




Начало  Назад  Вперед



Книжный магазин