23670

Поиск решения со сменой подцелей

Лабораторная работа

Информатика, кибернетика и программирование

В процессе работы необходимо реализовать в среде CLIPS программу решения задачи построения башни из блоков. Вводные замечания Задача построения башни из блоков кубиков заключается в последовательном выборе из неупорядоченной кучи блоков и постановки их друг на друга. Процесс решения задачи представляет собой чередование двух фаз: выбора блока из кучи и установки его в башню. При этом больший по размерам блок не может ставиться на меньший по размерам и следовательно на каждом шаге решения задачи необходимо выбирать из кучи самый большой...

Русский

2013-08-05

33.5 KB

18 чел.

Лабораторная работа № 6

Тема: Поиск решения со сменой подцелей

Цель работы: Закрепить понимание принципов решения задач на основе продукционной модели с динамическим изменением подцелей в процессе решения. В процессе работы необходимо реализовать в среде CLIPS программу решения задачи построения башни из блоков.

Вводные замечания

Задача построения башни из блоков (кубиков) заключается в последовательном выборе из неупорядоченной кучи блоков и постановки их друг на друга. Процесс решения задачи представляет собой чередование двух фаз: выбора блока из кучи и установки его в башню. При этом больший по размерам блок не может ставиться на меньший по размерам и, следовательно, на каждом шаге решения задачи необходимо выбирать из кучи самый большой блок.

Каждый блок характеризуется размером, цветом и положением, поэтому для его описания можно использовать следующий шаблон:

(deftemplate block 

(slot size (type INTEGER))

(slot place (type SYMBOL))

(slot color (type SYMBOL))

)

Каждый блок может находиться либо в куче (heap), либо в руке (hand), когда он выбран из кучи, либо в башне (tower).

Результатом решения задачи должно быть взаимное положение блоков в башне, т. е. при выводе результата необходимо указать порядок блоков в башне по цвету. С этой целью для блоков, находящихся в башне, необходимо определить отношение, указывающее, какой блок (upper) на каком (lower) стоит:

(deftemplate on 

(slot upper (type SYMBOL))

(slot lower (type SYMBOL))

(slot place (type SYMBOL)(default heap))

)

Если блок ставится в основание башни, слоту place присваивается значение tower, а слоты upper и lower остаются неопределенными. Если блок ставится на другой блок, слотам upper и lower должны присваиваться значения цветов соответствующих блоков.

Поскольку процесс решения задачи представляет собой чередование фаз поиска в куче самого большого блока (find) и его установки в башню (build), необходимо иметь факт, определяющий текущую задачу. Его можно определить с помощью следующего шаблона:

(deftemplate goal 

(slot current-task (type SYMBOL))

)

Для решения задачи необходимы правила для:

  •  установки начального значения текущей задачи;
  •  выбора из кучи самого большого блока;
  •  установки первого блока в основание башни;
  •  установки в башню всех последующих блоков;
  •  определения окончания процесса, когда в куче нет больше блоков.

 

Правило установки начального значения текущей задачи должно активироваться исходным фактом (initial-fact) и устанавливать в качестве текущей задачи  find.

Правило выбора из кучи самого большого блока должно активироваться следующими условиями:

  •  текущая задача – find;
  •  наличие в куче блока, для которого не существует большего по размерам.

Действия правила:

  •  взять найденный блок в руку (изменить его местоположение на hand);
  •  изменить текущую задачу на build.

Правило установки блока в основание башни (первого блока) имеет следующие условия активации:

  •  текущая задача – build;
  •  имеется блок в руке;
  •  отсутствуют блоки в башне – нет блока, у которого значение слота place равно tower.

Действия правила:

  •  изменить местоположение блока в руке на tower;
  •  изменить текущую задачу на find.

Правило установки в башню последующих блоков имеет условия активации:

  •  текущая задача – build;
  •  имеется блок в руке (для него надо запомнить цвет);
  •  имеется блок в башне, на котором не стоит другой блок (для него также надо запомнить цвет);

Действия правила:

  •  модифицировать местоположение блока в руке на tower;
  •  установить факт, что новый блок находится на блоке, который был до этого верхним;
  •  изменить текущую задачу на find.

Правило определения окончания процесса должно активироваться, когда в куче больше нет блоков и удалять из рабочей памяти факт текущей задачи.

Порядок выполнения работы

1. Разработать программу на языке CLIPS, реализующую описанные выше правила, в соответствии с вариантом задания указанным в таблице (см. ниже).

Исходное состояние должно описываться конструкцией deffacts, содержащей четыре факта, соответствующих блокам в куче.

2. Вывод результатов на экран должен обеспечивать пошаговое отображение процесса построения башни.

Таблица вариантов заданий

№ варианта

Блок-1

(цвет/размер)

Блок-2

Блок-3

Блок-4

1

2

3

4

5

6

7

8

9

синий/10

красный/20

желтый/15

зеленый/10

коричневый/5

красный/10

желтый/12

белый/16

черный/18

зеленый/8

коричневый/5

красный/10

желтый/14

белый/25

черный/18

синий/10

красный/5

желтый/15

красный/18

желтый/12

белый/25

черный/18

синий/14

желтый/15

зеленый/8

коричневый/15

красный/20

желтый/15

зеленый/8

коричневый/5

красный/11

желтый/12

белый/25

черный/18

синий/10

белый/10


 

А также другие работы, которые могут Вас заинтересовать

37309. ЗАХИСТ КОНСТРУКЦІЙ З ДЕРЕВИНИ ВІД ПОЖЕЖНОЇ НЕБЕЗПЕКИ І БІОЛОГІЧНОГО УРАЖЕННЯ 41 KB
  Вогнестійкість конструкцій з деревини Горючість деревини. Горіння являє собою реакцію зєднання горючих компонентів деревини з киснем повітря яке супроводжується виділенням тепла або диму появою полумя і жевріння. Займання деревини може виникнути в результаті короткочасного нагріву її до температури 250С або тривалого впливу більш низьких температур.
37310. Сопротивление материалов 730 KB
  Лабораторная работа №1 Испытание образца на растяжение 4 часа Цель работы: изучение процесса растяжения образца из малоуглеродистой стали вплоть до его разрушения разрыва изучение диаграммы растяжения определение механических характеристик. Краткие теоретические сведения Испытание при осевом статическом растяжении образца является наиболее распространенным способом механических испытаний материала что объясняется следующими преимуществами. Во всех точках поперечного сечения рабочей части образца напряжения одинаковы и...
37311. Обґрунтувати формули, за якими розраховуються параметри настроювання Ку та Ті промислових регуляторів для ПІ- або ПІД-законів керування 345.5 KB
  Обґрунтувати формули, за якими розраховуються параметри настроювання Ку та Ті промислових регуляторів для ПІ- або ПІД-законів керування (згідно з завданням), які мають забезпечити вказані у завданні оцінки якості керування (Lз, γз, h, m, M). Розрахувати і побудувати графіки АЧХ об’єкту керування Аоб(ω), ФЧХ φоб(ω) та графік взаємозалежності параметрів настроювання для відповідних регуляторів Ку і Ті та визначити їх оптимальні значення.
37312. Кинематический расчет привода 1.09 MB
  Мощность двигателя зависит от требуемой мощности рабочей машины а его частота вращения от частоты вращения приводного вала рабочей машины.2 Определение передаточного числа привода и его ступеней Передаточное число привода определяется отношением номинальной частоты вращения двигателя к частоте вращения приводного вала рабочей машины при номинальной нагрузке и равно произведению передаточных чисел закрытой и открытой передач.1 Определяем частоту вращения приводного вала рабочей машины по формуле 5 где: угловая скорость рад с 2.1...
37313. Проект межхозяйственного землеустройства сельскохозяйственного предприятия «Красное» 359.5 KB
  Межхозяйственное землеустройство – это комплекс мероприятий по образованию новых, упорядочению и изменению существующих землевладений и землепользований, специальных фондов земель, установлению границ и режима использования земель административно-территориальных и других особых формирований
37315. ЭЛЕКТРИЧЕСКИЕ МАШИНЫ 984 KB
  Основными задачами данной общепрофессиональной дисциплины являются изучение основных принципов электромеханического преобразования энергии в электрических машинах, физических законов, лежащих в основе их работы, конструкций, видов исполнения, параметров, режимов работы, характеристик, эксплуатационных требований к ним.
37316. LiME - THE EVENT DRIVEN TRANSLATION SYSTEM 24.5 KB
  Nowadays the development of CPU with new instruction set architecture (ISA) implies that translators to this ISA assembler from the certain set of high level programming languages should be developed too. If the basic principles of the ISA are close enough to the long time used traditional CISC
37317. СОВРЕМЕННЫЙ РУССКИЙ ЯЗЫК. ЯЗЫК ЛИТЕРАТУРНЫЙ И НЕЛИТЕРАТУРНЫЕ ФОРМЫ ЯЗЫКА 163 KB
  ЯЗЫК ЛИТЕРАТУРНЫЙ И НЕЛИТЕРАТУРНЫЕ ФОРМЫ ЯЗЫКА Вопросы Русский язык и его функции. Функциональная дифференциация языка. Язык литературный и нелитературные формы языка. Функциональные стили русского языка.