Искуственный интеллект

Содержание.



    Введение                                              

    Часть 1. Характеристика задачи                        

      1.1. Современные экспертные системы как  ча-

сть искусственного интеллекта                             

      1.2. Характеристика экспертных систем  и  их

недостатки                                                

      1.3. Постановка задачи                              

    Часть 2. Выбор средств для решения задачи             

      2.1. Выбор аппаратных средств  для  проекти-

рования ЭС                                                

      2.2. Выбор программных средств для  построе-

ния ЭС                                                    

      2.3. Выбор дополнительных средств  для  раз-

работки                                                   

      2.4. Выводы                                         

    Часть 3. Состав системы "Консультант",  разра-

ботка ее компонентов                                      

      3.1. Структура и назначение системы                 

        3.1.1.  Назначение, логическая   структура

и технические характеристики системы "Консультант"        

        3.1.2.  Физическая   (файловая)  структура

системы "Консультант"                                     

      3.2. Информация, обрабатываемая в системе           

        3.2.1. Математическая модель информации  в

в ЭС                                                      

        3.2.2.  Программная  модель  информации  в

"Консультации"                                            

      3.3. Программная реализация  составных  час-

тей системы                                               

        3.3.1.  Реализация  интерфейса  системы  и

СУБЗ                                                      

        3.3.2. Реализация редактора знаний                

        3.3.3. Реализация машины вывода                   

        3.3.4. Реализация связи с другими програм-

мами                                                      

      3.4. Программы, не входящие в комплект  пос-

тавки                                                     

        3.4.1. Создание и использование  библиотек

(модулей)                                                 

        3.4.2. Подготовка ресурсов                        

        3.4.3. Организация поддержки длинных  имен

баз знаний                                                

      3.5. Выводы                                         

    Часть 4. Методика работы в  системе  "Консуль-

тант"                                                     

      4.1. Общие операции в системе                       

        4.1.1. Установка и запуск системы                 

        4.1.2. Выход из системы                           

        4.1.3. Перемещение в системе, работа с ок-

нами                                                      

      4.2. Консультация                                   

      4.3. Создание собственной базы знаний               

      4.4. Редактор баз знаний и управление ими           

      4.5. Утилиты                                        

        4.5.1. Утилита VIEWER.EXE                         

        4.5.2. Утилита IMPORT.EXE                         

      4.6. Выводы                                         

    Часть 5. Оценка затрат и эффективность исполь-

зования экспертной системы                                

      5.1. Оценка затрат при создании системы             

        5.1.1. Затраты на аппаратную часть                

        5.1.2. Затраты на программное обеспечение         

      5.2. Эффективность системы "Консультант"            

      5.3. Оценка скорости создания базы знаний на

примере демонстрационной  базы  "Оценка  продолжи-

тельности службы военнослужащего"                         

      5.4. Выводы                                         

    Заключение                                            

    Приложения                                            

      Приложение 1. Тексты программ системы               

        1.1. Файл EXPERT.PAS                              

        1.2. Файл MAIN.PAS                                

        1.3. Файл SERVE.PAS                               

        1.4. Файл M_VISUAL.PAS                            

        1.5. Файл M_LIST.PAS                              

        1.6. Файл утилиты VIEWER.PAS                      

        1.7. Файл утилиты IMPORT.PAS                      

      Приложение 2. Алгоритмы составных частей ЭС         

        2.1. Алгоритм работы машины вывода                

        2.2. Алгоритм работы редактора знаний             

        2.3. Алгоритм формирования целей                  

      Приложение 3. Отображение экрана на  различ-

ных этапах работы                                         

        3.1. Общий вид                                    

        3.2. Меню БАЗА                                    

        3.3. Меню СИСТЕМА подменю АРМ КОМАНДИРА           

        3.4. Окно создания новой базы                     

        3.5. Окно установок редактора                     

        3.6. Редактор объектов                            

        3.7. Редактор значений                            

        3.8. Редактор правил                              

        3.9. Диспетчер редактора                          

        3.10. Окно консультации                           

        3.11. Окно вывода решения                         

        3.12. Диспетчер вывода                            

        3.13. Окно удаления базы                          

        3.14. Окно переименования базы                    

        3.15. Окно подтверждения выхода                   

      Приложение 4. Демонстрационная база знаний          

        4.1. Листинг базы знаний                          

        4.2. Протокол сеанса консультации                 

    Литература                                            









                              Введение



    В настоящее время наблюдается бурный процесс информатизации  наше-

го общества, то есть переход его  от  индустриального  к  информацион-

ному. Это значит, что в обществе решающую роль теперь играет  информа-

ция. В нашей стране этот процесс весьма болезненный в силу  сложивших-

ся обстоятельств: отставания в области информационных технологий, нес-

табильности экономики и засилья  западной  информационной  техники  на

отечественном рынке.

    В Вооруженных Силах все проблемы информатизации особенно  заметны.

Если большинство гражданских государственных учреждений  имеют  хорошо

оборудованные вычислительной техникой кабинеты, то в ВС это практичес-

ки невозможно из-за низкого их финансирования и  отсутствия  подготов-

ленного для работы на ВТ личного состава. Однако информатизация ВС не-

обходима; в военное время для проведения маневров и операций необходи-

мо обрабатывать гиганские объемы информации, в мирное  количество  ин-

формации практически такое же. Особенно острая проблема - информатиза-

ция труда командира. В современной армии  командиру  приходится  иметь

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

ка решения из огромного количества вариантов, что отнимает большое ко-

личество времени. Поэтому необходимо автоматизировать труд  не  только

штабов и вычислительных центров, но и командиров.

    Для обработки информации универсальным и недорогим средством явля-

ется персональный компьютер.  Конечно,  при  решении  некоторых  задач

(расчет операций в современной войне, расчет прочности защитных соору-

жений и т. д.) персонального компьютера будет недостаточно  из-за  его

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

однако для нужд командира его характеристик вполне достаточно. ПК поз-

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

случае необходимости, с помощью  периферийных  устройств  обрабатывать

самую различную информацию.

    Чаще всего командир не имеет навыков работы с персональным компью-

тером, поэтому для полноценной работы необходимо на базе ПК  организо-

вывать так называемые автоматизированные рабочие места (АРМ)  команди-

ров. В состав АРМ следует включить нужную для работы периферию,  необ-

ходимое системное и прикладное по возможности простое в  использовании

программное обеспечение (ПО). АРМ обеспечат быстрое обучение и  успеш-

ную работу на них командного состава ВС.



                            ─────────────



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

задачи, для решения которых не существует строгих алгоритмов или мето-

дов. Их могут решить лишь эксперты в этих областях знаний. Как  прави-

ло, такие задачи возникают в таких областях как диагностика,  планиро-

вание, прогнозирование, обучение, моделирование и в таких  сферах  как

медицина, юриспруденция, различные отрасли науки и  техники,  экономи-

ка, экология и во многих других. Возникают такие задачи и военном  де-

ле (диагностика аппаратуры, планирование рабочей недели, прогнозирова-

ние операции, обучение работе на аппаратуре и другие).

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

программ - так называемые экспертные системы (ЭС). Они позволяют полу-

чать решения задач с нечеткой постановкой благодаря обрашению к специ-

альным базам знаний (БЗ), в которых содержатся сведения  той  области,

к которой принадлежит решаемая задача. Решения ЭС находят сами.  Также

ЭС обычно позволяют экспертам создавать собственные БЗ,  изменять  или

дополнять уже существующие и управлять ими.

    Как правило все ЭС, существующие на рынке ПО очень дороги.  Следо-

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

ЭС, тем более, что наиболее эффективные ЭС требуют к тому же  и  доро-

гостоящего аппаратного обеспечения.



                            ─────────────



    В данном дипломном проекте сделана попытка разработать ЭС для  ко-

мандира подразделения, входящую в состав пакета прикладного ПО АРМ ко-

мандира. Заодно, разрабатываемая ЭС должна разрешить  такие  проблемы,

как стоимость аппаратного и программного  обеспечения  (то  есть,  она

должна требовать минимум аппаратуры и специального  ПО),  быстродейст-

вия (должна быть полнофункциональной, но в то же время  и  быстрой)  и

надежности (не должна давать сбоев в ходе работы). ЭС  разрабатывается

в целях оказания помощи командиру в решении задач диагностики и обуче-

ния.

    Разрабатываемая ЭС должна быть простой в обучении и проводить кон-

сультации в таких областях диагностики, как, например:

    - диагностика аппаратуры;

    - консультация по юридическим вопросам;

    - проверка психологических и моральных качеств личного состава;

    - оценка состояния боевой подготовки подчиненного подразделения;

    - рекомендации в вопросах обучения личного состава;

    - консультация  в  наиболее  сложных  ситуациях  при  эксплуатации

вооружения и военной техники;

и многих других.

    Проектируемая ЭС не  ставит  цель  заменить  командира,  а  должна

стать его помощником в разрешении сложных  задач,  возникающих  в  его

повседневной деятельности.







                   Часть 1. ХАРАКТЕРИСТИКА ЗАДАЧИ



  1.1. Современные экспертные системы как часть искуственного интел-

                                лекта.



    Искуственный интеллект - наука о воссоздании с помощью искусствен-

ных устройств (в основном ЭВМ) человеческих способов рассуждения и ре-

шения задач. В наше время в ИИ  выделилось  множество  самостоятельных

течений (схема N ). Однако следует сделать оговорку, что эта классифи-

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

мы, решения которых возможны лишь на стыке нескольких направлений ИИ.

    Сейчас на рынке программного обеспечения имеется достаточное коли-

чество систем ИИ. Среди них есть системы, обладающие достаточно разви-

той структурой. Наиболее развитой отраслью развития ИИ считаются  экс-

пертные системы.



                                                            Таблица 1.

              Примеры систем искусственного интеллекта



┌──────────────┬─────────────────┬───────────────────────────────────┐

│   Система    │   Область ИИ    │            Назначение             │

├──────────────┼─────────────────┼───────────────────────────────────┤

│ROBIN         │Стратегические   │ Интеллектуальная программа для игр│

│              │игры             │типа шахмат.                       │

│ALICE         │Информационно-   │ Прооводит поиск в базах данных по │

│              │поисковая систе- │аналогии или дедукции.             │

│              │ма               │                                   │

│PEACE         │Решение задач    │ Решает задачи по синтезу и анали- │

│              │                 │зу электросхем.                    │

│RITA          │Представление    │ Моделируетспособ выработки концеп-│

│              │знаний           │ций.                               │

│MUSCADET      │Доказательство   │ Доказывает теоремы из области     │

│              │теорем           │"чистой" математики.               │

│MYCIN         │Экспертная систе-│ Диагностика и лечение инфекцион-  │

│              │ма               │ных заболеваний.                   │

│ARGOS-II      │Роботехника      │ Имитация принятия решений роботом.│

└──────────────┴─────────────────┴───────────────────────────────────┘





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

назначенных для оказания помощи специалистам в одной конкретной  пред-

метной области.

    Любая ЭС структурно состоит из базы знаний и оболочки,  в  которую

входят интерфейс пользователя, машина вывода, иногда подсистема приоб-

ретения знаний, подсистема объяснений. Подсистема приобретения  знаний

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

текстовый редактор либо специализированный редактор для заполнения ба-

зы знаний), так и  сложная  система  автоматической  генерации  знаний

(например, в известной системе EURISCO).

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

из других областей ИИ. Как правило, это задачи смежных областей - рас-

познавание образов, решение прикладных задач,  роботехника,  доказате-

льство теорем и других. Словом, ЭС представляют собой класс  достаточ-

но развитых программ и решают задачи различных областей знаний.



        1.2. Характеристика экспертных систем и их недостатки.



    В настоящее время на рынке профессионального программного  обеспе-

чения экспертные системы пользуются высоким спросом. Особенно популяр-

ны системы технической и медицинской диагностики, планирования и моде-

лирования.



                                                            Таблица 2.

            Наиболее известные оболочки экспертных систем.



┌───────────────┬──────────────────┬─────────────────────────────────┐

│    Система    │   Разработчик    │           Назначение            │

├───────────────┼──────────────────┼─────────────────────────────────┤

│Advisor        │Ultimate Media Inc│ Обучение.                       │

│Duck           │Smart System Tech-│ Организационное управление.     │

│               │nology            │                                 │

│Expert-Ease    │Jeffrey Perrone   │ Разработка небольших ЭС.        │

│INSIGHT-2      │Level 5 Research  │ Обучение.                       │

│Knowledge      │Carnegie Group Inc│ Управление производством.       │

│Craft          │                  │                                 │

│Rule-Master    │Radian Corporation│ Диагностика, управление, страхо-│

│               │                  │вание, военное дело.             │

│TIMM           │General Research  │ Помощь пилоту вертолета во время│

│               │                  │боя.                             │

│DEM            │ВИНТИ им. Финна   │ Фармакология, экология, техниче-│

│               │                  │ская диагностика.                │

│АРИАДНА        │НИИ системных ис- │ Разработка больших ЭС.          │

│               │следований        │                                 │

│ПиЭС           │ВЦ АН СССР        │ Проектирование ЭС.              │

│СПЭИС          │НИИ системных ис- │ Создание ЭС, обрабатывающих ин- │

│               │следований        │формацию разного рода.           │

└───────────────┴──────────────────┴─────────────────────────────────┘



                                                            Таблица 3.

                   Коммерческие экспертные системы.



┌───────────────┬──────────────────┬─────────────────────────────────┐

│    Система    │   Разработчик    │       Область приложений        │

├───────────────┼──────────────────┼─────────────────────────────────┤

│Dendral        │Stanford Universi-│ Масспектрометрия в органической │

│               │ty                │химии.                           │

│Drilling Advi- │Teknowledge       │ Диагностика технических систем. │

│sor            │                  │                                 │

│Hearsay-2      │Carnegie-Mellon   │ Понимание речи.                 │

│               │University        │                                 │

│Prospector     │SRI International │ Геология.                       │

│PUFF           │Stanford Universi-│ Лечение легочных заболеваний.   │

│               │ty                │                                 │

│XCON           │Carnegie-Mellon   │ Определение конфигурации ком-   │

│               │University        │пьютерных систем.                │

└───────────────┴──────────────────┴─────────────────────────────────┘





    Таким образом, выбор экспертных систем достаточно широк. В послед-

нее время в связи с распространением персональных компьютеров  появля-

ется множество ЭС для них. Зачастую ЭС для ПК не уступают по своим ха-

рактеристикам системам, разработанным для больших ЭВМ. Так,  например,

система ЭКОНЭКС, созданная в Центре Информатики и Электроники им.  По-

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

руктуры в другую, поддерживает иерархию  знаний,  обрабатывает  непол-

ные, недостоверные и противоречивые знания, содержит блок проверки ис-

тинности. Система реализована и используется на персональных компьюте-

рах типа IBM. Следует учитывать, что ПК обладают относительно  неболь-

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

таких областях, где необходима обработка большого количества  информа-

ции. ЭС для ПК могут эффективно использоваться в таких областях, как:

    - задачи оптимизации;

    - анализ вариантов телефонных сетей;

    - диагностика отказов автоматики;

    - определение конфигурации компьютерных систем;

    - прогноз погоды;

    - обеспечение безопасности;

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

    - разработка стратегий операций.

    Однако, несмотря на распространенность, все  вышеперечисленные  ЭС

в основном обладают некоторыми общими недостатками:

    - низкоразвитый интерфейс;

    - необходимость знания специальных языков представления знаний;

    - большие размеры;

    - низкое быстродействие;

    - не развиты связи с другими программами;

    - нет средств быстрой смены баз знаний;

    - высокая стоимость.

    Отсюда следует, что ни одна из приведенных выше оболочек ЭС не мо-

жет быть эффективно использована  в  Вооруженных  Силах,  где  большую

роль играют в основном быстродействие, интерфейс и  стоимость.  Совре-

менные ЭС также требуют больших машинных ресурсов, а именно -  памяти,

как оперативной, так и памяти жесткого диска. Следовательно, нужна но-

вая эффективная оболочка ЭС, ориентированная на потребности ВС.



                       1.3. Постановка задачи.



    В ВС часто возникают задачи, которые требуют  знаний  экспертов  и

которые не могут быть решены стандартными способами.



                                                            Таблица 4.

               Критерии применимости экспертных систем.



┌──────────────────────────────────┬─────────────────────────────────┐

│            Применимы             │           Неприменимы           │

├──────────────────────────────────┼─────────────────────────────────┤

│ Не могут быть строгие алгоритмы  │ Имеются эффективные алгоритми-  │

│или процедуры, но существуют эври-│ческие методы.                   │

│стические методы решения.         │                                 │

├──────────────────────────────────┼─────────────────────────────────┤

│ Есть эксперты, способные решить  │ Отсутствуют эксперты или их чис-│

│задачу.                           │ло недостаточно.                 │

├──────────────────────────────────┼─────────────────────────────────┤

│ По своему характеру задачи отно- │ Задачи носят вычислительный ха- │

│сятся к области диагностики, ин-  │рактер.                          │

│терпретации или прогнозирования.  │                                 │

├──────────────────────────────────┼─────────────────────────────────┤

│ Доступные данные "зашумлены".    │ Известны точные данные и строгие│

│                                  │процедуры.                       │

├──────────────────────────────────┼─────────────────────────────────┤

│ Задачи решаются методом формаль- │ Задачи решаются процедурными ме-│

│ных рассуждений.                  │тодами, с помощью аналогии или   │

│                                  │интуитивно.                      │

├──────────────────────────────────┼─────────────────────────────────┤

│ Знания статичны (неизменны).     │ Знания динамичны (меняются со   │

│                                  │временем).                       │

└──────────────────────────────────┴─────────────────────────────────┘



    Вот лишь некоторые из обычных  повседневных  задач  возникающих  в

ВС, которые могут быть решены с помощью ЭС:

    - составление расписаний занятий;

    - диагностика аппаратуры;

    - юридические консультации;

    - планирование тактических операций;

    - метеопрогнозы;

    - обеспечение безопасности;

    - анализ документов (отчетов);

    - управление подразделением;

    - обучение личного состава;

    - медицинскоя диагностика.

    По ранее указанным причинам, коммерческие ЭС не могут быть  приме-

нены. Требуется система, обладающая следующими свойствами:

    1) Высокое быстродействие.

    2) Высокая надежность.

    3) Простой в освоении интерфейс.

    4) Низкая стоимость.

    5) Низкая требовательность к машинным ресурсам.

    6) Простота представления знаний.

    Такая система бубет полностью удовлетворять нужды ВС.







              Часть 2. Выбор средств для решения задачи



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

киваться с различного рода информацией, необходимой ему в  ходе  рабо-

ты. Чаще всего это текстовая  (план-конспекты,  рапорта,  инструкции),

графическая (схемы, планы, графики, диаграммы) и  табличная  (ведомос-

ти, план-задания) информация. Процесс ее обработки  можно  ускорить  с

созданием так называемых автоматизированных рабочих мест командира.

    Однако у командира возникают задачи другого рода, такие как,  нап-

ример, диагностика аппаратуры, планирование рабочей  недели,  управле-

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

много других, для решения которых нужна специальные программы  -  экс-

пертные системы. Для того, чтобы облегчить процесс решения такого  ро-

да задач, следует в пакет прикладных программ для АРМ командира  вклю-

чить и систему обработки знаний (ЭС).

    Для разработки и последующего нормального функционирования  проек-

тируемой ЭС для АРМ  необходимы  следующие  аппаратные  и  программные

средства.



         2.1. Выбор аппаратных средств для проектирования ЭС.



    Чтобы создать ЭС с указанными ранее свойствами, необходимы следую-

щие требования к аппаратной части (указаны минимальные требования):

    - персональный IBM-совместимый компьютер типа ЕС  1841  (желателен

компьютер IBM с процессором Intel 80386SX или выше);

    - ОЗУ не менее 128 Кб (желательно - 640 Кб или выше);

    - жесткий диск объемом не менее 10Мб (желателен - 120Мб и выше);

    - видеокарта 128 Кб, EGA 14" (желательно - VGA или выше);

    - манипулятор "мышь" (необязательно).

    Аппаратных средств с такими  требованиями  вполне  достаточно  для

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

требованиям.

    Персональный компьютер выбран как универсальное  средво  обработки

информации. Из всего многообразия персональных компьютеров выбор оста-

новлен именно на IBM-совместимых компьютерах, поскольку эти машины на-

иболее распространены в нашей стране, они обладают  хорошими  характе-

ристиками: модульно-магистральная архитектура, довольно  высокая  ско-

рость работы, распространенность  программного  обеспечения  для  этих

компьютеров и относительно низкая стоимость. Требования к ОЗУ и  "вин-

честеру" обусловлены лишь требованиями программного обеспечения, необ-

ходимого для создания и реализации ЭС. Монитор желателен цветной, пос-

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

выделяться цветом (на монохромном дисплее можно и не  заметить  разли-

чия в цвете различных компонентов ЭС). Хотя "мышь"  и  не  обязательна

для разработки ЭС, ее желательно иметь, потому что создаваемая  экспе-

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

в последнее время "мышь" находит все большее распространение и в  про-

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

"мыши".



           2.2. Выбор программных средств для построения ЭС



    В процессе создания ЭС потребуются следующие программные средства:

    - операционная система  (ОС),  совместимая  с  MS-DOS  (желательна

MS-DOS 6.2 и оболочка Norton Commander);

    - операционная оболочка Windows 3.x (необязательна);

    - система программирования Турбо-Паскаль 6.0 с библиотекой  Turbo-

Vision 1.0.

    Операционная система выбрана только исходя из вопросов распростра-

ненности, поскольку на IBM-совместимых компьютерах  используются,  как

правило, именно указанные  ОС  (MS-DOS,  PC-DOS,  DR-DOS,  Альфа-ДОС).

Norton Commander желателен для удобства работы в среде MS-DOS.  Поско-

льку проектируется система, совместимая в  Windows,  эта  операционная

оболочка может тоже понадобиться при разработке для проверки совмести-

мости и установки связей между ними.

    Из всех существующих ныне систем  программирования  выбран  именно

Турбо-Паскаль по следующим причинам:

    1) По сравнению с другими языками программирования, которые  обыч-

но используются для создания систем искусственного  интеллекта  (LISP,

PROLOG, SMALLTALK), язык Паскаль проще в изучении; программы на Паска-

ле более читаемы.

    2) От других обычных  современных  языков  программирования  (C++,

BASIC,MODULA 2,SIMULA) Паскаль отличается  высокой  структурированнос-

тью (а большинство из перечисленных языков - строчно-ориентированы).

    3) Язык Паскаль обладает большим количеством типов  данных,  кото-

рых нет ни в одном языке программирования (такие структуры,  как  мно-

жества, записи).

    4) В Паскале имеются средства работы  с  динамической  памятью  (в

паскале она называется "кучей") и возможность работы не только с типа-

ми данных, но и указателями на типы.

    5) Паскаль обладает удобными средствами для работы со списками.

    6) В системе Турбо-Паскаль  6.0  имеется  объектно-ориентированная

библиотека Turbo-Vision, включающая в свой состав объекты  для  созда-

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

    7) В Turbo-Vision имеется инструментарий, расширяющий  возможности

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

(коллекции, ресурсы, потоки).

    8) В Турбо-Паскале очень удобная среда (интерфейс) и  самый  быст-

рый из всех систем программирования компилятор.



           2.3. Выбор дополнительных средств для разработки



    Проектируемая оболочка для ЭС должна представлять  интегрированную

среду. Не выходя из среды ЭС, пользователь должен иметь доступ к  дру-

гим программным или аппаратным средствам. Поэтому для  отладки  проце-

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

иметь:

    - принтер (для контроля создания процедур управления печатью);

    - накопитель на флоппи-дисках  3,5"  (для  проверки  переносимости

проектируемой системы) и сами дискеты;

    - приложения пакета "АРМ командира" (для установки связи создавае-

мой ЭС с ними).

    Кроме того для удобной и надежной работы следует иметь:

    - пакет Norton Utilities (для повышения надежности работы  компью-

тера);

    - программу-антивирус типа Dr.Web, Adinf или Антивир  (для  защиты

разрабатываемой ЭС и других программ от вирусов;

    - одну-две дискеты 3,5" (для создания резервных копий ЭС в качест-

ве защиты от несанкционированных случаев).



                             2.4. Выводы.



    Итак, выбор аппаратных и программных  средств  сделан.  Анализируя

сделанное, можно заметить такие характерные черты выбранных средств:

    1) Разрабатываемая система имеет низкие требования  к  техническим

характеристикам аппаратного обеспечения.

    2) Требуемое программное  обеспечение  достаточно  распространено.

    3) Программное обеспечение надежно, просто в обращении.

    Таким образом, выбранное программное обеспечение  полностью  удов-

летворяет поставленным требованиям.









   Часть 3. Состав системы "Консультант", разработка ее компонентов





                  3.1. Структура и назначение системы



    3.1.1. Назначение, логическая структура и технические  характерис-

                      тики системы "Консультант"



    Система "Консультант" предназначена для проведения консультаций  с

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

просмотра и редактирования уже имеющихся и управления ими.

    "Консультант" (далее по тексту просто "система")  требует  следую-

щих ресурсов:

    - объем на жестком диске не менее 350 Кб,

    - объем оперативной памяти не менее 128 Кб,

    - компьютер IBM-совместимый не ниже ЕС 1841,

    - операционная система типа DOS (MS-DOS,PC_DOS и им подобные),

    - желательно наличие мыши.

    система состоит из:

    - интерфейса пользователя;

    - системы управления базами знаний (СУБЗ);

    - банка знаний (комплекса баз знаний);

    - машины вывода;

    - системы приобретения знаний (редактора знаний);

    - системы объяснения (логически соединенной с машиной вывода).



     3.1.2. Физическая (файловая) структура системы "Консультант"



    Файловую структуру системы можно условно  разделить  на  следующие

части:

    - собственно ЭС (файлы, входящие в комплект поставки);

    - вспомогательные программы (не входящие в комплект ЭС);

    - исходные файлы программ (тексты программ на языке Паскаль);

    - файлы пользователя (возникающие в ходе работы).

    В состав ЭС входят следующие файлы:

    1) START.BAT - запускающий файл  системы.  Вначале  вызывает  файл

SERVE.EXE, производящий начальные установки системы,  затем  запускает

EXPERT.EXE;

    2) SERVE.EXE - производит  установку  запускающих  ключей  в  файл

SERVE.KEY;

    3) SERVE.KEY - установочный файл системы;

    4) EXPERT.EXE - главный файл системы "Консультант". Содержит  про-

цедуры вызова видимых компонентов системы из  файла  ресурсов  EXPERT.

AIR, процедуры динамической подзагрузки библиотечных переменных, конс-

тант, типов данных и функций из стандартных и созданных  вспомогатель-

ных библиотек (модулей),  содержащихся  в  упакованном  виде  в  файле

EXPERT.OVR;

    5) EXPERT.AIR - файл ресурсов системы. Содержит все видимые компо-

ненты системы в собственном внутреннем представлении. Компоненты  рас-

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

(файла EXPERT.EXE);

    6) EXPERT.OVR  -  оверлейный  файл  системы.  Содержит  библиотеки

объектов, команд, регистрационных записей объектов, процедур  и  функ-

ций, переменных и констант в упакованном  виде.  Служит  для  экономии

оперативной памяти;

    7) EXPERT.BLC - содержит список имен баз знаний (банк знаний).

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

ЭС. После они обычно уничтожаются. При  создании  "Консультанта"  были

созданы следующие вспомогательные файлы:

    1) MAIN.TPU - библиотечный модуль.  Содержит  основные  компоненты

системы; при компиляции упаковывается в expert.ovr  вместе  с  другими

стандартными (такими, как SYSTEM.TPU, APP.TPU, COLORSEL.TPU,  OBJECTS.

TPU и другими) и демонстрационными (например, CALENDAR.TPU,  CALC.TPU,

GAUGES.TPU и другими) модулями;

    2) M_VISUAL.EXE - файл, создающий видимые объекты  системы  (окна,

меню, строку статуса, полосы скроллинга и другие)  и  записывающий  их

указатели в файл EXPERT.AIR;

    3) M_LIST.EXE - создает пустой список имен БЗ  и  помещает  его  в

файл EXPERT.BLC.

    Следующие файлы - тексты программ и модулей на языке Паскаль:

    1) EXPERT.PAS - текст основной управляющей программы системы.  При

компиляции из него образуется два файла: EXPERT.EXE и EXPERT.OVR;

    2) SERVE.PAS - текст установочной программы. Компилируется в  файл

SERVE.EXE;

    3) MAIN.PAS - текст модуля, описывающего созданные для нужд систе-

мы библиотеки. Компилируется в файл MAIN.TPU;

    4) M_VISUAL.PAS - текст программы создания ресурсов. При  компиля-

ции образует файл M_VISUAL.EXE;

    5) M_LIST.PAS - текст программы, создающей файл EXPERT.BLC и поме-

щающей в нее список банка  знаний.  При  компиляции  создает  файл  M_

LIST.EXE.

    При работе пользователь может, не  выходя  из  системы,  создавать

два вида файлов:

    1) *.PRO - файлы, содержащие базы знаний в виде  ресурсов.  Первый

ресурс в файле - база фактов (данных), записывается под  ключом  'Дан-

ные '+ <имя базы>. Второй ресурс - база правил, записывается в тот  же

файл под ключом 'Правила '+ <имя  базы>.  Имена  файлов  присваиваются

системой автоматически по принципу 'base'+ <номер базы  в  банке>  +'.

pro' и привязываются к реальным именам БЗ в списке баз  файла  expert.

blc;

    2) *.REP - файлы, содержащие  протоколы  проведения  консультаций.

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

создать протокол и затем сохранить его на диске, записав его  в  файл,

которому автоматически присвоит имя <число> + <месяц> + <год> + поряд-

ковый номер протокола на данные сутки.



               3.2. Информация, обрабатываемая в системе



            3.2.1. Математическая модель информации в ЭС



    База знаний представляет собой два множества: множество  фактов  {

f} и множество правил {r }, где n - общее количество фактов, m  -  об-

щее количество правил. Множество {f} можно представить в виде:



                          {f }={a ,q ,{v }}



где a - объект i-го факта, q - вопрос i-го факта,  {v  }  -  множество

значений i-го факта, l - количество значений в  i-м  факте.  Множество

правил формируется таким образом:

    так как v ={s,m,c }, где m,c  Е{0,1}  и  для  j-го  правила  имеем

следующую цепь преобразований:

    если m =1, то s =l  и если c =1, то c =1.

    Таким образом, имеем сформированное множество правил.



        3.2.2. Программная модель информации в "Консультанте"



    База фактов и база правил представляют собой указатели на  объекты

-потомки, порожденные от стандартного объекта - коллекции из библиоте-

ки Turbo-Vision:



                     TCOLLECTION───┬───TDATABASE

                                   └───TRULEBASE



    В коллекцию базы данных записываются факты,  представляющие  собой

также объекты-потомки от коллекции Turbo-Vision:



                       TCOLLECTION────────TFACT



    Объект-потомок  отличается  от  родителя  наличием   двух   полей:

ATRIBUT - объект и QUESTION - вопрос. В коллекцию  факта  записываются

указатели на значения объекта. В  объекте  TFACT  также  перекрываются

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

сохранить в потоке, кроме коллекции значений, еще и новые поля.

    В свою очередь, значение - это потомок от  базового  объекта  всей

иерархии стандартных объектов Turbo-Vision:



                         TOBJECT───────TVALUE



    Этот потомок отличается от своего родителя  тремя  новыми  полями:

SLOT - собственно значение (в виде строки),  MARK  -  служебное  поле,

применяющееся при создании базы правил и CON - поле-признак того,  что

данное значение является заключением.

    Такова структура базы фактов. В базу правил же записываются прави-

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

каждый элемент которой - элемент правила. Элемент правила порожден  от

TOBJECT и имеет следующие поля и методы:

    - поле SLOT - номер помеченного в поле MARK значения;

    - поле CON - поле-метка для определения предпосылки  или  заключе-

ния;

    - метод LOAD - конструктор для загрузки данного объекта из потока;

    - метод STORE - процедура для сохранения объекта в потоке.

    Следует отметить, что каждый из этих объектов имеет методы LOAD  и

STORE, поскольку предполагается, что БЗ будет сохранена в файле ресур-

сов, который представляет собой индексированный поток (поток с  произ-

вольным доступом к объектам по ключам).



         3.3. Программная реализация составных частей системы



              3.3.1. Реализация интерфейса системы и СУБЗ



    Интерфейс системы создается следующим образом. Объявляется  объект

TEXPERT - потомок от стандартного объекта из  библиотеки  Turbo-Vision

TAPPLICATION, в котором уже содержатся  такие  необходимые  компоненты

любой программы (приложения), как вывод строк меню и статуса,  рабочей

поверхности, поддержка мыши и команды "Выход". Потомок перекрывает та-

кие методы TAPPLICATION, как INITSTATUSLINE для  создания  собственной

строки статуса, INITMENUBAR - для создания собственной строки "выпада-

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

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

(то есть инициализации файлов EXPERT.AIR и EXPERT.BLC)  и  регистрации

объектов в этих ресурсах, HANDLEEVENT -  для  обработки  нестандартных

команд.

    Главное (верхнее) меню системы имеет следующую структуру  (см.рис.

1).



        СИСТЕМА                            БАЗА

      ┌─────────────┐                    ┌──────────────┐

      │ ПАУЗА       │                    │ ОТКРЫТЬ      │

      │ MS-DOS      │                    │ НОВАЯ        │

      │ О ПРОГРАММЕ │                    │ ПЕРЕИМЕНОВАТЬ│

      │ ВЫХОД       │                    │ РЕДАКТИРОВАТЬ│

      └─────────────┘                    │ УДАЛИТЬ      │

                                         └──────────────┘





        ОКНА                               СЕРВИС

      ┌────────────┐                     ┌─────────────┐

      │ РАСПАХНУТЬ │                     │ ПАРОЛЬ      │

      │ ДВИЖЕНИЕ   │                     │ КАЛЕНДАРЬ   │

      │ ЗАКРЫТЬ    │                     │ КАЛЬКУЛЯТОР │

      │ СЛЕДУЮЩЕЕ  │                     │ ИГРА        │

      │ ПРЕДЫДУЩЕЕ │                     └─────────────┘

      └────────────┘



              Рисунок 1. Структура меню "Консультанта"



    Меню СИСТЕМА содержит наиболее общие опции работы в системе,  БАЗА

- операции управления базами знаний, ОКНА - операции над окнами, нахо-

дящимися на рабочей поверхности, СЕРВИС -  некоторые  инструментальные

средства, упрощающие работу пользователя в  системе.  Каждая  операция

меню программно связана с командой, которая затем обрабатывается в ме-

тоде HANDLEEVENT. Так, например, операция  НОВАЯ  связана  с  командой

CMNEW. Процедура - обработчик событий HANDLEEVENT содержит строку:



                        ... CMNEW:NEWBASE ...  ,



    которая означает, что при поступлении этой команды (событие -  вы-

бор операции подсвеченной полосой или двойной щелчок "мышью") обработ-

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

ресурсов окно создания базы (объект TNEWWINDOW), считывает  из  строки

ввода введенное имя базы, записывает его в  файл  EXPERT.BLC,  создает

на диске новый файл с расширением "PRO", связывает его  имя  с  именем

базы и затем уничтожает окно TNEWWINDOW на экране.

    Ниже приводится список всех операций, и, минуя  команды,  процеду-

ры, с которыми связаны эти операции через обработчик событий:

    - ПАУЗА, процедура PAUSE (осуществляет гашение экрана на время от-

лучения пользователя);

    - MS-DOS, процедура DOSCALL (осуществляет временный выход в DOS  и

возврат в систему по команде EXIT);

    - О ПРОГРАММЕ, процедура ABOUT (вызывает из файла ресурсов окно  с

краткими сведениями о данной программе);

    - ВЫХОД, стандартная команда Turbo-Vision;

    - ОТКРЫТЬ, процедура OPENBASE (ищет на  диске  файл,  связанный  с

именем выбранной для открытия (работы) базы, извлекает из  файла  базу

знаний и вызывает основную процедуру машины  вывода  OUTPUTMACHINE  из

файла EXPERT.OVR);

    - НОВАЯ, см. выше;

    - ПЕРЕИМЕНОВАТЬ, процедура RENAMEBASE (удаляет имя  активной  базы

из списка баз файла EXPERT.BLC, извлекает из файла ресурсов окно пере-

именования, считывает из строки ввода окна новое имя,  записывает  его

в EXPERT.BLC и связывает это имя с базой);

    - РЕДАКТИРОВАТЬ, процедура EDITING (для  активной  базы  считывает

из из файла ресурсов диалоговое окно  установок  редактора,  запрещает

все команды пользователя до получения установок из  данного  окна  или

команды на его отмену);

    - УДАЛИТЬ, процедура ERASEBASE (после второго подверждения пользо-

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

ка имен баз файла EXPERT.BLC, затем уничтожает связанный с  этим  име-

нем файл БЗ на диске);

    - операции меню ОКНА, стандартные процедуры работы с окнами библи-

отеки Turbo-Vision;

    - ПАРОЛЬ, процедура PAROLE (устанавливает на  выбранную  базу  па-

роль для защиты ее от других пользователей;

    - КАЛЕНДАРЬ, процедура EXPCALEND (вызывает из файла ресурсов  окно

календаря);

    - КАЛЬКУЛЯТОР, процедура EXPCALC (извлекает из файла ресурсов  ок-

но калькулятора);

    - ИГРА, процедура EXPGAME (выводит окно  игры-головоломки  на  эк-

ран, предварительно считав его из файла ресурсов системы EXPERT.AIR).

    Все данные процедуры инкапсулированы в  объект  TEXPERT,  то  есть

объявлены как его методы.

    В строке статуса содержатся наиболее  часто  используемые  команды

(операции) и их "горячие" клавиши. Описание этих команд приводится вы-

ше, исключение составляет команда МЕНЮ, активизирующая строку  верхне-

го меню - это стандартная команда Turbo-Vision.

    Рабочая поверхность представляет собой окно со списком имен БЗ,  в

котором одна в данный момент времени активна. На экран окно  выводится

процедурой DRAWBANKLIST, которая вызывается непосредственно из  проце-

дуры TEXPERT.RUN и, в свою очередь, вызывает из  файла  ресурсов  окно

банка знаний, вставляет в него список имен БЗ из файла EXPERT.BLC.



                                                            Таблица 5.

             Новые или перекрытые методы объекта TEXPERT



┌─────────────────────────┬──────────────────────────────────────────┐

│          Метод          │            Назначение метода             │

├─────────────────────────┼──────────────────────────────────────────┤

│INIT                     │Вывод оболочки системы на экран, иницииро-│

│                         │вание файлов EXPERT.AIR и EXPERT.BLC, ре- │

│                         │гистрирование объектов этих файлов,наст-  │

│                         │ройка оверлейного файла,установка палитры.│

│                         │                                          │

│INITSTATUSLINE           │Вывод на экран новой строки статуса.      │

│                         │                                          │

│INITMENUBAR              │Вывод на экран новой строки верхнего меню.│

│                         │                                          │

│HANDLEEVENT              │Обработка нестандартных команд (событий). │

│                         │                                          │

│RUN                      │Извлечение из файла EXPERT.BLC списка     │

│                         │имен баз знаний, запуск программы на ис-  │

│                         │полнение.                                 │

│                         │                                          │

│DRAWBANKLIST             │Вывод на экран окна банка знаний.         │

│                         │                                          │

│IDLE                     │Обновление индикатора кучи.               │

│                         │                                          │

│PAUSE                    │Гашение экрана.                           │

│                         │                                          │

│CALLDOS                  │Временный выход в MS-DOS.                 │

│                         │                                          │

│CALLWIN                  │Временный выход в Windows 3.х.            │

│                         │                                          │

│CALLNC                   │Временный выход в Norton Commander.       │

│                         │                                          │

│ABOUT                    │Информация о программе.                   │

│                         │                                          │

│OPENBASE                 │Открытие выбранной базы знаний для кон-   │

│                         │сультации.                                │

│                         │                                          │

│NEWBASE                  │Создание новой базы.                      │

│                         │                                          │

│RENAMEBASE               │Переименование базы.                      │

│                         │                                          │

│EDITING                  │Редактирование базы.                      │

│                         │                                          │

│ERASEBASE                │Удаление базы.                            │

│                         │                                          │

│PAROLE                   │Установка пароля на выбранную базу.       │

│                         │                                          │

│EXPCALEND                │Вывод календаря.                          │

│                         │                                          │

│EXPCALC                  │Вывод калькулятора.                       │

│                         │                                          │

│EXPGAME                  │Вывод игры.                               │

│                         │                                          │

│DONE                     │Удаление программы из оперативной памяти, │

│                         │выход в MS-DOS.                           │

└─────────────────────────┴──────────────────────────────────────────┘



                 3.3.2. Реализация редактора знаний



    Как уже упоминалось, при выборе в меню  БАЗА  операции  РЕДАКТИРО-

ВАТЬ запускается управляющая процедура EDITING. Данная процедура,  как

и прочие, инкапсулированая в объект TEXPERT, по имени  активной  (выб-

ранной) базы находит связанный с ней файл, извлекает из  него  объекты

DATABASE и RULEBASE, затем из файла ресурсов вызывает и выводит на эк-

ран диалоговое окно установок редактора. Это окно имеет:

    - статический текст, показывающий, какая база будет редактировать-

ся;

    - группы переключаемых опций (в терминах Turbo-Vision -  кластеры)

двух видов (в библиотеке  Turbo-Vision  это  объекты  TRADIOBUTTONS  и

TCHECKBOXES);

    - командные кнопки.

    Группы опций выполняют следующие установки:

    - группа ВИД БАЗЫ позволяет установить конфигурацию БЗ  и  порядок

вывода из нее информации;

    - группа ИНТЕРФЕЙС конфигурирует факты и  правила  таким  образом,

чтобы машина вывода могла их вывести в том или ином виде;

    - группа ВИД РЕДАКТОРА устанавливает один из двух приведенных  ти-

пов редакторов знаний;

    - группа РЕСУРСЫ позволяет сделать установки типа объектов,  кото-

рые будут обрабатываться БЗ. Это могут быть либо строки либо текст;

    - группа СОСТАВЛЯЮЩИЕ вызывает любой  из  редакторов,  входящих  в

состав редактора БЗ и представляющих собой редакторы отдельных элемен-

тов БЗ (объектов, вопросов об объектах, возможных  значений  объектов,

правил);

    - группа РЕКВИЗИТЫ БАЗЫ позволяет включить в состав  проектируемой

база знаний дополнительные компоненты.

    Ниже групп в окне раполагаются четыре командные кнопки:

    1. Кнопка ПУСК вызывает из оверлейного файла EXPERT.OVR  процедуру

SELECTOR (см. ниже).

    2. Кнопка СБРОС приводит переключаемые опции в группах в  первона-

чальное положение.

    3. Кнопка ОТМЕНА позволяет удалить окно с  рабочей  поверхности  и

выйти из режима редактирования.

    4. Кнопка ПОМОЩЬ выдает контекстную справку о том, как пользовать-

ся окном.

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

SELECTOR. Эта процедура обрабатывает полученную  из  диалогового  окна

установок редактора информацию и позволяет вызвать ту или иную  проце-

дуру в зависимости от этой информации.Например, при начальных установ-

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

ATRIBUTEDITOR  (слово  OBJECT  внутри  ЭС  "Консультант"  заменено  на

ATRIBUT, поскольку OBJECT - зарезервированное слово  языка  Турбо-Пас-

каль 6.0).

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

установок редактора выберем установки по умолчанию. Первым после нажа-

тия кнопки ПУСК (или клавиши <ENTER> на клавиатуре) на экран посредст-

вом процедуры ATRIBUTEDITING (именно эту процедуру  запустит  SELECTOR

по умолчанию) выведется окно редактора объектов,  вызванное  из  файла

EXPERT.AIR. Редактор объектов представляет  собой  диалоговое  окно  с

двумя строками ввода и восьмью управляющими командными кнопками.  Каж-

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

событий окна TATRIBUTEDITOR.HANDLEEVENT. Все эти процедуры  инкапсули-

рованы в объект TATRIBUTEDITOR. Словом, эти кнопки генерируют  различ-

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

TINPUTLINE.GETDATA, так и поведения редактора объектов в теле редакто-

ра БЗ, составляющей которого он является. Так, например, кнопка  ВВЕС-

ТИ включает полученные из строк ввода окна объект и вопрос о нем в ба-

зу фактов, кнопка ЗАПИСЬ сохраняет объекты или вопросы на диске в фай-

ле создаваемой или редактируемой БЗ, кнопка ДАЛЕЕ позволяет перейти  к

следующему шагу редактирования - редактору значений, а кнопка НАЗАД  -

к предыдущему (окно установок редактора). Все эти действия  описывают-

ся методами объекта TATRIBUTEDITOR (его предок - объект  TDIALOG)  со-

ответственно INBASE, RECBASE, NEXT, PREVIOUS.

    Как уже упоминалось выше, по команде  ДАЛЕЕ  вызывается  процедура

NEXT, которая запускает процедуру VALUEEDITING. VALUEEDITING -  проце-

дура, управляющая процессом ввода или редактирования значений.  Редак-

тор значений - это ряд последовательно  сменяющихся  диалоговых  окон,

аналогичных редактору объектов; отличие составляют:

    - наличие статического текста, указывающего,  для  какого  объекта

идет редактирование значений,

    - имеется одна строка ввода вместо двух,

    - имеется дополнительная кнопка ДРУГОЙ, позволяющая  по  окончании

редактирования одного объекта перейти  к  редактированию  другого  (то

есть, сменить окно).

    Следует отметить, что редактор значений  выдает  такое  количество

окон, сколько имеется объектов в базе знаний.

    По команде ДАЛЕЕ окна редактора значений редактор БЗ  переходит  к

следующему этапу редактирования - редактору правил. Последний  постро-

ен по принципу электронной таблицы и представляет собой матрицу, верх-

няя строка которой - имена объектов (FACT^.ATRIBUT), под каждым из ко-

торых в столбец выведены разрешенные значения. Перемещение по  таблице

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

ния для предпосылки - клавишей <ENTER>, выбор значения для  заключения

- комбинацией клавиш <CTRL+ENTER>. Подробнее: выбор какого-либо значе-

ния клавишей <ENTER> равносилен записи в правило следующего пункта:



 ...ЕСЛИ <ОБЪЕКТ - заголовок столбца  выбранного  значения>=<выбранное

ЗНАЧЕНИЕ>...   ,



    выбор другого значения из другого столбца добавляет в правило сле-

дующую строку:



 ...И <ОБЪЕКТ 2>=<выбранное ЗНАЧЕНИЕ 2>...   ,



    то выбор какого-либо значения из какого-либо другого столбца  ком-

бинацией <CTRL+ENTER> добавит в правило строку:



 ...ТО <ОБЪЕКТ 3>=<выбранное ЗНАЧЕНИЕ 3>...   .



    Необходимо отметить, что особенности синтаксиса баз знаний, разра-

батываемых в системе "Консультант", позволяют в данном правиле для од-

ного объекта выделить только одно значение, а в самом правиле -  толь-

ко одно заключение (предпосылок может быть сколь угодно много).

    Редактор правил реадизуется процедурой RULEEDITING, которая загру-

жает из файла ресурсов EXPERT.AIR объект TRULEEDITOR, в который инкап-

сулированы все процедурыуправления событиями внутри него. Помимо  мат-

рицы (таблицы) редактор правил имеет также командные кнопки, такие  же

как и в предыдущих редакторах. При нажатии кнопки ВНЕСТИ  инкапсулиро-

ванная процедура INRULE вызывает процедуру  RULESFORMER,  обрабатываю-

щую помеченные в таблице значения и переводящая их во внутренний  фор-

мат базы правил.

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

команды ДАЛЕЕ на экран выводится  диспетчер  редактора.  Его  вызывает

процедура CALLDISPECTHER, которая извлекает окно диспетчера  из  файла

ресурсов и выводит его на рабочую поверхность. Диспетчер  редактора  -

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

цедурами,   аналогично   предыдущим   инкапсулированными   в    объект

TDICPETCHER.

    - Кнопка УПАКОВКА вызывает на исполнение процедуру PACKADER,  поз-

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

правил значения и объекты.

    - Кнопка ОПТИМИЗАЦИЯ связана с  процедурой  OPTIMIZE,  позволяющей

без нарушения логики знаний исправить базу правил таким образом,  что-

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

при ее использовании уменьшить время  сеанса  консультации  (например,

удаление одинаковых правил, сокращение размеров логических цепей и  т.

д.).

    - Кнопка ПРОВЕРКА запускает процедуру LOOKFOR,  которая  проверяет

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

далее), указывает на неоднозначность (см.далее) и т. д.).

    - Кнопка СОХРАНИТЬ вызывает процедуру SAVEBASE, которая  выполняет

две функции: сохранение созданной или отредактированной БЗ на диске  и

выход из режима редактирования в основной режим (СУБЗ).

    Следует заметить, что если пользователь желает в  дальнейшем  про-

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

операции УПАКОВКА и ОПТИМИЗАЦИЯ по  отношению  к  незаконченной  базы,

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

дальнейшем, процедуры могут счесть ненужными. Эти  факты,  значения  и

правила будут безвозвратно потеряны.



                   3.3.3. Реализация машины вывода



    Входящая в систему "Консультант" машина вывода имеет  ряд  особен-

ностей, отличающей ее от машин других ЭС:

    - обработка правил, хранящихся в матричной форме (правила  в  дру-

гих ЭС имеют обычно текстовое представление);

    - использование стратегии комбинированного вывода (см. ниже);

    - возможность в ходе консультации возврата к предыдущему шагу.

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

батывающих маршрут оптимального движения к поставленной  пользователем

цели в зависимости от ответов на задаваемые ей вопросы.

    На экране машина вывода  -  это  ряд  последовательно  выводящихся

окон, в каждом из которых содержится вопрос пользователю и список воз-

можных ответов на него.  Стандартное  окно  машины  вывода  процедурой

INITOUTPUTWINDOW извлекается из  файла  ресурсов  системы,  вопрос  об

объекте и список возможных его значений, считанные из файла  этой  ба-

зы, вставляются в окно этой же  процедурой.  Запустить  машину  вывода

можно тремя способами:

    1. Выбрать в списке баз окна банка знаний нужную базу, в сфере ко-

торой требуется получить консультацию, и нажать <ENTER>.

    2. Выбрать нужную базу полосой-указателем и, войдя в верхнее  меню

системы нажатием клавиши <F9>, выбрав пункт БАЗА и в нем операцию ОТК-

РЫТЬ, нажать <ENTER>.

    3. Дважды щелкнуть левой клавишей "мыши" на имени нужной базы.

    После этих действий автоматически запустится  процедура  OPENBASE,

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

извлечение из него баз фактов и правил и т. д.), запускает в свою оче-

редь процедуру OUTPUTMACHINE, являющуюся ядром всей машины вывода. Ал-

горитм функционирования машины вывода таков:

    1) Формирует базу целей.

    2) Выводит на экран окно с просьбой пользователю  выбрать  цель  и

списком возможных целей.

    3) Получив от пользователя цель и ее номер, ищет ее в базе целей.

    4) Исходя из этого номера, переформировывает базу  правил  в  вид,

удобный для поиска ответа (так называемую рабочую базу правил).

    5) Если в рабочей базе правил остался один элемент, выдает на  его

основании свое решение, иначе выводит на экран окно с вопросом и спис-

ком разрешенных значений для объекта с номером, полученным от  первого

объекта РБП, получает от пользователя номер значения и возвращается  к

шагу N4.

    6) Вызывает диспетчер вывода.

    Машина вывода применяет разработанную  стратегию  комбинированного

(смешанного вывода). При получении номера цели от пользователя, из уп-

равляющей программы вызывается процедура формирования РБП, которая ис-

пользует обратный вывод (так называемый "поиск в ширину").  Его  смысл

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

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

ищется заключение в другом правиле и так до тех пор, пока  не  обнару-

жится "висячая" предпосылка, не имеющая заключения. По ней и будет за-

дан вопрос пользователю. Однако машина вывода  "Консультанта"  в  этом

месте действует по иному. Выявив все необходимые для  достижения  цели

"висячие" предпосылки, она формирует новую одноцелевую РБП, все прави-

ла которой построены по следующему принципу: "висячие" предпосылки ис-

ходной базы правил образуют предпосылки РБП, а целевые заключения  ис-

ходной - заключения новой РБП. Так сформирована новая  база  правил  с

одной целью и одинаковым количеством предпосылок в каждом правиле. Да-

лее применяется метод прямого вывода ("поиска в  глубину").  С  каждым

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

ненужные правила до тех пор, пока не останется одно  правило,  состоя-

щее из одного элемента (заключения).

    Преимущества этой стратегии вывода в следующем:

    1) Количество вопросов сокращается до  минимума,  поскольку  метод

исключает возможность появления лишних.

    2) Сокращается время поиска вопросов для достижения цели; они фор-

мируются естественным путем при формировании РБП.

    3) Исключается возможность неоднозначных решений.

    Машина вывода реализуется следующими процедурами:

    - OUTPUTMACHINE - основная управляющая процедура;

    - INITOUTPUTWINDOW - выводит окно консультации с вопросом и  спис-

ком возможных ответов;

    - MAKETARGET - формирует базу целей;

    - WORKRULEBASEFORMER - формирует РБП из исходной базы  правил  об-

ратным методом;

    - WORKRULEBASEREFORMER - переформировывает РБП  в  зависимости  от

номера ответа пользователя (прямым методом);

    - CONCLUDE - выводит окончательное решение на экран.

    Следует отметить, что OUTPUTMACHINE использует все остальные  про-

цедуры машины вывода в своем теле.

    По окончании сеанса консультации процедура OUTPUTMACHINE  вызывает

из файла ресурсов диспетчер вывода - специальную сервисную  программу,

выполняющую некоторые полезные операции. Диспетчер вывода  -  диалого-

вое окно с пятью кнопками:

    - кнопка МАРШРУТ выводит на экран полный путь,  проделанный  маши-

ной вывода в поисках цели;

    - кнопка ПРОТОКОЛ создает на диске текстовый  файл  с  расширением

"REP" и именем XXXXXXXX (где первые две цифры - число,  вторые  две  -

месяц, третие две - год создания протокола, а последние две - порядко-

вый номер протокола за эти сутки), в который помещает протокол  прове-

дения консультации;

    - кнопка СПИСОК выдает диалоговое окно  выбора  сохраненных  ранее

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

них;

    - кнопка ПЕЧАТЬ позволяет распечатать полученный протокол с  помо-

щью принтера;

    - кнопка ВЫХОД возвращает пользователя  в  основной  режим  (режим

СУБЗ).

    Диспетчер вывода реализуется  процедурой  CALLMANAGER,  вызывающей

из файла ресурсов объект TMANAGER, то есть окно с командными  кнопками

и инкапсулированными связанными процедурами.



            3.3.4. Реализация связи с другими программами



    "Консультант" представляет собой интегрированную  систему,  однако

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

оболочку.

    Этой цели служит операция меню СИСТЕМА - ОБОЛОЧКИ.  Данная  опера-

ция разворачивает подменю с тремя операциями:

    - операция MS-DOS вызывает процедуру CALLDOS, позволяющую  времен-

но выйти в операционную  систему  MS-DOS,  выполнить  там  необходимые

действия и вернуться в систему, набрав в командной строке DOS  команду

EXIT;

    - операция NORTON COMMANDER выполняет те же действия по  отношению

к оболочке Norton Commander. Реализуется процедурой CALLNC, возврат  в

систему - последовательное нажатие клавиш <F10> и <ENTER>;

    - операция WINDOWS 3.X также позволяет выполнить аналогичную  про-

цедуру с графической оболочкой  Windows  3.x.  Реализуется  процедурой

CALLWIN, возврат в систему нажатием комбинации клавиш <ALT+F4>  и  за-

тем клавиши <ENTER>.

    Все эти операции реализуются аналогично:

    1) отключаются все подсистемы "Консультанта" (распределение  памя-

ти, обработчик системных ошибок, поддержка стандартного вида экрана  и

т. д.);

    2) администратор кучи сохраняет ее в оперативной памяти;

    3) устанавливаются стандартные векторы прерываний DOS;

    4) активизируется командный процессор DOS;

    5) командному процессору передается необходимая команда для запус-

ка той или иной оболочки.

    По окончании действий пользователя в оболочке:

    1) устанавливаются векторы прерываний;

    2) восстанавливается куча;

    3) включаются все подсистемы системы;

    4) восстанавливается предыдущий вид экрана системы.

    Нужно отметить, что из оболочки, в  которую  выйдет  пользователь,

можно будет загрузить любую другую программу. Если какая-либо из  обо-

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

но выполнить эту операцию!"





           3.4. Программы, не входящие в комплект поставки



     3.4.1. Создание и использование библиотек (модулей)



    Система "Консультант" использует следующие модули:

    1. Стандартные модули Турбо-Паскаля:

    - SYSTEM.TPU (основной модуль Турбо-Паскаля);

    - CRT.TPU (модуль, содержащий процедуры работы с  текстовым  экра-

ном);

    - DOS.TPU (модуль,  позволяющий  работать  с  операциями  среднего

уровня - уровня операционной системы);

    - PRINTER.TPU (операции печати);

    2. Стандартные модули Turbo-Vision%

    - APP.TPU (базовый модуль для любой программы);

    - OBJECTS.TPU (модуль, содержащий все невидимые объекты, использу-

ющиеся в программе);

    - VIEWS.TPU (базовый модуль для создания видимых компонентов прог-

раммы);

    - DIALOGS.TPU (модуль, включающий диалоговые окна и  их  компонен-

ты);

    - MENUS.TPU (модуль, используемый при создании строк меню и стату-

са);

    - MEMORY.TPU (модуль управления памятью);

    - DRIVERS.TPU (модуль, служащий для обработки событий);

    3. Демонстрационные модули  Turbo-Vision,  не  входящие  в  состав

Turbo-Vision, но идущие в комплекте Турбо-Паскаль 6.0:

    - CALC.TPU (реализация калькулятора);

    - CALENDAR.TPU (создание календаря);

    - PUZZLE.TPU (реализация игры-головоломки);

    - MSGBOX.TPU (испрользование информационных окон);

    - GAUGES.TPU (управление кучей);

    4. Созданный при разработке системы  модуль  MAIN.TPU,  содержащий

все объекты, используемые системой (см. выше), указатели на эти объек-

ты, регистрационные записи этих объектов, основные глобальные процеду-

ры СУБЗ, машины вывода и редактора знаний, а  также  константы  команд

для обработчиков событий объектов.

    Все используемые процедуры перечисленных модулей, кроме CRT,  DOS,

DRIVERS и MAIN, включаются  в  файл  EXPERT.OVR.  CRT,  DOS,  DRIVERS,

MAIN - модули, использующие процедуры обработки прерываний  (например,

модуль DRIVERS содержит процедуры обработки событий  от  клавиатуры  и

"мыши"), а механизм оверлеев не распространяется на  такие  процедуры;

данные модули включены непосредственно в файл EXPERT.EXE.



                                                            Таблица 6.

              Используемые объекты модулей Turbo-Vision.



┌─────────────┬──────────────┬───────────────────────────────────────┐

│   Модуль    │    Объект    │            Функция объекта            │

├─────────────┼──────────────┼───────────────────────────────────────┤

│APP.TPU      │TAPPLICATION  │Стандартная программа.                 │

│             │TDESKTOP      │Поверхность экрана.                    │

├─────────────┼──────────────┼───────────────────────────────────────┤

│OBJECTS.TPU  │TOBJECT       │Главный объект всей объектной иерархии │

│             │              │Turbo-Vision.                          │

│             │TCOLLECTION   │Коллекция.                             │

│             │TBUFSTREAM    │Буферизированный поток.                │

│             │TRECT         │Прямоугольник.                         │

│             │TSTREAMREC    │Регстрационная запись.                 │

│             │TRESOURCEFILE │Файл ресурсов.                         │

│             │TSTRINGLIST   │Коллекция строк.                       │

├─────────────┼──────────────┼───────────────────────────────────────┤

│VIEWS.TPU    │TVIEW         │Абстрактный видимый объект.            │

│             │TGROUP        │Объект-группа.                         │

│             │TTPALETTE     │Тип палитры.                           │

│             │TWINDOW       │Базовый объект всех окон.              │

│             │TSCROLLBAR    │Полоса скроллинга.                     │

│             │TFRAME        │Рамка видимого объекта.                │

│             │TCOMMANDSET   │Группы разрешаемых или запрещаемых ко- │

│             │              │манд.                                  │

├─────────────┼──────────────┼───────────────────────────────────────┤

│DIALOGS.TPU  │TDIALOG       │Диалоговое окно.                       │

│             │THISTORY      │Протокол ввода.                        │

│             │TSTATICTEXT   │Статический текст.                     │

│             │TSITEM        │Элемент кластера.                      │

│             │TBUTTON       │Командная кнопка.                      │

│             │TCHECKBOXES   │Кластер с независимыми кнопками.       │

│             │TRADIOBUTTONS │Кластер зависимых кнопок.              │

│             │TINPUTLINE    │Строка ввода.                          │

│             │TLABEL        │Метка для кластера или строки ввода.   │

│             │TLISTBOX      │Скроллер списка строк.                 │

├─────────────┼──────────────┼───────────────────────────────────────┤

│MENUS.TPU    │TMENU         │Список связанных записей для меню.     │

│             │TMENUBAR      │Горизонтальная полоса меню.            │

│             │TMENUITEM     │Элемент меню.                          │

│             │TSTATUSDEF    │Контекстная подсказка строки статуса.  │

│             │TSTATUSLINE   │Строка статуса.                        │

│             │TSTATUSITEM   │Элемент строки статуса.                │

├─────────────┼──────────────┼───────────────────────────────────────┤

│DRIVERS.TPU  │TEVENT        │Тип записи события.                    │

├─────────────┼──────────────┼───────────────────────────────────────┤

│CALC.TPU     │TCALCDISPLAY  │Табло дисплея и вычислительные действия│

│             │TCALCULATOR   │Окно калькулятора.                     │

├─────────────┼──────────────┼───────────────────────────────────────┤

│CALENDAR.TPU │TCALENDARVIEW │"Начинка" календаря.                   │

│             │TCALENDWINDOW │Окно календаря.                        │

├─────────────┼──────────────┼───────────────────────────────────────┤

│PUZZLE.TPU   │TPUZZLEVIEW   │Игровое поле и правила игры.           │

│             │TPUZZLEWINDOW │Окно игры.                             │

├─────────────┼──────────────┼───────────────────────────────────────┤

│GAUGES.TPU   │THEAPVIEW     │Индикатор доступной динамической памяти│

│             │              │                                       │

└─────────────┴──────────────┴───────────────────────────────────────┘





                     3.4.2. Подготовка ресурсов



    Для уменьшения объема занимаемой памяти (как  оперативной,  так  и

памяти "винчестера") и повышения "читаемости" программы, в системе ис-

пользуется механизм ресурсов. Его суть состоит в следующем: все объек-

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

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

мандам.

    Программа  M_VISUAL.EXE  служит  для  подготовки  файла   ресурсов

EXPERT.AIR. Алгоритм ее работы следующий:

    1. Создает на диске поток (полиморфный файл данных,  ориентирован-

ный на работу с объектами).

    2. Связывает с ним файл ресурсов EXPERT.AIR (в  Turbo-Vision  файл

ресурсов - это поток с произвольным доступом к данным).

    3. Регистрирует все объекты, входящие в файл ресурсов, получая  их

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

    4. Загружает объекты из модулей и записывает их в файл ресурсов.

    5. Закрывает поток.

    Каждый объект записывается в файл ресурсов под  определенным  уни-

кальным ключом. Им может быть строка произвольных символов любой  дли-

ны. В теле основной программы в конструкторе TEXPERT.INIT  производит-

ся открытие файла ресурсов,  а  соответствующие  процедуры  используют

нужные им объекты, подгружая их из EXPERT.AIR.



                                                            Таблица 7.

                     Ресурсы системы "Консультант"



┌────────────────┬──────────────────┬────────────────┬───────────────┐

│   Объект       │  Назначение      │Уникальный номер│Индексный ключ │

├────────────────┴──────────────────┴────────────────┴───────────────┤

│                          ФАЙЛ EXPERT.AIR                           │

├────────────────┬──────────────────┬────────────────┬───────────────┤

│TBANKWINDOW     │Окно банка знаний.│      100       │    "Банк"     │

│TNEWWINDOW      │Окно создания но- │      101       │    "Новая"    │

│                │вой базы.         │                │               │

│TRENAMEWINDOW   │Окно переименова- │      102       │"Переименовать"│

│                │ния базы.         │                │               │

│TERASEWINDOW    │Окно удаления базы│      103       │  "Удаление"   │

│TEXITWINDOW     │Окно подтвержде-  │      104       │    "Выход"    │

│                │ния выхода.       │                │               │

│TSTATEWINDOW    │Окно установок ре-│      105       │  "Установки"  │

│                │дактора.          │                │               │

│TATRIBUTEDITOR  │Окно редактора    │      106       │   "Объекты"   │

│                │объектов.         │                │               │

│TVALUEEDITOR    │Окно редактора    │      107       │  "Значения"   │

│                │значений.         │                │               │

│TRULEEDITOR     │Окно редактора    │      108       │   "Правила"   │

│                │правил.           │                │               │

│TDISPETCHER     │Окно диспетчера   │      109       │  "Диспетчер"  │

│                │редактора.        │                │               │

│TMACHINE        │Окно консультации │      110       │"Машина вывода"│

│                │машины вывода.    │                │               │

│TSTATUSLINE     │Строка статуса.   │ N Turbo-Vision │   "Статус"    │

│TMENUBAR        │Полоса меню.      │ N Turbo-Vision │    "Меню"     │

│TCALCULATOR     │Калькулятор.      │ N Turbo-Vision │ "Калькулятор" │

│TCALENDWINDOW   │Календарь.        │ N Turbo-Vision │  "Календарь"  │

│TPUZZLEWINDOW   │Игра.             │ N Turbo-Vision │    "Игра"     │

│TMANAGER        │Диспетчер машины  │      111       │  "Менеджер"   │

│                │вывода.           │                │               │

├────────────────┴──────────────────┴────────────────┴───────────────┤

│                          ФАЙЛ EXPERT.BLC                           │

├────────────────┬──────────────────┬────────────────┬───────────────┤

│TBANKLIST       │Список баз знаний.│      112       │   "Список"    │

├────────────────┴──────────────────┴────────────────┴───────────────┤

│                  ФАЙЛЫ ПОЛЬЗОВАТЕЛЯ BASE+<i>+.PRO                  │

├────────────────┬──────────────────┬────────────────┬───────────────┤

│TDATABASE       │База фактов.      │      200       │   "Данные"    │

│TRULEBASE       │База правил.      │      201       │   "Правила"   │

│TFACT           │Факт.             │      202       │ - - - - - - - │

│TVALUE          │Значение.         │      203       │ - - - - - - - │

│TRULE           │Правило.          │      204       │ - - - - - - - │

│TUNITAL         │Элемент правила.  │      205       │ - - - - - - - │

└────────────────┴──────────────────┴────────────────┴───────────────┘





        3.4.3. Организация поддержки длинных имен баз знаний.



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

разработан механизм поддержки так называемых  "длинных  имен"  файлов.

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

за него это делает система; например, создавая новую  базу,  он  видит

лишь то, что имя новой БЗ появляется в окне банка знаний и может и  не

знать о том, что в это время происходит на диске.

    Процесс поддержки длинных имен баз реализуется следующим  образом.

Создается строковая коллекция имен БЗ  BASES,  где  каждое  имя  имеет

свой уникальный индекс. При создании новой  базы  пользователь  вводит

ее имя; система заносит новое имя в коллекцию BASES и создает на  дис-

ке файл, сформировав его имя по принципу:



                  BASE+<номер базы в коллекции>+.PRO



    Аналогично, при удалении базы, система удаляет выбранное для  уда-

ления имя базы из BASES, все индексы баз сдвигает, заполняя образовав-

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

банке знаний есть три базы: ПРОБА, ПОПЫТКА и ТЕСТ.  На  диске  имеется

соответственно три файла: BASE1.PRO, BASE2.PRO, BASE3. PRO. При удале-

нии базы ПОПЫТКА, ее имя удаляется из списка, файл BASE2.PRO  удаляет-

ся с диска, а файл BASE3.PRO базы ТЕСТ принимает имя BASE2.PRO).

    Поскольку коллекция - динамический объект, то при выходе из систе-

мы все имеющиеся имена баз будут утеряны. Чтобы  этого  не  случилось,

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

ресурсов EXPERT.BLC.  В  конструкторе  TEXPERT.INIT  открывается  файл

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

изменять список, добавляя в него новые имена, изменяя их, удаляя неко-

торые из них. При выходе из системы измененная коллекция  записывается

в файл EXPERT.BLC деструктором TEXPERT.DONE.

    При разработке системы файл EXPERT.BLC был  создан  программой  M_

LIST.EXE. Эта программа производит следующие действия:

    1. Создает на диске поток EXPERT.BLC и связывает с ним ресурс.

    2. Создает пустую коллекцию BASES и регистрирует ее.

    3. Заносит эту коллекцию в файл под ключом "Список".

    4. Закрывает файл.

    Следует отметить, что при потере этого файла все базы  банка  зна-

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

русском языке останутся лишь ничего не значащие имена файлов.





                           3.5. Выводы



    Проанализировав все вышесказанное, можно указать следующие  харак-

терные черты системы "Консультант":

    1) система имеет все признаки приложения, разрабатываемого в  Тур-

бо-Паскале с использованием библиотеки Turbo-Vision, такие  как  нали-

чие "выпадающих" меню и строки  статуса,  многооконный  режим  работы,

стандартный вид элементов диалоговых окон и многие другие.

    2) система, как и другие приложения,  созданные  в  Турбо-Паскале,

широко использует динамическую память (кучу) и сформированные  пользо-

вателем типы данных.

    3) Широкое использование таких инструментов Turbo-Vision, как  ре-

сурсы, коллекции, потоки данных, скроллинг текста.

    Вместе с тем следует отметить и те особенности  системы,  отличаю-

щей ее от других ЭС:

    1) Поддержка длинных имен баз знаний.

    2) Наличие пошагового многооконного редактора знаний.

    3) Средства управления базами знаний (СУБЗ).

    4) Редактор правил в виде электронной таблицы.

    5) Возможность временного выхода в другие оболочки.

    6) Комбинированная стратегия вывода.

    7) Представление правил в виде кодов.

    8) Возможность сохранения  протоколов  консультации  и  управления

ими.

    9) Оптимизация базы правил.

    10) Упаковка базы фактов.

    11) Получение однозначного решения.

    12) Средства проверки БЗ на непротиворечивость.

    Таким образом, "Консультант" является качественно новой  оболочкой

экпертных систем.







           Часть 4. Методика работы в системе "Консультант"





                     4.1. Общие операции в системе



                   4.1.1. Установка и запуск системы



    Запуск системы из оболочки Norton Commander  осуществляется  путем

выбора файла START.BAT из каталога EXPERT и нажатия  клавиши  <ENTER>,

либо двойного щелчка левой клавишей "мыши" на имени этого  файла.  Для

удобства запуска можно имя системы внести в глобальное меню  пользова-

теля Norton Commander, путем внесения в файл NC.MNU  следующих  строк,

например:



                        1: система "Консультант"

                         с:\expert\start.bat



    Для запуска системы из операционной системы  MS-DOS  следует  наб-

рать после подсказки С:\> следующую строку, например:



                        с:\expert\start[.bat]



    Если необходимо ускорить процесс запуска системы, путь поиска фай-

ла START.BAT можно указать в файле AUTOEXEC.BAT, внесением в него сле-

дующей строки,например:



                            PATH с:\expert



    Тогда, по команде START независимо от того, на каком  диске  нахо-

дится пользователь, запустится "Консультант".

    Если система внесена в операционную оболочку Windows  3.x  (скорее

всего, она будет находиться в группе "Приложения"), то ее запуск  про-

изведется после двойного щелчка "мышью"  на  ее  пиктограмме  (значке)

или выбора ее клавишами управления курсором и нашатия <ENTER>.



                        4.1.2. Выход из системы



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

следует выполнить ряд таких действий: нажать <F9> для входа в  верхнее

меню, выбрать пункт СИСТЕМА и нажать <ENTER>, выбрать  операцию  ВЫХОД

и нажать <ENTER>, в появившемся диалоговом  окне  подтвеждения  данной

операции выбрать кнопку ДА. Или можно  просто  нажать  клавишу  <F10>,

после чего произвести все ранее указанные операции с диалоговым  окном

выхода.

    Выход при использовании "мыши" осуществляется аналогично либо  вы-

бором из меню, либо щелчком на тексте "F10 ВЫХОД"  в  строке  статуса,

после чего также появится диалоговое окно.



                                                            Таблица 8.

                       "Горячие клавиши" системы



┌──────────────────┬─────────────────────────────────────────────────┐

│     Клавиша      │                   Назначение                    │

├──────────────────┼─────────────────────────────────────────────────┤

│        F1        │Помощь.                                          │

│        F4        │Пауза (хранитель экрана).                        │

│        F8        │Временный выход в MS-DOS.                        │

│        F9        │Активизация верхнего меню.                       │

│       F10        │Выход из "Консультанта".                         │

│      ENTER       │Запустить выбранную базу на исполнение.          │

└──────────────────┴─────────────────────────────────────────────────┘





                                                Продолжение таблицы 8.



┌──────────────────┬─────────────────────────────────────────────────┐

│     Клавиша      │                   Назначение                    │

├──────────────────┼─────────────────────────────────────────────────┤

│        F5        │Распахнуть окно.                                 │

│     CTRL+F5      │Переместить окно.                                │

│        F6        │Активизировать последующее окно.                 │

│     SHIFT+F6     │Активизировать предыдущее окно.                  │

│      ALT+F3      │Закрыть окно.                                    │

└──────────────────┴─────────────────────────────────────────────────┘



             4.1.3. Перемещение в системе, работа с окнами



    Передвижение по спискам строк (например, в списке выбора имен бан-

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

ния курсором. Выбор нужной строки выполняется  при  помощи  клавиши  <

SPACE> (пробел), причем, в редакторе правил выбор клавишей <SPACE> оз-

начает установку в правило предпосылки, а комбинацией клавиш  <CTRL>+<

SPACE> устанавливается заключение.

    Переключение между окнами осуществляется клавишей <F6> или  комби-

нацией <SHIFT>+<F6> (в обратном порядке),  закрытие  -  комбинацией  <

ALT>+<F3>, распахивание - клавишей <F5>. Если нужно передвинуть  окно,

то следует после нажатия комбинации клавиш <CTRL>+<F5>, следует клави-

шами управления курсором переместить окно в нужное место  рабочей  по-

верхности и нажать <ENTER> для его фиксации (эту же операцию проще вы-

полнить "мышью", для чего следует подвести  курсор  "мыши"  к  верхней

рамке окна, нажать левую ее клавишу, "протащить" окно в  нужное  место

и зафиксировать его, просто отпустив клавишу).

    При работе с диалоговыми окнами следует помнить о ряде  особеннос-

тей:

    - переключение  между  элементами  (кнопками,  кластерами,  полями

ввода и другими)  осуществляется  клавишей  <TAB>  или  комбинацией  <

SHIFT>+<TAB> (в обратном порядке);

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

стандартные текстовые  редакторы  (клавиши  управления  курсором  и  <

BACKSPACE> ("ЗАБОЙ")), причем, если имеется  протокол  (список)  ввода

(в терминах Turbo-Vision - HISTORYLIST), он вызывается нажатием клави-

ши < курсор вниз>;

    - в диалоговых окнах с группами переключаемых опций  (кластерами),

перемещение внутри группы выполняется клавишами  управления  курсором,

а выбор того или иного элемента - клавишей <SPACE>.

    Следует отметить, что команда  РАСПАХНУТЬ  диалоговыми  окнами  не

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

аналогично выбору кнопки по умолчанию. когда диалоговое окно на  экра-

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

система не получит ответ на поставленный вопрос.

    Нужно отметить также и то, что все вышеуказанные операции с  окна-

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

его клавишей <F9> и выбрать пункт ОКНА, где  имеются  все  стандартные

операции работы с ними.





                          4.2. Консультация



    Как уже упоминалось ранее, БЗ может быть  запущена  на  исполнение

непосредственно из СУБЗ. То есть,  при  запуске  системы  пользователь

вначале видит информационное окно, сообщающее об авторах системы, пос-

ле нажатия клавиши <ENTER> или виртуальной кнопки ПУСК, появляется ок-

но банка знаний со списком баз знаний. Пользователь подсвеченной поло-

сой выбирает нужную ему базу и нажимает <ENTER>, после чего БЗ начина-

ет сеанс консультации.

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

каждом из которых высвечивается вопрос и список возможных  ответов  на

него. Внизу каждого окна этапа консультации имеется  три  кнопки:  ДА-

ЛЕЕ, НАЗАД и ВЫХОД. Первые две кнопки позволяют  передвигаться  "внут-

ри" консультации, а последняя - выйти из нее в любой момент работы.

    Первоначально в режиме "Консультация" система запросит у пользова-

теля цель (если база - многоцелевая). Пользователь должен  из  предос-

тавленного ему списка целей выбрать ему нужную и нажать  кнопку  ДАЛЕЕ

или клавишу <ENTER>. После этого система начнет процесс  консультации,

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

Если пользователь ошибочно ввел не то значение, которое бы  ему  хоте-

лось, он может вернуться к предыдущему шагу, нажав кнопку НАЗАД и исп-

равить неточность.

    По окончании консультации, как уже упоминалось, пользователю  дис-

петчером вывода предоставляются различные услуги.  Так,  например,  он

может создать протокол (то есть, текст, содержащий весь ход консульта-

ции) и сохранить его на диске, нажав только одну кнопку ПРОТОКОЛ.  Пу-

тем нажатия кнопки ПЕЧАТЬ,  пользователь  может  вывести  протокол  на

принтер.Нажатием кнопки СПИСОК, пользователь при желании может  вывес-

ти на экран диалоговое окно со списком протоколов других  консультаций

и, выбрав интересующий его протокол, просмотреть его или  распечатать.

Он может просмотреть ход рассуждений машины вывода, нажав кнопку МАРШ-

РУТ.

    В комплект системы "Консультант" входит демонстрационная база зна-

ний "Оценка состояния здоровья военнослужащего".





                4.3. Создание собственной базы знаний



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

создать собственную базу знаний. Первоначально он должен  четко  выде-

лить объекты, их возможные значения, вопросы и правила.  Следует  пом-

нить, что правила не должны противоречить друг другу, то есть недопус-

тимо совместное использование таких правил:



    ЕСЛИ ОБЪЕКТ N 1 = ЗНАЧЕНИЕ N 11  ТО ОБЪЕКТ N 2 = ЗНАЧЕНИЕ N 21,

    ЕСЛИ ОБЪЕКТ N 1 = ЗНАЧЕНИЕ N 11  ТО ОБЪЕКТ N 2 = ЗНАЧЕНИЕ N 22



    (это называется разветвлением - одна предпосылка приводит  к  двум

разным заключениям); или:



    ЕСЛИ ОБЪЕКТ N 1 = ЗНАЧЕНИЕ N 11  ТО ОБЪЕКТ N 2 = ЗНАЧЕНИЕ N 21,

    ЕСЛИ ОБЪЕКТ N 2 = ЗНАЧЕНИЕ N 21  ТО ОБЪЕКТ N 1 = ЗНАЧЕНИЕ N 11



    (это называется зацикливанием - то, что в первом правиле  является

предпосылкой, во втором это - заключение, и наоборот).

    Определившись с базой знаний, следует приступить к ее набору:

    1. Из пункта верхнего меню БАЗА выбрать пункт НОВАЯ и в появившем-

ся окне набрать имя новой БЗ, затем нажать кнопку ПУСК. В  окне  банка

знаний появится введенное имя новой базы.

    2. Подвести к полученному таким образом имени полосу-указатель  и,

войдя в меню, выбрать в пункте БАЗА операцию РЕДАКТИРОВАТЬ. В выведен-

ном на экран диалоговом окне установки редактора желательно не  делать

никаких настроек, поскольку там уже установлены параметры,  как  пара-

метры по умолчанию, наиболее распространенного типа  БЗ  и  редактора.

По окончании всех операций в окне нажать кнопку ПУСК  (или  клавишу  <

ENTER>).

    3. Как уже говорилось ранее, редактор знаний - пошаговый  редактор

и структурно состоит из редактора объектов, редактора значений  и  ре-

дактора правил. Он последовательно предлагает пользователю  вносить  в

создаваемую базу сперва объекты и вопросы посредством редактора объек-

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

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

следует набрать объект, в нижней - вопрос об этом объекте, после  чего

нажать кнопку ВНЕСТИ или клавишу <ENTER>. С каждой полосой связан  так

называемый список ввода (history list), отображаемый в свернутов  сос-

тоянии в виде кнопки с указателем вниз справа от полосы ввода.  В  нем

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

мент вводятся. Если объект или вопрос был набран ошибочно,  его  можно

удалить с помощью кнопки УДАЛИТЬ. Если же пользователем принято  реше-

ние освободить весь список объектов или вопросов, следует нажать кноп-

ку ОЧИСТИТЬ. После завершения набора объектов и вопросов  рекомендует-

ся сохранить их, нажав кнопку ЗАПИСЬ. Кнопкой ДАЛЕЕ осуществляется пе-

реход к следующему шагу - редактору значений, кнопкой НАЗАД - к преды-

дущему - установке редактора. С помощью кнопки ОТМЕНА можно  выйти  из

режима редактирования в основной режим - режим СУБЗ.

    4. После набора объектов и вопросов об объектах, нажав кнопку  ДА-

ЛЕЕ, пользователь переходит на следующий этап создания БЗ  -  создание

значений. Эту функцию полностью берет на себя  редактор  значений.  Он

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

щихся окон с именем "своего" объекта каждое, строкой ввода и  кнопками

управления в каждом. Командные кнопки каждого окна редактора  значений

аналогичны кнопкам редактора объектов, за исключением появившейся  но-

вой кнопки - ДРУГОЙ. Пользователь для каждого  объекта  должен  ввести

свой список значений, после чего нажатием кнопки ДРУГОЙ  он  переходит

в окно следующего объекта. Действия остальных кнопок аналогичны дейст-

виям соответствующих кнопок редактора объектов. По окончании  заполне-

ния значениями всех ранее набраных объектов  и,  желательно,  сохранив

их на диске кнопкой ЗАПИСЬ, можно переходить к следующему этапу -  ре-

дактированию правил. Это производится нажатием кнопки ДАЛЕЕ.

    5. Перевижение по матрице фактов редактора правил можно  клавишами

управления курсором или "мышью". Для занесения какого-либо  правила  в

базу правил необходимо отметить клавишей <SPACE> или  правой  клавишей

"мыши" все предпосылки данного правила и комбинацией  клавиш  <CTRL>+<

SPACE> - заключения, после чего нажать кнопку  ВНЕСТИ  или  клавишу  <

ENTER> (следует заметить, что командные кнопки редактора правил анало-

гичны кнопкам предшествующих редакторов). Необходимо помнить, что син-

таксис "Консультанта" не позволяет вводить правила такого вида:



   ЕСЛИ ОБЪЕКТ N 1 = ЗНАЧЕНИЕ N 11 И ОБЪЕКТ N 1 = ЗНАЧЕНИЕ N 12 ...



    или такого:



    ... ТО ОБЪЕКТ N 1 = ЗНАЧЕНИЕ N 11 И ОБЪЕКТ N 2 = ЗНАЧЕНИЕ N 21.



    Одним словом, в предпосылке правила  у  одного  объекта  не  может

быть два разных значения, а в правиле не может быть более одного  зак-

лючения. Редактор правил построен таким образом,  что  правила  такого

рода просто не смогут сформироваться.

    Итак, например, для ввода такого правила:



    ЕСЛИ ВОДА = ХОЛОДНАЯ И ПОГОДА = СЫРАЯ  ТО ПРОСТУДА = ОБЕСПЕЧЕНА,



    необходимо в столбце значений объекта ВОДА отметить ранее упомяну-

тым способом значение ХОЛОДНАЯ, а столбце  ПОГОДА  -  значение  СЫРАЯ,

как предпосылки (отмеченные значения станут другого цвета); в  столбце

ПРОСТУДА отметить значение ОБЕСПЕЧЕНА, как  заключение  (это  значение

также выделится цветом, причем отличным  от  цвета  предпосылок).После

нажатия кнопки ВНЕСТИ создаваемая база правил пополнится новым  прави-

лом. Так же, как и в предыдущих редакторах, по окончании набора  жела-

тельно для надежности сохранить базу правил, нажав кнопку ЗАПИСЬ.  Для

перехода к следующему заключительному шагу нужно как и в прежних  слу-

чаях, нажать кнопку ДАЛЕЕ.

    6. Заключительный этап создания или редактирования любой базы зна-

ний - вывод диспетчера редактора. Дипетчер  необходим  для  проведения

сервисных операций с базой знаний: оптимизации, упаковки, проверки  на

непротиворечивость и сохранения. Ранее уже описывался смысл этих  опе-

раций; следует отметить особенности операций ОПТИМИЗАЦИЯ  и  УПАКОВКА.

Если пользователь еще не закончил отлаживание своей  базы,  он  их  не

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

является окончательным вариантом, то желательно проделать  эти  опера-

ции, соответственно нажав кнопки ОПТИМИЗАЦИЯ и УПАКОВКА. Операция про-

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

ее провести; эта операция не изменяет структуру базы  знаний,  поэтому

ее можно проводить в любой момент. Кнопка  СОХРАНИТЬ  записывает  базу

на диск, если поледняя не была сохранена нажатием кнопки ЗАПИСЬ редак-

тора правил и обновременно осуществляет выход в режим СУБЗ.

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

знаний.



           4.4. Редактирование баз знаний и управление ими



    Редактирование БЗ производится в том же порядке, что  и  создание,

причем, если, например, не требуется редактировать объекты, можно  ли-

бо "пролистнуть" появившийся редактор объектов кнопкой ДАЛЕЕ,  либо  в

окне установок редактора знаний в группе СОСТАВЛЯЮЩИЕ  установить  оп-

цию РЕДАКТОР ЗНАЧЕНИЙ (в этом случае после нажатия кнопки  ПУСК  сразу

запустится редактор значений).

    Процесс редактирования напоминает  процесс  создания  новой  базы.

Исключение составляет лишь то, что в строках ввода уже будут  находит-

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

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

кнопку ПУСК в окне  установок),  активизировать  список  ввода  строки

ввода объектов (щелчком левой клавишей "мыши" на кнопке  списка  ввода

либо нажатием клавиши <курсор вниз>), с  помощью  вертикальной  полосы

скроллинга (линейки прокрутки) найти нужный  ему  объект  и  исправить

его как в обычном текстовом редакторе или  удалить  его  кнопкой  УДА-

ЛИТЬ. Последующие действия аналогичны действиям  в  процессе  создания

новой базы.

    Управление базами знаний производится с  помощью  пункта  верхнего

меню БАЗА. Операции данного пункта позволяют  переименовывать  и  уда-

лять любые базы в списке банка знаний. Так, чтобы  переименовать  выб-

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

имя базы и нажать кнопку ПУСК или клавишу <ENTER>, после  чего  старое

имя базы исчезнет из списка и появится новое. Для удаления базы следу-

ет выбрать ее полосой указателем и, выбрав в меню БАЗА  операцию  УДА-

ЛИТЬ, нажать <ENTER>. На экране появится окно подтверждения  удаления,

в котором следует нажать кнопку ПУСК.



                            4.5. Утилиты



    В процессе создания системы "Консультант" были созданы две  утили-

ты (сервисные программы), которые не входят в файловый состав  системы

"Консультант", но могут входить в комплект поставки.



                      4.5.1. Утилита VIEWER.EXE



    Файл VIEWER.EXE - утилита для просмотра любых баз знаний,  создан-

ных в формате "Консультанта". Она позволяет увидеть  базу  знаний  та-

кой, какая она на самом деле, то есть в том самом виде,  в  каком  она

находится в своем файле. Поскольку файл базы знаний не  просматривает-

ся ни одним из просмотщиков Norton Commander,  возникла  необходимость

создания специализированной программы-просмотрщика для  проверки  пра-

вильности составления БЗ.

    С помощью VIEWER.EXE можно просмотреть файл базы знаний  (то  есть

файл *.PRO). Формат команды следующий:



            <имя диска>:\EXPERT\viewer.exe base<номер>.pro



    Если пользователь в качестве основной оболочки  использует  Norton

Commander и постоянно работает с базами знаний, то  ему  следует  сде-

лать в конфигурационном файле NC.CFG Norton Commander следующие  уста-

новки:

    - в разделе "Описание" внести следующие строки



!Файлы баз знаний

;ФАЙЛЫ БЗ

:*.pro



    - в разделе "Установки" - такие строки



#Утилита просмотра файлов "Консультанта"

~viewer.exe

$*.pro



    После сохранения  таких  установок  в  файле  конфигурации  Norton

Commander, любые файлы формата PRO будут просматриваться клавишей  <F3

> в том виде, какой задает утилита VIEWER.EXE. Следует  заметить,  что

в этом случае желательно, чтобы утилита была перенесена или скопирова-

на в каталог NC в комплект других  утилит  просмотра  оболочки  Norton

Commander.

    Нужно отметить, что в операционной оболочке Windows 3.х такая  ус-

тановка невозможна.



                      4.5.2. Утилита IMPORT.EXE



    Данная утилита позволяет устанавливать в  интегрированную  систему

"Консультант" базы знаний, созданные в этой же системе, но  на  другом

компьютере или в другом месте. Как известно, система при создании  ба-

зы знаний автоматически присваивает файлу этой БЗ  имя.  При  переносе

файлов БЗ с одного компьютера на другой  возникает  проблема  внесения

переносимой базы в другую систему.  IMPORT.EXE  позволяет  обойти  эту

проблему.

    Формат команды следующий:



            <имя диска>:\EXPERT\import.exe base<номер>.pro



    Пусть, например, в одной организации в системе "Консультант"  соз-

дана БЗ "Проверка состояния прибора". Файл этой базы с  именем  BASE6.

PRO передан в другую организацию. В другой  организации  тоже  имеется

"Консультант" и установлены восемь баз знаний от BASE1.PRO  до  BASE8.

PRO. При использовании утилиты  IMPORT.EXE  следует  набрать  команду,

например:



              C:\EXPERT\import.exe A:\NEWBASES\base6.pro



    Эта команда означает, что в систему, установленную на диске  С:  в

каталоге EXPERT, следует включить считываемый с дискеты (дисковод  А:,

каталог NEWBASES) файл BASE6.PRO с новой  базой.  Утилита  запросит  у

пользователя имя новой базы:



                       Введите имя новой базы:>



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

(в данном примере - "Проверка состояния прибора")  и  нажать  <ENTER>.

После этого новая база будет установлена в банк знаний  пол  введенным

именем, а имя ее файла станет BASE9.PRO.



                             4.6. Выводы



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

    1) Быстрый просмотр осуществляется вне среды "Консультанта", одна-

ко просмотреть базу не выходя из системы  можно  с  помощью  редактора

знаний.

    2) Вход в меню и выход из системы осуществляется  не  так,  как  в

приложениях, созданных в Турбо-Паскале (клавиша <F10> и  комбинация  <

ALT+X>), а как в оболочке Norton Commander (клавиши <F9> и  <F10>  со-

ответственно).

    3) Операции работы с окнами, диалоговыми окнами и меню в  основном

сходны с операциями других популярных приложений, созданных  в  Турбо-

Паскале (DOS-Navigator, Dr.Web, Инфо-Бухгалтер).

    4) Импорт других баз знаний, созданных на других машинах, в  отли-

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

производиться из среды системы.

    5) Система обладает некоторыми ограничениями:

    - количество баз знаний в банке - 10000 (однако не желательно  та-

кое их количество, поскольку замедлится скорость работы);

    - количество сохраненных за сутки протоколов - 100;

    Остальные ограничения зависят лишь  от  технических  характеристик

компьютера, на котором установлена система.

    Таким образом, система "Консультант" является оболочкой,  ориенти-

рованной на неподготовленного пользователя.





    Часть 5. Оценка затрат и  эффективность  использования  экспертной

                               системы



               5.1. Оценка затрат при создании системы



                 5.1.1. Затраты на аппаратную часть



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

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

можно произвести расчет стоимости аппаратуры (в ценах 1997 года):

    - IBM-совместимый компьютер        :         1500000 руб.

    - принтер матричный 9-игольчатый   :          700000 руб.

    ─────────────────────────────────────────────────────────────

             Итого                     :         2200000 руб.



              5.1.2. Затраты на программное обеспечение



    Стоимость необходимых для реализации системы  программных  продук-

тов:

    - операционная система MS-DOS      :         бесплатно

(устанавливается при покупке компьютера)

    - оболочка Norton Commander        :         бесплатно

    - пакет Norton Utilities           :         бесплатно

    - драйверы устройств               :         бесплатно

    - система Турбо-Паскаль 6.0.       :           50000 руб.

    ──────────────────────────────────────────────────────────────

             Итого                     :           50000 руб.



    Общая стоимость необходимых затрат составляет 2250000 руб.

    Для сравнения  приводится  стоимость  аппаратного  и  программного

обеспечения для системы КЕЕ компании Intellicorp (в долларах США).

    - стоимость программы              :           20000 дол.

    - стоимость специальной аппаратуры :           15000 дол.

    ───────────────────────────────────────────────────────────────

             Итого                     :           35000 дол.

    То есть, для функционирования данной системы потребуется  примерно

203000000 руб., следовательно, затраты на систему КЕЕ в 90 раз  превы-

шают затраты на "Консультанта".

    В таблице 9 приводятся стоимости наиболее распространенных  оболо-

чек ЭС.



                                                            Таблица 9.

             Цены некоторых оболочек ЭС (в долларах США)



┌─────────────────────┬──────────────────────────┬───────────────────┐

│  Название системы   │      Тип компьютера      │   Цена системы    │

├─────────────────────┼──────────────────────────┼───────────────────┤

│Advisor              │Apple Macintosh           │        100        │

│Advice Language/X    │Apple Macintosh           │       6000        │

│ESP/Advisor          │IBM PC                    │        900        │

│Expert-2             │IBM PC                    │        100        │

│Expert-Ease          │IBM PC                    │        700        │

│ExperOPS             │Apple Macintosh           │        350        │

│KDS                  │IBM PC                    │        800        │

│Knowledge Craft      │DEC VAX                   │       50000       │

│KEE                  │Symbolics 3600            │       20000       │

│MicroExpert          │IBM PC                    │        50         │

│Personal Consultant  │TI PRO                    │       1000        │

│Rule-Master          │IBM PC                    │       15000       │

│S.1                  │DEC VAX                   │       70000       │

│TIMM                 │DEC VAX                   │       40000       │

└─────────────────────┴──────────────────────────┴───────────────────┘



    Из таблицы видно, что цены на экспертные системы в мире самые раз-

личные; они зависят от качества и  многофункциональности  системы:  от

простой ЭС MicroExpert (цена 50  дол.)  до  мощной  "интеллектуальной"

полнофункциональной системы S.1 (цена 70000 дол.). Для ВС РФ  закупить

такую систему для дальнейшего использования слишком дорого.



               5.2. Эффективность системы "Консультант"



    Эффективность оболочки экспертной  системы  следует  оценивать  по

следующим показателям:

    - стоимость;

    - надежность;

    - функциональность;

    - быстродействие;

    - требования к ресурсам.

    Относительно стоимости было сказано в предыдущем  разделе.  Видно,

что у системы "Консультант" самая низкая стоимость.

    Надежность оболочки ЭС можно оценить качественно, исходя из следу-

ющих параметров:

    - противодействие несанкционированным действиям пользователя;

    - невозможность создания БЗ, приводящей к сбоям или зацикливанию;

    - отсутствие логических ошибок;

    - сохранение результатов и аварийный выход при переполнении  памя-

ти.

    Практически все системы, существующие в настоящее время, достаточ-

но надежны. В системе "Консультант" имеются все  четыре  вышеприведен-

ных пункта. Так, при несанкционированных действиях  пользователя  (  в

основном, нажатии не той клавиши) система просто не отвечает на  такие

действия (блокирует неиспользуемые клавиши); в системе имеются средст-

ва для логической проверки создаваемой или редактируемой  БЗ  (см.  п.

3.3.2.); в программе отсутствуют логические ошибки (они все были выяв-

лены при отладке и компиляции программы); при приближении  к  пределу,

за которым происходит переполнение оперативной памяти (кучи),  система

дает знать об этом пользователю  (эксперту-разработчику)  и,  сохранив

результаты, аварийно завершает  выполнение  программы.  По  надежности

система не уступает другим коммерческим системам.

    По показателю функциональности система значительно уступает  таким

системам, как S.1, KEE, Expert-Ease  и  некоторым  другим  (см.  табл.

10).



                                                           Таблица 10.

                  Сравнение функций некоторых систем



┌──────────────────┬─────────┬──────────┬──────────┬─────────┬───────┐

│                  │Консуль- │          │          │         │       │

│     Функция      │  тант   │ Eurisco  │  СПЭИС   │ ЕMYCIN  │ ПиЭС  │

│                  │         │          │          │         │       │

├──────────────────┼─────────┼──────────┼──────────┼─────────┼───────┤

│Редактор знаний   │    +    │    +     │    +     │    +    │   +   │

├──────────────────┼─────────┼──────────┼──────────┼─────────┼───────┤

│Стратегии вывода  │    -    │    +     │    -     │    +    │   +   │

│на выбор          │         │          │          │         │       │

├──────────────────┼─────────┼──────────┼──────────┼─────────┼───────┤

│Редактор машин    │    -    │    -     │    -     │    -    │   +   │

│вывода            │         │          │          │         │       │

├──────────────────┼─────────┼──────────┼──────────┼─────────┼───────┤

│Сборка новой ЭС из│    -    │    +     │    +     │    +    │   +   │

│существующих      │         │          │          │         │       │

├──────────────────┼─────────┼──────────┼──────────┼─────────┼───────┤

│Развитый интерфейс│    +    │    -     │    +     │    +    │   +   │

├──────────────────┼─────────┼──────────┼──────────┼─────────┼───────┤

│Возможность созда-│         │          │          │         │       │

│ния прикладных    │    -    │    -     │    +     │    -    │   -   │

│программ          │         │          │          │         │       │

├──────────────────┼─────────┼──────────┼──────────┼─────────┼───────┤

│Несколько форм    │         │          │          │         │       │

│представления зна-│    -    │    +     │    +     │    +    │   +   │

│ний               │         │          │          │         │       │

├──────────────────┼─────────┼──────────┼──────────┼─────────┼───────┤

│Иерархия языков   │         │          │          │         │       │

│представления зна-│    -    │    +     │    +     │    -    │   +   │

│ний               │         │          │          │         │       │

├──────────────────┼─────────┼──────────┼──────────┼─────────┼───────┤

│Графическое отоб- │    -    │    -     │    +     │    -    │   +   │

│ражение процессов │         │          │          │         │       │

├──────────────────┼─────────┼──────────┼──────────┼─────────┼───────┤

│Самообучение      │    -    │    +     │    -     │    -    │   -   │

├──────────────────┼─────────┼──────────┼──────────┼─────────┼───────┤

│Логическая провер-│    +    │    +     │    +     │    +    │   +   │

│ка                │         │          │          │         │       │

├──────────────────┼─────────┼──────────┼──────────┼─────────┼───────┤

│Система объяснения│    +    │    +     │    +     │    +    │   +   │

├──────────────────┼─────────┼──────────┼──────────┼─────────┼───────┤

│Несколько видов   │    +    │    -     │    +     │    -    │   +   │

│диалога           │         │          │          │         │       │

├──────────────────┼─────────┼──────────┼──────────┼─────────┼───────┤

│Связь с другими   │    +    │    -     │    +     │    -    │   -   │

│программами       │         │          │          │         │       │

├──────────────────┼─────────┼──────────┼──────────┼─────────┼───────┤

│Перевод знаний из │         │          │          │         │       │

│одной формы в дру-│    -    │    +     │    +     │    -    │   +   │

│гую               │         │          │          │         │       │

├──────────────────┼─────────┼──────────┼──────────┼─────────┼───────┤

├──────────────────┼─────────┼──────────┼──────────┼─────────┼───────┤

│Показатель функци-│         │          │          │         │       │

│ональности (в     │   40%   │   60%    │   80%    │   47%   │  80%  │

│процентах)        │         │          │          │         │       │

└──────────────────┴─────────┴──────────┴──────────┴─────────┴───────┘



    Из таблицы видно, что показатель  функциональности  "Консультанта"

ниже, чем у других популярных систем. Следует отметить, что  выбор  15

ти функций был ориентирован в основном на пользователя;  многие  функ-

ции не были рассмотрены. Также, необходимо уточнить, что системы с по-

казателем функциональности = 100% пока не существует (у  самых  разви-

тых систем показатель функциональности порядка 80 - 85%).

    С позиции быстродействия "Консультант" находится в достаточно  вы-

соком положении. К сожалению, нет  возможности  количественно  оценить

быстродействие системы и сравнить с быстродействием других систем. Од-

нако, известно, что на поиск решения в базе из 100 правил одна из  са-

мых быстрых систем - MYCIN - тратит около 5  минут.  "Консультант"  на

такую же базу тратит примерно 15 минут.

    "Консультант" требует по сравнению с другими системами сравнитель-

но мало машинных ресурсов (см. п. 3.1.1.). Единственные ЭС,  требующие

также мало ресурсов -MicroExpert и Expert-Ease.

    Поскольку, исходя из специфики решаемых в ВС задач и экономическо-

го положения, критериями эффективности следует считать стоимость,  бы-

стродействие и надежность. Учитывая вышеприведенные результаты, следу-

ет выбрать систему "Консультант". Она одна из самых  быстродействующих

и надежных, и обладает самой низкой стоимостью.



  5.3. Оценка скорости создания базы знаний на примере  демонстраци-

     онной базы "Оценка продолжительности службы военнослужащего"



    На теоретическую разработку базы, аналогичной "Оценке..."  эксперт

затрачивает примерно по 15 минут на правило. Ему необходимо из  знания

по медицине выделить и  структуировать  факты,  относящиеся  к  данной

предметной области (в данном случае, к области  количественной  оценке

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

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

в виде правил.

    Непосредственную оценку скорости создания БЗ можно проводить  пос-

ле процесса теоретической разработки. Занесение одного правила в  соз-

даваемую базу знаний занимает около 1 минуты (так как  в  базе  "Оцен-

ка..." 77 правил, процесс занесения в нее правил  займет  примерно  75

минут). Создание одного факта займет примерно 2 минуты  (в  "Оценке...

" 29 фактов, суммарное время создания базы фактов - 60  минут).  Время

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

сохранения, занимает примерно 35 минут. Суммарное  время,  затраченное

на ввод разработанной базы "Оценка..." - примерно 3 часа.

    Аналогичный ввод знаний в других системах занимает несколько боль-

шее  время.  Так,  например,  синтаксис  системы  MYCIN  не  позволяет

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

(хотя в MYCIN не нужно вводить факты, система сама выделяет их из пра-

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

    Следует сделать оговорку, что есть  системы,  которые  не  требуют

предварительной теоретической обработки определенной  области  знаний;

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

ример, системы АМ и Eurisco).

    Машина вывода системы "Консультант" благодаря разработанной  стра-

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

поставленную цель. Однако, некоторые системы,  благодаря  инструмента-

рию для создания новых стратегий вывода, позволяют для конкретной  за-

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

специфики задачи (например, СПЭИС, ПиЭС). Это позволит сократить коли-

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

процесс принятия системой решения (хотя, на  создание  стратегии  тоже

расходуется время). В зависимости от цели при работе  с  базой  "Оцен-

ка..." пользователь затрачивает от 5 до 15 минут.



                             5.4. Выводы



    Таким образом, система "Консультант" обладает следующими качества-

ми:

    1) Низкая стоимость (складываемая из суммы стоимостей  аппаратного

и программного обеспечения, необходимого для реализации системы).

    2) Высокое быстродействие.

    3) Малое количество функций (по сравнению с другими развитыми сис-

темами).

    4) Высокая надежность.

    5) Низкие требования к машинным ресурсам.

    Критериями эффективности выбраны быстродействие, надежность и сто-

имость; следовательно, по этим критериям, "Консультант"  удовлетворяет

поставленным требованиям.

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

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

"Оценка продолжительности службы военнослужащего".





                              Заключение



    В настоящем проекте рассмотрены вопросы создания и методики  испо-

льзования экспертной системы - системы диагностики "Консультант".  Сп-

роектированная система включена в состав АРМ командира. Создана с  по-

мощью реализованной системы демонстрационная база знаний "Оценка  про-

должительности службы военнослужащего".

    Основные теоретические результаты сводятся к следующему:

    1) Разработаны метод представления фактов в базе знаний в виде ди-

намических связанных списков (коллекций) и способ кодировки  правил  с

последующим представлением их в виде матрицы.

    2) Разработана стратегия комбинированного вывода и метод  перефор-

мирования базы знаний в зависимости от цели.

    3) Созданы методы упаковки и оптимизации базы знаний,  позволяющие

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

мы.

    4) Рассмотрен метод логической проверки правил  на  непротиворечи-

вость в процессе создания или редактирования базы знаний.

    5) Разработан способ достижения цели, исключающий возможность  не-

однозначного решения и несанкционированных ответов.

    Основными практическими результатами являются:

    1) Создание библиотеки процедур обработки знаний.

    2) Реализация эффективного и удобного интерфейса пользователя.

    3) Разработка общего алгоритма функционирования системы и алгорит-

мов работы отдельных ее компонентов.

    4) Создание системы управления базами знаний.

    5) Реализация пошагового редактора знаний с  редактором  правил  в

виде электронной таблицы.

    6) Создание системы эффективного вывода.

    7) Разработка открытой архитектуры системы,  позволяющей  получать

и (или) передавать информацию в другие приложения (текстовые  редакто-

ры типа ЛЕКСИКОН и СУБД типа SUPERCALC) и, не выходя из  системы,  за-

пускать другие приложения пакета АРМ командира.

    8) Реализация системы управления протоколами.

    9) Создание с помощью реализованной системы демонстрационной  базы

знаний.

    10) Проведение оценки эффективности системы с точки зрения быстро-

действия, надежности и стоимости.

    Особенности созданной системы следующие:

    1) Используется обычный "неинтеллектуальный"  язык  программирова-

ния высокого уровня (Турбо-Паскаль 6.0).

    2) Используются методы объектно-ориентированного  программирования

на основе библиотеки Turbo Vision.

    3) Для экономии оперативной памяти используется механизм оверлеев.

    4) Применяется модульный принцип построения программ,  входящих  в

состав системы.

    5) Применяется механизм ресурсов.

    6) Используются принципы полиморфизма потоков и коллекций при реа-

лизации базы знаний.

    7) Применяются методы работы с динамической памятью.

    В системе выявлен ряд недостатков:

    1) Быстрый, но недостаточно наглядный редактор правил.

    2) Ограниченность размеров базы знаний  вследствие  ограниченности

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

    3) Сложность создания базы с большим количеством правил и фактов.

    4) Низкая наглядность системы объяснения.

    5) Отдаленность языка системы от естественного языка.

    6) "Навязывание" пользователю одной стратегии вывода и одной  фор-

мы представления знаний.



                            ─────────────



    Итак, в данном дипломном проекте разработана система  диагностики,

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

мущества:

    1. Удобство работы для неподготовленного  пользователя,  благодаря

диалоговой среде, длинным именам баз знаний, многооконному режиму  ра-

боты и развитой системе меню.

    2. Высокая скорость работы, как следствие использования  стратегии

комбинированного вывода и оптимизации правил.

    3. Блокировка неипользуемых клавиш для предотвращения несанкциони-

рованных действий со стороны пользователя.

    4. Установка режима консультации при включении системы.

    5. Наличие системы управления базами знаний.

    Таким образом, созданная экспертная система полностью ориентирова-

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

для применения в АРМ командира.



                ──────────────────────────────────────





                              Литература



    5. Кузин А.А. Общая кибернетика. т.2. - М.: Наука, 1979.

    6. Фофанов В.А. Системные функции MS-DOS. - М.: Радио, 1988.

    7. Фойц С. Windows 3.1 для пользователя. Киев.: Торгово-издательс-

кое бюро BHV, 1995.

    8. Фаронов В.В. Программирование в Турбо-Паскале. - М.:  МВТУ-ФЕС-

ТО Дидактик, 1992.

    9. Фаронов В.В. Библиотека Turbo-Vision. - М.:  МВТУ-ФЕСТО  Дидак-

тик, 1993.

    10. Лорьер Ж.-Л. Системы искусственного  интеллекта.  -  М.:  Мир,

1991.

    11. Сойер Б., Фостер Д.В. Программирование  экспертных  систем  на

Паскале. - М.: Финансы и статистика, 1990.

    12. Таунсенд К., Фохт Д. Проектирование и  программная  реализация

экспертных систем на персональных ЭВМ. -  М.:  Финансы  и  статистика,

1990.

    13. Уотермен Д. Руководство по экспертным  системам.  -  М.:  Мир,

1989.

    14. Вагин В.Н. Дедукция и обобщение в системах принятия решений. -

М.: Наука, 1988.

    15. Экспертные системы: Сборник - М.: Знание, 1990.

    16. Геловани В.А., Ковригин О.В. Экспертные системы в медицине.  -

М.: Знание, 1987.

    17. Нильсон Н. Принципы искусственного интеллекта. - М.:  Радио  и

связь, 1985.

    18. Поспелов Г.С. Системный анализ и  искусственный  интеллект.  -

М.: Препринт ВЦ АН СССР, 1980.

    19. Минский М. Фреймы  для  представления  знаний.  -М.:  Энергия,

1979.

    20. Компьютер обретает разум: Пер. с англ./ Под редакцией В.Л.Сте-

фанюка. - М.: Мир, 1990.