Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Системы продукций: структура, технология, применение
Системы продукций начали развиваться с середины 70-х годов в связи с появлением прикладных программных систем специальной архитектуры, предназначенных для решения задач в плохо формализованных областях, таких как медицина, геология, понимание естественного языка. В первых работах [ 83, 85, 87] дается содержательное описание продукционного подхода. Наиболее полное исследование данного представления в виде формальных моделей дал А.С.Клещев [23, 24], В.Е.Кузнецов [26], Т.М.Яхно [70, 74 ], S.Vere [128], M.Georgeff [98, 99]. Особенности каждой модели определялись классами решаемых задач и технологическим базисом. В данной главе дано неформальное описание данного подхода к представлению знаний, специфицирована общая метамодель систем продукций, позволяющая выработать общий технологический подход, и построена алгебраическая модель систем продукций, которая обобщает специализированные формальные модели. Приведены исследования условий корректности вычислений и средства управления выводом в системах продукций. В заключении главы описан ряд прикладных программных систем продукций. 2.5.1. Неформальное введение в системы продукций Для того чтобы очертить концептуальные рамки понятия " системы продукций" (СП), используемого сейчас в области искусственного интеллекта, попытаемся проследить из каких понятий оно складывалось и как эволюционировало. Алгоритмические модели Начнем с такого общего понятия как алгоритм, который традиционно определяется как система указаний для перехода от исходных данных к искомому результату, обладающая свойством массовости, детерминированности и результативности. По существу, все математические процедуры, приводящие к решению тех или иных задач, основаны на алгоритмах. Попытка уйти от интуитивного понимания алгоритма привела к ряду математических уточнений этого понятия. Наиболее известные среди них — машина Тьюринга, машина Поста и нормальные алгоритмы Маркова [30]. Для нас наибольший интерес представляет формальное определение алгоритма, данное А.А.Марковым. Рассмотрим его более подробно. Нормальный алгоритм задается упорядоченным списком вида Q1 ® R1, Q2 ®R2, …, Qn ®Rn.
Выражение Qi ®Ri, называется подстановкой. Пусть дано некоторое слово L. Подстановка Qi ®Ri, применяется к слову L следующим образом. Если слово Qi, входит в состав слова L, то его самое левое вхождение заменяется на Ri. Подстановки упорядочены в записи нормального алгоритма, и существует жесткий порядок их выполнения. К исходному слову L сначала всегда применяется первая по порядку подстановка. Если она изменила слово, то оно рассматривается как новое, и к нему вновь применяется первая подстановка. Если же подстановки, образующие нормальный алгоритм, не меняют слова, то оно считается окончательным, и применение подстановок прекращается. Если сравнивать алгоритмические схемы Маркова и Тьюринга, то легко можно заметить, что в машине Тьюринга сравнительно хорошо развиты средства централизованного управления при слабых возможностях преобразования информации, тогда как в нормальных алгоритмах заданы богатые возможности преобразования информации (замена любого слова на любое другое слово) при совершено неразвитом управлении. Эти два типа уточнения понятия алгоритм в какой-то мере послужили основой двух ортогональных подходов к разработке систем программирования: процедурного и декларативного. Обе отмеченные алгоритмические процедуры представляют собой образцы ясности и четкости. Жесткие правила применения подстановок обеспечиваютдетерминированность процедуры, задаваемой нормальным алгоритмом. Это характерно и для машин Тьюринга. Детерминированность и результативность, свойственные им, регламентируют получение однозначных результатов при одинаковых исходных данных. Ослабление жестких требований, введенных в алгоритмических схемах, позволяет рассмотреть более гибкие процедуры. Одним из ослабления требований является отказ от детерминированности. Например, можно сделать произвольным выбор очередных подстановок на каждом шаге процесса. Процедуры подобного рода получили название исчислений, или квазиалгоритмов. В монографии [62] исчисление определяется как " способ задания множеств путем указания исходных элементов (аксиом) и правил вывода, каждое из которых описывает, как строить новые элементы из исходных и уже построенных". Список, каждый элемент которого является аксиомой или получен из предыдущих элементов списка по одному из правил вывода, называют выводом в исчислении. Логический вывод Наиболее полно изученными исчислениями в математической логике являются исчисления высказываний и исчисления предикатов первого порядка [62]. С каждой формулой в этих исчислениях связывается понятие интерпретации (приписывание истинностных значений), через которое определяются такие понятия, как противоречивость, непротиворечивость и общезначимость формул. Логическое следствие определяется следующим образом. Формула G есть логическое следствие формул F1, F2,..., Fn, тогда и только тогда, когда для любой интерпретации I, если формула F1& F2&...& Fn истинна в I, то G также в ней истинна [62]. Логическое следствие получается в результате применения логических правил вывода. Такие правила вывода обладают универсальной истинностью и могут применяться либо для установления истинности некоторого утверждения, либо для порождения новых заключений. В исчислении предикатов первого порядка зафиксировано несколько правил вывода (примером может служить известное правило — modus ponens). В общем случае можно сказать, что рассуждения в исчислении предикатов монотонны — мы никогда не отказываемся от полученных заключений, если становится истинным некоторый дополнительный факт. В этом смысле они отличаются от рассуждений на основе здравого смысла. Такие исчисления с фиксированным набором логических правил вывода обычно называют чистыми, или логическими, а вывод в них — логическим выводом. Формулировка задачи в исчислении предикатов рассматривается как теорема. Многие проблемы могут быть сформулированы как проблемы доказательства теорем. Именно это и определило стремление найти общую автоматическую процедуру доказательства теорем. Важный прогресс в этой области был достигнут с момента разработки метода резолюций, который оказался легкодоступным для реализации на ЭВМ. Именно поэтому исчисление предикатов является одним из основных исчислений, ориентированных на построение программ, обладающих интеллектуальными способностями [25]. Однако попытки автоматизации решения разнообразных классов задач в рамках классической логики иногда приводят к громоздким и неестественным формулировкам, превращая простые задачи в практически не решаемые. В частности, именно с этим обстоятельством связан некоторый скепсис в отношении применимости математической логики. И тем не менее именно логические исчисления положили основу логическому программированию и сделали популярным язык Пролог [25]. Прикладные модели Идя далее по пути ослабления ограничений, можно ввести исчисления, в которых вместо универсальных правил логического вывода используются проблемно-ориентированные правила вывода. Примером таких исчислений являются системы подстановок. Система подстановок задается некоторым алфавитом С = {ci, c2,..., сn} и базисными подстановками a®b где a, b — некоторые (возможно, пустые) слова в алфавите С. Каждую подстановку можно рассматривать как правило вывода Р (х, у), считая, что Р (х, у) истинно, если слово у получается из слова х посредством подстановки в х слова b вместо какого-либо вхождения слова a. Этот класс исчислений привел к активно развиваемым системам переписывания термов [102]. К данному классу можно отнести исчисление, введенное Э.Постом, которое он назвал системами продукций [118]. Система продукций Поста задается своим алфавитом и системой подстановок каждая, из которых называется продукцией и имеет вид ai W ® Wbi, (i = 1... n), где ai, bi — слова в алфавите С. Пусть некоторое слово L начинается словом аi. Выполнить над L продукцию — это значит вычеркнуть из L начальный отрезок аi, и к оставшемуся слову приписать справа слово bi. Например, применяя к слову aba продукцию abW —> Wc, получим слово ас. Существуют теоремы, показывающие, что любую систему подстановок можно " вложить" в систему продукций [28]. Характерным для систем продукций Поста является ограничение на форму самих подстановок. К этому же классу исчислений можно отнести и порождающие грамматики, введенные Н.Хомским [7]. Накладывание ограничений на левые и правые части правил привело к классификации грамматик и соответственно к классификации языков, порождаемых данными грамматики. При этом в фокусе исследований основной являлась проблема распознавания того, принадлежит ли заданное слово языку, порождаемому некоторой заданной грамматикой. Основная сфера применения данного формализма — это анализ формальных и естественных языков [7]. Общим для исчислений указанного вида, называемых иногда нелогическими, является их использование в качестве формальных систем, для которых исследуются математические аспекты и свойства. Так, разные варианты систем подстановок интенсивно изучались в теории алгоритмов, а в программировании использовались в виде разного рода грамматик, в основном для описания синтаксиса языков программирования. Параллельно с исследованиями, связанными с разработкой нелогических исчислений, в ИИ к середине 70-х годов осознана необходимость разработать средства в инструментальных системах для представления знаний, поскольку сами по себе общие методы поиска решений не привели к практическим успехам. В качестве одной из форм для представлений эвристических знаний были предложены правила вида условие —> действие в которых левая часть описывает некоторую ситуацию, а правая — те действия или заключения, которые надо сделать, если имеет место описываемая ситуация. Общая постановка задач при использовании множества правил формулируется следующим образом. Задается исходное и целевое состояние задачи. Система сама на основе заложенных в нее правил ищет возможные пути решения перевода исходного состояния в целевое. Знания о предметной области задают множество возможных преобразований в пространстве ситуаций, каждое из которых ограничено соответствующими условиями применимости данного преобразования в той или иной ситуации. Такие правила стали называть продукциями, а системы, использующие их для описания знаний — системами продукций [83]. В архитектуре программных систем продукций традиционно выделяют три основных компонента: базу данных — память для хранения текущей информации о решаемой задаче, базу знаний — множество правил (продукций) и интерпретатор, выполняющий преобразование базы данных по заданным правилам. Такая форма представления информации была принята в некоторых психологических моделях мышления человека. Исследования процессов принятия решений человеком показали, что, рассуждая, человек использует правила вида условие —> действие. А.Ньюэлл первым предложил использовать такое представление знаний для моделирования на ЭВМ процесса принятия решений [114]. Легко заметить, что предлагаемая форма для представления знаний выглядит необычайно похожей на системы подстановок. Поскольку разработки в области ИИ всегда связаны с созданием программных систем, то и для систем, поддерживающих представление знаний в виде правил, потребовалось название. Первоначально такие системы назывались по-разному: rewriting-rules systems, rule-based systems, pattern-directed inference systems, production systems. Больше всех повезло термину " системы продукций". С середины 70-х годов этот термин прочно закрепился за программными системами искусственного интеллекта, знания в которых представлялись в виде правил указанного вида. Таким образом, в ИИ под термином " системы продукций" понимают, с одной стороны, средство представления знаний. В этом смысле его можно отнести к классу нелогических прикладных исчислений и исследовать его свойства. С другой стороны, этот термин характеризует также и конкретный стиль программирования, принципиально отличающийся от традиционного и обладающий, по сравнению с последним, рядом существенных достоинств, среди которых основными являются следующие: - универсальность метода программирования, что обеспечивает возможность создания многообразия различных проблемно-ориентированных систем продукций, различающихся средствами представления правил и обрабатываемых структур; - естественная модульность организаций знаний в системах продукций: каждая продукция представляет собой законченный фрагмент знаний о предметной области, все множество продукций может очевидным образом структурироваться разбиением на подмножества, объединяющие продукции, которые относятся к одинаковым компонентам знаний; - в значительной степени эта модульность обеспечивается независимостью каждой продукции от содержания других продукций, ограниченностью фрагмента знаний, представляемого каждой продукцией, его функциональной локальностью в общей сумме информации о предметной области. Продукции не взаимодействуют друг с другом, эффект применения каждой из них определяется изменениями, которые она производит в обрабатываемой структуре. Это обеспечивает легкость и естественность спецификации знаний, простоту их модификации и расширения; - присущая системам продукций декларативность позволяет описывать с их помощью саму предметную область, а не соответствующие процедуры обработки; - асинхронность, недетерминированность и естественная параллельность систем продукций делает их весьма перспективными для реализации на параллельных ЭВМ, вернее, для разработки вычислительных систем, рассчитанных на продукционные программы. В то же время представление знаний в виде продукций имеет два основных недостатка, ограничивающих сферу его применения в современной практике программирования: - относительно низкая эффективность по сравнению с традиционными методами программирования. Однако этот разрыв в эффективности быстро сокращается за счет повышения уровня традиционных средств программирования (и соответствующего понижения " нормы эффективности" ) — с одной стороны, и прогрессом работ по развитию структуры самих систем продукций и оптимизации соответствующих базовых процессов — с другой. Кроме того, при современной мощности рядовой ЭВМ для многих приложений это различие в эффективности перестает быть значимым; - сложность или даже невозможность контроля правильности систем продукций методом воображаемой или реальной прокрутки соответствующего вычислительного процесса, что характерно для всех недетерминированных систем. У этого недостатка есть своя положительная сторона, поскольку такое свойство систем продукций навязывает программисту дисциплину, при которой контроль программы осуществляется лишь на самом высшем уровне - уровне представления знаний. За последние годы изучение возможностей систем продукций проводится по нескольким основным направлениям. С одной стороны, это исследование общих принципов и теории, направленное на дальнейшее развитие архитектуры и мощности систем, в основе которых лежат системы продукций, с другой — разработка конкретных систем искусственного интеллекта, являющихся специализированными программными реализациями систем продукций. Все это позволяет сформулировать три основных направления исследований систем продукций, так или иначе присутствующих в большинстве проектов, которые посвящены этой тематике: теоретические, технологические и прикладные. Рассмотрению этих вопросов посвящены следующие разделы данной главы. Что касается программных реализации систем продукций, то не ставится задача сделать полный обзор существующих систем. В настоящее время существует большое количество монографий, подробно описывающих как широко известные системы продукций типа MYCIN [121], PROSPECTOR [87], HEARSAY [60], так и менее известные, но достаточно интересные как с точки зрения технологии, так и с точки зрения представления знаний. Среди этих монографий следует отметить [49, 53, 61, 69]. Метамодель систем продукций Разработки проблемно-ориентированных систем продукций дали некоторый суммарный опыт, позволивший поставить вопрос о формировании общей технологической базы — пакета по созданию и настройке специализированных и настраиваемых систем продукций, оформляемых в виде автономных программных модулей, которые будем называть ПСМ. Задача создания пакета для производства ПСМ требует разработки модели модуля, выделения его основных составляющих, рассмотрения типов их структуры и возможных вариантов различных сочетаний этих составляющих, обуславливающих ту или иную функциональную ориентацию каждой конкретной конфигурации ПСМ. Создание метамодели ПСМ позволяет, с одной стороны, разработать схему спецификации модуля, с другой — выделить систему " строительных блоков", уточнив спектр вариации каждого из них, и, с третьей — определить способ оформления этих блоков, обеспечивающий гибкий и эффективный интерфейс между ними. В данном разделе описаны в общем виде основные подсистемы ПСМ, а затем более подробно рассмотрена структура каждой подсистемы. Основные подсистемы Рассмотрим схему функционирования систем продукций. Анализ этой схемы позволяет выделить три тесно связанные подсистемы, которые можно считать основными структурными компонентами ПСМ: модуль базы данных, модуль правил и модуль управления (интерпретатор) (рис. 1.1).
Рис. 1.1. Основные компоненты ПСМ Модуль базы данных представляет собой ассоциативную память, ориентированную на размещение и обработку структур какого-либо определенного типа. В базе хранятся данные, которые обрабатывает ПСМ, и это определяет основной набор реализуемых в базе данных операций. К этим операциям относятся: - поиск фрагмента данных (подструктуры) по образцу, - исключение подструктуры, - добавление подструктуры. В самом общем виде данные представляют собой множество компонент, связанных некоторым набором отношений. Каждая компонента обладает внутренней структурой произвольной сложности. Модуль правил представляет собой подсистему, предназначенную для размещения и реализации правил преобразования базы данных. Каждое правило есть тройка < имя, условие применимости, оператор>, где условие применимости есть образец, по которому осуществляется поиск в базе данных, а оператор определяет действия, выполняемые при успешном исходе поиска. В общем случае база правил включает информацию, управляющую аппаратом активации правил. Функцией этого аппарата является выделение на каждом шаге обработки тех правил, для которых производится проверка условий применимости. Введенный механизм активации, альтернативой которому является проверка условий применимости всех правил на каждом этапе обработки, выполняет одновременно несколько функций: l) с точки зрения задачи, отражает структурированность знаний предметной области. Эта структура знаний соответствует разделению области на специализированные " проекции", обслуживающие определенные типы данных. При этом правила, относящиеся к одной структурной единице знания, более тесно взаимодействуют друг с другом и гораздо в меньшей степени с остальными правилами; m) с точки зрения процесса, ограничивая совокупность правил, доступных на каждом этапе, позволяет: - повысить эффективность процедуры проверки условий применимости правил, - сократить объем необходимой оперативной памяти, - упростить условия применимости правил. Форма представления правил в базе правил может меняться в широких пределах. В общем случае содержащаяся в правилах информация может быть разделена на несколько уровней локальности: - глобальную, относящуюся ко всей системе правил; - локальную, относящуюся к данной группе правил; - индивидуальную, т.е. спецификацию самого правила. Весьма существенным является разделение систем правил на два класса — статические, т.е. не меняющиеся в процессе работы ПСМ, и динамические, способные к саморедактированию. Модуль управления (интерпретатор) выполняет в ПСМ функции управления, относящиеся к двум уровням, верхний из которых осуществляет взаимодействие с " внешним миром", а нижний координирует совместную работу базы данных и правил. В общем случае реализуемый интерпретатором процесс является недетерминированным асинхронным вычислительным процессом (по существу своему параллельным). Интерпретатор должен обеспечивать работу механизма активации правил, вести поиск по образцу, выполнять процедуру разрешения конфликта и редактировать базу данных. В общем случае для задачи существует не единственный способ получения результата при некотором конкретном наборе начальных данных. При этом результаты, которые были получены разными способами, могут быть различными. В ряде случаев целью обработки является получение нескольких или всех: - различных результатов; - путей вычисления одного и того же результата. Такая многовариантность может являться необходимым этапом в некоторых задачах, например, для выбора оптимального из полученных вариантов или проверки того, что для данной входной информации имеется более одного варианта решения. Как правило, пути решения, ведущие к разным результатам, не бывают совершенно разными. Чаще всего они могут быть в той или иной степени совмещены, начиная с входного состояния базы данных. Используя это, можно строить процесс вывода так, чтобы вести одновременно несколько вариантов на одной базе. При этом для каждой пары вариантов некоторые фрагменты в базе данных будут общими, а другие — различными. Это требует локального расслоения содержания базы данных. Каждое такое расслоение представляет собой совокупность альтернативных состояний соответствующего участка базы данных. Фрагменты базы данных, входящие в одну такую совокупность, несовместимы между собой, поскольку относятся к разным " конкурирующим" вариантам обработки. Таким образом, процесс вывода, осуществляемый интерпретатором, может быть одно- или многовариантным. В последнем случае в структуру базы данных вводится специальный аппарат, устанавливающий совместимость и несовместимость ее фрагментов друг с другом. При завершении многовариантного процесса в базе данных остаются результаты всех вариантов вывода. Популярное:
|
Последнее изменение этой страницы: 2016-03-17; Просмотров: 1316; Нарушение авторского права страницы