Нечетким множествам в полном пространстве V можно поставить в соответствие функции принадлежности
, где обозначает меру принадлежности элемента . Нечеткое множество а можно также представить в виде , (2.35)где
- объединение на всем пространстве U, а знак «/» - разделитель.При нечетких выводах необходимо задать метод преобразования нечеткого условного оператора
в нечеткое отношение . Кроме того, заключение можно получить путем свертки фактических данных и нечеткого отношения. Существует несколько традиционных методов преобразования и свертки. В данной системе выводы делаются с помощью следующего метода, обеспечивающего минимальный разброс решений: , (2.36)где
-заключение, фактические данные.Блок выводов работает следующим образом. Пусть в предпосылке правил записано несколько тезисов:
Если
, тогда . (2.37)Тогда, если в базе фактических данных заданы
и , заключение получается по следующей формуле: , (2.38)где
-операция максимум-минимум, обозначает .Последовательность вывода показана на рис. 2.5.
База знаний для выводов составляется из функций принадлежности (в случае оценки входных и выходных значений), правил, диапазона входных и выходных значений и указаний к окончательным выходным данным. Функции принадлежности состоят из названия функции (уровня нечеткости) и значений принадлежности, в системе использованы следующие нечеткие уровни (ниже приведен процесс составления базы знаний):
1. Для каждого пункта клинических анализов, исключая качественные данные, в предпосылках используется пять уровней:
TRS (очень маленький) TPS (довольно малый)
ММ (обычный) ТРВ (довольно большой)
TRB (очень большой)
2. Для пунктов клинических анализов с качественными данными в предпосылках используются
ММ (-) TPS (+ - и ниже) РВ (+ -)
RB (+) ТРВ ( + и выше) ТРВ (+ + и выше)
VB ( + + +)
3. При расспросе о симптомах в предпосылках используются LT1 (не проявляется, проявляется временами, проявляется)
4. Для промежуточных гипотез и тяжести болезни в заключениях используются
CLA (классический) DEF (определенный)
PRO (вероятный) POS (возможный)
SUS (подозреваемый)
5. Для выбора диагноза на экране, выбора способа осмотра и промежуточных гипотез в предпосылках и заключениях используются
YES (да) NO (нет).
Пример функции принадлежности для уровней (1) приведен на рис. 2.6 а), для уровней (4)-на рис. 2.6 б). В правилах можно описать до десяти нечетких тезисов предпосылки и до двух нечетких тезисов заключения. Правила имеют следующую структуру:
Рисунок 2.5 Процесс выводов.
Если пункт введенных данных = уровень нечеткости,
тогда пункт выходных данных = уровень нечеткости.
а) б)Рисунок 2.6 функции принадлежности для уровней (1) на рис. а) и для уровней (4) на рис. б).
Кроме того, для уровней нечеткости, представленных функциями принадлежности, в тезисах можно использовать отрицание и логическую сумму.
Правила записаны в трех файлах: первичной оценки, вторичной оценки и указаний по охране здоровья. Файлы переключаются по соответствующей команде.
Приведем ниже примеры правил первичной оценки функционирования печени.
1. Если GOT = ТРВ, то функционирование печени = DEF.
2. Если GPT = ТРВ, то функционирование печени = DEF.
3. Если GGT = ТРВ, то функционирование печени = DEF.
4. Если (GOT = < GPT) = YES, то функционирование печени = DEF.
5. Если расспрос (легкая усталость) = LT1, то функционирование печени = PRO.
6. Если GOT = ММ & GPT = ММ & (GOT = < GPT) = NO & прошлый раз GOT = ТРВ, то функционирование печени = PRO.
2.2.6 Проектирование систем типа Сугено
Рассмотрим основные этапы проектирования систем типа Сугено на примере создания системы нечеткого логического вывода, моделирующей зависимость
, , . Моделирование этой зависимости будем осуществлять с помощью следующей базы знаний:1. Если x1=Средний, то y=0;
2. Если x1=Высокий и x2=Высокий, то y=2x1+2x2+1;
3. Если x1=Высокий и x2=Низкий, то y=4x1-x2;
4. Если x1=Низкий и x2=Средний, то y=8x1+2x2+8;
5. Если x1=Низкий и x2=Низкий, то y=50;
6. Если x1=Низкий и x2=Высокий, то y=50.
Рисунок 2.7 Эталонная поверхность
Проектирование системы нечеткого логического вывода типа Сугэно состоит в выполнении следующей последовательности шагов.
Шаг 1. Для загрузки основного fis-редактора напечатаем слова fuzzy в командной строке. После этого откроется нового графическое окно, показанное на рис. 2.8.
Рисунок 2.8 Окно редактора FIS-Editor
Шаг 2. Выберем тип системы. Для этого в меню File выбираем в подменю New fis… команду Sugeno.
Шаг 3. Добавим вторую входную переменную. Для этого в меню Edit выбираем команду Add input.
Шаг 4. Переименуем первую входную переменную. Для этого сделаем один щелчок левой кнопкой мыши на блоке input1, введем новое обозначение x1 в поле редактирования имени текущей переменной и нажмем <Enter>.
Шаг 5. Переименуем вторую входную переменную. Для этого сделаем один щелчок левой кнопкой мыши на блоке input2, введем новое обозначение x2 в поле редактирования имени текущей переменной и нажмем <Enter>.
Шаг 6. Переименуем выходную переменную. Для этого сделаем один щелчок левой кнопкой мыши на блоке output1, введем новое обозначение y в поле редактирования имени текущей переменной и нажмем <Enter>.
Шаг 7. Зададим имя системы. Для этого в меню File выбираем в подменю Export команду To disk и введем имя файла, например, FirstSugeno.
Шаг 8. Перейдем в редактор функций принадлежности. Для этого сделаем двойной щелчок левой кнопкой мыши на блоке x1.
Шаг 9. Зададим диапазон изменения переменной x1. Для этого напечатаем -7 3 в поле Range (см. рис. 2.9) и нажмем <Enter>.
Рисунок 2.9 Функции принадлежности переменной x1
Шаг 10. Зададим функции принадлежности переменной x1. Для лингвистической оценки этой переменной будем использовать, 3 терма с треугольными функциями принадлежности, которые установлены по умолчанию. Зададим наименования термов переменной x1. Для этого делаем один щелчок левой кнопкой мыши по графику первой функции принадлежности (см. рис. 2.9). Затем напечатаем наименование терма Низкий в поле Name. Затем делаем один щелчок левой кнопкой мыши по графику второй функции принадлежности и вводим наименование терма Средний в поле Name. Еще раз делаем один щелчок левой кнопкой мыши по графику третьей функции принадлежности и вводим наименование терма Высокий в поле Name и нажмем <Enter>. В результате получим графическое окно, изображенное на рис. 2.9.
Шаг 11. Зададим функции принадлежности переменной x2. Для лингвистической оценки этой переменной будем использовать 3 терма с треугольными функциями принадлежности, которые установлены по умолчанию. Для этого активизируем переменную x2 с помощью щелчка левой кнопки мыши на блоке x2. Зададим диапазон изменения переменной x2. Для этого напечатаем -4.4 1.7 в поле Range (см. рис. 2.10.) и нажмем <Enter>. По аналогии с предыдущим шагом зададим следующие наименования термов переменной x2: Низкий, Средний, Высокий. В результате получим графическое окно, изображенное на рис. 2.10.