Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod_SHI.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.11 Mб
Скачать

7.4 Елементарні прийоми роботи з секціями

Будь-яка секція містить набір операторів які виконуються послідовно, якщо порядок їхнього виконання не змінений внаслідок використання логічних виразів, операторів do, do_section_of і ряду інших. Розглянемо це на прикладі секції start бази знань LAB_7.KB. Відредагуємо цю секцію, виконавши в головному меню Section -> Edit Section, а потім у списку, що з'явився вибравши start. Відкриється редактор опису секції, в яке додамо два нових оператора в самий початок цієї секції і один в її кінець:

 advice 'Починаємо консультацію'

call display ('list_films.txt')

. . .

advice 'Консультація закінчена.

         До побачення '

Другий оператор викличе на екран діалогове вікно, в якому відобразитися вміст текстового файлу list_films.txt, який представляє собою афішу фільмів по кінотеатрах. Її перегляд цілком резонний для вибору способу переміщення в конкретний кінотеатр. Природно, це можливо тільки в тому випадку, якщо цей файл існує. Він може бути створений в будь-якому зовнішньому текстовому редакторі, але така можливість існує і в середовищі ESTA. Для реалізації цієї можливості слід:

• В основному меню системи вибрати File -> New.

• З'явиться вікно (рис. 7.12), в якому треба вказати тип створюваного об'єкта Text File і натиснути кнопку ОК.

Рисунок 7.12 – Вікно вибору типу новостворюваного об'єкта

• Відкриється вбудований у систему ESTA текстовий редактор, в якому треба ввести вміст файлу афіші довільного змісту (рис. 7.13).

Group 63329

Рисунок 7.13 – Вікно вибору типу новостворюваного об'єкта

• По закінченню набору вмісту файлу слід натиснути кнопку Save на панелі інструментів і зберегти файл під ім'ям list_films.txt. Після чого текстової редактор можна закрити.

7.5 Елементарні прийоми роботи з параметрами

Параметри – це змінні, які визначають процес передачі управління між усіма секціями вихідної бази знань. Опис будь-якого параметра складається з області декларації та області типу. Для опису параметра використовується ряд опціональних полів, що залежать від конкретного типу параметра. Створимо три нові параметри:

• user_name – текстового типу, який визначатиме поточного користувача ЕС,

• view_list_films – логічного типу, який визначить бажання виведення афіші,

• v_sr – числового типу, що визначає середню швидкість руху до кінотеатру.

Для створення будь-якого нового параметра слід в головному меню вибрати Parameter -> New Parameter, а потім в діалоговому вікні вказати тип параметра, ввести його ім'я та натиснути кнопку ОК. Після цього ESTA відкриє вікно з шаблоном опису цього параметра, яке слід відредагувати.

Так, наприклад, при створенні нового текстового параметра user_name шаблон його опису матиме вигляд, аналогічний тому, що наведений на рис. 7.14.

Рисунок 7.14– Створення текстового параметра user_name

Після редагування опис цього параметра може мати вигляд:

parameter user_name: 'Ім'я користувача'

type text

explanation 'Система хоче з Вами познайомитися'

question 'Як вас звуть?'

Аналогічну послідовність дій треба виконати і при створенні нового логічного параметра view_list_films.

Рисунок 7.15– Створення логічного параметра view_list_films

Після редагування опис цього параметра може мати вигляд:

parameter view_list_films: ''

type boolean

explanation 'Чи повинна система завантажувати файл list_films.txt'

question user_name ', хочете переглянути афішу?'

Особливість опису параметра view_list_films полягає в тому, що в питанні на вибір значення цього параметра використовується значення параметра user_name. Якщо до моменту використання в системі параметра view_list_films значення параметра user_name не буде означено, то система автоматично намагатиметься встановити його значення.

Розглянемо приклад. З цією метою дещо видозмінимо секцію before_start, щоб її опис мав такий вигляд:

section before_start : ' '

advice 'Починаємо консультацію'

if view_list_films call display ('list_films.txt')

Зберігши зроблені зміни і запустивши режим консультації, отримаємо таку послідовність вікон (рис. 7.16), які будуть викликані роботою двох операторів секції before_start.

Рисунок 7.16 – Послідовність роботи системи

Якщо в секції before_start змінити опис першого оператора так, щоб у ньому був наявний параметр user_name:

section before_start : ' '

advice user_name '!!! Починаємо консультацію '

if view_list_films call display (' list_films.txt ')

то після запуску режиму консультації, отримаємо іншу послідовність вікон (рис. 7.17), які також відповідають роботі двох операторів секції before_start.

Рисунок 7.17 – Послідовність роботи системи

Таким чином, використання одного і того ж параметра, але в різних місцях опису секцій, може впливати на послідовність ходу проведення консультації.

Разом з тим відмова користувача від введення того чи іншого параметра може призвести до небажаного поводження системи. Так, наприклад, якщо користувач не вводитиме значення параметра user_name, то повідомлення та питання діалогових вікон будуть виглядати не так, як це було задумано. Позбутися цього можна, якщо передбачити перевірку на обов'язковість введення цього параметра:

section before_start : ' '

if user_name = ' ' (

advice 'Наступного разу не забудьте представитися',

exit

)

advice user_name '!!! Починаємо консультацію '

if view_list_films call display (' list_films.txt ')

Розглянемо ще один приклад використання параметрів. Нехай потрібно, щоб наша експертна система крім рекомендації по способу переміщення до кінотеатру, ще б радила потрібну середню швидкість руху. З цією метою створимо новий числовий параметр, опис якого може мати вигляд:

parameter v_sr: 'середня швидкість'

type number

rules

distance / time * 60 if time> 0.

Відобразимо значення цього параметра в кінці консультації. Для цього замінимо в секції start останній оператор на новий оператор, який буде мати вигляд:

advice 'Середня швидкість руху =' v_sr 'км / год'

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]