У першій частині ми покажемо експоненціальний алгоритм вирішення циркулярності. У другій частині ми показуємо, що ця проблема є важкою для coNP. У третій частині ми показуємо, що кожна кругова мова є об'єднанням мов форми r + (тут r може бути порожнім регулярним виразом); союз не обов'язково є нерозбірливим. У четвертій частині ми демонструємо кругову мову, яка не може бути записана як суперечлива сума ∑ r + i .r+r∑r+i
Редагувати: Включено деякі виправлення після коментарів Марка. Зокрема, мої попередні твердження, що циркулярність є coNP-повною або NP-жорсткою, виправляються.
Редагувати: виправлена нормальна форма з ∑ r ∗ i в∑r + i . Виставляли "по своїй суті неоднозначну" мову.∑r∗i∑r+i
Продовжуючи коментар Пітера Тейлора, ось як вирішити (вкрай неефективно), чи є мова круговою, враховуючи її DFA. Створіть нову DFA, стани якої n - пар старих. Цей новий DFA паралельно виконує n копій старого DFA.nn
Якщо мова не кругла, то є слово w таке, що якщо ми повторимо його через DFA кілька разів, починаючи з початкового стану s 0 , то отримаємо стани s 1 , … , s n такі, що s 1 приймає, але одне з інших не приймає (якщо всі вони приймають, то послідовність s 0 , ... , s n повинна кругообігу, щоб w ∗ завжди був у мові). Іншими словами, у нас є шлях від s 0 , … , s nws0s1,…,sns1s0,…,snw∗- від 1 до s 1 ,…, s n, де s 1 приймає, але один з інших не приймає. І навпаки, якщо мова кругла, то цього не може статися.s0,…,sn−1s1,…,sns1
Тож ми звели проблему до простого спрямованого тесту на доступність (просто перевірте всі можливі «погані» n- пар).n
Проблема циркулярності є coNP-жорсткою. Припустимо, нам дають екземпляр 3SAT з n змінними → x та m , C 1 , … , C m . Ми можемо припустити, що n = m (додавання фіктивних змінних) і що n є простим (інакше знайти просте між n і 2 n за допомогою тестування первинності AKS, і додати фіктивні змінні та пропозиції).nx⃗ mC1,…,Cmn=mnn2n
Розглянемо наступну мову: "вхід не має форми → x 1 ⋯ → x n, де → x i - задовольняюче завдання для C i ". Побудувати O ( n 2 ) DFA для цієї мови легко . Якщо мова не кругла, то в мові є слово w , деякої сили якого немає в мові. Оскільки єдині слова, які не є в цій мові, мають довжину n 2 , w має бути довжиною 1 або n . Якщо вона довжиниx⃗ 1⋯x⃗ nx⃗ iCiO(n2)wn2w1n1 , розглянемозамість w n (воно все ще в мові), так що w є в мові, а w n - не в мові. Те, що w n немає у мові, означає, що w - задовольняюче завдання.1wnwwnwnw
І навпаки, будь-яке задовольняє завдання перекладається на слово, що підтверджує некруговість мови: задовольняюче завдання w належить до мови, але w n - ні. Таким чином, мова є круговою, якщо екземпляр 3SAT незадовільний.wwn
У цій частині ми обговорюємо нормальну форму для кругових мов. Розглянемо деякий DFA для кругового мови L . Послідовність З = С 0 , ... є реальним , якщо С 0 = s (початковий стан), всі інші держави беруть і С я = С J означає C я + 1 = С J + 1 . Таким чином, кожна реальна послідовність зрештою є періодичною, і існує лише безмежно багато реальних послідовностей (оскільки DFA має кінцево багато станів).LC=C0,…C0=sCi=CjCi+1=Cj+1
Ми говоримо, що слово поводиться відповідно до C,C якщо слово приймає DFA зі стану c i в стан c i + 1 , для всіх i . Набір усіх таких слів E ( C ) є регулярним (аргумент подібний до першої частини цієї відповіді). Зауважимо , що Е ( С ) представляє собою підмножина L .cici+1iE(C)E(C)L
Давши реальну послідовність C , визначте, що C k є послідовністю C k ( t ) = C ( k t ) . Послідовність C k також реальна. Оскільки існує лише кінцево багато різних послідовностей C k , мова D ( C ), яка є об'єднанням усіх E ( C k ) , також є регулярною.CCkCk(t)=C(kt)CkCkD(C)E(Ck)
Ми стверджуємо, що D ( C ) має властивість, що якщо x , y ∈ D ( C ), то x y ∈ D ( C ) . Справді, припустимо, що x ∈ C k і y ∈ C l . Тоді x y ∈ C k + l . Таким чином, D ( C ) = D ( C ) + можна записати у формі rD(C)x,y∈D(C)xy∈D(C)x∈Cky∈Clxy∈Ck+lD(C)=D(C)++ для деякого регулярного виразу r .r+r
Кожне слово w у мові відповідає деякій реальній послідовності C , тобто існує реальна послідовність C, яка w поводиться відповідно до. Таким чином , L є об'єднанням D ( C ) в протягом всього дійсної послідовності C . Тому кожна кругова мова має подання форми ∑ r + i . І навпаки, кожна така мова є круговою (тривіально).wCCwLD(C)C∑r+i
Розглянемо кругової мову L всіх слів над , б , які містять або парне число або «и або парне число б » и (або обидва). Ми показуємо, що вона не може бути записана як непересічна сума ∑ r + i ; Під "неперервним" ми маємо на увазі, що r + i ∩ r + j = ∅ .La,bab∑r+ir+i∩r+j=∅
Нехай N i - розмір деякої DFA для r + i , а N > max N i - якесь непарне ціле число. Розглянемо x = a N b N ! . Оскільки x ∈ L , x ∈ r + i для деяких i . За насосним леми, можна накачати префікс х довжин не більше N . Таким чином, r + i породжує z = a N !Nir+iN>maxNix=aNbN!x∈Lx∈r+iixNr+i b N ! . Аналогічно, y = az=aN!bN!N!bNy=aN!bN is generated by some r+jr+j, which also generates zz. Note that i≠ji≠j since xy∉Lxy∉L. Thus the representation cannot be disjoint.