![]() |
![]() |
Категории: АстрономияБиология География Другие языки Интернет Информатика История Культура Литература Логика Математика Медицина Механика Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Транспорт Физика Философия Финансы Химия Экология Экономика Электроника |
Построение экспертной системы с нечётким выводом вВоенно-космическая академия им.А.Ф.Можайского
Отчёт по работе:
Построение экспертной системы с нечётким выводом в 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 %. |