- •Раздел 3. Инструментальные средства компьютерных технологий
- •1. Анализ традиционных языков программирования и представления знаний.
- •1.1. Специализированный язык lisp.
- •1.2 Фрейм – ориентированный язык frl.
- •1.3 Язык логического программирования prolog.
- •1.4. Продукционный язык ops.
- •2. Современные программные средства построения интеллектуальных систем.
- •2.1. Объектно-ориентированный язык Visual Basic.
- •2.1.1. Возможности языка Visual Basic для создания экспертных систем.
- •2.2. Язык логического программирования Visual Prolog.
- •2.3. Интегрированная инструментальная среда guru.
- •2.4. Интегрированная инструментальная среда g2 для создания интеллектуальных систем реального времени.
- •Использование мощности объектно-ориентированного программирования.
- •Работа в Реальном времени.
- •Динамическое моделирование и моделирование для анализа " что- если "
- •3.1. Знакомство с программой Outlook xp.
- •3.1.1. Настройка печати.
- •3.1.2. Общая настройка Outlook.
- •3.1.3. Настройка элементов интерфейса.
- •3.2. Работа с заметками, дневником и контактами.
- •3.2.1. Создание заметки.
- •3.2.2. Настройка параметров заметки.
- •3.2.3. Создание новой записи в дневнике.
- •3.2.4. Настройка параметров для автоматического ведения дневника.
- •3.2.5. Просмотр дневника.
- •3.2.6. Создание нового контакта.
- •3.2.7. Настройка дополнительных полей контакта.
- •3.2.8. Настройка дополнительных действий контакта.
- •3.2.9. Изменение внешнего вида контакта.
- •3.2.10. Создание нового контакта с использованием меню папки контактов.
- •3.3. Работа с календарем и задачами.
- •3.3.1. Настройка интерфейса календаря.
- •3.3.2. Задание параметров календаря.
- •3.3.3. Изменение вида календаря.
- •3.3.4. Создание новой встречи.
- •3.3.5. Создание повторяющейся встречи.
- •3.3.6. Создание новой задачи.
- •3.3.7. Создание повторяющейся задачи.
- •3.3.8. Изменение встречи на задачу.
- •3.3.9. Изменение контакта на встречу.
- •3.4. Создание сообщений электронной почты.
- •3.4.1. Создание учетных записей электронной почты.
- •3.4.2. Настройка параметров электронной почты.
- •3.4.3. Настройка параметров сообщений.
- •3.4.4. Создание нового сообщения.
- •3.4.5. Добавление гиперссылки в сообщение.
- •3.4.6. Добавление произвольного файла в сообщение.
- •3.4.7. Добавление автофигуры (текста) в сообщение.
- •3.4.8. Добавление фигурного текста WordArt в сообщение.
- •3.4.9. Настройка параметров безопасности сообщений.
- •3.4.10. Настройка изображения в сообщении.
- •3.4.11. Создание макроса для работы с сообщениями.
- •3.4.12. Создание таблицы в сообщении.
- •3.5. Работа с электронной почтой и факсами.
- •3.5.1. Отправление сообщения по электронной почте.
- •3.5.2. Получение (просмотр) сообщения по электронной почте.
- •3.5.3. Просмотр «входящего» сообщения.
- •3.5.4. Ответ на полученное сообщение.
- •3.5.5. Пересылка сообщения.
- •3.5.6. Создание правил для обработки сообщений.
- •3.5.7. Настройка дополнительных параметров (по цвету и представлению) по обработке входящих сообщений.
- •3.5.8. Настройка дополнительных параметров (по нежелательной почте) по обработке входящих сообщений.
- •3.5.9. Создание списка рассылки сообщений.
- •3.6. Дополнительные возможности программы.
- •3.6.1. Поиск сообщения по его названию.
- •3.6.2. Поиск сообщения на диске по содержанию с временным ограничением.
- •3.6.3. Экспортирование информации из сообщения Outlook в Excel.
- •3.6.4. Импортирование информации из сообщения Excel в Outlook.
- •3.6.5. Настройка автоматической архивации сообщений.
- •3.6.6. Настройка ручной архивации.
- •3.6.7. Назначение собрание для коллективной работы в Outlook.
1.4. Продукционный язык ops.
Язык относится к числу продукционных. Являясь универсальным языком программирования, он в первую очередь предназначен для разработки систем ИИ, и, в частности экспертных систем. Идеология языка OPSнашла отражение в целом ряде практических реализаций, достаточно сильно отличающихся друг от друга. Одной из первых и наиболее известной является реализацияOPS-5, выполненная на одной из версий Лиспа (FranzLISP). Поэтому синтаксисOPS–5 максимально приближен к синтаксису Лиспа. На языкеOPS– 5 создан ряд промышленно эксплуатируемых экспертных систем для фирмыDECс объемом баз знаний от 1000 до 5000 правил. Одной из последних, но уже достаточно широко известной реализацией являетсяOPS-83. Особенности этой реализации – наличие некоторых конструкций, характерных для процедурных языков программирования, а также сильная типизация данных.
Говоря об общих отличительных чертах семейства языков OPS, необходимо отметить наличие:
- программного управления стратегий вывода решений;
- развитой структуры данных и принципиальной эффективности реализации.
Язык OPSимеет типичную для продукционных систем архитектуру, включающую в себя базу правил, рабочую память и механизм вывода. База правил состоит из неупорядоченной совокупности правил, рабочая память – из дискретных объектов, называемых элементами рабочей памяти. Элемент рабочей памяти может быть добавлен в рабочую память, удален из нее или модифицирован. Механизм вывода является стандартным для системы продукций циклом управления. На первой фазе цикла выбираются все правила, левые части которых сопоставились с содержимым рабочей памяти. На второй фазе правило выполняется. Встроенный вOPSмеханизм вывода непосредственно поддерживает только прямой вывод, однако в языке имеются средства для организации обратного и смешанного выводов.
В языке OPSдопускается использование внешних процедур, реализованных на других языках программирования. Эффективность в языкеOPSдостигается, во – первых, за счет использования специального алгоритма быстрого сопоставления, а во-вторых, за счет компилирующей схемы, применяемой взамен более традиционной для продукционных языков интерпретирующей. Применение алгоритма быстрого сопоставления накладывает ряд ограничений, однако опыт эксплуатации языкаOPSпоказал достаточно высокую адекватность средств языка для разработки экспертных систем.
Программа на языке OPSсостоит из декларативной и продукционной частей. Вообще говоря, языкOPSочень прост: в нем всего три вида операторов: оператор описания типов данныхTYPE, оператор описания классовCLASSи оператор описания правилRULE. Декларативная часть программы содержит описание типов данных и классов элементов рабочей памяти. Элемент рабочей памяти (класс) является единственно возможным представлением данных вOPSпрограмме. Он представляет собой фиксированную структуру, состоящую из совокупности пар «атрибут - значение» вида:
Класс
Атрибут – 1
значение
Атрибут –2
значение
Например, элемент памяти «Установка 1 предприятия» имеет вид:
ОБЪЕКТ
Имя
Установка 1
Входит в
Цех 1
Состоит из
(колонна 1, колонна 2, колонна 3)
Получает сырье от
Резервуар 5
Тип сырья
Нефть
Вырабатывает
Керосин
Поставляет продукцию
(установка 3, установка 4).
Элементарным объектом данных, имеющим значение, является атрибут. Атрибуты локализованы в пределах одного класса, некоторые атрибуты могут не иметь значения.
Каждый элемент рабочей памяти относится к определенному классу. Допустимые классы элементов рабочей памяти должны быть предварительно описаны в разделе определения классов. Определение класса задает его структуру, типы допустимых значений атрибутов, входящих в класс, и, если это необходимо, начальные значения атрибутов (значения по умолчанию).
Отметим, что все используемые типы данных (кроме встроенных) должны быть явно описаны в операторах TYPEилиCLASS; особенно удобными при программировании экспертных систем являются произвольные типы данных, которые позволяют следить за правильностью вводимых пользователем данных и допустимых значений в процессе логического вывода.
Перейдем теперь к рассмотрению продукционной части OPSпрограммы – раздела правил. Он записывается после декларативной части и представляет собой совокупность правил. ПравилоOPSсостоит из заголовка и тела правила. Заголовок правила начинается со словаRULE, за которым следует имя правила и описание переменных (если они используются). Тело правила состоит из левой части, задающей условие применимости правила, и правой части, содержащей последовательность выполняемых действий. Левая часть начинается словамиIF, разделителем между левой и правой частями служит словоTHEN. Ниже приведен пример правилаOPS:
RULEОСТАНОВКА УСТАНОВКИ 1
IF
ОБЪЕКТ
ИМЯ УСТАНОВКА_1
СОСТОЯНИЕ ОСТАНОВИЛАСЬ
AND
ОБЪЕКТ
ИМЯ УСТАНОВКА_2
СОСТОЯНИЕ РАБОТАЕТ
AND
ОБЪЕКТ
ИМЯ УСТАНОВКА_3
СОСТОЯНИЕ РАБОТАЕТ
THEN
WRITEУстановка 1 остановилась
WRITEРаспределить ее сырье между установкой 2 и установкой 3
Левая часть правила состоит из одного или более условных элементов. Каждый условный элемент задает образец, который сопоставляется с содержащимися в рабочей памяти элементами. Левая часть считается сопоставленной, если одновременно сопоставились все входящие в нее условные элементы. Разделителем между условными элементами служит слово ANDилиANDNUT. В левой части могут быть использованы следующие элементарные предикатное операторы: «не равно», «больше», «меньше», «не больше», «не меньше», «входит», «не входит в список», «имеет/не имеет значение» и др. Правая часть правила состоит из последовательности императивных утверждений, называемых действиями. Действия, имеющиеся вOPS, разделяются на две группы: элементарные, обеспечивающие вывод решения, и вспомогательные, обеспечивающие ввод и другие сервисные возможности. К элементарным действиям относятся:
MARE– создание нового элемента рабочей памяти;
REMOVE– удаление элемента из рабочей памяти;
MODIFY– изменение значений атрибутов, уже находящихся в рабочей памяти
К вспомогательным действиям относятся:
HALT– явное прекращение программы;
WRITE– выдача сообщения на терминал;
PRINT– печать сообщения на печатающем устройстве;
DISPLAY– вывод на экран терминала информации из библиотеки на магнитном диске;
BIND– вызов функций или модулей на других языках программирования;
SET– динамическое изменение стратегии вывода решений или подробности объяснений решений.
Рассмотрим современные разработки средств построения интеллектуальных систем.