Как достичь надежности систем принятия решения?
Курганская Галина Сергеевна
Байкальский учебный комплекс
Иркутский государственный университет
г. Иркутск
e-mail: galina@buk.irk.ru
Одной из важнейших задач при разработке систем принятия решения является обеспечение целостности, полноты, непротиворечивости баз знаний и баз данных. Надежность и корректность работы системы не может быть обеспечена, если информация неполна или противоречива. К сожалению, в настоящее время не существует единого подхода как к оценке надежности систем, так и к оценке целостности, полноты и противоречивости знаний и данных. Технология конструирования систем, базирующихся на знаниях, которая поддерживает уровень надежность системы предложена в [1]. В работе [2] представлены методы построения количественных оценок сложных систем по комплексным критериям.
Представляется целесообразным рассмотреть методику проектирования, разработки и сопровождения интеллектуальных систем, которая бы позволяла объективно, количественно оценивать качество системы и ее компонентов по заданным критериям и поддерживать заданный уровень.
Понятия целостности, полноты и непротиворечивости могут толковаться по разному применительно к разным объектам, поскольку они существенно зависят от природы объекта .
Для реляционных баз данных критерии целостности, полноты и непротиворечивости традиционны . Непротиворечивость означает, что одинаковые атрибуты одних и тех же объектов совпадают. Следовательно, например, дублирование данных в базе повышает риск противоречивости.
Полнота базы данных предполагает , что все запросы пользователя в рамках задачи должны быть удовлетворены. Понятно, что такое определение непригодно для объективного анализа системы и нуждается в уточнении. Мы будем считать, что система управления базой данных у нас корректно специфицирована [3]. Множество выходных данных формально описано на языке предикатов.
Целостность базы данных предполагает согласованное представление информации для связанных объектов. Все связи в базе данных должны быть явно описаны в спецификациях системы.
В настоящей работе мы будем рассматривать базу знаний как совокупность правил вывода, что на наш взгляд вполне правомерно для большинства экспертных систем. При этом естественно вне поля зрения оказываются , например, базы знаний , представленных сетями Петри, так как для них требуются специфические средства работы. Для баз знаний, основанных на продукциях, рассмотрим основные критерии:
непротиворечивость определяется как в классической логике и предполагает невозможность вывода в одной системе двух взаимоисключающих утверждений;
полнота означает удовлетворение всех запросов в пределах области использования базы знаний. Чтобы формализовать этот критерий следует представить требования к области использования также в терминах формальной логики, язык предикатов вполне приемлем для этих целей;
целостность базы знаний - это согласованность всех ее элементов как по данным, так и по правилам вывода.
Традиционные методы обеспечения надежности систем реализуются на трех этапах ее жизни : проектирования, разработки и сопровождения Рассмотрим эти методы для систем управления базами данных и систем поддержки решения, основанные на знаниях.
При проектировании базы данных необходимо тщательно продумать инфологическую модель данных и, обязательно описать ее спецификации на формальном языке. Автор считает, что язык предикатов даже первого порядка достаточно богат для этого. Полученная модель исследуется на противоречивость и полноту. Верификация спецификаций, представленные формулами трехзначной логики, формальное описание которой изложено в работе (4), предоставляет для этого все необходимые средства.
Все изменения, вносимые в базу данных следует локализовать, при этом допуск к этим видам работ должен быть строго санкционирован. Следует также предусмотреть контроль на допустимость изменений, с тем, чтобы не произошло нарушения целостности, полноты и непротиворечивости данных. На наш взгляд, здесь возможно только экспертная оценка контроля и защиты данных, хотя в развитых системах разработки баз данных , таких, как Delphi, Paradox, FoxPro мы имеем предпосылки и для более объективной оценки.
При разработке системы важно отлеживать тщательное соблюдение спецификаций. Здесь применимы известные методы верификации программного обеспечения, например (Грис )
При эксплуатации системы хорошей базой для оценки ее надежности может служить статистика запросов.
В принципе вышеизложенное справедливо и для баз знаний. Следует только отметить, что здесь практически полностью отсутствует программирование, так как использование мощных оболочек построения экспертных систем переносит центр тяжести на создание базы знаний.
Таким образом мы можем свести верификацию баз знаний и данных к анализу системы в общем случае трехзначных предикатов. Теоретическое обоснование методики их использования предложено в (4). По имеющимся спецификациям исследуемой системы строится формализм в виде совокупности формул трехзначной логики, которые исследуются на полноту и непротиворечивость. Этот этап выполняется автоматически, так как после приведения формулы к дизъюнктивной нормальной форме мы используем обычный аппарат математической логики. Здесь мы можем выявить также избыточность данных: это будут те значения, которые используются для вычисления несущественных булевых переменных в формулах модели. Эта работа выполняется независимо от природы системы.
Для системы, основанной на базах знаний, мы можем использовать тот же подход для анализа совокупности правил вывода. При этом так же выявляется избыточность правил, если таковая существует.
В настоящее время ведутся работы по реализации этого подхода.
Для получения объективной оценки надежности систем, основанных на знаниях, мы можем получать количественные оценки для комплексных показателей полноты, непротиворечивости и целостности как для отдельных компонент системы, так и для интегрированной оценки всей системы в целом. Подход , изложенный в (2) вполне решает эту задачу.