загрузка...
загрузка...
На головну

CLIPS як багатофункціональне середовище програмування (інженерії знань)

  1. Аналіз відомих реологічних методів опису взаємодії вібруючих робочих органів з порошковими середовищами
  2. Швидко змінюється довкілля
  3. Види і джерела іонізуючих випромінювань у виробничій, побутовій та навколишнього середовищах.
  4. Зовнішня і внутрішнє середовище бізнесу, її аналіз
  5. Зовнішня і внутрішнє середовище організації
  6. Зовнішня і внутрішнє середовище організації

Крім підтримки інтерпретатора породжують правил CLIPS володіє наступними функціональними можливостями:

  • для визначення стандартних функцій використовується синтаксис, подібний LISP;
  • надає в розпорядження розробника родові функції, аналогічні мультіметодам CLOS;
  • розпорядженні вбудованим об'єктно-орієнтованою мовою COOL, який, на відміну від CLOS, включає і засоби підтримки обміну повідомленнями.


 Звернення до стандартних функцій допускається включати в праву частину правил і в цьому випадку вони виконуються так, як якщо б були компонентом дій, специфіковані в правилі. Функції викликаються або з метою отримати побічний ефект, або для використання явно повертається функцією результату, який може бути збережений за допомогою оператора присвоювання. Для роботи зі змінними в цьому випадку використовується той же синтаксис, що і в мові опису правил. Наприклад, можна визначити функцію between (X, Y, 2), що оперує з цілими змінними. Ця функція буде перевіряти виконання нерівностей X | Y | Z:
 (Deffunction between (? Lb? Value? Ub)
 (And (<=? Lb? Value) (<=? Value? Ub))),
 Родові функцій (generic function) в CLIPS грають ту ж роль, що і перевантажуються оператори в мові C ++. Вони забезпечують можливість виконувати обробку різними методами послідовностей даних різного типу. Наприклад, для конкатенації двох строкових значень оператором "+" можна наступним чином перевантажити цей оператор:
 (Defmethod + ((? A STRING) (? B STRING)) (art-cat? A? B)}
 Тоді результатом обчислення виразу

(+ "Dog" "fish") буде "dogfish".
 У такій функції можна змішувати обмежені і необмежені параметри, причому обмеження може стосуватися типів даних на довільному рівні узагальнення, наприклад числових даних, цілих, позитивних цілих чисел і т.д.
 Обчислення родових функцій виконується під "наглядом" родового алгоритму диспетчеризація (generic dispatch algorithm), який формує індексований список відповідних методів. Методи з цього списку потім викликаються відповідно до рівня обмежень, зазначеному для параметрів при зверненні до функції. Алгоритм також бере до уваги будь-які керуючі програмні конструкції, представлені явно в тексті програми методу, наприклад call-next-method або override-next-method.
 Механізм передачі повідомлень реалізований за тим же способом, що і в мовах SmallTalk і LOOPS, і вимагає, щоб програміст розробив свій обробник повідомлень для кожного окремого класу. Диспетчер повідомлень працює так само, як в виконуючої системі мови CLOS, і розрізняє обробники типів primary, around, before і after.
 У програмі на мові CLIPS можна викликати і функції, написані на мові С, хоча це і виконується дещо незвично. Виконуюча система CLIPS може виступати в якості впровадженого додатки, тобто програма на CLIPS може бути скомпільована і скомпонована з програмою на мові С, яка буде викликати CLIPS-фрагменти як підпрограми. Це дозволяє впроваджувати функції штучного інтелекту в компоненти великих програмних комплексів.



Попередня   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   Наступна

Правило Байеса. | Методи пошуку рішень. | Пошук в просторі станів. | Пошук методом редукції. | Пошук рішень в ієрархії просторів. | Пошук рішень в альтернативних просторах. | Вибір методу рішення задач. | Класифікація інструментальних засобів. | Об'єктно-орієнтовані мови | Мови інженерії знань. |

загрузка...
© um.co.ua - учбові матеріали та реферати