МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Разработка фрагментов оболочки экспертной системы

    представления знаний, причем она появилась, по-видимому, ранее других. В

    ней понятия и классы, а также отношения и связи между ними представлены в

    виде сети. Семантическая сеть отображает совокупность объектов предметной

    области и отношений между ними, при этом объектам соответствуют вершины

    (или узлы) сети, а отношениям - соединяющие их дуги. В качестве объектов

    могут выступать события, действия, обобщенные понятия или свойства

    объектов. Свойства представляются в сети также в виде вершин и служат для

    описания классов объектов. Вершины сети соединяются дугой, если

    соответствующие объекты предметной области находятся в каком-либо

    отношении.

    Как и в системе, основанной на фреймах, в семантической сети могут

    быть представлены родовидовые отношения, которые позволяют реализовать

    наследование свойств от объектов-родителей. Это обстоятельство приводит к

    тому, что семантические сети приобретают большинство недостатков и

    достоинств представления знаний в виде фреймов. Но основное преимущество

    семантических сетей заключается в их наглядности и непосредственной

    связанности понятий через сеть, которая позволяет быстро находить связи

    понятий и на этой основе управлять принимаемыми решениями. Именно этот

    формализм был использован в данной работе в качестве формализма для

    представления знаний в БЗ. Основной недостаток сетей - сложность

    обработки исключений. Таким образом, используя данные понятия, наша ПО на

    языке 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. Обеспечение "дружественности" по отношению к

    пользователю.

    Система интерфейса с пользователем должна эффективно

    обрабатывать ввод и вывод. Для этого необходимо обрабатывать

    вводимые и выводимые данные быстро, в ясной и выразительной

    форме. Необходимо также включить возможность работы с

    дополнительными средствами такими, как магнитные диски и дополнительные

    файлы данных.

    Кроме того, система интерфейса должна поддерживать

    соответствующий диалог между пользователем и системой. Диалог -

    это общая форма консультации с экспертной системой.

    Консультация должна завершаться ясным утверждением, выдаваемым

    системой, и объяснением последовательности вывода, приведшей к этому

    утверждению.

    Структурная схема системы меню представлена на рис.1

    Главное меню

    1.Files 2.DataBase 3.Diagnosticka

    4.Quit

    1. LOAD 2. SAVE 1. ADD 2. DELETE 3.

    REDACT 4. VIEW

    Добавление Добавление Удаление Удаление

    Редактирование Редактирование

    симптомов болезней симптомов неисправностей

    симптомов неисправностей

    Объяснение

    логического

    вывода

    рис.1 Структурная схема меню

    5. Разработка процедур оболочки

    1. Процедура "Загрузка" (loading): загрузка БД производится путем

    загрузки файла с именем, указанным пользователем, в оперативную память

    для использования его содержимого в программе.

    Вход

    Ввод имени файла

    для загрузки

    Загрузка файла

    с этим именем

    Выход

    2. Процедура "Сохранение" (saving): сохранение БД означает запись

    ее содержимого из оперативной памяти в файл с именем, указанным

    пользователем. Эта процедура позволяет сохранить изменения, произведенные

    с БД во время работы.

    Вход

    Ввод имени файла

    для записи

    Запись БД в файл

    с этим именем

    Выход

    3. Процедура "Добавление" (adding): добавление делится на добавление

    симптомов и добавление болезней. В первом случае запрашивается название

    болезни, к которой нужно добавить симптом, затем вводится симптом, и

    происходит добавление.

    Имеется возможность добавить сразу несколько симптомов.

    Вход

    Ввод названия болезни

    Ввод симптома

    Добавление симптома к

    введенной ранее болезни

    -

    Еще

    + Выход

    Добавление болезни осуществляется путем введения с клавиатуры нового

    названия болезни и ее симптомов (для окончания ввода симптомов необходимо

    набрать 'end'). Добавление происходит в конец БД.

    Вход

    Ввод названия болезни

    Ввод симптома

    _

    end

    +

    Добавление болезни

    и всех ее симптомов

    Выход

    4. Процедура "Просмотр" (viewing): осуществляется просмотр всей БД,

    содержащейся в данный момент в оперативной памяти.

    Вход

    Вывод названия болезни

    Вывод симптомов этой

    болезни

    +

    Пуста

    БД?

    _

    Выход

    5. Процедура "Логический вывод" (expert): консультация осуществляется

    следующим образом: с помощью задания вопросов пользователю о том, есть ли

    у него какой-то симптом, программа определяет диагноз. В процессе работы

    процедура в оперативной памяти формирует временные динамические базы

    данных: БД-YES (БД, содержащая симптомы, на которые пользователь ответил

    "Да") и БД-NO (БД, содержащая симптомы, на которые пользователь ответил

    "Нет"). Для того, чтобы процедура вывела диагноз, необходимо, чтобы

    пользователь ответил "Да" на все вопросы о симптомах, характеризующих эту

    болезнь. Схема алгоритма данной процедуры представлена ниже.

    Вход

    конец Выбор

    болезни

    из БД

    Выход

    Выбор конец

    симптома

    этой

    болезни Вывод

    этой

    болезни

    Он _ Выход

    есть

    в БД-

    YES

    Он +

    +

    есть

    в

    БД-

    NO

    _

    Вывод вопроса о

    том,

    есть ли у

    пользователя

    этот симптом

    Добавить его в

    Добавить его

    БД-YES

    в БД-NO

    _

    Да?

    +

    6. Процедура "Объяснение логического вывода" (logout): данная процедура

    выводит список симптомов болезни, которая была получена с помощью процедуры

    логического вывода, объясняя этим ее диагноз.

    Вход

    Выбор определенной болезни из БД

    Вывод симптомов этой болезни

    Выход

    7. Процедура "Удаление" (deleting): удаление делится на удаление симптомов

    и удаление болезней. При удалении симптома необходимо ввести название

    болезни, которой принадлежит симптом, подлежащий удалению, а также

    название самого симптома. Имеется возможность удалить несколько симптомов

    у болезни (для окончания ввода удаляемых признаков необходимо набрать

    'end').

    Вход

    Ввод названия болезни

    Ввод симптома, под-

    лежащего удалению

    +

    End

    Выход

    -

    При удалении болезни запрашивается ее название. Вместе с ней из БД

    удаляются и все ее симптомы.

    Вход

    Ввод названия болезни

    Удаление этой болезни

    и всех ее симптомов

    Выход

    8. Процедура "Редактирование" (redacting): редактирование делится на

    редактирование симптомов и редактирование болезней. В первом случае

    вводится название болезни, симптом которой нужно исправить, сам симптом

    и его отредактированное значение.

    Из БД удаляется старое значение симптома и добавляется новое.

    Вход

    Ввод названия болезни

    Ввод симптома для исправления

    Удаление этого симптома

    Ввод исправленного симптома

    Добавление нового значения

    Выход

    При редактировании болезни необходимо ввести ее название и затем новое

    исправленное значение. Процедура удалит старое значение и добавит новое.

    Вход

    Ввод названия болезни

    Удаление этой болезни

    Ввод исправленного

    значения

    Добавление нового

    значения

    Выход

    рис. 2 Структурная схема программы

    Start

    mainmenu

    menufiles menubd menucons

    quit

    log_out

    loading saving adding deleting

    viewing redacting

    plus plussym delill delsym

    redill redsym

    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,

    используемых в программе

    Окна

    Окна являются объектами, подобными "портам", которые представляют

    собой прямоугольные области на экране. Предикат WINDOW? определяет,

    действительно ли заданный объект является портом, представляющим окно на

    экране. Все интерактивные окна ввода-вывода представляются посредством

    окон, включая ввод-вывод, обеспечиваемый портами STANDARD-INPUT и

    STANDARD-OUTPUT. Новые окна-порты создаются и открываются с помощью MAKE-

    WINDOW; их атрибуты доступны с помощью WINDOW-GET-ATTRIBUTE и

    модифицируются WINDOW-SET-ATTRIBUTE!

    Окна до тех пор не выводятся на экран, пока область для них не

    очистится с помощью WINDOW-CLEAR. WINDOW-DELETE очищает область экрана,

    занятого окном. WINDOW-POPUP и WINDOW-POPUP-DELETE выдают несколько

    перекрывающихся окон.

    Позиция окна на экране и размер его строк и столбцов устанавливаются

    WINDOW-GET-POSITION и WINDOW-GET-SIZE, соответственно; модификация

    выполняется WINDOW-SET-POSITION! и WINDOW-SET-SIZE!.

    Модификация позиции и размеров окна может быть выполнена перед тем,

    как окно изначально выводится на экран по WINDOW-CLEAR. Позиция

    курсора устанавливается с помощью WINDOW-GET-CURSOR и изменяется WINDOW-

    Страницы: 1, 2, 3


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.