Класи складності 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»