Представлення неточних знань та стратегії неточного виводу в умовах невизначеності, Детальна інформація
Представлення неточних знань та стратегії неточного виводу в умовах невизначеності
Об”єкти.
Об”єкти в системі СИКОН розділяються на дві категорії: примітивні типи і приклади класів. На об”єкти примітивного типу зсилаються просто задаючи їх значення. Вони створюються і викреслюються автоматично по мірі необхідності. Об”єкти примітивного типу не мають імен або слотів, а їх класи являються напередвизначеними в системі.
На приклади класу зсилаються по імені або по адресу і вони створюються і викреслюються механізмом повідомлень (messages) та спеціальними функціями. Властивості об”єкту, який є прикладом класу виражаються множиною слотів, які об”єкт отримує від свого класу. Клас є стереотип для представлення загальних властивостей і поведінки об”єкту, який є прикладом цього класу. Поведінка об”єкту описується в термінах процедурного коду, який називається message-handler. Сам message-handler приєднується до класу об”єктів. Маніпуляції з об”єктами виконуються шляхом передачі їм повідомлення з допомогою функції SEND. Приклад класу створюється з допомогою сонструкції defclass.
Як простий приклад ми визначим клас СКАНЕР, який є підкласом комп”ютерної периферії (ПЕР), і двох прикладів класу СКАНЕР – Astra-2100U та Astra-2200. Ми також визначимо message-handler, який буде друкувати слоти активного прикладу (того, якому посилається повідомлення):
(defclass СКАНЕР(is a ПЕР)
(slot розв”язність (create-accessor read-write)) (slot формат(create-accessor read-write))
(slot глибина кольору(create-accessor read-write)))
(definstance СКАНЕР-objects
(Astra-2100U of СКАНЕР (формат А4) (розв”язність 600*1200) (глибина кольору 36 bit))
(Astra-2200 of СКАНЕР (формат A4) (розв”язність 600*1200) (глибина кольору 36 bit)))
(defmessage-handler СКАНЕР Print-slots (PP instance))
(SEND Astra-2200 of СКАНЕР Print-slots)
Message handler Print-slots буде працювати для всіх підкласів, які ми можемо визначити для класу СКАНЕР. Головна різниця між об”єктом і невпорядкованим фактом заключається в понятті успадкування (inheritance). Успадкування дозволяє описати властивості та поведінку класу в термінах інших класів. Система СИКОН підтримує множинне успадкування : клас може прямо успадковувати слоти і message handlrer’и від більше чим від одного класу.
Продукційні правила.
Синтаксис
(defrule <ім”я правила> [<коментар>] [<декларація>]
<умовний елемент>* ; антецедент або Ліва Частина (ЛЧ)
=> <дія>*) ; консеквент або Права Частина (ПЧ)
Символ “*” в визначенні означає один або множину елементів зв”язаних кон”юнкцією, текст після символу “;” означає коментар.
Правило є сукопність умов (ЛЧ) і дій (ПЧ), які повинні бути здійснені при виконанні умов. Умовний елемент лівої частини правила називається також паттерном ( patterns). Стрілка (=>) відділяє ЛЧ від ПЧ. Правила визначаються з допомогою конструкції defrule.
Виконання правил (або запалення) базується на існуванні або неіснуванні паттернових сутностей(фактів або об”єктів). Машина виводу системи СИКОН робить спроби порівняти паттерни ЛЧ з паттерновими сутностями поточного стану системи і застосовує дію правої частини. Дія правила є функція, яка типово не повертає значення, а здійснює деяку корисну дію, таку як затвердити (assert) або викреслити (retract).
Приклад правила:
(defrule приклад-правила (рефріжератор світло включене) (рефріжератор двері відчинені)
=> (assert (рефріжератор їжа зіпсована)))
Стратегія розв”язування конфліктів.
Якщо всі паттерні правила порівнюються з паттерновими сутностями поточного стану системи, правило активується і ставиться на порядок денний (agenda). Порядок денни є сукупністю активацій тих правил, які порівнялись з паттернами сутності. Окрема підмножина правил може бути згрупована в модулі з допомогою конструкцій defmodule. Кожний модуль має свій порядок денний. Коли є багато активацій на порядку денному машина виводу визначає яку активацію слід запалити. Термін запалення означає, що СИКОН вибрала відповідне правило для виконання з порядку денного. Порядок денний діє подібно стеку. СИКОН впорядковує активації на порядку денному в термінах зростаючого пріорітету. СИКОН завжди виконує дію правої частини верхнього правила на порядку денному. Це правило потім видаляється з порядку денного і виконується дія нового верхнього правила порядку денного. Цей процес продовжується поки не залишиться ні однієї активації або не зустрінеться команда зупинитись.
Впорядкування на порядку денному базується на таких факторах:
Заново активоване правило розміщається вище всіх правил з нижчим пріорітетом та нижче всіх правил з вищим пріорітетом;
Серед правил рівного пріорітету використовується поточна стратегія розв”язування конфліктів, яка визначає розміщення серед інших правил рівного пріорітету.
СИКОН забезпечує сім стратегій розв”язування конфліктів подібних стратегіям системи OPS5 [3]. Поточна стратегія може бути установлена використовуючи команду set-strategy (яка буде перевпорядковувати порядок денний з допомогою нової стратегії).
Об”єкти в системі СИКОН розділяються на дві категорії: примітивні типи і приклади класів. На об”єкти примітивного типу зсилаються просто задаючи їх значення. Вони створюються і викреслюються автоматично по мірі необхідності. Об”єкти примітивного типу не мають імен або слотів, а їх класи являються напередвизначеними в системі.
На приклади класу зсилаються по імені або по адресу і вони створюються і викреслюються механізмом повідомлень (messages) та спеціальними функціями. Властивості об”єкту, який є прикладом класу виражаються множиною слотів, які об”єкт отримує від свого класу. Клас є стереотип для представлення загальних властивостей і поведінки об”єкту, який є прикладом цього класу. Поведінка об”єкту описується в термінах процедурного коду, який називається message-handler. Сам message-handler приєднується до класу об”єктів. Маніпуляції з об”єктами виконуються шляхом передачі їм повідомлення з допомогою функції SEND. Приклад класу створюється з допомогою сонструкції defclass.
Як простий приклад ми визначим клас СКАНЕР, який є підкласом комп”ютерної периферії (ПЕР), і двох прикладів класу СКАНЕР – Astra-2100U та Astra-2200. Ми також визначимо message-handler, який буде друкувати слоти активного прикладу (того, якому посилається повідомлення):
(defclass СКАНЕР(is a ПЕР)
(slot розв”язність (create-accessor read-write)) (slot формат(create-accessor read-write))
(slot глибина кольору(create-accessor read-write)))
(definstance СКАНЕР-objects
(Astra-2100U of СКАНЕР (формат А4) (розв”язність 600*1200) (глибина кольору 36 bit))
(Astra-2200 of СКАНЕР (формат A4) (розв”язність 600*1200) (глибина кольору 36 bit)))
(defmessage-handler СКАНЕР Print-slots (PP instance))
(SEND Astra-2200 of СКАНЕР Print-slots)
Message handler Print-slots буде працювати для всіх підкласів, які ми можемо визначити для класу СКАНЕР. Головна різниця між об”єктом і невпорядкованим фактом заключається в понятті успадкування (inheritance). Успадкування дозволяє описати властивості та поведінку класу в термінах інших класів. Система СИКОН підтримує множинне успадкування : клас може прямо успадковувати слоти і message handlrer’и від більше чим від одного класу.
Продукційні правила.
Синтаксис
(defrule <ім”я правила> [<коментар>] [<декларація>]
<умовний елемент>* ; антецедент або Ліва Частина (ЛЧ)
=> <дія>*) ; консеквент або Права Частина (ПЧ)
Символ “*” в визначенні означає один або множину елементів зв”язаних кон”юнкцією, текст після символу “;” означає коментар.
Правило є сукопність умов (ЛЧ) і дій (ПЧ), які повинні бути здійснені при виконанні умов. Умовний елемент лівої частини правила називається також паттерном ( patterns). Стрілка (=>) відділяє ЛЧ від ПЧ. Правила визначаються з допомогою конструкції defrule.
Виконання правил (або запалення) базується на існуванні або неіснуванні паттернових сутностей(фактів або об”єктів). Машина виводу системи СИКОН робить спроби порівняти паттерни ЛЧ з паттерновими сутностями поточного стану системи і застосовує дію правої частини. Дія правила є функція, яка типово не повертає значення, а здійснює деяку корисну дію, таку як затвердити (assert) або викреслити (retract).
Приклад правила:
(defrule приклад-правила (рефріжератор світло включене) (рефріжератор двері відчинені)
=> (assert (рефріжератор їжа зіпсована)))
Стратегія розв”язування конфліктів.
Якщо всі паттерні правила порівнюються з паттерновими сутностями поточного стану системи, правило активується і ставиться на порядок денний (agenda). Порядок денни є сукупністю активацій тих правил, які порівнялись з паттернами сутності. Окрема підмножина правил може бути згрупована в модулі з допомогою конструкцій defmodule. Кожний модуль має свій порядок денний. Коли є багато активацій на порядку денному машина виводу визначає яку активацію слід запалити. Термін запалення означає, що СИКОН вибрала відповідне правило для виконання з порядку денного. Порядок денний діє подібно стеку. СИКОН впорядковує активації на порядку денному в термінах зростаючого пріорітету. СИКОН завжди виконує дію правої частини верхнього правила на порядку денному. Це правило потім видаляється з порядку денного і виконується дія нового верхнього правила порядку денного. Цей процес продовжується поки не залишиться ні однієї активації або не зустрінеться команда зупинитись.
Впорядкування на порядку денному базується на таких факторах:
Заново активоване правило розміщається вище всіх правил з нижчим пріорітетом та нижче всіх правил з вищим пріорітетом;
Серед правил рівного пріорітету використовується поточна стратегія розв”язування конфліктів, яка визначає розміщення серед інших правил рівного пріорітету.
СИКОН забезпечує сім стратегій розв”язування конфліктів подібних стратегіям системи OPS5 [3]. Поточна стратегія може бути установлена використовуючи команду set-strategy (яка буде перевпорядковувати порядок денний з допомогою нової стратегії).
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021