Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В теории сложности вычислений и теории вычислимости , задача поиска является типом вычислительной задачи представляется бинарным отношением . Если R - бинарное отношение, такое что field ( R ) ⊆ Γ + и T - машина Тьюринга , то T вычисляет R, если:

  • Если x таково, что существует некоторый y такой, что R ( x , y ), то T принимает x с выходом z таким образом, что R ( x , z ) (может быть несколько y , и T нужно найти только один из них)
  • Если x таково, что не существует y такого, что R ( x , y ), то T отклоняет x

Интуитивно проблема состоит в том, чтобы найти структуру «y» в объекте «x». Алгоритм , как говорят , чтобы решить эту проблему , если по крайней мере одна соответствующая структура существует, и затем одно вхождение этой структуры производится выход; в противном случае алгоритм останавливается с соответствующим выводом («Элемент не найден» или любое подобное сообщение).

Такие проблемы очень часто возникают в теории графов , например, когда поиск в графах структур, таких как конкретное сопоставление , клики , независимое множество и т. Д., Представляет интерес.

Обратите внимание, что график частичной функции является бинарным отношением, и если T вычисляет частичную функцию, то существует не более одного возможного выхода.

Отношение R можно рассматривать как задачу поиска, и говорят, что машина Тьюринга, которая вычисляет R, решает ее. Каждой поисковой задаче соответствует соответствующая проблема решения , а именно:

Это определение может быть обобщено до n -арных отношений с использованием любой подходящей кодировки, которая позволяет сжимать несколько строк в одну строку (например, перечисляя их последовательно с разделителем).

Определение [ править ]

Проблема поиска определяется следующим образом: [1]

  • Набор состояний
  • Начальное состояние
  • Состояние цели или тест цели
логическая функция, которая сообщает нам, является ли данное состояние целевым.
  • Функция преемника
отображение состояния на набор новых состояний

Цель [ править ]

Найдите решение, если вам не дан алгоритм решения проблемы, а только описание того, как выглядит решение. [1]

Метод поиска [ править ]

  • Общий алгоритм поиска: учитывая график, начальные узлы и целевые узлы, постепенно исследуйте пути от начальных узлов.
  • Сохраняйте границы изученных путей от начального узла.
  • По мере продолжения поиска граница расширяется до неисследованных узлов, пока не будет обнаружен целевой узел.
  • Способ расширения границы определяет стратегию поиска. [1]
 Вход: график, набор стартовых узлов, Логическая процедура goal (n), которая проверяет, является ли n целевым узлом. frontier: = {s: s - начальный узел}; пока граница не пуста: выбрать и удалить путь <n0, ..., nk> от границы; если цель (nk) return <n0, ..., nk>; для каждого соседа n из nk добавить <n0, ..., nk, n> к границе; конец пока

См. Также [ править ]

  • Оператор неограниченного поиска
  • Проблема решения
  • Проблема оптимизации
  • Проблема подсчета (сложность)
  • Функциональная проблема
  • Искать игры

Ссылки [ править ]

  1. ^ a b c Лейтон-Браун, Кевин. «Графический поиск» (PDF) . ubc . Проверено 7 февраля 2013 года .

В эту статью включены материалы из задачи поиска на PlanetMath , который находится под лицензией Creative Commons Attribution / Share-Alike License .