2.3.2 Основные типы знаний.


Определение знания как понятия - трудная проблема. В области ИИ наиболее важные типы знаний классифицируются следующим образом:

Объекты и их свойства.

Объекты - это существующие в прикладной области универсальные понятия и их представители: живые существа, предметы или материалы или абстрактные понятия.

События.

События описывают участие объектов в деятельности и ситуациях. События характеризуют, например, время, место и причинно-следственные отношения.

Действия.

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

Метазнания.

Метазнания - это знания о знаниях и их использовании, например способность выбрать метод решения для проблем разных типов.


2.3.3. Методы представления знаний.

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

Рассмотрим важнейшие из общих методов и формализмов, разработанных для представления и обработки знаний:

Логика. В программах ИИ особенно часто используются различные формы логики предикатов первого порядка. Основное преимущество базирующихся на логике формализмов состоит в ром, что обычно с их помощью проще обеспечить корректность структур и решений системы, чем с помощью других способов представления.

2. Продукционные системы

Наиболее распространенным и простым для понимания является представление знаний при помощи правил продукции вида «ЕСЛИ , ТО ». Такие системы называют продукционными. Эти правила похожи на условные операторы IF-THEN языков программирования, однако совершенно по другому интерпретируются.

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

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

Существует два основных метода просмотра и выполнения правил. Это прямой и обратный выводы.

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

При обратном выводе, управляемом следствиями или целями правил (используется для создания ЭС диагностики и интерпретации), происходит движение от следствий к посылкам. Машина вывода выбирает очередную неизвестную переменную и пытается присвоить ей какое-то значение. Для этого она просматривает все правила, в THEN поле которых присутствует эта переменная и проверяет посылку правила. Если в посылке правила присутствуют не определенные переменные, то аналогичным способом машина вывода пытается найти их. Если правило с искомой переменной не выполняется, то ищутся другие правила, содержащие в THEN поле эту переменную.

Возможен так же смешанный вывод.

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

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

4. Фреймы. Это частный случай семантических сетей. Это метод представления знаний, который связывает свойства с узлами , представляющими понятия и объекты. Свойства описываются атрибутами (называемыми слотами) и их значениями. Использование фреймов с их атрибутами и взаимосвязями позволяет хранить знания о предметной области в структурированном виде, представлять в БЗ абстракции и аналогии.

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


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

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


Введение.

В последнее время особый интерес приобрела технология искусственного интеллекта (ИИ). Вычислительные устройства, обладающие в той или иной степени «интеллектуальными способностями, стали встраивать даже в бытовые приборы.

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

Ведущее место среди языков ИИ занимает Лисп, а точнее, множество его диалектов. Длительное время не существовало стандарта этого языка. Но такое разнообразие не доставляло неприятностей, пока язык использовался лишь в исследованиях. Даже напротив, идеи Лиспа таким образом могли постоянно развиваться и поэтому в язык вошли новые, оказавшиеся полезными свойства, в том числе и из других языков. Однако недостатки, возникающие из-за несовместимости между диалектами становились все более существенными по мере роста числа практических приложений Лиспа.

В конечном счете стандарт языка был разработан. Им стал Common Lisp. Этот диалект содержит важнейшие черты современных Лисп-систем: разнообразные типы данных, возможности определения типов, управляющие структуры, макросы с помощью которых легко определяются новые синтаксические формы, функционалы, замыкания, последовательности, а также синтаксический интерпретатор и транслятор. Можно сказать, что Common Lisp содержит почти все, что на сегодняшний день могут дать другие известные языки программирования, и кроме того, он предусматривает средства для расширения.

Особенностям языка Лисп и посвящена данная дипломная работа, целью которой является разработка лабораторных работ по курсу «Системы искусственного интеллекта» для студентов специальности «Компьютерные и интеллектуальные системы и сети», а также расширение Лисп-библиотек для интегрированной среды dlisp.

В первой части дипломной работы проведен анализ языков программирования искусственного интеллекта. Особое место уделено анализу диалектов языка Лисп. В конце раздела подводятся итоги анализа и обосновывается выбор конкретного диалекта Лиспа и вырабатывается постановка задачи.

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

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

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

В заключении работы подводятся итоги проделанной работы.


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

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

На основании проведенного анализа существующих диалектов языка Лисп для его изучения в курсе лабораторных работ был выбран MuLisp.

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

Ознакомиться с основами программирования на языке Лисп.

Изучить особенности среды MuLisp и dlisp.

Разработать комплекс лабораторных работ по, позволяющих освоить основные средства языка MuLisp:

базовые функции языка;

средства языка для работы с числами;

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

организация вычислений;

рекурсия в Лиспе;

функционалы и макросы;

типы данных используемых в MuLisp.

Расширить библиотеку функций интегрированной среды dlisp.

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


Заключение.

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

Проведен анализ языков программирования ИИ, а также диалектов и систем Лиспа.

В качестве теоретических сведений рассмотрены основные особенности и возможности языка Лисп.

Разработан комплекс лабораторных работ по изучению языка MuLisp для студентов специальности «Компьютерные и интеллектуальные системы и сети», имеющих следующие темы:


Лабораторная работа №1.

Тема: Ознакомительная работа в среде MuLisp. Базовые функции Лиспа. Символы, свойства символов. Средства языка для работы с числами.

Цель: Освоить среду MuLisp. Изучить базовые функции Лиспа, символы и их свойства, а также средства для работы с числами.


Лабораторная работа №2.

Тема: Определение функций. Функции ввода-вывода. Вычисления, изменяющие структуру.

Цель: Получить навыки в написании функций на Лиспе. Изучить функции ввода- вывода.


Лабораторная работа №3.

Тема: Организация вычислений в Лиспа.

Цель: Изучить основные функции и их особенности для организации вычислений в Лиспе.


Лабораторная работа №4.

Тема: Рекурсия в Лиспе. Функционалы и макросы.

Цель: Изучить основы программирования с применением рекурсии. Научится работать с функционалами и макросами.


Лабораторная работа №5.

Тема: Типы данных, используемые в MuLisp. Точечное представление списков. Представление знаний.

Цель: Изучить основные типы данных MuLisp. Разобраться с точечной нотацией списков.


Лабораторная работа №6.

Тема: Изучение учебной версии интегрированной среды dlisp. Расширение библиотеки функций dlisp.

Цель: Ознакомиться с учебной версией интегрированной среды dlisp. Изучить ее возможности и особенности. Расширить библиотеку функций dlisp.


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

Часть лабораторных работ была выполнена студентами 5-го курса специальности «Компьютерные и интеллектуальные системы и сети», после чего были проработаны (изучены и исправлены) недостатки, а так же расширен круг вопросов, раскрываемых в лабораторных работах.


Информация о работе «ЛИСП»
Раздел: Информатика, программирование
Количество знаков с пробелами: 170298
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
14593
2
12

... цифр с требуемым числом разрядов и, таким образом, запомнить любое самое большое число данной разрядности. Целью данной курсовой работы является ЛИСП-реализация конечных автоматов.1. Постановка задачи Конечный автомат – автомат, проверяющий допустимость слова на ленте, и возвращающий True / False (в данном случае Correct / Incorrect). Конечный автомат может двигаться по ленте только в одном ...

Скачать
16057
6
13

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

Скачать
14282
0
14

... новых рынков, биржевой игре, оценки политических рейтингов, выборе оптимальной ценовой стратегии и т.п. Появились и коммерческие системы массового применения. Целью данной курсовой работы является ЛИСП – реализация основных операций над нечеткими множествами. 1.Постановка задачи Требуется реализовать основные операции над нечеткими множествами: 1)   содержание; 2)   равенство; 3)   ...

Скачать
11806
0
10

... метода Ньютона на случай мнимых корней полиномов степени выше второй и комплексных начальных приближений. Эта работа открыла путь к изучению теории фракталов. Целью данной курсовой работы является Лисп – реализация нахождения корней уравнения методом Ньютона. 1. Постановка задачи Дано уравнение: . Требуется решить это уравнение, точнее, найти один из его корней (предполагается, что ...

0 комментариев


Наверх