courses:knowledge_representation_and_artificial_intelligence_systems:lab2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
courses:knowledge_representation_and_artificial_intelligence_systems:lab2 [2019/09/18 09:38]
andrey.suchkov [Таблица 1]
courses:knowledge_representation_and_artificial_intelligence_systems:lab2 [2019/10/30 07:23]
andrey.suchkov [Таблица 3]
Line 1: Line 1:
-====== Лабораторная работа №2: Построение ​экспертных систем ​с использованием неупорядоченных фактов (шаблонов) и различных типов условных элементов в антецедентах правил ======+====== Лабораторная работа №2: Построение ​ЭС с использованием неупорядоченных фактов (шаблонов) и различных типов условных элементов в антецедентах правил ======
 ===== Цель работы ===== ===== Цель работы =====
 Изучение примеров программирования экспертной системы с использованием неупорядоченных фактов (шаблонов) и различных типов условных элементов в антецедентах правил. Изучение примеров программирования экспертной системы с использованием неупорядоченных фактов (шаблонов) и различных типов условных элементов в антецедентах правил.
Line 23: Line 23:
 (object (name table) (location "​room"​) (weight 15)) (object (name table) (location "​room"​) (weight 15))
 </​code>​ </​code>​
-//​Синтаксис антецедентов правил.//​ Антецедент правила состоит из последовательности условных элементов -- УЭ (conditional elements - CEs), которые должны удовлетворяться,​ чтобы правило было помещено в агенду. В CLIPS используется шесть основных типов условных элементов:​ УЭ на основе образца,​ УЭ-проверка,​ УЭ <<​И>>,​ УЭ <<​ИЛИ>>,​ УЭ <<​НЕ>>,​ УЭ <<​существует>>,​ УЭ <<​для всех>>,​ логические УЭ. Ниже рассмотрены наиболее часто используемые типы условных элементов,​ необходимые для выполнения данной лабораторной работы.+//​Синтаксис антецедентов правил.//​ Антецедент правила состоит из последовательности условных элементов -- УЭ (conditional elements ​-- CEs), которые должны удовлетворяться,​ чтобы правило было помещено в агенду. В CLIPS используется шесть основных типов условных элементов:​ УЭ на основе образца,​ УЭ-проверка,​ УЭ <<​И>>,​ УЭ <<​ИЛИ>>,​ УЭ <<​НЕ>>,​ УЭ <<​существует>>,​ УЭ <<​для всех>>,​ логические УЭ. Ниже рассмотрены наиболее часто используемые типы условных элементов,​ необходимые для выполнения данной лабораторной работы.
  
 **УЭ на основе образца (УЭ-образец)** -- основной и чаще всего используемый тип условного элемента. Он состоит из совокупности ограничений на поля, масок полей (wildcards) и переменных,​ используемых в качестве ограничений для фактов и объектов,​ которые сопоставляются с образцом условного элемента. УЭ-образец удовлетворяется каждой сущностью,​ которая удовлетворяет его ограничениям. Ограничение на поле представляет собой в общем случае совокупность ограничений,​ которые используются для проверки единственного поля или слота факта или объекта. Ограничение может состоять из единственного литерала или из нескольких связанных ограничений. Кроме литеральных ограничений,​ поддерживает три других типа ограничений:​ связанные ограничения (connective constraints),​ предикатные ограничения и ограничения возвращаемым значением. **УЭ на основе образца (УЭ-образец)** -- основной и чаще всего используемый тип условного элемента. Он состоит из совокупности ограничений на поля, масок полей (wildcards) и переменных,​ используемых в качестве ограничений для фактов и объектов,​ которые сопоставляются с образцом условного элемента. УЭ-образец удовлетворяется каждой сущностью,​ которая удовлетворяет его ограничениям. Ограничение на поле представляет собой в общем случае совокупность ограничений,​ которые используются для проверки единственного поля или слота факта или объекта. Ограничение может состоять из единственного литерала или из нескольких связанных ограничений. Кроме литеральных ограничений,​ поддерживает три других типа ограничений:​ связанные ограничения (connective constraints),​ предикатные ограничения и ограничения возвращаемым значением.
Line 161: Line 161:
     - Изменить сформированные в п. //b.// правила путем добавления в антецеденты предикатных условных элементов для проверки типов значений слотов в соответствии с табл. 3.     - Изменить сформированные в п. //b.// правила путем добавления в антецеденты предикатных условных элементов для проверки типов значений слотов в соответствии с табл. 3.
     - Изменить сформированные в п. //c.// правила путем добавления в антецеденты условных элементов с ограничением по возвращаемому значению. Условия ограничения для различных вариантов приведены в табл. 4.     - Изменить сформированные в п. //c.// правила путем добавления в антецеденты условных элементов с ограничением по возвращаемому значению. Условия ограничения для различных вариантов приведены в табл. 4.
-<note tip>​Возраст поступления в университет определяется по формуле:​ $[age] - [year]$. Возраст окончания:​ $[age] + (5 - [year])$.</​note>​ 
 ===== Варианты заданий ===== ===== Варианты заданий =====
  
Line 177: Line 176:
 ^  № варианта ​ ^  Условие в антецеденте правила ​ ^  Сообщение,​ выводимое в консеквенте правила ​ ^ ^  № варианта ​ ^  Условие в антецеденте правила ​ ^  Сообщение,​ выводимое в консеквенте правила ​ ^
 |  1  |  Студент 2-го курса, средний балл не ниже 4.5  |  Студент ''<​name>''​ имеет средний балл ''<​aver_mark>''​. ​ | |  1  |  Студент 2-го курса, средний балл не ниже 4.5  |  Студент ''<​name>''​ имеет средний балл ''<​aver_mark>''​. ​ |
-|  2  |  Возраст студента 20 лет, специализации <<​hard>>​ или <<​soft>> ​ |  Студент ''<​name>''​ учится по специализации ''<​spec>''​. ​ |+|  2  |  Возраст студента 20 лет, специализации <<​hard>>​ или <<​soft>> ​ |  Студент ''<​name>''​ учится по специализации ''​<​nowiki>​<spec></​nowiki>''​. ​ |
 |  3  |  Специализация студента <<​ai>>,​ возраст -- не менее 20 лет ​ |  Возраст студента ''<​name>''​ ''<​age>''​ лет. ​ | |  3  |  Специализация студента <<​ai>>,​ возраст -- не менее 20 лет ​ |  Возраст студента ''<​name>''​ ''<​age>''​ лет. ​ |
 |  4  |  Средний балл студента 4.0, курс второй или четвертый ​ |  Студент ''<​name>''​ учится на ''<​year>''​ курсе со средним баллом 4.0.  | |  4  |  Средний балл студента 4.0, курс второй или четвертый ​ |  Студент ''<​name>''​ учится на ''<​year>''​ курсе со средним баллом 4.0.  |
Line 183: Line 182:
 |  6  |  Возраст студента 18 лет, средний балл -- выше 4.0  |  Студент ''<​name>''​ имеет средний балл ''<​aver_mark>''​. ​ | |  6  |  Возраст студента 18 лет, средний балл -- выше 4.0  |  Студент ''<​name>''​ имеет средний балл ''<​aver_mark>''​. ​ |
 |  7  |  Специализация студента <<​soft>>,​ не младше 4-го курса ​ |  Студент ''<​name>''​ учится по специализации "​soft"​ на ''<​year>''​ курсе. ​ | |  7  |  Специализация студента <<​soft>>,​ не младше 4-го курса ​ |  Студент ''<​name>''​ учится по специализации "​soft"​ на ''<​year>''​ курсе. ​ |
-|  8  |  Средний балл студента 4.5, специализация -- не <<​hard>> ​ |  Студенту ''<​name>''​ ''<​age>''​ лет, он учится по специализации ''<​spec>''​. ​ |+|  8  |  Средний балл студента 4.5, специализация -- не <<​hard>> ​ |  Студенту ''<​name>''​ ''<​age>''​ лет, он учится по специализации ''​<​nowiki>​<spec></​nowiki>''​. ​ |
 ==== Таблица 3 ==== ==== Таблица 3 ====
 ^  № варианта ​ ^  Проверяемые значения ​ ^  Сообщение,​ выводимое в консеквенте правила ​ ^ ^  № варианта ​ ^  Проверяемые значения ​ ^  Сообщение,​ выводимое в консеквенте правила ​ ^
-|  1  |  ''<​year>'',​ ''<​aver_mark>'' ​ |  Студент ''<​name>'':​ тип значения в слоте ​''​<​year>​'' ​-- integer, а в слоте ​''​<​aver_mark>​'' ​-- float. ​ | +|  1  |  ''<​year>'',​ ''<​aver_mark>'' ​ |  Студент ''<​name>'':​ тип значения в слоте <​year>​ -- integer, а в слоте <​aver_mark>​ -- float. ​ | 
-|  2  |  ''<​age>'',​ ''<​year>'' ​ |  Студент ''<​name>'':​ типы значений в слотах ​''​<age>'' ​и ''​<​year>​'' ​-- integer. ​ | +|  2  |  ''<​age>'',​ ''<​year>'' ​ |  Студент ''<​name>'':​ типы значений в слотах <age> и <​year>​ -- integer. ​ | 
-|  3  |  ''<​spec>'',​ ''<​aver_mark>'' ​ |  Студент ''<​name>'':​ тип значения в слоте ​''​<​spec>​'' ​-- string, а в слоте ​''​<​aver_mark>​'' ​-- float. ​ | +|  3  |  ''​<​nowiki>​<spec></​nowiki>'',​ ''<​aver_mark>'' ​ |  Студент ''<​name>'':​ тип значения в слоте ​<​nowiki>​<​spec>​</​nowiki> ​-- string, а в слоте <​aver_mark>​ -- float. ​ | 
-|  4  |  ''<​age>'',​ ''<​aver_mark>'' ​ |  Студент ''<​name>'':​ тип значения в слоте ​''​<age>'' ​-- integer, а в слоте ​''​<​aver_mark>​'' ​-- float. ​ | +|  4  |  ''<​age>'',​ ''<​aver_mark>'' ​ |  Студент ''<​name>'':​ тип значения в слоте <age> -- integer, а в слоте <​aver_mark>​ -- float. ​ | 
-|  5  |  ''<​year>'',​ ''<​spec>'' ​ |  Студент ''<​name>'':​ тип значения в слоте ​''​<​year>​'' ​-- integer, а в слоте ​''​<​spec>​'' ​-- string. ​ | +|  5  |  ''<​year>'',​ ''​<​nowiki>​<spec></​nowiki>'' ​ |  Студент ''<​name>'':​ тип значения в слоте <​year>​ -- integer, а в слоте ​<​nowiki>​<​spec>​</​nowiki> ​-- string. ​ | 
-|  6  |  ''<​age>'',​ ''<​spec>'' ​ |  Студент ''<​name>'':​ тип значения в слоте ​''​<age>'' ​-- integer, а в слоте ​''​<​spec>​'' ​-- string. ​ | +|  6  |  ''<​age>'',​ ''​<​nowiki>​<spec></​nowiki>'' ​ |  Студент ''<​name>'':​ тип значения в слоте <age> -- integer, а в слоте ​<​nowiki>​<​spec>​</​nowiki> ​-- string. ​ | 
-|  7  |  ''<​name>'',​ ''<​aver_mark>'' ​ |  Студент ''<​name>'':​ тип значения в слоте ​''​<​name>​'' ​-- symbol, а в слоте ​''​<​aver_mark>​'' ​-- float. ​ | +|  7  |  ''<​name>'',​ ''<​aver_mark>'' ​ |  Студент ''<​name>'':​ тип значения в слоте <​name>​ -- symbol, а в слоте <​aver_mark>​ -- float. ​ | 
-|  8  |  ''<​spec>'',​ ''<​name>'' ​ |  Студент ''<​name>'':​ тип значения в слоте ​''​<​spec>​'' ​-- string, а в слоте ​''​<​name>​'' ​-- symbol. ​ |+|  8  |  ''​<​nowiki>​<spec></​nowiki>'',​ ''<​name>'' ​ |  Студент ''<​name>'':​ тип значения в слоте ​<​nowiki>​<​spec>​</​nowiki> ​-- string, а в слоте <​name>​ -- symbol. ​ |
 ==== Таблица 4 ==== ==== Таблица 4 ====
 ^  № варианта ​ ^  Условный элемент с ограничением по возвращаемому значению ​ ^  Сообщение,​ выводимое в консеквенте правила ​ ^ ^  № варианта ​ ^  Условный элемент с ограничением по возвращаемому значению ​ ^  Сообщение,​ выводимое в консеквенте правила ​ ^
Line 204: Line 203:
 |  7  |  Оканчивает университет в возрасте старше 22 лет ​ |  Студент ''<​name>''​ оканчивает университет в возрасте старше 22 лет. ​ | |  7  |  Оканчивает университет в возрасте старше 22 лет ​ |  Студент ''<​name>''​ оканчивает университет в возрасте старше 22 лет. ​ |
 |  8  |  Поступил в университет в возрасте 18 лет ​ |  Студент ''<​name>''​ поступил в университет в возрасте 18 лет. ​ | |  8  |  Поступил в университет в возрасте 18 лет ​ |  Студент ''<​name>''​ поступил в университет в возрасте 18 лет. ​ |
 +<note tip>​Возраст поступления в университет определяется по формуле:​ $[age] - [year]$. Возраст окончания:​ $[age] + (5 - [year])$.</​note>​
 ===== Содержание отчёта ===== ===== Содержание отчёта =====
   * Цель работы.   * Цель работы.
courses/knowledge_representation_and_artificial_intelligence_systems/lab2.txt · Last modified: 2022/12/10 09:08 (external edit)