Реферат по предмету "Информатика, программирование"


Экспертная система. Анализ передачи телеметрических данных со спутника

Введение
экспертныйэвристический телеметрический спутник
Одним из направлений вобласти искусственного интеллекта стали экспертные системы, куда входят исистемы принятия решений, о которых и пойдет речь в данной статье. «Экспертнаясистема — это компьютерная программа, созданная для выполнения тех видовдеятельности, которые под силу только человеку-эксперту, напримерпроектирования, планирования, постановки диагноза, перевода, реферирования,ревизии, выдачи рекомендаций»Марселлус Д. Другим аргументом в пользуэкспертных систем является то, что при проведении реинжиниринга (реорганизации)любого предприятия такие системы экономически необходимы, так как они позволяютсократить штат сотрудников, сэкономить время, снизить уровень бюрократии ибумажной волокиты. К тому же большое преимущество экспертных систем заключаетсяв том, что данные, а также правила их вывода, касающиеся той или инойпредметной области, хранятся в памяти компьютера и в большинстве своемнепредвзяты, застрахованы от чьего-либо влияния, их нельзя потерять или «забыть».Экспертные системы и их элементы в настоящее время эффективно используются вбухгалтерском учете, банковском деле и т.д. Отличительной чертой компьютерныхпрограмм экспертных систем является их способность накапливать, модифицироватьи использовать знания и опыт наиболее квалифицированных специалистов вкакой-либо предметной области для решения практических задач. Экспертныесистемы используют механизмы автоматического рассуждения (вывода) и такназываемые «слабые» методы искусственного интеллекта такие, какэвристический поиск решения.
К числу областей, вкоторых применяются экспертные системы, относятся следующие:
· Идентификация иликвидация неполадок в локомотивах;
· Анализ передачи телеметрическихданных со спутника

Экспертная система. Анализпередачи телеметрических данных со спутника
Вданном курсовом проекте анализируются сигналы полученные со спутника.Проявление их влечет за собой типы сигналов. Можно выделить возможные:
1. Ветер
2. Воздушные массы
Знанияв экспертной системе представляются как база данных. Строение базы данныхдолжно отвечать продукционной модели знаний в виде «если – то».Следовательно в данной экспертной системе будем использовать реляционную базуданных, содержащую типы сигналов и расшифровку.
База знаний представленав виде записей двух типов – это 1) записи, хранящие типы сигналов и 2) записи, характеризующие расшифровку База симптомовпредставлена в виде полей, имеющих свой номер и название симптома:
signalip(Номер_сигнала,Номер_описания, Название)
Номер является уникальнымидентификатором сигнала и база знаний не может иметь двух сигналов содинаковыми номерами.
Номер_описания хранитссылку на номер сигнала, которая могла вызвать данный эффект.
Название представляетсобой поле, которое содержит текст самого сигнала.
База типов сигналапредставляет собой предикат типа:
decodip(Номер_типасигнала, Название, Метод_расшифровки)

Поля Номер и Названиеимеют тот же смысл, что и для симптома, а – Метод_расшифровки это указаниепользователю, как можно выявить нужную информацию.
Фрагмент базы данных,используемой данной экспертной системой, представлен ниже:
/>Разработка процедур
Главная процедура Main
Основная процедура программы, которая выдает на экранзаставку, загружает файл с базой данных и выводит главное меню.
Процедура выводаинформации о программе Zastavka
Очищаяпервое окно, эта процедура выводит на экран заставку программы в видетитульного листа данного курсового проекта.
/>

Процедура главного меню StartЭта процедура выводит на экран список следующихрежимов, каждый из которых реализован с помощью отдельной процедуры. Менюпредставляет собой окно, в котором обозначены пункты. Чтобы зайти в нужныйпункт, нужно поставить курсор на надпись и нажать Enter.После этого происходит выполнение вспомогательной процедуры Select(Ch), где Ch – целочисленнаяпеременная, которая определяется положением курсора в окне меню. Выбирая одиниз пунктов меню, пользователь вызывает соответствующую ему процедуру:/>
Процедуры загрузки исохранения БД LoadBDFile и SaveBD
Загрузка и сохранение БДосуществляются через стандартные процедуры для работы с БД: consult и save. Доступ к файлам на диске производится через предикатdir, возвращающий в качестве параметраимя файла и путь к нему.
Процедура анализа Diagnostic
/>

Производит проверкуналичия признаков и описаний в базе данных. Затем с помощью вспомогательнойпроцедуры ResearchNode открывается диалог междупользователем и экспертной системой. Параллельно с помощью процедуры KeySelect на основе ответов пользователяформируется специальный код неисправности с помощью которого производится поискописания в БД. С помощью предиката FaultFound выводится сообщение о нахождении неисправностей ирекомендации по ее устранению.
Процедура меню правки EditBD
Выводит на экран подменюправки БД. Выбирая один из пунктов меню, пользователь вызывает соответствующуюему процедуру:
/>
Здесь также используютсяпроцедуры добавления признаков и описаний AddFault и AddRepair, процедуры просмотра признаков иописаний ShowFault и ShowRepair, процедуры удаления признаков иописаний DeleteFault и DeleteRepair и процедура выхода из программы ExitProg.

Заключение
В данной курсовой работебыла приведена экспертная система «Анализ телеметрических данныхпереданных со спутника » применяется для исследования погодных условий наземле и других планет, для специалистов: метеорологов, астрономов,исследователей.
Ученые считают, чтобудущее именно за такими экспертными системами. Специалисты считают, что можносэкономить время на принятие решений, если компьютер будет понимать речевыекоманды. Так было бы намного проще надиктовать данные, нежели вручную вводитьих с помощью клавиатуры, тем более, что пока еще не всякий специалист способенбыстро вводить информацию. Тем не менее, эксперты считают их еще несовершенными и разработки в этой области продолжают оставаться перспективными.
В заключение следуетсказать, что как бы ни были развиты компьютеры и программное обеспечение, онине смогут заменить человека, так как только он способен к творчеству и принятиюнестандартных, выигрышных решений. Зато компьютеры и, в частности, экспертныесистемы могут значительно помочь специалисту в решении многих профессиональныхпроблем.

Список литературы
1) Емельянов В.А.,Емельянов Б.В. курсовое проектирование: разработка экспертных систем и системпринятия решений. Чебоксары: Чувашский университет, 2006.
2) Л. Стерлинг, Э.Шапиро «Искусство программирования на языке Пролог»,1999
3) Бабаев И.О.,Герасимов М.А. интеллектуальное программирование. Санкт-Петербург: СПбГУ, 1992.
4) Янсон А. «Турбо-Прологв сжатом изложении», 2000
5) Соломин Н., Ин Д.Использование Турбо-Пролога. М.: Мир, 1993.
6) Логическое программирование.- М.: Знание, 1988. (Новое в жизни, науке, технике. Сер.«Вычислительнаятехника и ее применение»; N9))

Приложение
Текст программы:
code=3000
include «tdoms.pro»
include «tpreds.pro»
include «menu2.pro»
domains
IDType=integer
TTitle=string
Int=integer
Str=string
predicates
Main
ExitProg
Start
CreateTitle
Zastavka
Select(Int)
Diagnostic
LoadBDFile
EditBD
ResearchNode(IDType)
KeySelect(Char,IDType)
FaultFound(IDType)
EditSelect(Char)
AddFault
ShowFaults
DeleteFault
AddRepair
Showrepairs
DeleteRepair
ShowFault(IDType,Int)
ShowRepair(IDType,Int)
SaveBD
LoadBD(Str)
UnloadBD
ErrorExitProg(String)
database — FaultBD
signalip (IDType,IDType,TTitle)
decodip(IDType,TTitle,TTitle)
goal
Main.
clauses
/*Выводинформации о программе*/
Zastavka:-
makewindow(1,10,31,"",0,0,25,80),
nl,nl,nl,
write("Курсовая работа: Экспертная система "),nl,nl,
write("Тема: Анализ передачи телеметрических данных со спутника "),nl,
nl,nl,nl,nl,nl,nl,nl,
write(" Студент:АфанасьевВ.А."),nl,
write("Руководитель: Пичугин В.Н."),nl,
write(" ГрупаАФТ61-04"),nl,
write(" АФЧГУ"),nl,
nl,nl,nl,nl,nl,nl,
write(""),nl,nl,
readchar(_),removewindow(1,1).
/*Созданиезаголовка*/
CreateTitle:-
makewindow(1,10,0,"",0,0,25,80),
attribute(113),
write(«Анализпередачи телеметрических данных со спутника»).
LoadBD(FileName):-
consult(FileName,FaultBD),!,
write("(База данных загружена- )").
LoadBD(_):-
ErrorExitProg(«Ошибказагрузки базы данных»).
UnloadBD:-
retractall(_,FaultBD).
/*Вызовглавного меню*/
Start:-
menu(5,24,90,95,[«Анализ»,«ЗагрузкаБД», «Сохранение БД», «Редактирование БД», «Опрограмме»,«Выход»],«Основное меню программы»,0,Ch),
Select(Ch),fail.
Start:-
Start.
/*Выборпункта меню*/
Select(Ch):-
Ch=0,ExitProg;
Ch=1,Diagnostic;
Ch=2,LoadBDFile;
Ch=3,SaveBD;
Ch=4,EditBD;
Ch=5,Zastavka;
CH=6,ExitProg.
/*Диагностика*/
Diagnostic:-
makewindow(20,90,90,«Описание:»,1,0,6,80,1,2,""),
makewindow(21,90,95,«Анализ:»,7,0,14,80,1,2,""),
makewindow(22,90,90,«Видысигналов»,21,0,4,80,1,2,""),
signalip(FirstID,_,_),!,
ResearchNode(FirstID),
removewindow(22,1),
removewindow(21,1),
removewindow(20,1).
Diagnostic:-
removewindow(22,1),
removewindow(21,1),
removewindow(20,1).
/*Диалогс пользователем о наличии признаков*/
ResearchNode(NodeID):-
signalip(NodeId,RepID,Title),!,
decodip(RepID,RepStr,_),!,
shiftwindow(20),clearwindow,
attribute(OldAttr),attribute(90),
write(" ",Title,":"),nl,
attribute(OldAttr),
write(" ",RepStr),
shiftwindow(21),%clearwindow,
write(«присутствуетли в сводке сигнал »,Title),nl,
attribute(OldAttr),attribute(95),
write(«НажмитеEnter-да,Esc-нет… „),
attribute(OldAttr),
readchar(Key),
KeySelect(Key,NodeID).
/*Поиск описания*/
KeySelect(Key,NodeID):-
Key=0,readchar(NewKey);
Key=27,shiftwindow(21),write(“-? в»),nl,nl,
ParentID=NodeID div 100,
signalip(NewNode,_,_),
ParentID=NewNode div 100,NewNode > NodeID,!,
ResearchNode(NewNode);
Key=13,shiftwindow(21),write(«да»),nl,nl,
signalip(NewNode,_,Title),
shiftwindow(22),write(Title,"; "),
NodeID=NewNode div 100,!,
ResearchNode(NewNode);
Key=13,FaultFound(NodeID).
/*Обнаружение*/
FaultFound(NodeID):-
makewindow(23,31,26,«Сигналрасшифрован»,5,10,9,60,1,2,""),nl,
signalip(NodeID,RepID,Title),
decodip(RepID,_,RepText),!,
attribute(OldAttr),attribute(30),
write(«Сигнал:»),attribute(OldAttr),write(Title),nl,
attribute(30),
write(«Расшифровка:»),attribute(OldAttr),write(RepText),nl,
readchar(_),
removewindow(23,1).
/*СохранениеБД*/
SaveBD:-
makewindow(10,90,91,«СохранениеБД»,5,10,10,60,1,2,""),
write("\n\n Введитеимяфайла:"),
readln(Filename),
save(FileName,FaultBD),
removewindow(31,1).
/*ЗагрузкаБД*/
LoadBDFile:-
makewindow(10,90,91,"",5,10,10,60,1,2,""),
dir("","*.*",FileName),
LoadBD(FileName),
fail.
LoadBDFile:-
removewindow(30,1).
/*Созданиеменю справки*/
EditBD:-
menu(5,24,90,95,[«Добавлениесигнала»,«Типы сигнала»,«Просмотрсигналов»,«Просмотр типа сигнала»,«Удалениесигнала»,«Удаление типасигнала»,«Назад»],«Редактирование базы данных»,0,Ch),
EditSelect(Ch).
/*Выбор пунктаменю*/
EditSelect(Ch):-
Ch=0;
Ch=7;
Ch=1,AddFault;
Ch=3,ShowFaults;
Ch=5,DeleteFault;
Ch=2,AddRepair;
Ch=4,ShowRepairs;
Ch=6,DeleteRepair.
/*Добавлениесигнала*/
AddFault:-
makewindow(40,90,95,«Добавлениесигнала»,4,5,14,70,1,2," "),
write(«сигналыв БД хранятся в виде:\n signalip(Номер_сигнала, Номер_описания,Название)»),nl,
write(«Номерсигнала — номер предсигнала\n»),
write(«Номер_типасигнала — номер записи типа сигнала \n»),
write(«Название- краткое описание сигнала\n „),
attribute(OldAttr),attribute(95),
write(“Новыйсигнал\n»),
write(«Номер_сигнала:»),readint(NewID),
write(«Номер_типасигнала:»),readint(NewRep),
write(«Название:»),readln(NewTitle),
attribute(OldAttr),
assertz(signalip(NewID,NewRep,NewTitle),FaultBD),
write(«Записьдобавлена-»),readchar(_),
removewindow(40,1).
AddFault:-
removewindow(40,1).
/*Вызов просмотрасигналов*/
ShowFaults:-
makewindow(40,90,95,«Просмотрсигналов:»,1,0,24,80,1,2,""),
ShowFault(0,0),!,
removewindow(40,1).
/*Просмотрсигналов*/
ShowFault(_,_):-
signalip(NewID,RepID,Title),
write(" ",NewID,"\t|",RepID,"\t|",Title),nl,
fail.
ShowFault(_,_):-
attribute(OldAttr),attribute(95),
write(«Просмотрзакончен. Нажмите любую клавишу»),readchar(_),
attribute(OldAttr).
/*Удалениесигнала*/
DeleteFault:-
makewindow(40,90,95,«Удалениесигнала:»,4,5,14,70,1,2,""),
write(«Введитеномерудаляемогосигнала:»),readint(DelID),
signalip(DelID,_,_),!,
retractall(signalip(DelID,_,_),FaultBD),!,
attribute(OldAttr),attribute(95),
write(«Записьудалена»),readchar(_),
attribute(OldAttr),
removewindow(40,1).
/*Добавлениетипасигнала*/
AddRepair:-
makewindow(40,90,95,«Добавлениетипаасигнала»,4,5,14,70,1,2,""),
write(«ТипасигналавБДхранятсяввиде:\ndecodip(Номер_типасигнала,Название,Метод_расшифровки)»),nl,
write(«Номер_типасигнала — Номер записи типа сигнала\n»),
write(«Название- краткое описание данных расшифровки\n»),
write(«Метод_расшифровки- метод расшифровки данных\n»),
attribute(OldAttr),attribute(95),
write(«Новоеописание\n»),
write(«Номер_типасигнала:»),readint(NewID),
write(«Название:»),readln(NewDescr),
write(«Метод_расшифровки:»),readln(NewAdvice),
attribute(OldAttr),
assertz(decodip(NewID,NewDescr,NewAdvice),FaultBD),
write(«Записьдобавлена»),readchar(_),
removewindow(40,1).
AddRepair:-
removewindow(40,1).
/*Просмотрописаний*/
Showrepairs:-
makewindow(40,90,95,«Просмотрописаний:»,1,0,24,80,1,2,""),
ShowRepair(0,0),!,
removewindow(40,1).
ShowRepair(_,_):-
decodip(NewID,Descr,Advice),
write("",NewID,"\t|",Descr,"\t|",Advice),nl,fail.
ShowRepair(_,_):-
attribute(OldAttr),attribute(30),
write(«Нажмителюбуюклавишу»),readchar(_),
attribute(OldAttr).
/*Удалениетипасигнала*/
DeleteRepair:-
makewindow(40,90,95,«Удалениетипасигнала»,4,5,14,70,1,2,""),
write(«Введитеномерудаляемоготипасигнала:»),readint(DelID),
decodip(DelID,_,_),!,
retractall(decodip(DelID,_,_),FaultBD),!,
attribute(OldAttr),attribute(30),
write(«Записьудалена»),readchar(_),
attribute(OldAttr),
removewindow(40,1).
/*Созданиеокнаошибок*/
ErrorExitProg(Msg):-
ExitProg.
/*Выходиз программы*/
ExitProg:-
UnLoadBD,
exit(0).
/*Главнаяфункция Main*/
Main:-
Zastavka,
CreateTitle,
LoadBD(«valekbd.dat»),
Start,
ExitProg.
Результат работы программы:ЗагрузкаБД:
/>
Добавление:
/>
Анализ:
/>
Сохранение БД:
/>


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.