Реферат: Разработка подсистемы вывода в диагностической экспертной системе
Работа с базами знаний;
Работа с базой пациентов;
Непосредственный запуск экспертной системы;
Настройки;
Контекстно-зависимая справочная система.
В мою часть входила обработка следующих пунктов:
-
Работа с текущей базой знаний:
-
Считывание данных из файлов на диске.
-
Использование имеющейся там информации согласно нижеприведенному описанию.
-
Обработка поступающей информации.
-
Принятие решения и выдача окончательного результата.
На каждом шаге алгоритма у системы есть откат, т.е. у пользователя есть возможность, если он что-то забыл, вернуться в предыдущее состояние системы, нажав кнопку «Назад». Если же ему захочется все начать сначала, то, нажав кнопку «Отмена», система вернется в первоначальное состояние.
На вход системы (данные, введенные пользователем с клавиатуры) изначально поступает неполная информация, вследствие чего система не может однозначно поставить диагноз. Для решения данной проблемы используется следующий алгоритм:
-
Сбор предварительной информации.
Первоначальный шаг. При входе в систему пользователь видит перед собой список всех симптомов, имеющихся в базе. Напротив выборочных пунктов списка симптомов пользователь выставляет “галочки” (те симптомы, которые он у себя наблюдает). Нажав кнопку “Далее” система переходит к следующему пункту.
-
Составление первоначального списка болезней, к которым подходит данный набор симптомов.
После ввода пользователя некоторых первоначальных симптомов, система анализирует, к каким болезням принадлежат данные симптомы.
Алгоритм определения первоначального списка болезней:
-
Открываем таблицу соответствий
-
Для всех k=1 до максимального числа симптомов:
-
Берем k-тый симптом из первоначального списка;
-
Смотрим в таблицу соответствий: простым циклом делаем полный перебор всех элементов (болезней), стоящих в столбце данного симптома;
-
Делаем проверку:
5.1) Если данная болезнь уже имеется в списке, то переходим к п.6;
5.2) Если элемент таблицы =0, то болезнь в список не включаем;
-
Увеличиваем k на 1;
-
Если все симптомы (k) перебраны, то первоначальный список болезней сформирован;
-
Закрываем таблицу соответствий.
Каждый симптом может принадлежать сразу нескольким болезням, поэтому в первоначальном списке болезней болезней будет не столько же, сколько симптомов. Следует также учесть, что симптомы есть значимые и незначимые, т.е. вес симптома по отношению к какой-либо болезни либо большой, либо малый. Данный процесс регулируется системой, поэтому никак не зависит от пользователя.