Главная страница

иывиывиыииывиы ывпып ывпы ып. Интеллектуальные информационные системы. 1 Понятие интеллектуальные информационные системы. Классификация иис


Скачать 2.96 Mb.
НазваниеИнтеллектуальные информационные системы. 1 Понятие интеллектуальные информационные системы. Классификация иис
Дата14.05.2023
Размер2.96 Mb.
Формат файлаdocx
Имя файлаиывиывиыииывиы ывпып ывпы ып.docx
ТипГлава
#1128775
страница6 из 11
1   2   3   4   5   6   7   8   9   10   11

2.3 Инструментальные средства проектирования интеллектуальных информационных систем



Программные средства инженерии знаний и реализации интеллектуальных информационных систем (ИИС) можно разделить на следующие группы: универсальные языки программирования (в том числе традиционные), универсальные языки представления знаний и оболочки.

ИИС представляют собой некоторый программный комплекс, позволяющий решать производственный и экономические задачи на уровне человека - оператора или управленца (эксперта). Однако очевидно, что любую программу можно написать на машинно - ориентированном языке (ассемблере) или на универсальном языке высокого уровня (ПЛ/1, Си, Бейсик, Алгол, Ада, Фортран, Паскаль и т.д.). В этой связи возникает вполне справедливый вопрос: зачем рассматривать специализированные средства, для изучения которых требуется определенное время, если универсальным языком высокого уровня (либо языком ассемблера) владеет практически любой программист? Ответ на этот вопрос взят из практики: процесс программирования систем ИИ на специализированных средствах занимает в 2-3 раза меньше времени, чем на универсальных. Однако следует всегда помнить, что параметры эффективности (объем памяти и быстродействие) ИИС, реализованных на базе специализированных средств, в большинстве случаев ниже, чем при реализации ИИС на универсальных средствах.

Еще одним фактором, существенным для выбора ИИС инструментальных программных средств при разработке ИИС, является потенциальная возможность взаимодействия с программными средствами, используемыми на различных уровнях иерархии интегрированных корпоративных информационных систем.

В этой связи оптимальным решением задачи выбора программных средств для реализации ИИС следует считать следующее: первый прототип (или прототипы: исследовательский, демонстрационный) реализуется на специализированных средствах. В случае достаточной эффективности этих средств на них могут быть написаны действующий прототип, и даже промышленная система. Однако в большинстве случаев прототип и даже промышленная система. Однако в большинстве случаев прототип следует «переписать» на традиционных программных средствах.

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

2.3.1 Анализ традиционных языков программирования и представления знаний


Одним из самых популярных языков программирования в системах ИИ является язык LISP. Этот язык был создан в 60-х годах американским ученым Дж. Маккарти и его учениками. На сегодняшний день существует около 20 диалектов этого языка. Наиболее известными являются INTERLISP, FRANZLISP, QLISP, COMMONLISP. На языке LISP написаны многие экспертные системы (MYCIN, INTERNIST, KEE и др.), системы естественно-языкового общения (MARGIE, SHRDLU, ДИЛОС и др.), интеллектуальные операционные системы (FLEX).

Популярность языка LISP в первую очередь объясняется тем, что он с помощью довольно простых конструкций позволяет писать сложные и изящные системы обработки символьной информации. К сожалению, почти все существующие LISP - системы имеют низкую вычислительную эффективность. Именно это не дает возможность языку LISP выйти за рамки «академических» экспериментальных систем. Однако бурное повышение производительности современных компьютеров, а также разработка LISP - машин типа С/330, SYMBOLICS и т.д. вселяет оптимизм в отношении будущего языка.

Язык LISP имеет очень простой синтаксис, поскольку возможны только две его конструкции: атом и список.

Атом - элементарная конструкция языка LISP, характеризуемая своим именем и значением. В некоторых LISP - системах с атомом связывается также определенный список свойств. Примерами атомов могут служить: А, В, А1, ВРЕМЯ ВЫЛЕТА, ВЫПУСК, АИ-93 и т.д.

Список - конструкция LISP, состоящая из множества атомов и подсписков. В LISP принята скобочная нотация описания списков. Примеры списков (А1, А2,…,АК), (А,В) (ВРЕМЯ ВЫЛЕТА, 15_40) (ВЫПУСК АИ-93).

Существенной особенностью языка LISP является то, что здесь «данные» и «программы» внешне ничем не отличаются друг от друга. Это дает возможность писать на LISP «программы», манипулирующие не только данными, но и «программами». Именно данное свойство позволяет LISP стать изящным средством программирования систем ИИ. Понятия «данные», и «программа» в LISP не используются, их заменяют такие понятия, как выражение и функция.- функциональный язык. Все процедуры обработки информации оформляются в виде функций. Благодаря стандартному набору системных функций, LISP может быть «расширен» за счет пользовательских функций. Системные функции делятся на арифметические, списковые функции, функции ввода - вывода, предикаты и др.- это рекурсивный язык, т.е. обеспечивает возможность определения функций с помощью самих себя.

Рекурсивность LISP удобна при решении очень популярной в искусственном интеллекте задачи «поиска по дереву», которая является довольно обобщенной и охватывает широкий класс конкретных задач, начиная шахматными и кончая задачами «принятия решений» или управления сложными объектами. В каждом конкретном случае вершины дуги будут иметь свою семантику. Например, при решении шахматной задачи вершинам могут соответствовать возможные позиции, а дугам те или иные ходы, приводящие к этим позициям. Последовательность ходов, обязательно приводящих к «выигранной» позиции, и будет решением данной задачи. Древовидная структура очень часто имеет также и сценарий диалога человека с ЭВМ. В этом случае с вершинами соотносятся состояния (шаги) диалога, а с дугами - возможные переходы из одного состояния в другое.

Одним из известных языков представления знаний является язык FRL (Frame Representation Language), относящийся к классу фрейм - ориентированных. Основная единица знания в таких языках - фрейм, представляющий собой информационную модель (или описание) некоторой стереотипной ситуации. «Стереотипная ситуация», является обобщением таких понятий, как действия, процессы, события, объекты, свойства, модификаторы и т.д.

Фрейм в FRL - это совокупность поименованных, ассоциативных списков, содержащая до пяти уровней подструктур. Подструктурами фреймов могут быть слоты, аспекты, данные, комментарии и сообщения. Основной структурной единицей во фрейме являются слоты, отражающие взаимосвязи между понятиями предметной области. Слот характеризуется своим именем и значением. Имена слотов назначаются проектировщиками БЗ. Однако FRL имеет также и зарезервированные имена слотов: АКО, INSTANSE, CLAS SIFICATON. В качестве значения слотов могут выступать числа, символы, имена других фреймов, имена процедур.

Важным свойством FRL является наличие в нем встроенного механизма «наследования свойств». Суть этого механизма заключается в следующем. Все понятия предметной области в БЗ организовываются в виде иерархической классификационной системы, где каждое понятие связывается с помощью специальных отложений с более конкретными. Для реализации этих отложений существуют слоты АКО и INSTANSE. Слот АКО связывает понятие с более общим (родовым). Слот INSTANSE связывает понятие с более конкретным (видом). Свойства присущие всему классу, описывают только во фрейме класса, а остальные фреймы этого класса могут наследовать это свойство в случае надобности.

Процедуры обработки FRL подразделяются на независимые и присоединенные. Независимо от типа эти процедуры пишутся обычно на языке реализации самого FRL. На сегодняшний день большинство FRL - систем написаны на LISP.

В последнее время к разработке ЭС все чаще стал привлекаться язык программирования Пролог. Свое наименование Пролог получил от сокращения «Программирование логики» (PRogramming in LOGic). Математической основой Пролога являются исчисление предикатов преимущественно первого порядка, метод резолюции Робинсона, теория рекурсивных функций.

Основной конструкцией языка (в форме, принятой для Пролога), является импликация:

А← В1, В2, …., Вn, называемая правилом, где А1,В1,В2….,Вn - предикаты.

Смысл ее таков «А истинно, если истинно В1 и истинно В2 и … и истинно Вn».

Существующие системы программирования Пролога имеют большой набор «встроенных» предикатов (т.е. предикатов, понимаемых самим Прологом), которые обеспечивают выполнение арифметических операций, строковую (символьную) обработку, функции ввода-вывода и целый ряд специфических функций. За счет наличия встроенных предикатов язык Пролог можно отнести к универсальным языкам программирования и даже к языкам системного программирования.

Важнейшей особенностью языка Пролог является наличие реляционной базы данных, причем доступ и работа с реляционными отношениями погружены в сам Пролог. Для пользователя эти отношения существуют лишь в виде предикатов. Отмеченное свойство делает Пролог очень удобным средством для описания организационных и технологических структур. Так, на Прологе эффективно реализуются задачи подсистемы «Кадры», выдающие всевозможную информацию о кадровой структуре подразделений и о предприятии в целом. Удобно использовать Пролог и для описания технологической схемы производства со множеством взаимосвязей отдельных узлов (установок) по материальным, энергетическим, информационным и другим потокам.

В настоящее время создано большое число различных по эффективности и мощности Пролог - систем, каждая из которых предлагает свой синтаксис языка и свой набор встроенных предикатов. Синтаксис языка определен формой записи Пролог - конструкций: фактов, правил, вопросов, предикатов, атомов, переменных, выражений и т.д.

2.3.2 Современные программные средства построения интеллектуальных информационных систем


Visual Basic язык поддерживающий событийно-управляемое программирование (event-driven programming): визуальное проектирование и элементы объектно-ориентированного программирования. Выпустив в 1991 г. первую версию VB, Microsoft достаточно скромно оценивала возможности этой системы, ориентируя ее, прежде всего, на категорию начинающих и непрофессиональных программистов. Основной задачей тогда было выпустить на рынок простой и удобный инструмент разработки в тогда еще довольно новой среде Windows, программирование в которой представляло проблему и для опытных специалистов,

В 1992 г. была выпущена вторая версия, а в 1993-94 гг. - третья версия. Эта версия позволила продукту войти в число серьезных инструментальных средств программирования и значительно расширить свой рынок.

-97 гг. была выпущена пятая версия; В VB5 было много усовершенствований, он обеспечивал заметно более высокую производительность и предлагал долгожданный компилятор, преобразующий программу во внутренний машинный код.

В 1998 г. появился Visual Basic 6.

В течение нескольких лет идут постоянные дебаты о том, может ли Visual Basic считаться языком объектно-ориентированного программирования (ООП). С одной стороны, элементы ООП в нем были всегда, и их число росло от версии к версии. С другой - многих нужных возможностей ООП в Visual Basic не было. Появление Visual Basic.NET должно положить конец всем этим дискуссиям, так как в нем будут реализованы все необходимые атрибуты ООП. Напомним, что модель ООП подразумевает наличие трех обязательных механизмов: инкапсуляции, полиморфизма и наследования. Первые два были реализованы в предыдущих версиях и получили развитие в новой, а последний появится в ней впервые.Basic наконец-то стал полноценным объектно-ориентированным языком. Безусловно, Visual Basic.NET серьезно прибавил в мощности средств, но работать с ним будет сложнее. Ведь объектно-ориентированные методы программирования предъявляют более серьезные требования к квалификации разработчика, на которою перекладываются многие проблемы обеспечения работоспособности программы.

Дадим также описание некоторых новых элементов языка на концептуальном уровне.Services - это некая принципиально новая платформно-независимая технология, связанная с использованием стандарта XML и протокола SOAP (Simple Object Access Protocol - протокол доступа к простым объектам), которая будет широко интегрирована в средства разработки. Ключевая идея состоит в создании компонентов уровня бизнес-логики, которые взаимодействуют с внешними объектами с помощью стандартных Web-протоколов.(Инкапсуляция). Идея заключается в том, что вы можете создавать скрытый набор процедур (методов и свойств), которые формируют некий программный интерфейс. Другой код может обращаться к этим методам и свойствам, не вдаваясь в подробности их внутренней реализации.threaded (Многопоточность). Это комплексная концепция поддержки выполнения более чем одного потока заданий в одно и то же время. Например, пользователь может продолжать работать с приложением, после того как он задал операцию фоновой печати документа. Подобный режим крайне необходим для создания масштабируемых серверных компонентов и может быть полезен для реализации пользовательского интерфейса. Создание таких вычислительных потоков выполняется примерно следующим образом:(Наследование). Это одно из ключевых понятий объектно-ориентированного программирования возможность использования (в том числе расширения) поведения чужого объекта. Упрощенно говоря, можно создать объект Продукт, а затем на его основе объекты Программный Продукт и Технический Продукт. Оба новых объекта будут наследовать свойства и методы объекта Продукт, и при этом вы сможете изменить поведение наследующего объекта. Visual Basic-разработчики теперь могут использовать ключевое слово Inherits для подключения процедур уже существующего класса:. В русском языке нет соответствующего термина в данном контексте: использование одного и того же идентификатора для обозначения разных процедур. Выбор нужной процедуры выполняется в зависимости от числа и типа параметров. Это особенно полезно для создания одного свойства, поддерживающего разные типы аргументов.(Полиморфизм). Возможность иметь несколько объектов разного типа, но с одинаковыми методами. Это позволяет писать код, вызывающий тот метод, который нужен в зависимости от используемого в данный момент объекта.Basic позволяет создавать различные приложения для работы с базами данных - от простейших локальных баз данных до многоуровневой архитектуры клиент/сервер, а также приложений для работы в intranet и Internet с использованием таких передовых технологий, как DHTML, XML и ASP.

Также очень важны вопросы проектирования реляционных баз данных и использования языка SQL. Язык структурированных запросов является стандартным средством для работы с базами данных и может использоваться как для интерактивной работы с базами данных, так и включаться в языки программирования. Применительно к Visual Basic SQL позволяет:

 создавать, модифицировать или удалять таблицы в базе данных Access;

 вставлять, удалять или модифицировать записи таблиц;

 получать сводную информацию о данных в таблице;

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

Экспертная система, как никакая другая, должна предоставлять пользователю максимально «дружелюбный» интерфейс, поскольку она в большинстве случаев является диалоговой и требует от пользователя максимального взаимодействия. Это справедливо в большой степени для так называемых оболочек экспертных систем, правильность настройки и заполнения которых является ключевым фактором в построении адекватно реагирующей экспертной системы. В данной ситуации многое зависит от логики представления информации и управляющих элементов в программе, наличия пользовательского меню и развитой справочной системой.

В инструментальной среде построения ЭС GURU, разработанной фирмой Micro Data Base Systems, Inc., методы экспертных систем сочетаются с такими средствами обработки данных, как составление электронных ведомостей, управление базой данных и деловой графикой, и таким образом формируется уникальная среда для поддержки принятия решений и разработки прикладных интеллектуальных систем.

Система GURU легка в употреблении для новичков и в то же время является достаточно эффективной и гибкой системой для профессионалов - разработчиков.

В обычных «интегрированных» программных продуктах или несколько отдельных программ помещены в операционную среду, или несколько, второстепенных компонентов вкладываются в главный компонент (как, например, программа обработки электронных ведомостей или текстовый редактор). Трудности, с которыми сталкиваются при таких стилях «интеграции», хорошо известны. Первая трудность заключается в том, что пользователь вынужден переходить назад и вперед по отдельным программам и передавать данные между ними. Метод вложений заставляет пользователя выполнить всю обработку в пределах главного компонента, и в результате получаются относительно слабые вторичные компоненты.

Метод Интеграции, используемый в системе GURU, совершенно отличается от вышеупомянутых. Он основывается на принципе синергизма. При этом под «синергизмом» здесь понимается следующее. В системе GURU все средства всегда доступны. Многочисленные компоненты можно соединять по желанию в пределах одной операции, а это характеризует систему как гибкую и удобную в использовании.

Взаимодействовать с системой можно любым из четырех различных способов: с помощью меню: на ограниченном естественном языке, в режиме команд или через специально разработанные интерфейсы. Каждый тип интерфейса системы GURU предназначен для удовлетворения потребностей и вкусов различных классов пользователей. Всеми четырьмя интерфейсами можно пользоваться во время одного и того же сеанса взаимодействия с системой GURU.

Как и в большинстве оболочек, в GURU используется продукционная модель представления знаний в виде совокупности «If-then» правил с обратной стратегией вывода в качестве основной имеется возможность моделирования нечетких и неточных рассуждений. Кроме посылок и заключения в правила можно включать команды, которые будут выполняться перед проверкой условия, а также пояснительный текст для генерации объяснений. Правила также включают необязательные параметры цены и приоритета, позволяющие управлять процессом выбора из совокупности, готовых, к выполнению правил очередного. С каждым правилом можно также связать число, определяющее, сколько раз это правило может выполняться в процессе консультации.

Правила, относящиеся к решению некоторой общей задачи, образуют базу знаний, или набор правил. В этот набор кроме: собственно правил включаются две специальные процедуры: инициализация и завершение, которые должны выполняться до и после выполнения правил. В набор правил также включаются описания переменных, участвующих в правилах, содержащие спецификации типа, точности и т. п.

По умолчанию в GURU принята стратегия обратного вывода, однако, можно использовать чисто прямой вывод, а также комбинировать его с обратным в рамках одного набора правил. Как стратегиями вывода, так и целевыми переменными можно управлять динамически в процессе консультации.обеспечивает мощные средства управления обработкой факторов уверенности, отражающих степень неточности и нечеткости выраженных в правилах эвристических знаний. Для предоставления такой нечеткости в GURU с каждым значением переменной может быть связан числовой коэффициент от 0 до 100. Система предоставляет разработчику выбор более чем из 30 различных формул, позволяющих управлять обработкой факторов уверенности во время вывода.

Полезными являются такие дополнительные средства управления логическим выводом, как установка степени «точности» вывода значения для некоторой переменной, изменение принятого по умолчанию порядка просмотра правил.

Эффективность машины логического вывода во многом зависит от того, как она осуществляет поиск в наборе правил, когда ищет правила, которые можно выполнять. В отличие от традиционного программного обеспечения, использующего принципы искусственного интеллекта, система GURU предоставляет расширенные средства управления настройкой, в частности поддерживает до 50 различных стратегий поиска. Эффективность также зависит от количества и состава правил в наборе правил. Поскольку система GURU предоставляет разнообразные возможности создания наборов правил, то можно значительно сократить количество правил, необходимых для охвата всех знаний и опыта в конкретной проблемной области. Это приводит к ускорению процесса получения логических выводов, а также к упрощению управления этими правилами.

Интегрированная система GURU пытается превратить потенциальные преимущества ЭС в реальность, облегчить пользователю процесс создания ЭС, сделать его прямым, эффективным и естественным.

1   2   3   4   5   6   7   8   9   10   11


написать администратору сайта