Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Программное обеспечение ВТ и АС Брянск 2010 УДК 004

Работа добавлена на сайт samzan.net: 2015-07-10

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 21.5.2024

Утверждаю

Ректор университета

__________А.В. Лагерев

“__”________ 2010 г.

ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ

информированные методы поиска решения в пространстве состояний

Методические указания

к выполнению лабораторной работы № 2

для студентов очной формы обучения

специальности 230105 – «Программное обеспечение ВТ и АС»

Брянск 2010


УДК 004.65

Интеллектуальные системы. Информированные методы поиска решения в пространстве состояний: метод. указания к выполнению лабораторной работы №2 для студентов очной формы обучения специальности 230105 – «Программное обеспечение ВТ и АС». – Брянск: БГТУ, 2010 – 7 с.

Разработал:

А.К. Буйвал,

доц.

Рекомендовано кафедрой «Информатика и программное обеспечение» БГТУ (протокол № _ от _________)


1.
Теоретические сведения

Основная идея эвристического поиска состоит в том, что каждой вершине х генерируемой в процессе поиска ставится в соответствие некоторая оценка f(x) стоимости пути от начальной вершины к целевой проходящего через заданную вершину; если таких путей несколько, то каждому из них соответствует свое f(x); наиболее перспективной считается вершина с минимальной оценкой.

Рассмотрим реализацию процедуры P:

раскрыть , для всех дочерних вершин  и вычислить ;

выполнить следующее:

  1.  если , то поместить  в , установить указатель на
  2.  если , то если  (стоимость ранее найденного пути), то заменить  на ; установить для  указатель на ;
  3.  если , то если , то переместить  из  в , заменить  на ; установить для  указатель на ;

упорядочить  по возрастанию.

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

– текущая стоимость пути из начальной вершины к .

– оценка стоимости пути от  к целевой вершине (эвристическая оценка).

В зависимости от используемых оценок можно выделить следующие виды алгоритмов:

– алгоритм равных цен (неэвристический).

– жадный алгоритм (эвристический). Эффективность данного алгоритма определяется выбором . Нахождение оптимального пути данным алгоритмом не гарантируется.

– А-алгоритм.

А-алгоритм является допустимым, т.е. находит оптимальный решающий путь (в смысле min ), если для всех вершин  выполняется условие , где  реальная стоимость пути из  в целевую вершину.

А-алгоритм для которого выполняется это условие называется А*-алгоритмом или Харта-Нильсона-Рафаэля.

Рассмотрим пример. Пусть s -  начальная вершина, а t – целевая. Рядом с состояниями (обведены окружностью) указаны их эвристические оценки (в данном случае это ожидаемое расстояние от текущего узла до целевого). Приведенные числа над дугами указывают стоимость перехода, т.е. реальное расстояние от одного узла к другому.

0

1

2

3

4

5

6

Дерево поиска, получаемое при работе А*-алгоритма представлено ниже.

Одним из основных недостатков алгоритма А* является большая потребность в памяти.

Простейший способ сокращения потребностей в памяти для поиска А* состоит в применении идеи итеративного углубления в контексте эвристического поиска. Реализация этой идеи привела к созданию алгоритма А* с итеративным углублением (Iterative Deepening A* – IDA*). В методе IDA* в отличии от итеративного поиска в глубину поиск ограничивается не текущим пределом глубины, а текущим пределом значений оценок узлов (т.е. эвристических f-значений узлов).

В неблагоприятных ситуациях издержки связанные с повторением поиска, которые осуществляет алгоритм IDA* становятся неприемлимыми. В этих ситуациях более целесообразно применять лучший, хотя и более сложный метод экономии пространства, получивший название RBFS (Recursive Best-First Search – рекурсивный поиск по заданному критерию). Различие между алгоритмами А* и RBFS состоит в том, что первая обеспечивает хранение в памяти всех ранее сформированных узлов, а последняя предусматривает хранение только текущего пути поиска одноранговых узлов вдоль этого пути. Если программа RBFS на время приостанавливает поиск в поддереве (поскольку оно больше не соответствует заданному критерию), то удаляет из памяти это поддерево для экономии пространства.  Поэтому потребность в ресурсах пространства для алгоритма RBFS зависит от глубины поиска только линейно.

Алгоритмы IDA и RBFS страдают от того недостатка, что в них используется слишком мало памяти. Поэтому представляется разумным использование всей доступной памяти. Двумя алгоритмами, которые осуществляют это требование, являются поиск MA* (Memory-bounded A* – поиск А* с ограничением памяти) и SMA* (Simplified MA* – упрощенный поиск MA*). Алгоритм SMA* действует полностью аналогично А*, развертывая наилучшие листовые узлы до тех пор, пока не будет исчерпана доступная память. С этого момента он не может добавить новый узел к дереву поиска, не уничтожив старый. В алгоритме SMA* всегда уничтожается наихудший листовой узел (тот, который имеет наибольшее f-значение). Как и в алгоритме RBFS, после этого в алгоритме SMA* значение забытого (уничтоженного) узла резервируется в его родительском узле. Благодаря этому предок забытого поддерева позволяет определить качество наилучшего пути в этом поддереве.

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

  1.  Внимательно изучить задание и сформулировать пространство состояний проблемной области (т.е. описать в все возможные состояния, в которых может находиться задача).
  2.  Сформулировать правила переходов между состояниями в соответствии с условиями задачи.
  3.  Используя принципы ООП описать класс «Состояние», член-данные которого позволят полноценно описать состояние задачи в любой момент времени.
  4.  Разработать процедуру раскрытия состояния, в соответствии с сформулированными правилами перехода из одного состояния в другие.
  5.  Разработать функцию эвристической оценки позиции в соответствии с выданным заданием
  6.  Используя списочные структуры данных, шаблон алгоритма поиска (рассмотренный в ЛР №1) и процедуру раскрытия вершин (приведенную в теоретической части) разработать требуемый алгоритм поиска.

3. Форма сдачи лабораторной работы

  1.  Формой сдачи лабораторной работы является программный проект, реализующий заданный по варианту алгоритм и обладающий следующими возможностями:
    •  выбор или случайная генерация начального состояния и конечного состояния;
      •  отображение пути поиска целевого состояния после его нахождения;
      •   графическое отображение состояний пространства задачи поиска.
    1.  Лабораторная работа должна быть реализована на языке объектно-ориентированного программирования в визуальной среде. Рекомендуется использовать среду программирования Microsoft Visual Studio 2010.
    2.  За основу при выполнении данной лабораторной работы рекомендуется взять проект из лабораторной работы №1.

4. Задания для самостоятельного выполнения

№ Вар.

Задание

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «Пятнашки» методом A*. Реализовать минимум две эвристические функции и сравнить их эффективность.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «Пятнашки» методом SMA*.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «О четырех конях» методом A*. Реализовать минимум две эвристические функции и сравнить их эффективность.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «О четырех конях» методом SMA*.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «Ханойские башни» методом A*. Реализовать минимум две эвристические функции и сравнить их эффективность.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «Ханойские башни» методом SMA*.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «Пятнашки поворотом» методом A*. Реализовать минимум две эвристические функции и сравнить их эффективность.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «Пятнашки поворотом» методом SMA*.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «Повороты шариков» методом A*. Реализовать минимум две эвристические функции и сравнить их эффективность.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «Повороты шариков» методом SMA*.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «О коне Аттилы» методом A*. Реализовать минимум две эвристические функции и сравнить их эффективность.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «О коне Аттилы» методом SMA*.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «Двигаем шарики» методом A*. Реализовать минимум две эвристические функции и сравнить их эффективность.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «Двигаем шарики» методом SMA*.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «Кольца с цветными шариками» методом A*. Реализовать минимум две эвристические функции и сравнить их эффективность.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «Кольца с цветными шариками» методом SMA*.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «Вращаем шарики» методом A*. Реализовать минимум две эвристические функции и сравнить их эффективность.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «Вращаем шарики» методом SMA*.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «Черно-белые квадраты» методом A*. Реализовать минимум две эвристические функции и сравнить их эффективность.

  1.  

Разработать и реализовать алгоритм эвристического поиска решения в пространстве состояний задачи «Черно-белые квадраты» методом SMA*.


ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Брянский государственный технический университет




1. ТЕМАХ. Информация инструментальное понятие информационного подхода содержание и объем которого перемен.html
2. Первый день в школе Опять
3. Смешанная экономика
4.  Педагогические и психологические основы индивидуализации обучения
5. Содержание и особенности античной культуры
6. Лекция 3. Ионная полимеризация
7. Особенности памяти детей дошкольного возраста с нарушениями слуха
8. Реферат- Тронь рукою струны лютни
9. лекция Эволюция сознания
10. Современное развитие гостиничного хозяйства Республики Беларус
11. Тема 2 Предприятие фирма как субъект хозяйствовенной деятельности 1 вопрос
12. Что не относится к стадиям бюджетного процесса на местном уровн
13. Патентный поверенный в РФ
14. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата соціологічних наук Харкі
15. Тема эмансипации в романе Н.Д. Хвощинской Большая медведица
16. процессы избыточного роста и размножения клеток тканей и органов
17. История возникновения, развития и изменения отдельных элементов формуляра документов
18. тема синхронного двигателя Вариант 25 Преподаватель Латушкина Л
19. на тему Россия Европа и
20. СТАТЬЯ 1 Вклад туризма во взаимопонимание и уважение между народами и обществами 1