ВуиТ – Волжский Университет имени Татищева.
Дисциплина: интеллектуальные информационные технологии.
Экспертные программы и искусственный интеллект.
Лабораторные работы по таким программам, как Clips, Cubicalc, Neural Network Wizard.
Готовые лабораторки будут полезными не только для студентов, но и для всех желающих ознакомиться с программным обеспечением для дисциплины
ИИТ.
Также в лабораторных работах можно ознакомиться с основными приемами работы с вышеуказанными программами, с командами, операторами и т. д.
| Cherry-Style.Ru |
Мобильный онлайн-журнал
В качестве благодарности за столь редкий файл прошу зарегистрироваться на сайте:).
Для Вас это бесплатно и очень быстро, а нам будет приятно.
Лабораторная работа №1.
Задание 1. Основы работы с фактами.
1. Запустить систему CLIPS и вывести на экран диалоговое окно фактов данной системы, отражающее текущее наполнение фактами базы знаний.
2. Посредством команды assert внести в систему следующие факты: 1) today-credit-rating high 2) yesterday-credit-rating low 3) tomorrow-credit-rating high. Обратить внимание на факты, отображающиеся в окне фактов. Какой номер имеет факт yesterday-credit-rating low?
Факт «yesterday-credit-rating low» имеет номер 1.
3. Вывести на экран список всех фактов.

4. Удалить из базы фактов yesterday-credit-rating low. Какие факты остались в системе? Какой номер у факта today-credit-rating high? Какой номер у факта tomorrow-credit-rating high?

В системе остались факты today-credit-rating high и tomorrow-credit-rating high. Факт tomorrow-credit-rating high имеет номер 2.
5. Дать команду на удаление факта с номером 1. Какая ошибка при этом возникла? Объяснить ошибку?
Факт под номером 1 не найден. Это объясняется тем, что под номером 1 находился факт yesterday-credit-rating low, который был удалён.
6. Удалить факт с номером 0. Внести в систему факт today-credit-rating low. Какой номер имеет данный факт? Удалить все факты из базы командой (clear).

Факт today-credit-rating low находится в системе под номером 3.
С какого номера начнут заноситься следующие факты? Дать команду (reset). С какого номера начнут теперь заноситься следующие факты? Что за факт добавился в систему после команды reset?

Следующие факты начнутся с номера 0. После команды reset в систему добавляется исходный факт initial-fact под номером 0.
Задание 2. Работа с фактами.
1. С помощью команды deffacts внести в базу следующие факты: today-is rainy, yesterday-was rainy, tomorrow-will sunny.
2. Вывести список фактов, существующих в базе знаний на экран. Какой номер имеет каждый из внесенных фактов?

Факт today-is rainy – 1, yesterday-was rainy – 2, tomorrow – 3.
3. Удалить из базы факт yesterday-was rainy.
4. С помощью команды undeffacts удалить из базы все внесенные факты. Дать команду (facts). Убедиться, что в базе не осталось ни одного факта. Если факты остались, то объяснить, где Вы допустили ошибку и исправить ее.

Остался только исходный факт.
5. Очистить базу фактов системы.
Очистка базы фактов осуществляется командой (clear), которая в т. ч. удаляет исходный факт.
Задание 3. Работа с правилами.
Разработать систему моделирования действий пешехода на светофоре, функционирующую по правилам: 1. Если цвет зеленый, то добавить в базу факт о том, что пешеход идет; 2. Если цвет желтый, то добавить факт о том, что пешеход готовится идти; 3. Если цвет красный, то добавить в базу факт о том, что пешеход стоит. Проверить работу системы при различных вариантах цвета светофора.

Задание 4. Работа с переменными и с адресами фактов.
Внести в базу знаний системы множество фактов о величине прибыли людей. Факты должны иметь вид ВЕЛИЧИНА-ПРИБЫЛИ ИМЯ-ЧЕЛОВЕКА. Величину прибыли выразить в качественном виде (Высокая (HIGH), низкая (LOW), средняя (MIDDLE)). Внести в базвносящее в базу знаний факты вида (RICH ИМЯ-ЧЕЛОВЕКА) для всех людей, прибыль которых является высокой. Запустить программу и проверить результат ее выполнения, а также выводящее имена данных людей на экран.

ЗАДАЧА о принятии решения о выдаче клиенту банковского кредита.
Задача выполнена в CLIPS MDI EDITOR:

И импортирована в CLIPS 6.0:

Пример работы:

Лабораторная работа №2.
Знакомство с системой CubiCalc на примере модели управления грузовиком TRACKXY.
1. Запустить систему CubiCalc и познакомиться с основными функциями меню данной системы.
2. Загрузить демонстрационную программу TRUCKXY - модель системы управления грузовиком для въезда его в узкие ворота.
3. В режиме пошагового исполнения (клавиша (F8)) поработать с данной моделью, запустив ее несколько раз, исследовав траекторию движения грузовика (окно Track Yard), активацию нечетких правил (окно X vs Y activation), результат нечеткого вывода в виде угла нечеткого множества угла поворота руля (окно Theta Resultant) (рис. 2). Несколько траекторий движения грузовика внести в отчет по лабораторной работе.



3. Вызвать пункт меню Project -> Variables, изучить все линвистические переменные модели TRACKXY, изучить их семантику и ответить на следующие вопросы (ответы на них внести в отчет):
3.1. Сколько переменных, и какие присутствуют в разработанной модели?
В модели присутствуют семь переменных: Phi, Phi135, Phi45, Speed, Theta, X, Y.
3.2. Какие типы переменных поддерживает система CubiCalc?
Fuzzy input (входные переменные), fuzzy input (выходные переменные), constant (переменная с постоянным значением), temporary (временные).
3.3. Какие переменные в модели TRACKXY являются входными, какие выходными, какие временными?
Phi, Phi135, Phi45, X, Y – входные; Speed - временная; Theta – выходная переменная.
3.4. Что понимается в модели CubiCalc под понятием «Повернуть руль намного против часовой стрелки»? «Находиться очень близко к центру слева»? Внесите их в отчет и дайте естественно языковую интерпретацию их значениям.
Под понятием «Повернуть руль намного против часовой стрелки» понимается изменение текущего значения выходной переменной Theta на значение NB. «Находиться очень близко к центру слева» - текущее значение входной переменной X в позиции LCTR.
3.5. Для каждой из нечетких переменных модели проинтерпретировать два произвольных их значения (их функции принадлежности). Внести их в отчет и проинтерпретировать семантику.
Phi (ориентация грузовика):
VLO – 180-360º (намного левее от нулевого угла);
L180 – 150-180º (левее 180 градусов).
Phi45 (по отношению к 45-ти градусам):
VL45 – 225-30º (намного правее 45 градусов);
R45 – 45-65º (правее 45 градусов).
Phi135 (по отношению к 135-ти градусам):
L135 – 110-135º (левее 135 градусов);
VR135 – 150-315º (намного правее 135 градусов).
X (горизонтальная позиция):
LCTR – 40-50 (очень близко к центру слева);
LG_RCTR – 50-70 (близко к центру справа).
Y (расстояние до цели, вертикальная позиция):
LARGE – от 15 до 100 (большое);
SMALL – от -10 до 24,5 (маленькое).
Theta (поворот руля):
NM – от -10 до -2,5 (средне против часовой стрелки);
PB – от 6,25 до 30 (намного по часовой стрелке).
4. Войти в раздел Project -> Rules и изучить правила, по которым функционирует модель TRUCKXY. Ответить на следующие вопросы:
4.1. Сколько правил включает нечеткая модель системы?
Модель включает в себя 50 правил.
4.2. Переведите на естественный язык 10 любых правил данной системы и внесите их естественно-языковую интерпретацию в отчет по лабораторной работе.
Y LARGE, X CENTER, Phi VL90 : Theta PM;
Если расстояние большое И грузовик более-менее в центре И ориентация грузовика намного левее 90º, ТО повернуть руль средне по часовой стрелке.
Y LARGE, X LG_LEFT, Phi VL45 : Theta PB;
Если расстояние большое И грузовик намного левее центра И ориентация намного левее 45-ти градусов, ТО повернуть руль намного по часовой стрелке.
Y LARGE, X LG_LCTR, Phi45 VL45 : Theta PB;
Если расстояние большое И грузовик близко к центру слева И ориентация намного левее 45-ти градусов, ТО повернуть руль намного по часовой стрелке.
Y LARGE, X LG_RCTR, Phi135 VL135 : Theta PM;
Если расстояние большое И грузовик близко к центру справа И ориентация намного левее 135-ти градусов, ТО повернуть руль средне по часовой стрелке.
Y LARGE, X LG_RIGHT, Phi135 VL135 : Theta PB;
Если расстояние большое И грузовик намного правее центра ориентация намного левее 135-ти градусов, ТО повернуть руль намного по часовой стрелке.
Y SMALL, X LEFT, Phi VL0 : Theta PB;
Если расстояние малое И грузовик левее центра И ориентация намного левее от нулевого угла, ТО повернуть руль намного по часовой стрелке.
Y SMALL, X LCTR, Phi VL0 : Thena PM;
Если расстояние малое И грузовик очень близко к центру слева И ориентация намного левее от нулевого угла, ТО повернуть руль средне по часовой стрелке.
Y SMALL, X CENTER, Phi VL90 : Theta PB;
Если расстояние малое И грузовик более-менее в центре И ориентация грузовика намного левее 90º, ТО повернуть руль намного по часовой стрелке.
Y SMALL, X RCTR, Phi VL180 : Theta PM;
Если расстояние малое И грузовик очень близко к центру справа И ориентация грузовика намного левее 180º, ТО повернуть руль средне по часовой стрелке.
Y SMALL, X RIGHT, Phi VL180 : Theta PB;
Если расстояние малое И грузовик правее центра И ориентация грузовика намного левее 180º, ТО повернуть руль намного по часовой стрелке.
5. Изучите действия, которые выполняются на фазе инициализации системы?
При инициализации системы определяется начальное расстояние грузовика до ворот (Y); начальная горизонтальная позиция грузовика, относительно ворот (X); ориентация направленности грузовика.
6. Во вкладке Simulation изучите действия, по которым моделируется поведение системы на каждой итерации.
Phi=angle360 (Phi+Theta) – система моделирует направление исходя из суммы направления на предыдущей итерации и градуса поворота руля.
Phi45 = Phi, Phi135 = Phi – ориентация грузовика по отношению к 45-ти и 135-ти градусам равна ориентации грузовика.
X=X+(Speed*cosD(Phi)) – система рассчитывает следующее горизонтальное расположение грузовика руководствуясь значением текущего горизонтального положения, а также значением скорости и направления.
Y=Y-(Speed*sinD(Phi)) - система рассчитывает следующее расстояние грузовика до ворот, руководствуясь значением текущего расстояния, а также значением скорости и направления.
7. Во вкладке Plots изучите графики, которые отражают результаты работы системы. Какие типы графиков доступны для создания?
X-Y Scatter Chart – график пары перменных X и Y.
Polar plot – график переменных в полярных координатах.
Strip Chart – график переменных во времени.
Activisation plot – отображение уровней активизации.
Resultant plot – график отображения нечёткого множества.
9. Попытаться изменить функционирование. После этого заново запустить модель и изучить, насколько корректно она функционирует, будет ли грузовик въезжать в ворота в данном случае.
Изменена скорость движения до двух едениц:

Изменён ряд значений X:

В обоих случаях грузовик успешно продолжает въезжать в ворота.
Задание 1.
Задача: имеется некая техническая система, на вход которой подается информация с двух датчиков – датчика температуры (пределы изменения 0 – 100° С) и давления (пределы изменения 100 – 1000МПа).

Назначение системы – управление вентилем подачи пара согласно набору правил.

Модель изменения температуры и давления (simulation) после выполнения каждого цикла имеет следующий вид:
![]()
T – температура: cold (малая), warm, hot(большая).
D – давление: low(малое), middle, high (большое).
V – положение вентиля: vl (влево), ml, ll, c, lr, mr, vr(вправо).
Перед первым запуском, проинициализированы данные переменные следующим образом:
![]()
Графики, выданные системой после 10-ти тысяч итераций:

На графике отображено положение вентиля на десятитысячном шаге.

Положение вентиля относительно температуры.

Соотношение положение вентиля (горизонтально) и температуры (верт.).

Фрагмент графика изменения давления в течении времени.

График положения вентиля относительно давления.
Система работает стабильно, придерживаясь, в основном, средней температуры и среднего давления.
Задание № 2.
Задание: входами технической системы является информация с трех датчиков – яркость света (1-1000Лк), температура воды (0-60), давление (МПа).

Назначение системы – управление углом поворота вентиля [-90;90] согласно следующему набору правил:

Модель изменения яркости, температуры и давления (simulation) после выполнения каждого цикла имеет следующий вид:

Перед первым запуском, проинициализированны данные переменные следующим образом:
![]()
Графики, отображающие работу системы:

Значительное снижение давления в начале работы. В дальнейшем, система работает стабильно, без резких скачков давления и температуры.
Лабораторная работа №3.
Задание № 1. Задача прогнозирования курса доллара на день вперед.
1. Подготовьте обучающую выборку для обучения нейронной сети прогнозирования курса доллара:
x1 x2 x3 x4 y1
26.789
26.793 26.8
26.689 26.8
26.225
26.8364
26.805
26.764
26.705 26.6
26.764 26.7
26.998
26.6672
26.7446
26.7379
26.7295
26.7542
26.7222
26.7406
26.7714
26.7708
26.7625
26.6965
26.6764
26.698
26.715
26.798 26.8
26.715 26.7
26.715
26.8974
26.7674
26.8
2. Обучить нейронную сеть в пакете NNW для распознавания курса доллара:
3. Исследовать корректность работы нейронной сети (10 примеров с известными курсами доллара за четыре дня).
(В скобках – известный заранее результат).
26.
26.689 26.8915
26.8.
26.
26.764 26.7045
26.6.
26.7.
26.7.
26.7.
26.6.
4. На базе нейронной сети спрогнозировать курс доллара на неделю вперёд:
26.7541; 26.7496; 26.8281; 26.7964; 26.8333; 26.7952; 26.7905.
Задание №2. Распознаватель цифр на базе нейронной сети.
1. Подготовить 20 битовых масок для двух цифр.

2. Подготовить обучающую выборку для обучения нейронной сети, распознающей цифры.
x1 y1
1
1
1
1
1
1
1
1
1
1
4
4
4
4
4
4
4
4
4
4
3. Обучит нейронную сеть для распознавания цифр.
4. Два тестовых примера с зашумлённостью:

Тест для цифры «1»
Результат: 1.
Результат: 1.
Тест для цифры «4»
Результат: 3.
Результат: 3.
Тест показал, что отклонение в распознавании цифр нейронной сетью незначительный. При округлении результатов, выданная распознанная цифра соответствует исходной заданной цифре.


