Генетический алгоритм построения экспертных решающих правил в задаче многокритериальной классификации

Генетический алгоритм построения экспертных решающих правил в задаче многокритериальной

классификации

Асанов А.А.

ИСА РАН

Введение

Среди задач, традиционно относимых к области искусственного интеллекта, важное место занимают слабоструктурированные проблемы, для которых отсутствует объективная модель принятия решений. Для них, как правило, эталоном качества решения задачи является квалифицированный специалист - эксперт. Так, например, опытный врач обычно достаточно быстро и точно ставит диагноз заболевания. В тоже время путь развития новичка до грамотного специалиста практически всегда занимает значительное время и часто требует существенных материальных и других затрат. Разработка методов создания компьютерных систем, точно имитирующих навыки экспертов, позволила бы конструировать сколь угодно долговечные и сколь угодно широко распространяемые копии уникальных высококлассных специалистов.

Во многих практических случаях задача создания компьютерной модели опытного специалиста может быть представлена как задача классификации, так как экспертное знание часто состоит в отнесении объектов (альтернатив, состояний) к классам решений. Так, например, инженер анализирует сбой в сложной технической системе и определяет возможный тип неисправности. Врач изучает состояние пациента и ставит диагноз, выбирая из нескольких возможных типов заболеваний.

Однако, экспертное знание, как правило, подсознательно - в большинстве случаев эксперты не могут сформулировать правила, которые они используют в принятии решений. Правила, которые они все же могут явным образом вербализовать, охватывают лишь подмножество наиболее простых задач. Именно подсознательный характер экспертного знания вызвал значительные трудности при построении экспертных систем, а извлечение экспертных знаний было названо «узким местом» искусственного интеллекта [Feigenbaum, McCorduck, 1983].

В работе [Ларичев и др., 1989] был предложен оригинальный поход к построению к построению полных и непротиворечивых баз экспертных знаний, основанный на методологии вербального анализа решений [Ларичев, Мошкович, 1996]. На его основе была разработана серия методов выявления экспертного знания в задачах многокритериальной порядковой классификации [Ларичев и др., 1989], [Ларичев, Болотов, 1996]. Самые эффективные из алгоритмов экспертной классификации ([Ларичев, Асанов, 2000]) позволяют строить базы знаний со скоростью до нескольких сотен классифицируемых объектов в час.

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

Задача экспертной классификации

Рассмотрим формальную постановку задачи многокритериальной порядковой экспертной классификации: K = (Kj, K2, ..., KN} - множество критериев, по которым

оценивается каждый объект; Sq = , k2, К , ^ } для каждого критерия К2 - множество

оценок, упорядоченных по отношению характерности Qq; Y = S1 х S2 х...х SN - декартово произведение шкал критериев определяет пространство состояний объектов, подлежащих классификации; Y ^ Y - множество допустимых объектов; C = {C1, C2, ..., См} - множество классов решений, упорядоченных по отношению характерности QC. Требуется на основе экспертных суждений построить отображение (классификацию) F : Y ^ {Y}, i = 1...М (где Yj - множество векторных оценок, принадлежащих классу Ci, Yi П Yj = 0 ViVj). Классификация (отображение F) должна быть полной и непротиворечивой (см ниже). Введем понятия:

отношение доминирования: Q = {(х, j) е YxY | Vqe{1.N} (xq, yq) е Qq}; отношение строго доминирования: P = {(х, j) е YxY | (х, j) е Q, 3q: xq Фyq}; полнота классификации: Vj е Y Зк j е Yk;

непротиворечивость классификации: Vx е Yj Vj е Yj (х, j) е Q ^ (Cj, Cj) е QC ;

* *

множество X, Xе Y является полносвязным, если Vx е X Vj е X Vz е Y

(х, z) е Q л (z, j) е Q ^ z е X; верхняя граница полносвязного множества X : BU(X) = {у е X : Vx е X (х, j) £ P }; нижняя граница полносвязного множества X : BL(X) = {j е X: Vx е X (j, х) £ P }. Имеют место следующие утверждения:

*

Лемма 1. Произвольное полносвязное множество X ^ Y взаимно однозначно определяется своими верхней и нижней границами B (X) и BL(X). Лемма 2. Классы Yj являются полносвязными множествами.

Экспертные решающие правила

Результаты исследований в области когнитивной психологии (ограниченность объема кратковременной памяти 7±2 связанными блоками информации, формирование со временем иерархической структуры знаний, частое использование подсознательного счета и перебора объектов, стимулов в задачах принятия решений) позволяют предположить, что экспертные правила принятия решений могут быть формально представлены в виде небольшого числа (7±2) простых иерархических правил со счетно-аддитивной структурой. Действительно, эта гипотеза была подтверждена при построении баз знаний в области медицинской диагностики [Ларичев, 1994]. Оказалось, что границы классов в задачах экспертной классификации часто могут быть описаны небольшим количеством правил, имеющих простую двухуровневую структуру: набор значений по основным критериям дополняется комбинациями значений по менее важным критериям.

Формальная постановка задачи

Каждое правило R представляет собой конструкцию, описывающую некоторое множество векторов пространства Y - порождаемое множество G(R). Будем говорить, что некоторый j е Y удовлетворяет правилу R, если j е G(R).

*

Будем рассматривать расширенные шкалы критериев Kq (q = 1...N) Sq = Sq u {*}, где

* означает "произвольная оценка по критерию". Введем числовую функцию countP

qеQ

равную количеству элементов множества Q, для которых утверждение P(q) истинно. Определим два класса правил: правила типа "маска" и правила типа "связка": Ш = Шт u Шс.

Правило типа "маска" R е Шт представляет собой набор следующего вида R = [s, Л, т], где s = (s1, ..., sN), sq е S q (s - вектор оценок по расширенным шкалам критериев), Л - одно из арифметических отношений {<, <, =, >, >}, т - целое число такое, что 0 < т < Tmax, где

Tmax = count (sq Ф *). Порождаемое множество

qе{1,K, N}

G(R) = {y е Y : count (sq ^ * и (yq, sq) е Л) = т}. Правило типа "маска" описывает

qe{1,K, N }

множество векторов, у которых ровно т компонент одновременно меньше/равно/больше соответствующих компонент вектора s, не равных *.

Правило типа "связка" R е Щс представляет собой набор следующего вида R = <R1, ..., Rn, а>, где R1, ..., Rn - непустое множество подправил, Rq е Щ, n > 1, а - целое число такое, что 0 < а < n. Порождаемое множество

G(R) = {y е Y : count (y е G(Rq)) 0еслиу 0}. Правило типа "связка" представляет

qe{1,K,N} > у, еслиу > 0

собой комбинацию подправил. Заметим, что значение а = 0 представляет логический оператор "НЕ" - некоторый y е Y удовлетворяет правилу R, если он не удовлетворяет ни одному из подправил: G(R) = —GR) n ... n —G(Rn). Значение а = 1 представляет логический оператор "ИЛИ" - некоторый y е Y удовлетворяет правилу R, если он удовлетворяет хотя бы одному из подправил: G(R) = G(R1) ^ ... ^ G(Rn). Значение а = n представляет логический оператор "И" - некоторый y е Y удовлетворяет правилу R, если он удовлетворяет каждому из подправил: G(R) = G(Ri) n ... n G(Rn).

Рассмотрим примеры. В случае, когда шкалы всех критериев есть {0, 1}, правило типа "маска" Ri = [(0*00), <, 2] порождает множество G(Rj) = {0101, 0110, 1100, 0001, 0010, 1000, 0100, 0000}, то есть множество элементов, у которых по второму критерию стоит произвольная оценка и не менее двух оценок по оставшимся критериям не больше 0. Правило типа "маска" R2 = [(*0**), <, 1] порождает множество G(R2) = {1011, 0011, 1001, 1010, 1000, 0010, 0001, 0000}, то есть множество элементов, у которых оценка по второму критерию - 0, а остальные оценки - произвольные. Правило типа "связка" R3 = <R1, R2, 2> порождает множество G(R3) = G(R1) n G(R2) = {0001, 0010, 1000, 0000}.

Определим числовой коэффициент сложности правила, как:

R е Щ m : а

C (R) =

Я еШс : в+! С(Яд)• д=1

Сложность правила зависит от его структуры и представляет собой значение, которое складывается из коэффициента а, умноженного на количество всех подправил типа "маска", и увеличенное на коэффициент в для каждого подправила типа "связка" в структуре дерева. Обычно удобно принимать а= 1, в = 0.

Для того, чтобы количественно оценить, насколько хорошо правило Я описывает элементы некоторого множества Ж рассмотрим коэффициент достоверности правила:

Я(Я, Ж) = лI ж \ а(Я)| ) = Л |(Ж и О(Я)) - (Ж п а(Я))| ),

где / - некоторая монотонно убывающая функция, определенная на множестве неотрицательных целых чисел. Таким образом функция достоверности отражает точность совпадения множества Ж и порождаемого множества О(Н), достигая максимума при равенстве этих множеств. Удобно также использовать понятия абсолютной и относительной ошибки описания правилом Я некоторого множества Ж: ЕаЬэ(Я, Ж) = |Ж \ С(Я)|. Абсолютная ошибка правила представляет собой количество векторов пространства У, удовлетворяющих правилу Я, но не принадлежащих множеству Ж и наоборот, принадлежащих Ж, но не удовлетворяющих правилу Я.

Относительная ошибка Еге1(Я, Ж) = ЕаЬя(Я, Ж) / |Ж|, то есть относительная ошибка правила является отношением абсолютной ошибки к мощности описываемого множества.

Наибольший интерес вызывает задача описания предложенными правилами множеств У, получаемых при построении экспертом классификации в пространстве У. Обозначим

У" = YYg . Справедливы следующие утверждения:

д <1

Лемма 3. Набор Yf, i е {1,.. .Д-1} однозначно определяет классификацию. Лемма 4. Множества Yi являются полносвязными.

Задача формулируется следующим образом: для заданного Y- требуется построить R е Ш так, чтобы

C

Такая постановка задачи выявления решающих правил соответствует приведенному описанию структур экспертного знания в задачах классификации. Действительно, правила-маски описывают простые счетно-аддитивные стратегии классификации, правила-связки позволяют описывать иерархические многоуровневые стратегии. Критерий минимизации сложности правила соответствует цели описания классификации возможно меньшим количеством правил (не более приблизительно 7), чтобы соответствовать пределам емкости кратковременной памяти.

Будем называть базовыми правилами классификации двухуровневые правила вида R = <Rroot, Radd, 2>, где Rroot = [sroot, <, Tmax], Radd = [sadd, <, т]. Искомое в задаче (1) правило R представляет собой иерархическую структуру типа дерева, в котором разветвления представляются правилами-связками (R е Шс), а листья - правилами-масками (R е Шт). Без ограничения общности можно считать, что все листья дерева являются базовыми правилами, так как правило Rieaf = [s, Л, т] эквивалентно правилу R leaf = <[s, Л, т], [*...*, Л, 0], 2>.

Возможная неустойчивость экспертного знания отражена в критерии максимизации достоверности описания классификации. Однако, как правило, знания хорошего (то есть опытного и добросовестного) эксперта достаточно надежны и исчерпывающи (в рамках рассматриваемой задачи классификации). Поэтому следует ожидать, что построенная таким экспертом классификация будет описываться набором правил с малым количеством неустойчиво классифицированных векторов (их можно выявить и повторно предъявить эксперту для анализа). Это позволяет упростить оптимизационную задачу с двумя критериями (1), ввести максимально допустимые значения абсолютной и относительной ошибок и свести ее к однокритериальной задаче:

C(R) ^ min

EabsR Y- ) < E^X

Ere(R, y- ) < Emax

В практических задачах эти пороговые значения фиксируются обычно на уровнях Embix « 5, Emax « 0.2.

abs ' rel

Алгоритм построения решающих правил

Для решения задачи (2) были разработан генетический алгоритм, основанный на методологии эволюционного моделирования [Goldberg, 1989], [Курейчик, 1998]. Цель алгоритма - построить минимальное по мощности множество правил R1, ..., R такое, что RJ, j е {1, ..., X} являются базовыми правилами и агрегирующее правило Rfinai = < R1, ..., RX, 1> удовлетворяет ограничениям задачи (2).

Представление и создание популяции

Индивидом является базовое правило. Генами индивида являются компоненты векторов sroot и sadd, а также ген специального вида - число т (значение Tmax однозначно определяется вектором sroot). Особенностью предлагаемого генетического алгоритма является то, что решением является совокупность индивидов, а не единственный индивид.

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

набором и т.д. Однако наилучшие результаты были достигнуты при генерации начальной

выборки таким образом, что для каждого s е BU( Y,~ ) создавался индивид

R = <Rroot, Radd, 2>, где Rroot = [**...**, <, 0], Radd = [s, <, N]. Здесь у вектора sroot все компоненты имеют значение "произвольная оценка по критерию", а N - количество критериев в задаче классификации.

Задание начальной популяции набором индивидов, непосредственно описывающих верхние граничные элементы класса (а они являются набором "экстремальных" представителей класса), позволяет создать популяцию одновременно и разнообразную (с хорошей вариативностью) и качественную (с хорошим фенотипом).

Будем обозначать начальную популяцию V0, следующие за ней - V1, V2 и т.д.

Целевая функция

Целевая функция (фитнесс-функция) представляет собой отображение Ш ^ R. Ее смысл - численная оценка качества индивида.

Индексом близости к границе (верхней) для некоторого вектора y е Y, называется

число

count

iu (y )=q={KN}-n.

count lw = (yi, К , yq +1, К , yN) е Y I q={1K, N }V

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

задачи. Легко видеть, что для элементов верхней границы y е BU( Yj~) соответствующий

IU(y) = 1, то есть увеличение любой компоненты переводит вектор в другой класс. Значение IU(y) = 1/3, в частности, означает, что изменение ровно одной из трех (2 из 6, 3 из 9, ...) компонент вектора переводит его в другой класс.

Целевой функцией (фитнесс-функцией) индивида R е Ш будем называть

F (R) = £ IU( y) - £ 1 . уеО(К)^~ yеG (R)\Y~

Она представляет собой сумму индексов близости к границе для всех векторов, удовлетворяющих правилу и принадлежащих описываемому множеству Yt~, уменьшенную на сумму штрафов (по 1) для всех векторов удовлетворяющих правилу, но не принадлежащих Y{~. Такая конструкция целевой функции отражает тот факт, что наиболее качественные индивиды описывают наибольшее количество граничных (и близких к граничным) элементов. Важно также то, что эта целевая функция мало чувствительна к небольшому количеству ошибок, если правило подкреплено массивом данных достаточного объема.

Оператор селекции

Цель оператора селекции - выбрать из множества индивидов популяции Vj подмножество (пару) индивидов для выполнения скрещивания. В предлагаемом алгоритме из популяции выбирается подмножество индивидов с положительной целевой функцией:

V+ = {R е V, : F(R) > 0}. Суммарная целевая функция:

Fs= £F (R).

RеV+

Далее из полученного подмножества случайно выбирается пара индивидов, причем вероятность выбора каждого конкретного индивида пропорциональна значению его целевой

функции. Поэтому индивиды с более высоким значением целевой функции получают преимущество при выборе для скрещивания, аналогично тому, как в природе более приспособленные особи имеют больше шансов произвести потомство и закрепить наследственный материал. В предлагаемом алгоритме вероятность выбора индивида:

Г 0, если / (Я) < 0 Р(Я) = \ v 7 .

(Я) / в противном случае

Оператор селекции индивида Я в популяции на псевдокоде будем записывать как: Я := Вгеес1пщ

Оператор скрещивания

Оператор скрещивания (кроссинговера) используется для получения новых индивидов на базе уже имеющихся. Он представлен в виде алгоритма на псевдокоде. Здесь и далее V -текущее поколение популяции, Я1 и Я2 - выбранная для скрещивания пара индивидов, Я+ -порождаемый индивид (Я1, Я2, Я+ - базовые правила), Ягоо.?ч - ц-я компонента вектора ж подправила ЯгоЫ, - ц-я компонента вектора ж подправила Яа^, Я^.т - параметр т

подправила Яам, гапё(Л) - функция, возвращающая равномерно распределенный случайный элемент множества Л.

function chooseiin: a, b, out: c) if a = b then c := a else

if a = * or b = * then

if rand({0, 1}) = 0 then c := a else c := b end if

else

c := rand({a, ..., b}) end if end if end function

function CrossRand

for q = 1 ... N

R+ s =

11 root-Jq

R add-Sq := *

if R1add.Sq * * and R2add.Sq * * and rand({0, 1}) = 0 then

._ *

Hq ^ ailU Л addlq-R+root.Sq := rand

else

R root-Sq := ch00Se(R root-Sq, R root-Sq) if R+root-Sq = * then

R+add-Sq := chooSe{R'add-Sq, R2add-Sq) end if end if end for

R+add-T := rand({R1add-T, R2add-T}) - R+root-Tmax end function

Оператор скрещивания (кроссинговера) комбинирует структурные составные части правил-родителей и порождает правило-потомок, которое сочетает в себе характерные черты родителей.

Оператор мутации

С точки зрения теории генетических алгоритмов, оператор мутации является одним из основных. Он применяется для преодоления барьеров локальных оптимумов. Результатом

применения оператора мутации может быть как улучшение, так и ухудшение качества индивида.

Рассмотрим оператор мутации, записанный в виде алгоритма на псевдокоде. Здесь p -вероятность мутации индивида в одном поколении (обычно p « 0.01), Sq - шкала оценок по критерию q.

functionMutation{in: Vt,p) for R e V,

if rcmd([0, 1 ]) < p then var := rand({1, 3}) if var = 1 then

MutateAdd

else

MutateComb(R) end if end if end for end function

function MutateAdd

Q := {q e {1, N} : Rroot.Sq = * and Radd.Sq = *} if Q * 0 then q := rand(Q) if rand({0, 1}) = 0 then

Rroot.Sq = rand

else

Radd.Sq = rand

end if end if end function

functionMutateDel(in: R е V) if rand({0, 1}) = 0 then

Q := {q е {1,

q := rand(Q) R s = *

i-^root-^q

else

Q := {q е {1,

q := rand

Radd.Sq = *

end if end function

, N} : Rroot.Sq ^ *}

, N} : Radd.Sq ^ *}

functionMutateComb(in: R е V) Q := {q е {1, ..., N} : Radd.Sq * *} if Q * 0 then

Radd.T := rand({1, ..., |Q|}) end if end function

В предлагаемом алгоритме для случайно выбранного (с вероятностью р) индивида применяется одна из трех случайно выбранных функций мутации: MutateЛdd - добавление значащих (не равных *) генов в хромосомный набор индивида; MutateDel - удаление таких генов; MutateComb - изменение количества элементов в сочетании, задаваемом подправилом

Яadd.

Оператор отбора

Одним из важнейших эволюционных факторов является естественный отбор. Он действует, прежде всего, в пределах каждой популяции, оставляя (или уничтожая) те или иные входящие в ее состав генотипы.

В генетическом алгоритме оператор отбора выполняет три важные функции:

1) исключение из популяции некорректных (невозможных) индивидов, которые могли возникнуть в результате применения операторов скрещивания и мутации, а также индивидов, не удовлетворяющих ограничениям задачи (2);

2) удаление из популяции одинаковых индивидов, позволяющее избежать вырождения популяции, когда потомки одного индивида с хорошей приспособленностью заполняют популяцию, уменьшая, таким образом, разнообразие генетического материала;

3) ограничение размера популяции, в случае если задан ее максимальный размер (а это приходится часто делать, чтобы обеспечить приемлемое время вычислений); в этом случае из популяции удаляются индивиды с наименьшим значением целевой функции (фитнесс-функции).

Оператор отбора, применяемый к популяции V, на псевдокоде будем записывать как:

Selection

Здесь MaxSize - максимальный размер популяции, Е™*, - максимальные

абсолютная и относительная ошибки правила.

Построение решения

В результате эволюции заданного количества поколений 2 формируется последняя популяция У2. Требуется выбрать из нее набор правил Я1, ..., Я минимальной длины так, чтобы полученное агрегирующее правило Крпаг удовлетворяло ограничениям задачи (2). Однако эта задача является вычислительно труднорешаемой. Действительно, предполагая

ЕаЬХ = 0, для каждого правила Я е У2 порождаемое им множество О(Я) является подмножеством Уг~. Таким образом, требуется построить минимальное покрытие множества

У- его подмножествами О(Я). Как известно [Гэри, Джонсон, 1982], эта задача является КР-

полной (задача МР-5).

Способ решения этой задачи зависит от максимального размера популяции MaxSize и имеющихся в распоряжении вычислительных мощностей. Так, если значение MaxSize невелико, можно использовать переборный алгоритм, в противном случае применять один из приближенных (например, "жадных") алгоритмов.

Генетический алгоритм не гарантирует, что в последней популяции У2 содержится

набор правил, реализующий покрытие множества Уг~. Однако эта проблема легко решается

объединением наборов У2 и Уо, поскольку последний содержит покрытие по своему построению. Таким образом точный или приближенный алгоритм построения минимального покрытия применяется к множеству У2 ^ У0. На псевдокоде будем записывать соответствующую процедуру как:

Схема эволюции

Структура генетического алгоритма выглядит следующим образом:

1. Создание начальной популяции

2. Селекция пары (нескольких пар) индивидов, предназначенных для скрещивания

3. Скрещивание

4. Мутации индивидов текущей популяции

5. Отбор в текущей популяции - удаление некорректных, одинаковых и наименее приспособленных индивидов

6. Проверка номера текущего поколения - если оно не превысило заданный предел, то увеличить его на один и перейти к п. 2

7. Построение решения Rfinal из индивидов последней популяции

Генетический алгоритм построения решающих правил на псевдокоде записывается так: (Z - количество поколений, MaxSize - максимальный размер популяции, p - вероятность

мутации индивида в поколении, Ет*, Е™* - максимальные абсолютная и относительная

ошибки правила).

function Evolution^in: Z, MaxSize, p, , E™x , out: Rfwai)

Vo := CreatePopulation() for i = 1. Z

Vi R1 R2

R+ := CrossRandR1, R2) Vi := Vi u R

= V-i

= Breeding

+

Mutation

Selection(V, MaxPop, E, Ermax; end for

Rfmai := SelectFinal(V0, VZ) end function

Заключение

Задача выявления подсознательных экспертных решающих правил имеет важное практическое значение. Экспертные решающие правила могут быть проанализированы и использованы при обучении молодых специалистов экспертному знанию [Ларичев, Нарыжный, 1996], [Ларичев, Нарыжный, 1998], при построении систем искусственного интеллекта [Асанов и др., 2000], [Асанов и др., 2001].

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

Литература

Feigenbaum, E. A., McCorduck, P. (1983). The 5-th generation. Addison-Wesley, Massachusetts, 266 p.

Goldberg, D., E. (1989). Genetic algorithms in search, optimization and machine learning. Addison-Wesley.

Асанов, А. А., Борисенков, П. В., Ларичев, О.И., Нарыжный, Е.В., Ройзензон, Г.В. (2001). Метод ЦИКЛ многокритериальной классификации и его применение для решения проблемы анализа кредитного риска. Экономика и Математические Методы, том 37, вып. 2.

Асанов, А. А., Ларичев, О. И., Нарыжный, Е. В., Страхов, С. И. (2000). Экспертная система для диагностики лекарственных отравлений. Труды 7-й Национальной Конференции по Искусственному Интеллекту, том 2, Переславль-Залесский.

Гэри, М., Джонсон, Д. (1982). Вычислительные машины и труднорешаемые задачи. М.: Мир.

Курейчик, В., М. (1998). Генетические алгоритмы. Таганрог: издательство ТРТУ, 185 с.

Ларичев, О. И. (1994), Структуры экспертных знаний в задачах классификации. Доклады Академии Наук, т. 336, № 6, с. 750-752.

Ларичев, О. И., Асанов, А. А. (2000). Метод ЦИКЛ порядковой классификации многокритериальных альтернатив. Доклады Академии Наук, том 375, № 5.

Ларичев, О. И., Болотов, А. А. (1996). Система ДИФКЛАСС: построение полных и

непротиворечивых баз экспертных знаний в задачах дифференциальной диагностики. НТИ, сер. 2, Информ. процессы и системы, М.: ВИНИТИ, № 9, с. 9-15.

Ларичев, О. И., Мечитов, А. И., Мошкович, Е. М., Фуремс, Е. М. (1989). Выявление экспертных знаний. М.: Наука, 128 с.

Ларичев, О. И., Мошкович, Е. М. (1996). Качественные методы принятия решений. М.: Наука.

Ларичев, О. И., Нарыжный, Е. В. (1996). Компьютерное обучение экспертным знаниям в задачах классификации. НТИ, Серия 2, Информационные процессы и системы, М.: ВИНИТИ, №9.

Ларичев, О. И., Нарыжный, Е. В. (1998). Компьютерное обучение экспертным знаниям. Доклады Академии Наук, т. 362, № 3.