Сложностные классы. Вычисления с оракулом — различия между версиями
м (→Вычисление с оракулом) |
|||
| Строка 27: | Строка 27: | ||
Оракул — программа <tex>A(x)</tex>, вычисляющая за <tex>O(1)</tex> времени, верно ли, что <tex>x \in A</tex>. | Оракул — программа <tex>A(x)</tex>, вычисляющая за <tex>O(1)</tex> времени, верно ли, что <tex>x \in A</tex>. | ||
}} | }} | ||
| − | Сложностный класс задач, решаемых алгоритмом из класса <tex>C</tex> с оракулом для языка <tex>A</tex>, обозначают <tex>C^ | + | Сложностный класс задач, решаемых алгоритмом из класса <tex>C</tex> с оракулом для языка <tex>A</tex>, обозначают <tex>C^A</tex>. |
| − | Если <tex>A</tex> — множество языков, то <tex>C^A =\bigcup\limits_{D \in A}C^D | + | Если <tex>A</tex> — множество языков, то <tex>C^A =\bigcup\limits_{D \in A}C^D</tex>. |
[[Категория: Теория сложности]] | [[Категория: Теория сложности]] | ||
Версия 00:50, 2 июня 2012
В начале 1960-х годов, в связи с началом широкого использования вычислительной техники для решения практических задач, возник вопрос о границах практической применимости данного алгоритма решения задачи в смысле ограничений на её размерность. Какие задачи могут быть решены на ЭВМ за реальное время?
Ответ на этот вопрос был дан в работах Кобхэма (Alan Cobham, 1964) и Эдмондса (Jack Edmonds, 1965), где были введены сложностные классы задач. К ним относятся классы P, NP и т.д.
| Определение: |
| — ограничение по времени.
— ограничение по памяти. — ограничение и по времени и по памяти. |
Введём понятия и , аналогичным образом определяются классы и (префикс соответствует детерминизму, а — недетерминизму).
| Определение: |
| программа и для , такого что (здесь — длина входа), . |
| Определение: |
| программа и для , такого что (здесь — длина входа), . |
Через понятия классов , , и будет дано определение многим сложностным классам, в том числе классов P и NP.
Вычисление с оракулом
| Определение: |
| Оракул — программа , вычисляющая за времени, верно ли, что . |
Сложностный класс задач, решаемых алгоритмом из класса с оракулом для языка , обозначают . Если — множество языков, то .