Кіріспе

Есептеу күрделілігі теориясында, NL толық – бұл NL үшін толық тілдерді қамтитын күрделілік класы, яғни логарифмдік мөлшерде жад кеңістігін пайдаланатын детерминистік емес Тьюринг машинасымен шешілетін шешім проблемаларының класы. NL толық тілдері – NL класындағы ең "қиын" немесе "көрсеткішті" проблемалар болып табылады. Егер логарифмдік жад кеңістігінде кез келген бір NL толық проблеманы шешуге арналған детерминистік алгоритм болса, онда NL = L.

Анықтамалар

NL – кіріс таспасы тек оқуға арналған және кіріс ұзындығының логарифміне пропорционал өлшеммен шектелген жеке оқу-жазу таспасы бар нон-детерминистік Тьюринг машинасымен шешілетін шешім проблемаларынан тұрады. Сол сияқты, L – дәл сол таспа ұзындығы шарттарымен детерминистік Тьюринг машинасымен шешілетін тілдер жиыны. Бұл машиналардың конфигурацияларының саны полиномдық болғандықтан, L және NL екеуі де детерминистік полиномдық уақытта шешілетін проблемалардың P классының ішкі жиындары болып табылады. Формальды түрде, егер шешім проблемасы NL класына жатса және NL класындағы кез келген басқа шешім проблемасын оған келтіруге болады, онда ол NL-толық деп аталады. Бұл анықтамада келтірулер, егер басқаша көрсетілмесе, детерминистік логарифмдік кеңістікте жұмыс істейтін көпке-бір келтірулер деп есептеледі.

Қасиеттері

Егер NL толық тілі X, L тіліне жатса, онда NL-дегі барлық басқа Y тілі де солай болады. Себебі, (NL толықтығы бойынша) Y мәселесінің y мысалын X мәселесінің x мысалына бейімдейтін детерминистік логарифмдік кеңістіктегі азайту r бар деп есептейік, сондай-ақ (X, L-де деп есептесек) X мәселесін шешуге арналған детерминистік логарифмдік кеңістіктегі алгоритм A бар деп есептейік. Осы есептеулерге сәйкес, Y тіліндегі y мәселесін логарифмдік кеңістікте r(y) кірісіндегі A алгоритмінің әрекетін модельдейтін алгоритм арқылы шешуге болады, r(y) үшін тек оқуға арналған таспаға қатынаудың әрбір сәттерін модельдеу үшін азайту алгоритмін пайдалана отырып. Иммерман-Зелепсени теоремасынан келіп шығатындай, егер тіл ко-NL толық болса (яғни, оның толықтығы NL толық болса), онда тілдің өзі де NL толық болады.

Мысалдар

NL-дің маңызды толық проблемасы ST байланысы (немесе "жету мүмкіндігі") (Papadimitriou 1994 Thrm. 16.2), яғни берілген бағытталған граф G және сол графтың s және t екі түйіні үшін s-тен t-ге дейін жол бар екенін анықтау мәселесі. ST байланысы NL класында екендігін көрсетуге болады, себебі біз s түйінінен бастап, басқа қолжетімді түйіндерге беймәлімдікпен (nondeterministically) жүреміз. Кез келген басқа NL алгоритмінің есептеу күйінің графигін қарастыра отырып, және егер бастапқы күйден қабылдау күйіне беймәлімдікпен (nondeterministik) жол болса ғана басқа алгоритм қабылдайтынын ескере отырып, ST байланысы NL қиын екенін көрсетуге болады. NL-дің тағы бір маңызды толық проблемасы – 2 қанағаттандырылатындық (Papadimitriou 1994 Thrm. 16.3), яғни конъюнктивті қалыпты түріндегі, әрбір клаузада екі айнымалысы бар Буль формуласының қанағаттандырылатындығын анықтау мәселесі. Берілген өзгермелі ұзындығы бар кодтың бірегей дешифровкалануы мәселесі co-NL толық екені көрсетілді; Риттер Sardinas–Patterson алгоритмінің түрімен бірнеше екіұшты декодталған тізбекті табу мәселесі NL класына жататынын көрсетті. Immerman–Szelepcsényi теоремасы бойынша, бірегей дешифровкалану NL толық екендігі де шығады. Ұсыныс логикасы, алгебра, сызықтық жүйелер, графтар, шекті автоматтары, контекстсіз грамматика бойынша қосымша NL толық проблемалар Жонс (1976) еңбегінде тізімделген.