VPX (664975), страница 2
Текст из файла (страница 2)
В качестве критериев, по которым можно судить о возможности создания экспертной системы следует отметить следующие:
-
- Необходимость символьных рассуждений, очевидно, нет смысла разрабатывать экспертную систему для численных расчетов, например, для преобразований Фурье, интегрирования, решения систем алгебраических уравнений и др.
-
- Наличие экспертов, компетентных в избранном круге вопросов, которые согласны сотрудничать при создании ЭС.
-
- Поставленная проблема должна быть достаточно важной и актуальной. Это могут быть проблемы, требующие высокого уровня экспертизы, либо простые, но трудоемкие многократно повторяющиеся проверки. Нет смысла тратить время на решение проблем, которые возникают редко и могут быть разрешены человеком с обычной квалификацией.
-
- Необходимо четко ограничивать круг решаемых задач, т.е. предметная область выбирается достаточно "узкой", чтобы избежать "комбинаторного взрыва" объема информации необходимой для компетентного решения поставленной задачи.
-
- Необходима согласованность мнений экспертов о том, как следует решать поставленные задачи, какие факты необходимо использовать и каковы общие правила вынесения суждений. В противном случае невозможно расширить базу знаний за пределы опыта одного человека и осуществить сплав экспертных знаний из нескольких областей.
-
- Должно быть достаточно исходных данных для проверки работоспособности экспертной системы в выбранной предметной
-
области, чтобы разработчики смогли убедиться в достижимости некоторого заданного уровня ее функционирования.
-
- Должна обеспечиваться возможность постепенного наращивания системы. База знаний должна легко расширяться и корректироваться, так как правила часто меняются с появлением новых фактов.
Ценность использования ЭС проявляется в следующих аспектах:
-
- В сборе, оперативном уточнении, кодировании и распространении экспертных знаний.
-
- В эффективном решении проблем, сложность которых превышает человеческие возможности и для которых требуются экспертные знания нескольких областей.
-
- В сохранении наиболее уязвимой ценности коллектива - коллективной памяти.
Создание баз знаний открывает широкие возможности, которые обусловлены безошибочностью и тщательностью, присущими ЭВМ и синтезом знаний экспертов. Если база знаний объединяет информацию по нескольким дисциплинам, то такой "сплав" знаний приобретает дополнительную ценность.
Экспертная система позволяет решить проблему сохранения экспертных знаний, связанную с утратой наиболее квалифицированных экспертов в результате их продвижения по службе, смерти, перехода на другую работу или выхода на пенсию, а также позволит сделать знания легко доступными для тех, кто займет места ушедших экспертов.
Ограничившись необходимым минимумом изложения теоретического материала, в дальнейшем сосредоточим внимание на практических аспектах применения экспертных систем.
6. КРАТКОЕ ОПИСАНИЕ ЭКСПЕРТНОЙ СИСТЕМЫ VP-Expert
Рассматриваемая система представляет собой "пустую" оболочку, хорошо зарекомендовавшую и получившую достаточно широкое распространение. ее применение возможно на IBM совместимых персональных компьютерах с операционной системой MS DOS, имеющих не менее 256 К оперативной памяти и адаптеры графических дисплеев подобные CGA, EGA или HERKULES. Важной особенностью оболочки, существенно расширяющей ее возможности, является совместимость с файлами созданными dBASE II, dBASE III и dBASE III+.
Для успешного функционирования системы необходим набор из следующих файлов VPX.EXE, VPX.TXT, VPXE.EXE, VPXH.EXE, VPXHELP.DBF, VPXHELP.HLP, VPXHELP.TXT, VPXI.EXE, VPXM.EXE, VPXT.EXE.
Перечисленные файлы желательно переписать с дискеты в специально созданную директорию. Старт экспертной системы производится запуском файла VPX.EXE на исполнение (возможно с указанием файла базы знаний с расширением .KBS).
7. Выполнение курсовой работы
Для выполнения курсовой работы была выбрана область- поломки в двигателях и способы их устранения. В ходе работы был написан модуль, выполняя который можно получить консультацию.
Исходный текст модуля :
RUNTIME;
EXECUTE;
BKCOLOR = 0;
ACTIONS
cls color = 9
display
"Вас приветствует система поиска неисправностей!
выбирайте симптомы- получайте способ устранения
(нажмите любую клавишу для продолжения.) "
cls
FIND bug_method
display "метод устранения неисправности {#bug_method}.";
ask prich1: "Неисправность
1-нет топлива в карбюраторе
2-нет импульсов высокого напряжения
3-нет импульсов тока на катушке зажигания
4-нет высокого напряжения на свечах
5-неправиьно подсоединены высоковольтные провода
6-неправильный зазор в свечах
7-трещина на изоляторе свечей
8-неправильный момент зажигания
9-неисправен эл.маг. клапан
10-не открывается воздушная заслонка "
;
!----------------------------------------------------------------
ask prich1_1: "Неисправность
1-засорены топливопроводы
2-засорены фильтры
3-несправен топливный насос"
;
RULE 6
IF prich=1 and
prich1=1 and
prich1_1=1
THEN
bug_method=1
display "прочистить топливопровод~"
;
RULE 7
IF prich=1 and
prich1=1 and
prich1_1=2
THEN
bug_method=2
display "прочистить или заменить фмльтры~"
;
RULE 8
IF prich=1 and
prich1=1 and
prich1_1=3
THEN
bug_method=3
display "починить насос~"
;
!----------------------------------------------------------------
ask prich1_2: "Неисправность
1-обрыв проводов коммутатора
2-несправен бесконтактный датчик"
;
RULE 10
IF prich=1 and
prich1=2 and
prich1_2=1
THEN
bug_method=4
display "проверить провода коммутатора~"
;
RULE 11
IF prich=1 and
prich1=2 and
prich1_2=2
THEN
bug_method=5
display "починить датчик~"
;
!----------------------------------------------------------------
ask prich1_3: "Неисправность
1-обрыв проводов катушки зажигания
2-неисправен коммутатор
3-не замыкаются контакты выключателя зажигания"
;
RULE 13
IF prich=1 and
prich1=3 and
prich1_3=1
THEN
bug_method=6
display "проверить провода~"
;
RULE 14
IF prich=1 and
prich1=3 and
prich1_3=2
THEN
bug_method=7
display "починить коммутатор~"
;
RULE 15
IF prich=1 and
prich1=3 and
prich1_3=3
THEN
bug_method=8
display "починить контакты~"
;
!----------------------------------------------------------------
ask prich1_4: "Неисправность
1-повреждение изоляции проводов выс.напр.
2-износ контактного уголька
3-повреждение крышки распределителя
4-повреждение ротора
5-отказ резистора
6-повреждена катушка зажигания "
;
RULE 17
IF prich=1 and
prich1=4 and
prich1_4=1
THEN
bug_method=8
display "проверить провода~"
;
RULE 18
IF prich=1 and
prich1=4 and
prich1_4=2
THEN
bug_method=9
display "осмотреть крышку распределителя, прочистить уголек~"
;
RULE 19
IF prich=1 and
prich1=4 and
prich1_3=3
THEN
bug_method=10
display "заменить крышку распределителя~"
;
RULE 20
IF prich=1 and
prich1=4 and
prich1_3=4
THEN
bug_method=11
display "заменить ротор распределителя~"
;
RULE 21
IF prich=1 and
prich1=4 and
prich1_3=5
THEN
bug_method=12
display "заменить резистор~"
;
RULE 22
IF prich=1 and
prich1=4 and
prich1_3=6
THEN
bug_method=13
display "заменить катушку зажигания~"
;
!----------------------------------------------------------------
RULE 23
IF prich=1 and
prich1=5
THEN
bug_method=14
display "проверьте правильность присоеденения проводов~"
;
!----------------------------------------------------------------
RULE 24
IF prich=1 and
prich1=6
THEN
bug_method=15
display "очистите свечи и отрегулируйте зазор между электродами~"
;
!----------------------------------------------------------------
RULE 25
IF prich=1 and
prich1=7
THEN
bug_method=16
display "заменить свечи~"
;
!----------------------------------------------------------------
RULE 26
IF prich=1 and
prich1=8
THEN
bug_method=17
display "отрегулируйте момент зажигания~"
;
!----------------------------------------------------------------
ask prich1_9: "Неисправность
1-обрыв проводов блока управления клапаном
2-неисправен блок управления клапаном
3-неисправен клапан"
;
RULE 28
IF prich=1 and
prich1=9 and
prich1_9=1
THEN
bug_method=18
display "восстановите соединение~"
;
RULE 29
IF prich=1 and
prich1=9 and
prich1_9=2
THEN
bug_method=19
display "починить блок управления клапаном~"
;
RULE 30
IF prich=1 and
prich1=9 and
prich1_9=3
THEN
bug_method=20
display "заменить клапан~"
;
!----------------------------------------------------------------
RULE 31
IF prich=1 and
prich1=10
THEN
bug_method=21
display "отрегулируйте заслонку~"
;
ask prich2: "Неисправность
1-не отрегулирован холостой ход
2-несправен карбюратор
3-ранее зажигание
4-поврежден шланг вакумного усилителя тормозов
5-повреждена прокладка во впускном коллекторе
6-повреждены трубки отбора разряжения"
;
RULE 33
IF prich=2 and
prich2=1
THEN
bug_method=22
display "отрегулируйте холостой ход~"
;
!----------------------------------------------------------------
ask prich2_2: "Неисправность
1-засорены жиклеры или каналы карбюратора
2-вода в карбюраторе
3-нарушена герметичность диафрагмы"
;
!----------------------------------------------------------------
RULE 35
IF prich=2 and
prich2=2 and
prich2_2=1
THEN
bug_method=23
display "продуть жиклеры и каналы~"
;
RULE 36
IF prich=2 and
prich2=2 and
prich2_2=2
THEN
bug_method=24
display "удалить воду~"
;
RULE 37
IF prich=2 and
prich2=2 and
prich2_2=3
THEN
bug_method=25
display "заменить диафрагму~"
;
!----------------------------------------------------------------
RULE 38
IF prich=2 and
prich2=3
THEN
bug_method=26
display "отрегулируйте момент зажигания~"
;
!----------------------------------------------------------------
RULE 39
IF prich=2 and
prich2=4
THEN
bug_method=27
display "замените поврежденный шланг~"
;
!----------------------------------------------------------------
RULE 40
IF prich=2 and
prich2=5
THEN
bug_method=28
display "восстановите прокладку~"
;
!----------------------------------------------------------------
RULE 41
IF prich=2 and
prich2=6
THEN
bug_method=29
display "восстановите трубки~"
;
RULE 42
IF prich=3
THEN
bug_method=30
display "заменить пружины в распределителе~"
;
ask prich4: "Неисправность
1-повреждены провода в системе зажигания
2-поврежен контактный уголек
3-подгорел центральный контакт
4-прогар ротора или крышки
5-износ электродов или замасливание свечей
6-неисправен коммутатор
7-повреждение помехоподавительного наконечника "
;
!----------------------------------------------------------------