Программное обеспечение решения обратных задач в виде композиции нечетких соответствий
Автор: Самсонов Г.А., Осипов Г.С.
Журнал: Международный журнал гуманитарных и естественных наук @intjournal
Рубрика: Технические науки
Статья в выпуске: 10-2 (49), 2020 года.
Бесплатный доступ
Предложена формальная постановка обратной задачи для нечетких реляционных уравнений общего вида. Проведен анализ возможности использования в качестве импликации треугольных норм и индуцированных ими импликаторов. Представлены композиции нечетких соответствий, наиболее часто используемых на практике. Разработано программное обеспечение для решения задач нечеткой диагностики в среде пакета символьной математики Wolfram Mathematica. Проведена практическая апробация программного комплекса.
Композиция нечетких соответствий, задача нечеткой диагностики
Короткий адрес: https://sciup.org/170186837
IDR: 170186837 | DOI: 10.24411/2500-1000-2020-11107
Текст научной статьи Программное обеспечение решения обратных задач в виде композиции нечетких соответствий
Современные исследования систем искусственного интеллекта в области принятия решений в нечетких условиях (при нечеткой исходной информации) в основном базируются на парадигме использования мягких и символьных вычислений. Разработка экспертных систем нечеткой диагностики востребована в таких областях человеческой деятельности как медицина, управление и диагностика сложных техно-
генных систем и систем принятия решений в социально-экономических, биологоэкологических и других сферах функционирования социума.
Целью настоящего исследования является разработка программного комплекса для решения обратной задачи, сформулированной в виде композиции нечетких соответствий [1].
Постановка задачи
Пусть k=1p j=1, n j=1, n
A» p =( aM 0,1], Xp, . =( XjH 0,1], B„. =( bj)e[ 0,1]
i = 1 m k = 1, p i = 1, m
Исследуются решения правого нечеткого реляционного уравнения [2]: AoX = B .
Очевидно, рассматриваемое уравнение представляет собой n независимых систем в каждой из которых m уравнений вида:
a 11 |
a 12 |
' " a 1 p |
(x ) x 1 j |
f b1? |
||||
a 21 |
a 22 |
a 2 p |
x 2 j |
— |
b 2 j |
( j |
= 1, n ) |
|
v a m 1 |
am 2 |
•• a mp j |
I x pj J |
b . < mj J |
Исследование решения уравнения A ° X = B осуществлялось для трех наиболее распространенных треугольных норм (логического, алгебраического и граничного произведений) и простейших индуцированных ими импликаторов (левых и правых).
max (T (ak, x^. )) = bj
Таким образом, исходное уравнение сводится к системам k или min (I (aik, xk-))=by (i=1, m; j=1, n)
k , соответственно.
В этом случае реализована возможность нахождения решения 9 видов уравнений при ( i = 1, m ; j = 1, n )
(табл.)
Известно [2], что в настоящее время не существует достаточно эффективного метода решения уравнений подобного класса. Поэтому в данной работе предложена практическая методология и реализация решения обратных задач для нечетких ре-
ляционных уравнений общего вида в среде пакета символьной математики Wolfram Mathematica.
Программная реализация
Текст функции, которая возвращает список пересечений интервалов из l1 и l2 .
Таблица
Используются t-нормы |
Используются соответствующие импликаторы |
|
max ( min ( a *, x ^ ) ) = b y |
min ( max ( 1 - a k , x k ) ) = Ьц |
min ( max ( 1 - x j , aik ) ) = b y |
max ( a ik • X y ) = b y |
min ( 1 - a ik + a ik • хку ) = b y |
min ( 1 - x kj + x k-- a ik ) = b y |
max ( max ( aik + xkj - 1,0 ) ) = b |
min ( min ( 1 - a ik + xk 7 ,1 ) ) = b |
min ( min ( 1 - x k + a ik ,1 ) ) = b |
Range[Min[(Length[£1], Length[12]}] ] (диал— [ми- (длина (длина
Функция, решающая соответствующее нечеткое уравнение
SolveARowB[arow_, b_] : = Module[(n, helper, selected}, n = Length[arow]I
(♦ Возвращает решение, при котором на месте 1 получаем b при композиции *)
helper [i_] : =
If[j? = i, If [arow [ [xr] ] = b, Interval[(b, 1} ], Interval [b] ] ,
[условный ■ [условный оператор [интервал [интервал
If[arow[[a]] = b II I MemberQ [selected, s] , Interval [ (0, 1} ], Interval [ [в, b}]]] 8/0
[условный оператор [элемент списка? [интервал [интервал
Range[n] j
[диапазон
(* Номера столбцов, на местах которых можно получить значение Ь при композиции *)
selected = Select [Range[n] , arow [[ »] ] >=b8]j [выбрать [диапазон helper /0 selected]
Решение одной из систем уравнений
SolveAMatrixBColuen[aw?trix_, bcoLumn_1 : = Module[(dd, cret, filt, result, next},
(* Фильтрует решенин, которые включаются в другие решения *)
(* Возвращает False для столбцов с пустыми множествами *)
(* Возвращает столбец, с преобразованиями: Interval[ (х, х)] => к *)
fHt[L ] := 1Т[М1п[л] -Мах [л], М1п[л], Л] & /в Ц
(* Решает первое уравнени *)
result = SolveARowB[omatrix[ [1] ], bcolumn[ [1] ] ] j
(* Решает остальные уравнение •)
For[i = 2, i s Length [bcotumn], i**,
[цикл ДЛЯ [длина
(* Решает следующие уравнение *} next = SoIveARowB[omatrix((i] ) , bcolumn[ [i] ) ] ;
(* Комбинирует все текущие решение с предыдущими *)
(* Фильтрует решения с пустыми множествами *)
result = Select[result, cret]j [выбрать
(* Фильтрует решения, которые включается в другие *)
____ result = dd[result] ____________________________________________________________
Функция, решающая систему систем уравнений
SolveAMatrixBMatrix[oznotrix_, bmotrix_] 8= Module[(helper, btrans, result, n), [программный модуль
(♦ Функция для комбинирования решений нескольких систем ♦)
helper[ret_, 1_ ] :=
If[Length[I] = 0, ret, helper[Append[ret, л], Drop[L, 1]] & /6 First[t]]j
I™ [длина [добавить в конец [отбросить [первый
(* Транспонирует матрицу, для обращения к столбцам, а не к строкам *)
btrans = Transpose [ixnotrix] j
(* Решает все системы отдельно*)
result = SolveAMatrixBColumn[arotrix, btrans[ (л) )) &/6 Range[Length[btrans]] ;
n = Length[result]j
(* Комбинирует полученные решения *)
result = helper[{}, result]j
MatrixForm[Transpose[л] ] &/6 Flatten[result, n - 1]]
матричная ■ транспозиция I yn постить
Практическая апробация
Выполним решение тестовой задачи:
/1.0 0.8 0,7 1.0'
0-9
M 0,2
0.7
0.2
0.2
SolveAMat rixBMat rix [ 0.1 6.9 9.8 6.5 л
1.0 0.5 0.2J
При использовании импликации в виде логического произведения получим следующее решение:
0.9 8.7
Interval'{0j 0-1}] Interval;;0? 0.2}]
Interval; ;&, 0*1}] Interval;*®, 6*2})
0.9
Interval;<0, 0.1
Interval;10j 0.1 . Interval;{0, 0Л
0,7 Interval; [0, 0.2}] 0.2 Interval[<0, 0.2}]
r 0.9 6.7
Interval;"0, 0.1}] Interval ;{0, 0.2}] ■
Interval; ;0j 0.1}] Interval ;{0, 6.2}] J
L Interval; ;0, 0Л}] 0.2
Первая из систем имеет единственное решение, а вторая три. Семантическая интерпретация получаемых решений достаточно полно исследована, например, в [2].
При использовании граничного произведения получим следующее решение:
0.9 0.7 0.2 0.2 Interval[{0, 0.3}] 0.4 t Interval [ {0, 0-6} ] Interval [ {0, 0.7} ] j 0.9 Interval >;0, 0.7}] ‘ 0.2 0.2 Interval[{0j 0.3}] 0.4 , Interval[ {0, 0.6}] 0.7 |
0.9 0.7 0.2 0.2 lnterval[{0, 0.3}] lnterval[{0? 0.4}] .Interval[{0j 0.6} ] 0.7 0.9 Interval;<0, 0.7}] " 0.2 0.2 lnterval[{0j 0.3}] lnterval[{0, 0.4}] Interval[ {0, 0. 6}] 0.7 |
1 |
Список литературы Программное обеспечение решения обратных задач в виде композиции нечетких соответствий
- Осипов Г.С., Осипова Е.В. О решении обратных задач с нечеткими соответствиями // Обозрение прикладной и промышленной математики. - 2019. - Т. 26. №3. - С. 275-277. DOI: 10.18411/OPPM-2019-26-2
- Блюмин С.Л., Шуйкова И.А., Сараев П.В., Черпаков И.В. Нечеткая логика: алгебраические основы и приложения. - Липецк: ЛЭГИ, 2002. - 111 с.