Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posobie_algebra_I_Teoria_Chisel_1_30_el_uchebni...doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
3.12 Mб
Скачать

8.2. Алгоритми з оракулами

Означення 8.6: оракулом називатимемо функцію О: А*В*, де А, В – деякі скінченні алфавіти.

Алгоритмом з оракуломО називатимемо алгоритм в звичайному розумінні, але наділений додатковою операцією – зверненням до оракула.

Операція звернення до оракула полягає в тому, що алгоритм  передає оракулу О деяке слово ZÎА* (запит до оракула), і отримує деяке слово О(Z) – відповідь оракула. Відповідь може істотно залежати від того, до якого саме оракула звертається алгоритм.

Час роботи алгоритму з оракулом оцінюється в припущенні, що звернення до оракула займає один крок. Але при цьому необхідно окремо враховувати час передачі запиту та час зчитування відповіді. Наприклад, найпростіше звернення: алгоритм  отримує wÎ {0, 1}*; звертається до оракула О із запитом w і отримує відповідь О(w).

Означення 8.7: алгоритм з оракулом називають поліноміальним, якщо максимальний час роботи алгоритму (по всім можливим оракулам) обмежений деяким поліномом від довжини входу.

Означення 8.8: будемо говорити, що алгоритм з оракулом О зводить задачу1 до задачі2, якщо для будь-якого оракула О, який на кожному вході w видає розв'язок задачі Õ2(w), алгоритм О видає розв'язок задачі Õ1.

Якщо існує такий поліноміальний алгоритм , що задачу Õ1 зводить до задачі Õ2, то кажуть, що задача Õ1 поліноміально зводиться до задачі Õ2, а сам алгоритм називають поліноміальним зведенням Õ1 до Õ2.

Приклад 8.9: нехай алгоритм 1 розв’язує задачу Õ1(w) – для заданого w знаходить його функцію Ойлера, а алгоритм 2 розв’язує задачу Õ2(w) – для заданого w видає його розклад на прості множники (канонічний розклад). Тоді задача Õ1 поліноміально зводиться до Õ2 наступним алгоритмом.

Вхід: w;

запит до оракула: w;

відповідь оракула: (p1, 1), (p2, 2), ..., (pr, ar);

 = ;

вихід .

Зауваження 8.10: слід зазначити, що якщо pq, де pq – невідомі прості числа, то справедливе і зворотне твердження: задача Õ2 поліноміально зводиться до Õ1.

Означення 8.11: якщо Õ1 поліноміально зводиться до Õ2, то говоримо, що задача Õ1 не складніша за задачу Õ2, а задача Õ2 не легша за задачу Õ1.

Означення 8.12: якщо Õ1 поліноміально зводиться до Õ2, а Õ2 поліноміально зводиться до Õ1, то такі задачі називаються поліноміально еквівалентними.

Аналогічно визначається імовірнісна поліноміальна звідність між задачами. Наступна теорема формулює деякі властивості поліноміальної звідності між задачами.

Теорема 8.13: нехай Õ1, Õ2, Õ3 – деякі задачі.

Якщо Õ1 поліноміально зводиться до Õ2, а Õ2 поліноміально зводиться до Õ3, то Õ1 поліноміально зводиться до Õ3.

Якщо Õ2 розв'язується за поліноміальний час і Õ1 поліноміально зводиться до Õ2, то Õ1 також розв’язується за поліноміальний час.

Якщо Õ1 імовірнісно поліноміально зводиться до Õ2 з імовірністю помилки , і Õ2 розв'язується за поліноміальний час, то Õ1 розв'язується імовірнісним поліноміальним алгоритмом з імовірністю помилки .

Питання для самоконтролю

1. Поясніть різницю між подією та елементарною подією.

2. Які алгоритми називаються Монте-Карло алгоритмами? Лас-Вегас алгоритмами?

3. В чому полягає сутність задачі розпізнавання мови?

4. Чи можна визначити Лас-Вегас алгоритм розпізнавання мови з односторонньою помилкою?

4. Що таке оракул? Яка структура алгоритму з оракулом?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]