Гради Буч - Объектно-ориентированный анализ и проектирование с примерами приложений на С++ (1158635), страница 82
Текст из файла (страница 82)
Методпоказал хорошие результаты в представлении описательных знаний; он болееэффективен с точки зрения памяти и времени по сравнению с другимиподходами [б].Информационная доска вполне подходит на роль среды разработки(см. главу 9). Попробуем теперь зафиксировать архитектуру этого метода ввиде системы классов и механизмов их взаимодействия.Архитектура метафоры информационной доскиЭнглемор и Морган для пояснения модели информационной доскииспользовали следующую аналогию с группой людей, собирающейфрагменты головоломки в нужную фигуру:Вообразим себе комнату с большой доской, рядом с которой находитсягруппа людей, держащих в руках фрагменты изображения.
Процесс начинаютдобровольцы, которые размещают на доске наиболее "вероятные" фрагментыизображения (предположим, что они прилепляются к доске). Далее каждыйучастник группы смотрит на оставшиеся у него фрагменты и решает, есть литакие, которые подходят к уже находящимся на доске. Участник, нашедшийсоответствие, подходит к доске и прилепляет свой кусок. В результатефрагмент за фрагментом занимают нужное место.
При этом не существенно,что один из участников может иметь больше фрагментов, чем другой. Всеизображение будет полностью собрано без всякого обмена информациеймежду членами группы. Каждый участник активизируется самостоятельно изнает, когда ему нужно включиться в процесс. Никакого порядка подхода кдоске заранее не устанавливается. Совместное поведение регулируется толькоинформацией на доске. Наблюдение за процессом демонстрирует егопоследовательность (по одному фрагменту за подход) и произвольность (когдавозникает возможность, фрагмент устанавливается). Это существенноотличается от строгой систематичности, например, от прохождения с левоговерхнего угла и перебора каждого фрагмента[7].Из рис. 11-1 видно, что основу метода составляют три элемента:информаци-онная доска, совокупность источников знаний и управляющийэтими источниками контроллер [8].
Отметим, что следующее определениепрямо соответствует принципам объектного подхода. Согласно Ни:"Информационная доска нужна для того чтобы хранить данные о ходе исостоянии решаемой задачи, используемые и формируемые источникамизнаний. Доска содержит объекты из пространства решений. Эти объектыиерархически группируются по уровням анализа и вместе со своимиатрибутами образуют словарь пространства решений" [9].Энглемор и Морган уточняют: "необходимые для решения задачизнания о предметной области разделены на несколько независимыхисточников.
Каждый источник знаний старается предложить информацию,полезную для решения за дачи. Текущая информация из каждого источникапомещается на доске и модифи-Рис. 11-1. Информационная доскацируется в соответствии с содержанием знаний. Формойпредставления источников знаний являются процедуры, наборы правил илилогические заключения" [10].Источники знаний зависят от предметной области. В системахраспознавания речи нас могут интересовать агенты, поставляющие знания офонемах, словах и предложениях. В системах распознавания образов имимогут быть сведения об элементарных структурах изображения, таких, какстыки линий, участки одинаковой плотности, и, на более высоком уровнеабстракции, объекты, относящиеся к конкретной сцене (дома, дороги, поля,автомобили и люди).В общем случае источники знаний соответствуют иерархическойструктуре объектов, размещаемых на информационной доске. Более того,каждый источник использует объекты одного уровня иерархии в качествевходных данных, а в качестве выхода генерирует или изменяет объекты надругом уровне.
Например, в системе распознавания речи источник знаний ословах наблюдает за потоком фонем (низкий уровень абстракции), чтобыобнаружить слово (более высокий уровень абстракции). Источник знаний опредложениях может предположить, что здесь нужен глагол (высокий уровеньабстракции) и проверить это предположение, перебрав список возможныхслов (низкий уровень абстракции),Эти два подхода к поиску решения называются соответственно прямойи обратной последовательностью рассуждений.
Прямая последовательностьрассуждений позволяет перейти от более частных предположений к болееобщим, а обратная последовательность, отталкиваясь от некоторойгипотезы, позволяет проверить ее, сравнив с известными предпосылками. Вотпочему управление информационной доской мы охарактеризовали какпроизвольное: в зависимости от обстоятельств, источники знаний могутактивизировать либо прямые, либо обратные последовательностирассуждений.Источники знаний, как правило, состоят из двух компонент:предусловия и действия.
Предусловием называется такое состояниеинформационной доски, которое представляет "интерес" для конкретногоисточника знаний (потенциально способно его активизировать). Например, враспознавании образов предусловием может быть наличие прямой линии(которая может означать дорогу). Выполнение предусловий заставляетисточник знаний сфокусировать внимание на конкретном участкеинформационной доски, а затем привести в действие соответствующиеправила или процедурные знания.В этих условиях очередность активизации не имеет значения: еслиисточник знаний обнаруживает данные, полезные для решения задачи, онсигнализирует об этом контроллеру доски, фигурально выражаясь, он как быподнимает руку, показывая, что желает сделать что-то полезное.
Изнескольких источников, делающих такой жест, контроллер вызывает того, ктоему представляется наиболее перспективным.Анализ источников знанийВернемся теперь к поставленной задаче и рассмотрим источникизнаний, полезные для ее решения. При построении большинства приложений,основанных на знаниях, лучше всего сесть рядом с экспертом в предметнойобласти и фиксировать те эвристики, которые он использует. В нашем случаепридется попытаться расшифровать некоторое количество криптограмм иотметить особенности процесса поиска решений.Действуя таким образом мы выявили тринадцать источников знаний,относящихся к нашей проблеме:• ПрефиксыНаиболее часто используемые началаслов (например, re, anti, un).• СуффиксыНаиболее часто используемыеокончания слов (ly, ing, es, ed).• СогласныеБуквы, не являющиеся гласными.• Непосредственно известныеПодстановки, известные нам априори,подстановкидо решения задачи.• Двойные буквыНаиболее часто сдваиваемыебуквы(tt,ll,ss).• Частота буквВероятность появления букв в тексте.• Правильные строкиДопустимые и недопустимые сочетаниябукв (например, qu и zg).• Сравнение с шаблономСлова, соответствующие шаблону.• Структура фразГрамматика, включая знания обименных и глагольных оборотах.• Короткие словаОдно-, двух-, трех- ичетырехбуквенные слова.• РешениеНайдено ли решение или мы зашли втупик.• ГласныеБуквы, не являющиеся согласными.• Структура словаРасположение гласных и типичнаяструктура существительных, глаголов,прилагательных, наречий, предлогов,союзов и т.
д.Исходя из объектно-ориентированного подхода, все эти источникизнаний являются потенциальными кандидатами на роль классов, на основекоторых создаются объекты, обладающие состоянием (знания), поведением(источник знаний о суффиксах может среагировать на слово с характернымокончанием) и индивидуальностью (знания о коротких словах не зависят отумения сравнивать с шаблоном).Перечисленные источники знаний можно организовать в иерархию. Вчастности, существуют группы источников знаний о предложениях, о словах,о группах букв и об отдельных буквах. Такая иерархия соответствуетобъектам на информационной доске: предложениям, словам, частям слов ибуквам.11.2. ПроектированиеАрхитектура информационной доскиТеперь у нас есть все, чтобы приступить к решению поставленнойзадачи с использованием метафоры информационной доски.
Это классическийпример повторного использования "в большом": мы повторно применяемиспытанный архитектурный шаблон как основу проекта. Методинформационной доски предполагает следующие объекты верхнего уровня:информационная доска, несколько источников знаний и контроллер. Остаетсятолько определить классы и объекты предметной области, которыеспециализируют эти общие абстракции.Объекты информационной доски. Объекты на доске образуютиерархию, отражающую иерархичность различных уровней абстракцииисточников знаний. Таким образом, у нас есть три следующих класса:•SentenceПолная криптограммаОтдельное слово в криптограмме•WordОтдельная буква в слове•CipherLetterИсточники знаний должны пользоваться общей информацией осделанных в процессе решения предположениях, поэтому в число объектовинформационной доски включается следующий класс:•AssumptionПредположение, сделанное источником знанийНаконец, источники знания делают предположения о связи междубуквами реального и шифровального алфавитов, так что мы вводимследующий класс:•AlphabetАлфавит исходного текста, алфавиткриптограммы исоответствие между нимиЕсть ли между этими пятью классами что-либо общее? Ответоднозначно утвердительный: все они соответствуют объектаминформационной доски и этим существенно отличаются от других объектов,например, источников знаний и контроллера.
Поэтому вводится следующийсуперкласс для всех ранее перечисленных объектов:class BlackboardObject ...С точки зрения внешнего поведения определим для этого класса двеоперации:•registerДобавить объект на доскуУдалить объект с доски•resignПочему мы определили эти две операции над объектами классаBlackboardObject, а не над самой доской? Это похоже на ситуацию, когдаобъект должен сам нарисовать себя в некотором окне. "Лакмусовый" тест втаких случаях, это вопрос: "Имеет ли сам объект достаточно знаний и умений,чтобы выполнять такие операции?".
Объекты информационной доски как разлучше всех понимают, как им правильно появляться на доске или удаляться снее (конечно, они нуждаются при этом в помощи самой доски). Мы ужеустановили ранее, что объекты, взаимодействующие с доской, по своей сутидолжны самостоятельно включаться в процесс решения задачи.Зависимости и подтверждения. Предложения, слова и буквы такжесвязаны определенной общностью: для всех них есть соответствующиеисточники знаний.