Класи складності L і NL

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з Клас складності L)
Перейти до навігації Перейти до пошуку

Клас мов L — множина мов, розв'язних на детермінованій машині Тюрінга з використанням додаткової пам'яті для входу довжиною n.

Клас мов NL — множина мов, розв'язних на недетермінованій машині Тюрінга з використанням додаткової пам'яті для входу довжиною n.

Приклади:

  • Нехай мова  — орієнтований граф, у якому є шлях від до , тоді

NL-повні задачі[ред. | ред. код]

Перетворювач, що вимагає логарифмічної пам'яті — машина Тюрінга з трьома стрічками: вхідною, доступною тільки для читання, вихідною, доступною тільки для запису і робочою стрічкою, на якій може використовуватися не більше O(log(n)) комірок.

Функцію, обчислювану таким перетворювачем, називають функцією, що обчислюється з логарифмічною пам'яттю.

Задача A логарифмічно за пам'яттю зводиться до задачі B, якщо є логарифмічна за пам'яттю функція, за допомогою якої задача A зводитися до задачі B. Позначають .

Мову називають NL-повною, якщо вона належить NL і будь-яка мова з NL зводиться до неї логарифмічно за пам'яттю.

Теорема:

Наслідок:

Якщо NL-повна мова належить L, то L = NL

Твердження:

PATH — NL-повна задача.

Наслідок:

.

Теорема Іммермана[ред. | ред. код]

Клас coNL — мови, доповнення до яких лежать у NL.

Теорема Іммермана:

NL = coNL

Література[ред. | ред. код]

  • Michael Sipser: «Introduction to the Theory of Computation»