В теории сложности вычислений и теории вычислимости, задача поиска - это тип вычислительной задачи, представленной бинарное отношение. Если R - бинарное отношение, такое что field (R) ⊆ Γ и T - машина Тьюринга, то T вычисляет R, если:
Интуитивно проблема состоит в том, чтобы найти структуру «y» в объекте «x». Говорят, что алгоритм решает проблему, если существует по крайней мере одна соответствующая структура, а затем выводится одно вхождение этой структуры; в противном случае алгоритм останавливается с соответствующим выводом («Элемент не найден» или любое подобное сообщение).
Такие проблемы очень часто возникают в теории графов, например, при поиске в графах таких структур, как конкретные сопоставления, клики, Независимый набор и т. д. представляет интерес.
Обратите внимание, что график частичной функции является бинарным отношением, и если T вычисляет частичную функцию, то имеется не более одного возможного выхода.
Отношение R можно рассматривать как задачу поиска, и говорят, что машина Тьюринга, которая вычисляет R, решает ее. Каждой задаче поиска соответствует проблема принятия решения, а именно
Это определение может быть обобщено на n-арные отношения с использованием любой подходящей кодировки, которая позволяет использовать несколько строк сжатые в одну строку (например, перечисляя их последовательно с разделителем).
Проблема поиска определяется следующим образом:
Найти решение, если не указан алгоритм решения проблемы, а только спецификация того, как выглядит решение.
Входные данные: граф, набор начальных узлов, Логическая процедура goal (n), которая проверяет, является ли n целью no де. frontier: = {s: s - начальный узел}; пока граница не пуста: выберите и удалите путьот границы; если цель (nk) return ; для каждого соседа n из nk добавить к границе; конец while
В эту статью включены материалы из проблемы поиска на PlanetMath, который находится под лицензией Creative Commons Attribution / Share-Alike License.