Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 17.03.2009
Сообщений: 17
1

Реализация экспертных систем

08.11.2011, 18:19. Показов 3788. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Попалась нелёгкая задача(для меня).

"Имеется набор признаков неисправности компьютера (например, "нет картинки на мониторе
и "при загрузке изаются звуки: 1 длинный и 2 коротких" => "неисправна видеокарта").
Требуется, задавая пользователю вопросы о признаках неисправности, вынести решение
о том, что неисправно в компьютере (возможно, в виде предположений/неск. вариантов).
(*) возможность вносить инф. о новых типах неполадок и их симптом.

Всё это делается в GNU prolog.Если кто сможет чем помочь,большое спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.11.2011, 18:19
Ответы с готовыми решениями:

Реализация Экспертных систем.
Доброго времени суток! Имеется след. проблема. Собственно задание - "Имеется набор признаков...

Примеры экспертных систем?
Можете привести примеры экспертных систем?

Разработка экспертных систем средствами Visual Prolog
Разработайте экспертную систему средствами языка Visual Prolog Консультация в отношении покупки...

Среда разработки экспертных систем «ЭКО»
Здравствуйте!!! Подскажите пожалуйста. Где я могу скачать среду разработки экспертных систем...

2
2505 / 1480 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
08.11.2011, 19:03 2
На гну прологе нет, есть на визуал, так что переделывать достаточно надо будет. Но зато хотя бы дерево вопросов готовое.
Файл генерации вопросов ЭС
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
domains
db_selector = es_base
next_question=q(ref,string,ref)
slist=string*
answer=a(ref,string,slist)
 
predicates
main
 
clauses
main:-
    db_create(es_base,"d:\\ExpertSystemBase.dba",in_file),
    chain_insertz(es_base,"questions",string,"Kompyuter vklyuchaetsya? ",Question1),
    chain_insertz(es_base,"questions",string,"Izobrazenie vivoditsya na monitor? ",Question2),
    chain_insertz(es_base,"questions",string,"Slishen zvukovoi signal? ",Question3),
    chain_insertz(es_base,"questions",string,"Sistema raboatet nestabilno (chasto visnet, perezagruzaetsya, promadaet izborazenie)? ",Question4),
    chain_insertz(es_base,"questions",string,"Slishen korotkii zvukovoi signal? ",Question5),
    chain_insertz(es_base,"questions",string,"Vo vremya raboti proyavlyaetsya kakoi-libo deffekt\n(sistema stabilno rabotaet dolgoe vremay i deffect poyavlyaetsya nepredzkazuemo)? ",Question6),
    chain_insertz(es_base,"questions",string,"Pri podache pitaniya slishen bil zvuk raskrutki zestkogo diska? ",Question7),
    chain_insertz(es_base,"questions",string,"Bili slishni popitki raskrutki raskrutki zestkogo diska? ",Question8),
    chain_insertz(es_base,"questions",string,"Bili slishni shelchki i nakopitel ne vishel v sostoyanie gotovnosti? ",Question9),
    chain_insertz(es_base,"questions",string,"Bil slishen gormkii i nepriyatnii zvuk pri raskrutke zestkogo diska? ",Question10),
    chain_insertz(es_base,"nextquestion",next_question,q(Question1,"yes",Question2),_),
    chain_insertz(es_base,"nextquestion",next_question,q(Question2,"yes",Question4),_),
    chain_insertz(es_base,"nextquestion",next_question,q(Question2,"no",Question3),_),
    chain_insertz(es_base,"nextquestion",next_question,q(Question3,"yes",Question5),_),
    chain_insertz(es_base,"nextquestion",next_question,q(Question4,"no",Question6),_),
    chain_insertz(es_base,"nextquestion",next_question,q(Question6,"no",Question7),_),
    chain_insertz(es_base,"nextquestion",next_question,q(Question7,"no",Question8),_),
    chain_insertz(es_base,"nextquestion",next_question,q(Question7,"yes",Question9),_),
    chain_insertz(es_base,"nextquestion",next_question,q(Question9,"no",Question10),_),
    chain_insertz(es_base,"answers",answer,a(Question1,"no",["Vozmoznie prichini: Zdes' mozhet byt' tri neispravnosti:","1. Blok pitanija.","2. Materinskaja plata.","3. Knopka vkljuchenija na perednej paneli korpusa.","Otkrojte blok pitanija i vnimatel'no osmotrite ego na nalichie neispravnyh jelementov:","vzdutye kondensatory, goretye rezistory, prozvonite testerom predohranitel' na vozmozhnost' obryva.","Prover'te svobodno li vrawaetsja kuler v bloke pitanija. Esli kuler ne vrawaetsja, to jeto skoree","vsego stalo prichinoj vyhoda iz stroja bloka pitanija.Proveriv blok pitanija i ubedivshis', chto on rabotaet,","prover'te knopku vkljuchenija."]),_),%Answer1
    chain_insertz(es_base,"answers",answer,a(Question3,"no",["Vozmoznie prichini: Zdes' mozhet byt' neskol'ko neispravnyh detalej:","1. Blok pitanija","2. Materinskaja plata","3. Videokarta","4. operativnaja pamjat'","5. Central'nyj processor","Materinskuju platu i central'nyj processor proverit' mozhno tol'ko podstanovkoj zavedomo ispravnoj.","No mozhno vynut' processor, prochistit' wjotkoj soket, postavit' processor obratno - inogda pomogaet.","Jeto proishodit iz za okislenija kontaktov na samom processore."]),_),%Answer2
    chain_insertz(es_base,"answers",answer,a(Question5,"no",["Vozmoznie prichini: Prichina mozhet byt' v neispravnosti videokarty ili operativnoj pamjati.","Neobhodimo prochistit' kontaktnuju gruppu s obeih storon na videokarte, operativnoj pamjati."]),_),%Answer3
    chain_insertz(es_base,"answers",answer,a(Question5,"yes",["Vozmoznie prichini: Problema v videokarte (ubedites' v ispravnosti monitora).","Prochistit' prostoj stjorkoj kontaktnuju gruppu s obeih storon na videokarte, esli","ne pomozhet mozhno smelo menjat' videokartu ili otnesti v servisnyj centr."]),_),%Answer4
    chain_insertz(es_base,"answers",answer,a(Question4,"yes",["Vozmoznie prichini: Neispravnosti mogut byt' sledujuwie:","1. Blok pitanija","2. Materinskaja plata","3. Operativnaja pamjat'","4. Videokarta","5. Central'nyj processor","So vremenem v bloke pitanija sadjatsja kondensatory i on stanovitsja ne v sostojanii vydavat' neobhodimuju","mownost' dlja normal'noj raboty komp'jutera. Neobhodimo zamenit' kondensatory v bloke pitanija.","S materinskoj platoj proishodit to zhe samoe. Snimite naljot na kontaktah operativnoj pamjati prostoj stjorkoj.","Prover'te programmoj Memtest na stabil'nuju rabotu OZU. Graficheskij processor videokarty prover'te na","temperaturnyj rezhim kakoj-nibud' programmoj, naprimer Everest. V sluchae vysokoj temperatury proverit' kuler:"," snjat' radiator i udalit' zasohshuju smazku spirtom, nanesti novuju smazku tonkim sloem i prikrepit' radiator na mesto.","Tozhe samoe sovetuju prodelat' i s central'nym processorom. "]),_),%Answer5
    chain_insertz(es_base,"answers",answer,a(Question6,"yes",["Vozmoznie prichini: Neispravnosti mogut byt' sledujuwie:","1. Blok pitanija","2. Materinskaja plata","3. Operativnaja pamjat'","4. Videokarta","5. Central'nyj processor","So vremenem v bloke pitanija sadjatsja kondensatory i on stanovitsja ne v sostojanii vydavat' neobhodimuju","mownost' dlja normal'noj raboty komp'jutera. Neobhodimo zamenit' kondensatory v bloke pitanija.","S materinskoj platoj proishodit to zhe samoe. Snimite naljot na kontaktah operativnoj pamjati prostoj stjorkoj.","Prover'te programmoj Memtest na stabil'nuju rabotu OZU. Graficheskij processor videokarty prover'te na","temperaturnyj rezhim kakoj-nibud' programmoj, naprimer Everest. V sluchae vysokoj temperatury proverit' kuler:"," snjat' radiator i udalit' zasohshuju smazku spirtom, nanesti novuju smazku tonkim sloem i prikrepit' radiator na mesto.","Tozhe samoe sovetuju prodelat' i s central'nym processorom. Pravda, chtoby vyjavit' plavajuwij defekt, testirovat'","prihoditsja ochen' i ochen' dolgo. Inogda jeto zanimaet do neskol'kih dnej."]),_),%Answer6
    chain_insertz(es_base,"answers",answer,a(Question8,"no",["Vozmoznie prichini NE VILI NAIDENNI!\n"]),_),%Answer7
    chain_insertz(es_base,"answers",answer,a(Question9,"yes",["Vozmoznie prichini: upravlyayushii processor nakopitelya zavisaet iz-za nepravilnogo","schitivaniya nahodyashihsya na diskah sluzebnih program. Eti programmy mogut okazat'sja","razrushennymi kak iz-za kakih-libo sboev v rabote vinchestera (v tom chisle nekorrektnyh","popytok nizkourovnevogo formatirovanija), tak i iz-za iznosa poverhnostej sluzhebnyh cilindrov."]),_),%Answer8
    chain_insertz(es_base,"answers",answer,a(Question10,"no",["Vozmoznie prichini NE BILI NAIDENNI!\n"]),_),%Answer9
    chain_insertz(es_base,"answers",answer,a(Question10,"yes",["Vozmoznie prichini: polomka dvigatelya HDD, smeshenie diskov (ot udara), vihod golovok za predeli poverhnosti diska iz-za polomki ogranichitelei\n"]),_),%Answer10
    db_close(es_base).
    
    
    
 
goal
main.
Сама ЭС
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
domains
db_selector = es_base
next_question=q(ref,string,ref)
slist=string*
answer=a(ref,string,slist)
 
predicates
nondeterm main
nondeterm ask(ref)
nondeterm check_ans(string)
nondeterm answer(ref,string)
nondeterm next_step(ref,string)
nondeterm write_answer(slist)
 
clauses
%predikat dlya zapuska programmi
main:-
    db_open(es_base,"d:\\ExpertSystemBase.dba",in_file), %otkrivaet fail s bazoi dannih
    chain_terms(es_base,"questions",string,_,FirstQuestionRef),%uznaem ssilku na glavnii vopros
    ask(FirstQuestionRef).%i peredaem v kachestve parametra dlya predikata voprosov
 
%zadaet vopros, na kotorii ukazivaet dannaya ssilka
ask(QuestionRef):-
    ref_term(es_base,string,QuestionRef,Question),%po ssilke na vopros nahodim ego formulirovku
    write("\n",Question),%vivodim ee na ekran
    readln(Answer),check_ans(Answer),!,%schitivaem otvet i proveryaem ego korrektnost
    %esli korrekten, to stavim otsechenie
    next_step(QuestionRef,Answer).%i smotrim chto nam delat dalshe pri takom otvete na takoi vopros
    
ask(QuestionRef):-write("V kachestve otveta vvodite tolko yes ili no!!!\n"),%syuda popadaem tolko
    %esli otvet bil nekkorekten. Soobshem ob etom i zadaem vopros snova
    ask(QuestionRef).
 
check_ans(A):-A="yes";A="no". %proverka korrektnosti otveta
 
%vibor sleduyushego shaga v zavisimosti o otveta na tekushii vopros
next_step(QuestionRef,Answer):-
    chain_terms(es_base,"nextquestion",next_question,q(QuestionRef,Answer,NextQuestionRef),_),!,
    %esli v base pri takom otvete na tekushii vopros est sslka na sleduyushii vopros
    ask(NextQuestionRef).%to zadaem ego
next_step(QuestionRef,Answer):-answer(QuestionRef,Answer).%inache ishem otvet ekspertnoi sistemi v dannom sluchae
 
answer(LastQuestionRef,LastUserAnswer):-
    chain_terms(es_base,"answers",answer,a(LastQuestionRef,LastUserAnswer,ExpertSystemAnswer),_),
    %nahodim v baze dannih predlozenie ekspertnoi sistemi, znaya tekushii vopros i otvet polzovatelya na nego
    write_answer(ExpertSystemAnswer).%pokazivaem otvet sistemi
 
write_answer([H|Tail]):-
    nl,write(H),write_answer(Tail).%esli viveli eshe ne vse stroki, to vivodim tekushuyu stroku i rekursivno hvost
write_answer([]):-nl.%esli viveli vse stroki, to prosto perehodim na sleduyushuyu stroku
 
    
goal
main.
Реализация экспертных систем
0
1 / 1 / 0
Регистрация: 17.03.2009
Сообщений: 17
08.11.2011, 19:25  [ТС] 3
Ох,тяжко тяжко,но спасибо)
1
08.11.2011, 19:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.11.2011, 19:25
Помогаю со студенческими работами здесь

Проектирование и визуализация базы знаний экспертных систем
Нужна небольшая помощь информационного порядка. Тема диплома «проектирование и визуализация базы...

Тема про создание Искусственных Разумов и Универсальных Экспертных Систем
Слава Отцу и Сыну и Святому Духу ныне и присно и во веки веков! Слава Богородице и всем святым...

Проектирование и реализация систем управления климатическими параметрами помещения
проектирование и реализация системы управления климатическими параметрами помещения на языке РКС...

Реализация SMS уведомлений от систем мониторинга Zabbix и PRTG на основе собственного GSM-модема
Здравствуйте, У нас в организации имеются две системы мониторинга: Zabbix и PRTG Network...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru