Искуственный интеллект
├──────────────────────────────────┼─────────────────────────────────┤
│ Задачи решаются методом формаль- │ Задачи решаются процедурными ме-│
│ных рассуждений. │тодами, с помощью аналогии или │
│ │интуитивно. │
├──────────────────────────────────┼─────────────────────────────────┤
│ Знания статичны (неизменны). │ Знания динамичны (меняются со │
│ │временем). │
└──────────────────────────────────┴─────────────────────────────────┘
Вот лишь некоторые из обычных повседневных задач возникающих в
ВС, которые могут быть решены с помощью ЭС:
- составление расписаний занятий;
- диагностика аппаратуры;
- юридические консультации;
- планирование тактических операций;
- метеопрогнозы;
- обеспечение безопасности;
- анализ документов (отчетов);
- управление подразделением;
- обучение личного состава;
- медицинскоя диагностика.
По ранее указанным причинам, коммерческие ЭС не могут быть приме-
нены. Требуется система, обладающая следующими свойствами:
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, поскольку предполагается, что БЗ будет сохранена в файле ресур-
сов, который представляет собой индексированный поток (поток с произ-
вольным доступом