Материал: 3130

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«Воронежский государственный лесотехнический университет им. Г.Ф. Морозова»

Интеллектуальные системы и технологии

Методические указания к лабораторным работам для студентов по направлению подготовки 09.03.02 – Информационные системы и технологии

Воронеж 2016

УДК 681.3

Юдина, Н. Ю. Интеллектуальные системы и технологии Текст : методические указания к лабораторным работам для студентов по направлению подготовки 09.03.02 – Информационные системы и технологии / Н. Ю. Юдина ; М-во образования и науки РФ, ФГБОУ ВО «ВГЛТУ». – Воронеж, 2016. – 32 с.

Печатается по решению учебно-методического совета ФГБОУ ВО «ВГЛТУ им. Г.Ф. Морозова» (протокол № __ от ____ 2016 г.)

Рецензент заведующий кафедрой электротехники и автоматики ФГБОУ ВО Воронежский ГАУ д-р техн. наук, проф. Д. Н. Афоничев

2

Оглавление

 

ЛАБОРАТОРНАЯ РАБОТА №1. «Экспертные оболочки» ...................................

4

2.1. Общие сведения о CLIPS..............................................................................

4

2.2. Программирование в CLIPS .........................................................................

4

ЛАБОРАТОРНАЯ РАБОТА №2. «Логическое программирование»..................

10

ЛАБОРАТОРНАЯ РАБОТА №3. «Разработка экспертной оболочки»...............

19

ЛАБОРАТОРНАЯ РАБОТА №4: «Нечеткая логика» ...........................................

22

ЛАБОРАТОРНАЯ РАБОТА №5: «Алгоритмы нейронных сетей» .....................

25

Многослойные сети прямого распространения ..............................................

26

Алгоритм обратного распространения ................................................................

27

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ ...................................................

29

3

ЛАБОРАТОРНАЯ РАБОТА №1. «Экспертные оболочки» Цель работы:

1.Изучение языка процедурного программирования оболочки CLIPS.

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

Теоретическое введение. 2.1. Общие сведения о CLIPS

CLIPS (С Language Integrated Production System) является одним из рас-

пространенных инструментальных средств разработки экспертных систем (ЭС). CLIPS использует продукционную модель представления знаний и поэтому содержит три основных элемента:

1.список фактов (представляет исходное состояние проблемы)

2.базу знаний (преобразуют состояние проблемы к решению)

3.блок вывода Отличием данной системы от аналогов является то, что она полностью

реализована на языке С. В CLIPS используется оригинальный LIPS-подоб-ный язык программирования, ориентированный на разработку ЭС. Кроме того, CLIPS поддерживает еще две парадигмы программирования: объектноориентированную и процедурную. Аспекты объектно-ориентированного программирования в CLIPS рассматриваться не будут.

2.2. Программирование в CLIPS 2.2.1. Простые типы данных

В CLIPS предусмотрено восемь простых типов данных: float, integer, symbol, string, external-address, fact-address, instance-name и instance-address.

Для числовой информации используются типы float и integer, символьной

– symbol и string. При записи числа используются цифры (0-9), десятичная точка (.), знак (+) или (-) и (е) при экспоненциальном представлении. Количество значащих цифр зависит от аппаратной реализации. Примеры целых чисел: 237, 15, +12, -32. Примеры чисел с плавающей точкой: 237е3, 15.09, +12.0, -32.3е-7.

Последовательность символов, которая не удовлетворяет числовым типам, обрабатывается как тип данных symbol. Тип данных symbol в CLIPS – последовательность символов, состоящая из одного или нескольких любых печатных символов кода ASCII. Примеры выражений символьного типа: foo,

Hello, B76-HI, bad_value, 127А, 742-42-42, @+=-%, Search. Тип данных string -

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

4

ные кавычки, то перед ними необходимо поместить символ (\). Например:

"foo", "a and b", "I number", "a\"quote".

2.2.2. Переменные

Идентификатор переменной всегда начинается с вопросительного знака, за которым следует ее имя. Примеры переменных: ?х, ?sensor, ?noun, ?color.

Переменные описываются

(defrule make-quack

и получают значения

(duck-sound ?sound)

в левой части правила.

=>

 

(assert (sounds-is ?sound) )

Значение переменной

(defrule addition

изменяется в правой части

(numbers ?x ?y)

при помощи функции bind.

=>

 

(assert (answer (+ ?x ?y)))

 

(bind ?answer (+ ?x ?y)

 

(printout t "answer is " ?answer crlf))

Переменной может быть

(defrule get-married

присвоено значение адреса факта.

?duck <- (bachelor Dopey)

Это может оказаться удобным

=>

при необходимости манипули-

(retract ?duck))

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

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

2.2.3. Функции

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

в CLIPS предусмотрен ряд стандартных арифметических и математических функций. Среди них: + (сложение ), - (вычитание ), * (умножение), / (деление), ** (возведение в степень), Abs (определение абсолютного значения), Sqrt (вычисление квадратного корня), Mod (взятие по модулю), Min (нахождение минимума), Мах

5

Источник: https://studfile.net/preview/16413162/