Разработка оболочки экспертной системы
Категория реферата: Рефераты по информатике, программированию
Теги реферата: подготовка реферата, реферат по химии
Добавил(а) на сайт: Симакин.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата
Как и в системе, основанной на фреймах, в семантической сети могут быть представлены родовидовые отношения, которые позволяют реализовать наследование свойств от объектов-родителей. Это обстоятельство приводит к тому, что семантические сети приобретают большинство недостатков и достоинств представления знаний в виде фреймов. Но основное преимущество семантических сетей заключается в их наглядности и непосредственной связанности понятий через сеть, которая позволяет быстро находить связи понятий и на этой основе управлять принимаемыми решениями. Именно этот формализм был использован в данной работе в качестве формализма для представления знаний в БЗ. Основной недостаток сетей - сложность обработки исключений. Таким образом, используя данные понятия, наша ПО на языке microLISP представляется следующим образом:
((1 "общее недомогание")
(2 "сухость, першение, саднение")
(3 "кашель сначала сухой, затем с мокротой")
(4 "голос хриплый или беззвучный")
(5 "иногда боль при глотании")
(6 "головная боль")
(7 "повышение температуры тела")
(8 "быстрая утомляемость голоса")
(9 "периодический кашель с мокротой")
(10 "охриплость с афонией")
(11 "ощущение неловкости")
(12 "жжение в горле")
(13 "кашель при обострении")
(14 "сухой кашель")
(15 "слизистая покрыта густой слизью ")
(16 "откашливание с прожилками крови"))
(("ларингит острый" (1 2 3 4 5 6 7))
("ларингит хронический катаральный" (1 2 4 8 9))
("ларингит хронический гипертрофический" (1 10 11 12 13))
("ларингит хронический атрофический" (1 2 4 14 15 16)))
4. Разработка меню экспертной системы
обеспечивающего заданные режимы
Для обеспечения наиболее понятной работы с программой разработана иерархическая структура меню.
Система пользовательского интерфейса обеспечивает взаимодействие между экспертной системой и пользователем. Это взаимодействие обычно включает несколько функций:
1. Обработка данных, полученных с клавиатуры, и высвечивание водимых и выводимых данных на экране.
2. Поддержка диалога между пользователем и системой.
3. Распознавание ситуации непонимания между пользователем и системой.
4. Обеспечение "дружественности" по отношению к пользователю.
Система интерфейса с пользователем должна эффективно обрабатывать ввод и вывод. Для этого необходимо обрабатывать вводимые и выводимые данные быстро, в ясной и выразительной форме. Необходимо также включить возможность работы с дополнительными средствами такими, как магнитные диски и дополнительные файлы данных.
Кроме того, система интерфейса должна поддерживать соответствующий диалог между пользователем и системой. Диалог - это общая форма консультации с экспертной системой.
Консультация должна завершаться ясным утверждением, выдаваемым системой, и объяснением последовательности вывода, приведшей к этому утверждению.
6. Описание программы на micro-LISP
Структурная схема программы на Лиспе изображена на рис.2. Об основных процедурах написано в разделе "Разработка процедур оболочки", в котором представлены схемы алгоритмов их работы.
Теперь перейдем непосредственно к описанию программы. Главная процедура start запускает процедуру mainmenu (она представлена в виде бесконечного цикла do, также представлены и все подменю: menufiles, menubd и т.д.). Mainmenu рисует главное меню и здесь же с помощью выражения cond и eq? организованно получение выбора и запуск выбранной процедуры.
Процедура saving осуществляет запись БД в файл с помощью встроенного выражения with-output-to-file и функции write (все это организованно в виде lambda-выражения).
Загрузка файла (процедура loading) происходит с помощью встроенных with-input-from-file и read (причем БД болезней представлена в виде списка *it_is*, а симптомов в виде списка *simptom*).
Постановка диагноза осуществляется с помощью функции experting. Из БД выбирается болезнь ill, берется список ее симптомов spis_num и с помощью функции exp_ill (spis_num,ill) определяется, есть ли у пользователя эти симптомы. Если эта функция будет ложной (на запрос пользователь ответил отрицательно), то произойдет рекурсивный вызов функции experting от конца списка болезней (т.е. в дальнейшем будет выбрана следующая и т.д.).В процессе работы функции с помощью функции set! формируются списки положительных и отрицательных ответов пользователя *yes* и *no*. Если функция experting выполнила свою работу и диагноз поставлен успешно, то функция log_out (объяснение логического вывода) выводит на экран название определенной болезни и ее симптомы (функция использует для этого функцию cond и рекурсию).
В режиме просмотра списка болезней и симптомов (view_ill) используется cond и рекурсивный вызов функции от хвоста списка, что позволяет вывести все содержимое БД на экран.
В режиме добавления болезней (add_ill) и симптомов (add_sym) используется встроенная функция append (для соединения списков), а рекурсивный вызов функции addsyms обеспечивает возможность добавления к болезни нескольких симптомов. При редактировании болезней (red_ill) и симптомов (red_sym) старое значение удаляется с помощью функции delete! (удаление элемента из списка), а новое обавляется с помощью append.
Удаление болезней (del_ill) осуществляется с помощью функции delete!. При удалении болезни автоматически удаляются и все ее симптомы (рекурсивно вызывая сама себя от конца удаляемого списка признаков функция delsyms последовательно удаляет все симптомы этой болезни).
Удаление симптома (del_sym) также осуществляется с помощью delete!, но при этом с помощью функции append формируется новый список симптомов болезни, симптом которой удаляется. Затем происходит удаление болезни со старым списком симптомов {(set! *it_is* (delete! (list ill spis_nums) *it_is))} и добавление к списку *it_is* этой же болезни с новым списком.
7. Краткое описание встроенных предикатов и функций microLISP, используемых в программе
Рекомендуем скачать другие рефераты по теме: сборник изложений, тарас бульба сочинение.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата