Разработка программного модуля
ЛАБОРАТОРНАЯ РАБОТА № 2
Разработка простейшей экспертной системы.
Необходимо написать программу, являющуюся простейшей экспертной системой. Программа на основе введенной пользователем информации делает выводы и предлагает рекомендации по решению проблемы.
ПОСТАНОВКА ЗАДАЧИ.
Целью создания данной экспертной диагностической системы (ЭДС) является определение состояния объекта диагностирования (ОД) и имеющихся симптомов заболевания. Состояниями ОД могут быть: здоров, болен. Симптомами заболевания, например, являются появление кашля, насморка или высокой температуры.
Разные симптомы заболевания проявляются во внешней среде информационными параметрами. Совокупность значений информационных параметров определяет «информационный образ» (ИО) симптомов у ОД. ИО может быть полным, то есть содержать всю необходимую информацию для постановки диагноза, или, соответственно, неполным. В случае неполного ИО постановка диагноза носит вероятностный характер.
Для описания своих знаний эксперт должен выполнить следующее:
1. Выделить множество всех симптомов у ОД, которые должна различать ЭДС.
2. Выделить множество информативных (существенных) параметров, значения
которых позволяют различить каждый симптом у ОД и поставить диагноз с
некоторой вероятностью.
3. Для выбранных параметров следует выделить информативные значения или
информативные диапазоны значений, которые могут быть как количественными, так и качественными.
Процедура получения информации по каждому из параметров определяется индивидуально в системе диагностирования. Эта процедура заключается в качественном определении параметра (например, присутствует насморк). Составляются диагностические правила, определяющие вероятный диагноз на основе различных сочетаний диапазонов значений выбранных параметров ОД.
ПРОЕКТИРОВАНИЕ СИСТЕМЫ
Программа представляет собой медицинский тест, имеющий разветвляющуюся структуру. По какой ветке пойдет реализация программы зависит от ответов пользователя.
Структура программы отражена на рис.1.
Рис.1. Структурная схема программы
Программа задает наводящие вопросы, цепочка вопросов формируется в соответствии с симптомами. По совокупности тех или иных симптомов выдается медицинское заключение. Если пользователь отвечает на вопрос «нет», то есть данный симптом отсутствует, то программа меняет направление и делается предположение о другом заболевании, вопросы изменяются согласно симптомам этого заболевания. Если на все вопросы пользователь отвечает согласием - формируется заключение. Если же пользователь снова ответил на какой-либо вопрос отказом, то программа снова меняет направление. В результате отказов и согласий пользователя формируется наиболее вероятное заключение о заболевании.
СЛОВЕСНОЕ ОПИСАНИЕ
Проект представляет собой медицинский тест, который позволяет производить диагностику заболевания на основе указанных симптомов. Пользователю задаются вопросы диагностического характера, затем делается медицинское заключение. Программа имеет оконный интерфейс и состоит из одного главного окна. В окне расположены элементы управления. В зависимости от ответа на предыдущий вопрос появляется следующий (таблица 1).
Таблица 1. Основные компоненты
Button 1 | Кнопка, при нажатии на которую производится переход к следующему вопросу или показ итогового вывода программы |
Button2 | Кнопка сброса для перехода в начало программы |
textBoxl | Поле для вывода результатов работы экспертной системы |
radioButtonl-16 | Группа переключателей для выбора ответа на заданный вопрос |
Label2-10 | Вопросы, на основе которых будут сделаны выводы |
Label 1 | Название системы |
РАЗРАБОТКА ИНТЕРФЕЙСА
Программа состоит из одного окна, на котором расположены две кнопки, поле для вывода заключения, также указан вопрос и два переключателя для выбора ответа на этот вопрос, внизу при выводе заключения появляется надпись с рекомендациями. Для работы с программой необходимо выбрать ответ, щелкнув мышью по переключателю и нажать кнопку «Далее». Чтобы вернуться к началу теста, необходимо нажать кнопку «Сброс», в этом случае программа вернется к первому вопросу. По окончании теста программа даст заключение о возможном заболевании и рекомендации по лечению. В зависимости от ответов программа может варьировать дальнейшие вопросы и направлять тест разными путями.
Рис. 2. Главное окно программы
Рис. 3. Возможные выводы на основе ответов пользователя
РАЗРАБОТКА ПРОГРАММНОГО МОДУЛЯ
В качестве среды реализации использована Microsoft Visual Studio 2005, в качестве языка разработки – С#, который предоставляет очень удобный и эффективный способ написания программ для современной среды вычислительной обработки данных. С# включает средства, которые напрямую поддерживают составные части компонентов: свойства, методы и события.
Проект представляет собой скомпилированный файл с расширением *.ехе. Основной исполняемый код написан на главной форме и хранится в файле Forml.cs. Код содержит несколько процедур, которые являются обработчиками событий нажатия на соответствующие кнопки. Это private void buttonlClick, private void button2_Click. В этих процедурах указываются параметры видимости или невидимости того или иного компонента в зависимости от выбранного переключателя.
Большая часть кода написана в обработчике события buttonlClick. Для реализации задачи использованы неполные развилки с условием выбора того или иного переключателя. По условию «если» скрываются или показываются определенные элементы или отображается надпись в текстовом поле, а также изменяется значение labelll.
Рис. 10. Фрагмент блок-схема процедуры button lClick
ЗАКЛЮЧЕНИЕ
В данном примере показана разработка приложения, включающего в себя пользовательский интерфейс, работу со стандартными компонентами. В ходе выполнения были рассмотрены возможности Microsoft Visual Studio 2005 в сфере разработки экспертных систем, доказана возможность реализации оконного интерфейса для пользователя, а также возможность создания интеллектуальных информационных систем средствами языка С#.