Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Аса, aacaa, caacaac, bcaacaacb, cbcaacaacbc.Содержание книги
Поиск на нашем сайте Это пример прямой цепочки, поскольку с и каждая последующая сформированная строка сопоставляются с левой частью правила, а затем означивается правая часть правила. Во-вторых, можно использовать этот же набор правил не для формирования, а для распознавания палиндромов. Мы уже видели ранее, что, задавшись некоторой строкой, например ЬасаЬ, можно проследить, в какой последовательности применялись правила при построении этой строки. Строка bасаb соответствует правой части правила Р2; можно сказать, что правая часть правила Р2 "допускает" строку bacab. Означенная левая часть правила Р2 — это строка аса, которая соответствует правой части правила PI, a означенная левая часть этого правила — аксиома с. Таким образом, процесс распознавания успешно завершился — мы доказали, что bacab представляет собой палиндром. Описанный процесс распознавания — это пример применения обратной цепочки рассуждений. Начальная строка bacab и каждая очередная подстрока анализируются на соответствие с правыми частями имеющихся правил, а результатом является означивание левой части выбранного правила. Если в качестве исходной мы зададимся строкой acbcb, то для нее не удастся найти в имеющемся наборе правил такое, правая часть которого "допускала" бы эту строку, а значит, исходная строка не может быть палиндромом. В литературе по теории доказательства теорем прямая цепочка рассуждений, как правило, ассоциируется с "восходящим" процессом, т.е. рассуждениями от фактов к целям, а обратная цепочка — с "нисходящим" процессом, рассуждением от целей к фактам. Но, строго говоря, в отношении продукционных систем эти термины не являются синонимами. Например, вполне возможно реализовать нисходящий процесс в продукционной системе с прямой цепочкой рассуждений, если должным образом настроить локальный режим управления, например задать явное указание целей. В листинге 5.4 показана простая программа построения башни из блоков. Эта программа переключается между двумя задачами: выбором очередного блока и установкой блока в башню. В разделе шаблонов блоки представлены объектами, обладающими такими свойствами, как цвет, размер и положение. Если положение блока не определено, предполагается, что он находится в куче блоков (heap), еще не уложенных в башню. Шаблон on предоставляет в наше распоряжение средство, позволяющее описать размещение блоков одного (upper) на другом (lower). Информацию о текущей фазе решения проблемы (поиск или установка) несет шаблон goal. Листинг 5.4. Набор правил для построения башни из блоков ;; СТРАТЕГИЯ РАЗРЕШЕНИЯ КОНФЛИКТОВ (declare (strategy mea)) ;; Шаблоны ;; Объект block характеризуется цветом, размером и положением, (deftemplate block (field color (type SYMBOL)) (field size (type INTEGER)) (field place (type SYMBOL))) ;; Вектор 'on' указывает, что блок <upper> ;; находится на блоке <lower>. (deftemplate on (field upper (type SYMBOL» (field lower (type SYMBOL)) (field place (type SYMBOL) (default heap)]) ;; Текущая цель (goal) может быть либо 'найти' (find), ;; либо 'уложить' (build), (deftemplate goal (field task (type SYMBOL))) ;; ИНИЦИАЛИЗАЦИЯ ;; Имеются три блока разных цветов и размеров. ;; Предполагается, что они находятся в куче. (deffacts the-facts (block (color red) (size 10)) (block(color yellow) (size 20)) (block (color blue) (size 30)) ) ;; ПРАВИЛА ;; Задать первую цель: найти первый блок, (defrule begin (initial-fact) => (assert (goal (task find)))) ;; Взять самый большой блок в куче (heap), (defrule pick-up ?my-goal <- (goal (task find)) ?my-block <- (block (size?S1) (place heap)) (not (block (color?C2) (size?S2&:(>-?S2?S1)) (place heap))) => (modify?my-block (place hand)) (modify?my-goal (task build))) ;; Установить первый блок в основание башни (tower). ;; Этот блок не имеет под собой никакого другого, (defrule place-first ?my-goal <- (goal (task build)) ?my-block <- (block (place hand)) (not (block (place tower))) => (modify?my-block (place tower)) (modify?my-goal (task find))) ;; Установить последующие блоки на тот, ;; что лежит в основании башни, (defrule put-down ?my-goal <- (goal (task build)) ?my-block <- (block (color?C0) (place hand)) (block (color?C1) (place tower))) (not (on (upper?C2) (lower?C1) (place tower))) => (modify?my-block (place tower)) (assert (on (upper?CO) (lower?C1) (place tower))) (modify?my-goal (task find))) ;; Если в куче больше нет блоков, прекратить процесс, (defrule stop ?my-goal <- (goal (task find)) (not (block (place heap))) => (retract?my-goal)) Обратите внимание на то, что порядок перечисления правил в программе не имеет значения. В программе управления роботом, представленной в листинге 5.3, правило прекращения выполнения стояло в списке первым, а в этой программе оно стоит в самом конце списка. Трассировку выполнения приведенной программы и некоторые комментарии вы найдете во врезке 5.4.
|
||
|
Последнее изменение этой страницы: 2021-07-18; просмотров: 128; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.176 (0.008 с.) |