Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Поиск в ширину




Слепой поиск

Одна из самых очевидных стратегий поиска называется поиском в ширину. Поиск начинается с корневой вершины, определяются все последователи корневой вершины, затем все последователи каждого из последователей корневой вершины, далее все последователи каждого из последователей, найденных на предыдущем шаге, и т.д. до тех пор, пока не будут найдены все вершины, соответствующие целевым состояниям. Согласно этой стратегии, вершины глубиной k ищутся после того, как будут найдены все вершины глубиной k-1. На рис. 4. 1 показана последовательность нахождения вершин при поиске в ширину и при числе последователей каждой вершины, равном 2.

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

Оценим время и память, затрачиваемые в процессе поиска в ширину. Будем полагать, что число последователей каждой вершины равно l. Тогда в начале поиска в ширину мы имеем одну начальную вершину, затем l последователей, потом l2 последователей и т.д. В общем случае при глубине дерева поиска, равной к, число вершин, изучаемых в процессе поиска, равно 1 + l+ l 2+ l 3+...+ l k. При конкретных значениях l и k по этой формуле можно вычислить максимальное число вершин дерева поиска, которое может быть получено в процессе поиска в ширину. Естественно, решение можно найти раньше, чем будут найдены все последователи.

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

 

Рис. 4.1. Деревья поиска в ширину при l=2: нулевая вершина (дерево

глубиной k=0), дерево после нахождения последователей нулевой вершины

(дерево глубиной k = 1), дерево после нахождения последователей первой

вершины, дерево после нахождения последователей второй вершины

(дерево глубиной k = 2)

Если полагать, что получение каждого последователя требует одной единицы времени, то O(lk) является оценкой сложности по времени. В процессе поиска в ширину каждая вершина дерева должна сохраняться до получения требуемого решения. Если полагать, что для этого сохранения требуется единица памяти, то та же формула является одновременно и оценкой сложности по памяти для поиска в ширину.

      Таблица 4.1
Глубина дерева Количество вершин Требуемое для поиска время Требуемая для поиска память
    1 миллисекунда 100 байт
    0,1 секунды 11 килобайт
  11.111 11 секунд 1 мегабайт
  106 18 минут 111 мегабайт
  108 31 час 11 гигабайт
  1010 128 дней 1 терабайт
  1012 35 лет 111 терабайт
  1014 3500 лет 11111 терабайт

 

Посмотрим, что это будут за величины при l=10 для различных значений k (табл. 4.1). Предполагается, что 1000 вершин-последователей могут быть получены за 1 с, и что одна вершина требует 100 байт памяти. Эти значения соответствуют средним затратам времени и памяти, требуемым для решения многих иллюстративных задач типа головоломок. Из табл. 4.1 можно сделать два важных вывода. Во-первых, рост требований к памяти для решения задач поиском в ширину гораздо более серьезная проблема, чем рост требований времени решения тех же задач.

Так, например, вполне приемлемо подождать решения задачи в течение 18 мин при l = 6, но необходимость наличия 111 Мбайт памяти для решения таких сравнительно простых задач кажется слишком высокой ценой.

Во-вторых, для задач, в которых l > 10, помимо катастрофического увеличения требований к памяти, наблюдается стремительный рост временных затрат, не позволяющий решать реальные задачи с помощью поиска в ширину даже на современных мощных компьютерах. Это приводит к следующему заключению: Стратегии поиска, еющие экспоненциальные оценки сложности решения задач по времени и памяти, в частности стратегия поиска в ширину, нельзя использовать i решения задач большой размерности, т.е. задач, у которых 1 > 10.




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 431; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.