Построение экспертной системы с нечётким выводом в
Военно-космическая академия им.А.Ф.Можайского
Отчёт по работе:
Построение экспертной системы с нечётким выводом в
Turbo Prolog 2.0, с использованием алгоритма Такаги-Сугено”
Выполнили:
сержант Хорошилов А.С.
ефрейтор Кудленок А.П.
курсант Еремеев Д.Ю.
курсант Мальцев А.С.
Проверил:
профессор 25 кафедры
Хомоненко А.Д.
Санкт-Петербург
2010 г.
Содержание работы:
На данной практической работе нам было предложено разработь экспертную систему в программной среде Turbo Prolog 2.0 с нечётким выводом. Мы выбрали алгоритм с нечетким выводом Такаги- Сугено.
Суть нашей программы заключается в определении среднего срока службы автомобильного аккумулятора в зависимости от среднего напряжения на вольтметре и средней ресурсоемкости.
Входными параметрами для нашей программы служат аргументы N и E, что означает напряжение в Вольтах и ресурсоемкости измеряемое в процентном соотношении соответственно.
Изначально задавались два правила:
Рr1—Если напряжение высокое и средняя ресурсоемкость высокая, то срок службы аккумулятора высокий.
Pr2— Если напряжение низкое и средняя ресурсоемкость низкая, то срок службы аккумулятора низкий.
Pr3— Если напряжение низкое и средняя ресурсоемкость высокая, то срок службы аккумулятора средний.
Pr4— Если напряжение высокое и средняя ресурсоемкость низкая, то срок службы аккумулятора средний.
Для каждой лингвистической переменной были заданы нечеткие множества. Их графики приведены ниже:
Напряжение низкое ресурсоемкость низкая
Напряжение высокое ресурсоемкость высокая
Напряжение высокое ресурсоемкость низкая
Напряжение низкое ресурсоемкость высокая
Вывод осуществляется по алгоритму Такаги-Сугено:
Для исследования работы срока службы аккумулятора были составлены четыре тривиальных правила:
Пр1: ЕСЛИ напряжение И средняя ресурсоемкость высокая, ТО срок службы аккумулятора высок.
Пр2: ЕСЛИ напряжение И средняя ресурсоемкость низкая, ТО срок службы аккумулятора мал.
Пр3: ЕСЛИ напряжение низкое И средняя ресурсоемкость высокая, ТО срок службы аккумулятора средний.
Пр4: ЕСЛИ напряжение высокое И средняя ресурсоемкость низкая, ТО срок службы аккумулятора средний.
В этих правилах присутствуют 4 лингвистических переменных :
-напряжение высокое
-напряжение низкое
-средняя ресурсоемкость высокая
-средняя ресурсоемкость низкая,
каждой из которых соответствует нечеткое множество.
В нашей программе вводятся конкретные значения напряжения в аккумуляторе – N (V) , и средней ресурсоемкости – Е (%). Предикаты F1,F2,F3,F4 вычисляют функции принадлежностей этих значений к нечетким множествам для соответствующих лингвистических переменных (N1,N2,E1,E2). Обязательно проверяется условие
(α1 +α2)<>0 , где <>-неравенство.Вычисление срока службы аккумулятора производится по формуле:
SR=((N*0.1+E*0.01)*E1+(N*0.05+E*0.005)*E2)/(E1+E2)
Текст программы:
PREDICATES
MAIN(REAL,REAL,REAL)
PROC(REAL,REAL,REAL)
F1(REAL,REAL)
F2(REAL,REAL)
F3(REAL,REAL)
F4(REAL,REAL)
CLAUSES
MAIN(N,E,SR):-PROC(N,E,SR),WRITE("\n\n\n\n >>>> Srok slyzhby raboty akkum-ra -- ",SR," let").
PROC(N,E,SR):-F1(N,N1),F2(E,E1),F3(E,E2),F4(N,N2),N1>=E1,N2>=E2,(E1+E2)<>0,SR=((N*0.1+E*0.01)*E1+(N*0.05+E*0.005)*E2)/(E1+E2),SR>0;
F1(N,N1),F2(E,E1),F3(E,E2),F4(N,N2),N1>E1,N2<E2,(E1+E2)<>0,SR=((N*0.1+E*0.01)*E1+(N*0.05+E*0.005)*N2)/(E1+N2),SR>0;
F1(N,N1),F2(E,E1),F3(E,E2),F4(N,N2),N1<=E1,N2<=E2,(N1+N2)<>0,SR=((N*0.1+E*0.01)*N1+(N*0.05+E*0.005)*N2)/(N1+N2),SR>0;
F1(N,N1),F2(E,E1),F3(E,E2),F4(N,N2),N1<E1,N2>E2,(N1+E2)<>0,SR=((N*0.1+E*0.01)*N1+(N*0.05+E*0.005)*E2)/(N1+E2),SR>0.
F1(N,N1):-N<11,N1=0;
N>=11,N<12.5,N1=(N-11)/1.5;
N>=12.5,N1=1.
F2(E,E1):-E<50,E1=1;
E>=50,E<=100,E1=(E-50)/50;
E>=100,E1=0.
F3(E,E2):-E<50,E2=1;
E>=50,E<=100,E2=(100-E)/50;
E2=0.
F4(N,N2):-N<8.5,N2=0;
N>=8.5,N<11.5,N2=(N-8.5)/3;
N2=0.
GOAL
WRITE("\n\n Expert system opredelenie sroka slyzhby raboty akkum-ra !!"),
WRITE("\n\n Vvedite srednee napryazenia v akkum-re (0-12.5 V) -->>"),
READREAL(N),
WRITE("\n\n Vvedite srednuju resyrsoemkost v akkum-re (0-100 %) -->> "),
READREAL(E),
MAIN(N,E,SR),
READREAL(C).
Выводы по работе:
В ходе выполнения работы мы убедились в корректности алгоритма
Такаги-Сугэно.Результаты работы программы не противоречат здравому смыслу , но с помощью вариации свободных коэффициентов эти результаты можно улучшить. При помощи данной программы, мы подсчитали результат срока службы аккумулятора, который равен 2,1 года, в зависимости от введенных значений напряжения U=12 V, и ресурсоемкости - 90 %.