Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Представление знаний в ИС / Лабораторные работы (1).doc
Скачиваний:
35
Добавлен:
22.05.2015
Размер:
882.18 Кб
Скачать

Задание на лабораторную работу

Написать программу, определяющую является ли число n(номер варианта) простым. Для хранения числаnиспользовать глобальную переменную.

Порядок выполнения работы

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

  2. Реализовать алгоритм на языке CLIPS.

  3. Проверить результат работы программы для разных входных данных.

Требования к отчету

  1. Разработанный программный модуль на языке CLIPSс комментариями

  2. Результаты выполнения программного модуля

  3. Выводы.

Контрольные вопросы

  1. Какая конструкция языка CLIPSиспользуется для создания правил?

  2. Как организуется в CLIPSцикл? Приведите пример.

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

Эвристический подход к представлению знаний

Цель: научиться работать с фактами языка CLIPS, закрепить знания по работе с правилами, изучить составные величины

Вопросы для предварительного изучения

1. Изучить материал лекции 5.

2. Ознакомиться с материалом основной литературы.

3. Ознакомиться с материалами дополнительной литературы.

Краткие теоретические сведения

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

Функции работы составными величинами

Функция

Описание

create$

Создание составной величины

nth$

Получение конкретного элемента составной величины

member$

Поиск конкретного элемента составной величины

subsetp

Определение, не является ли одна составная величина подмножеством другой составной величины

delete$

Удаление конкретного элемента составной величины

explode$

Создание составной величины из строки

implode$

Создание строки из составной величины

subseq$

Извлечение подпоследовательности из составной величины

replace$

Замена элемента составной величины

insert$

Добавление новых элементов в составную величину

first$

Получение первого элемента составной величины

rest$

Получение остатка составной величины

length$

Определение числа элементов составной величины

delete-member$

Удаление заданных элементов составной величины

replace-member$

Замена заданных элементов составной величины

Функция create$ объединяет заданное количество выражений для создания составной величины. Независимо от количества полей, получившихся в результате, возвращаемое функцией значение всегда является составной вели­чиной. Вызов функции без аргументов возвращает составную величину с нулевой длиной.

(create$ <выражение>*)

Для получения конкретного поля составной величины предназначена функ­ция nth$.

(nth$ <целое> <составная-величина>)

Первый аргумент данной функции должен быть целым числом, большим или равным 1, который определяет индекс поля в составной величине, за­данной вторым аргументом. Если заданное число больше количества эле­ментов в составной величине, функция вернет значение nil. Значение, воз­вращаемое функцией, в любом случае является значением типа symbol.

Функция member$ возвращает индекс поля, если оно содержится в составной величине. Если первый аргумент этой функции — простая величина, кото­рая является каким-либо полем второго аргумента, то функция member$ вер­нет целое число — индекс соответствующего поля. Если первый аргумент — составная величина, и она представляет собой часть второго аргумента, то­гда функция возвращает два индекса — начала и конца первой составной величины во второй величине. В противном случае функция возвращает значение false.

(member$ <выражение> <составная-величина>)

Функция subsetp проверяет, не является ли одна составная величина подмножеством другой, т. е. содержатся ли все поля первой составной величи­ны и во второй составной величине. Если первая составная величина явля­ется подмножеством второй, функция возвращает значение true, в противном случае — false. Порядок полей не оказывает влияния на работу функции.