Сведение по Куку

Материал из testwiki
Перейти к навигации Перейти к поиску

В теории сложности вычислений сведение задачи R1 к R2 по Куку — это полиномиальный по времени алгоритм (другими словами, машина Тьюринга с полиномиальным временем работы), решающий задачу R1 при условии, что функция, находящая решение задачи R2, ему дана в качестве оракула, то есть обращение к ней занимает всего один шаг.

Если такой алгоритм существует, говорят, что R1 сводима по Куку к R2 и пишут

R1CR2.

Неформально в таком случае говорят, что R2 «как минимум так же сложна» как R1.

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

История

Первое формальное определение сводимости было предложено Аланом Тьюрингом в 1939 г.

См. также

Ссылки