В первой части мы показываем экспоненциальный алгоритм для определения округлости. Во второй части мы покажем, что эта проблема трудоемкая. В третьей части мы покажем, что каждый циркулярный язык является объединением языков вида r +r+ (здесь r может быть пустым регулярным выражением); союз не обязательно не пересекается. В четвертой части мы показываем круговой язык, который нельзя записать в виде непересекающейся суммы ∑ r + i .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 nws0s1,…,sns1s0,…,sn должна циклически изменяться, чтобы w ∗ всегда было в языке). Другими словами, у нас есть путь от s 0 , … , s nw∗- от 1 до s 1 ,…, s n, где s 1 принимает, но один из других не принимает. И наоборот, если язык круговой, то этого не может быть.s0,…,sn−1s1,…,sns1
Таким образом, мы сократили проблему до простого теста направленной достижимости (просто отметьте все возможные «плохие» n- кортежи).n
Проблема округлости является трудоемкой. Предположим, нам дан экземпляр 3SAT с n переменными → x и m предложениями C 1 , … , C m . Можно предположить, что n = mnx⃗ mС1,…,Cmn=m (добавить фиктивные переменные) и что n простое (иначе найти простое число между n и 2 n, используя тестирование простоты AKS, и добавить фиктивные переменные и предложения).nn2n
Рассмотрим следующий язык: «вход не имеет форму → x 1 ⋯ → x n, где → x i - удовлетворительное присваивание для C i ». Для этого языка легко построить O ( n 2 ) DFA. Если язык не круговой, то в языке есть слово w , некоторая сила которого не в языке. Поскольку единственные слова, отсутствующие в языке, имеют длину nx⃗ 1⋯x⃗ nx⃗ iCiO(n2)w 2 , w должно иметь длину 1 или n . Если это длиныn2w1n1 , рассмотрим w n (оно все еще на языке), так что w на языке, а w n на языке. Тот факт, что w n отсутствует в языке, означает, что w является удовлетворительным назначением.1wnwwnwnw
И наоборот, любое удовлетворительное присваивание переводится как слово, доказывающее некруглость языка: удовлетворяющее присваивание w принадлежит языку, а w n - нет. Таким образом, язык является круговым, если экземпляр 3SAT неудовлетворителен.wwn
В этой части мы обсудим нормальную форму для циркулярных языков. Рассмотрим некоторый DFA для кругового языка L . Последовательность C = C 0 , ... в реальном , если C 0 = s (начальное состояние), все остальные государства принимают и C я = C J означает C ILC=C0,…C0=sCi=Cj + 1 = С J + 1 . Таким образом, каждая действительная последовательность в конечном итоге является периодической, и существует только конечное число действительных последовательностей (поскольку DFA имеет конечное число состояний).Ci+1=Cj+1
Мы говорим, что слово ведет себя согласно C,C если слово переводит DFA из состояния c i в состояние c i + 1 для всех i . Множество всех таких слов E ( C )cici+1iE(C) регулярно (аргумент аналогичен первой части этого ответа). Заметим , что Е ( С ) представляет собой подмножество L .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
Каждое слово ш в языке соответствует некоторой реальной последовательности C , то существует реальная последовательность C , что ж ведет себя в соответствии с. Таким образом , L является объединением D ( C ) в течение всего действительной последовательности C . Поэтому каждый циркулярный язык имеет представление вида ∑ r + i . И наоборот, каждый такой язык является круговым (тривиально).wCCwLD(C)C∑r+i
Рассмотрим круговой язык L всех слов над a , b, которые содержат четное число или a 's или четное число b ' (или оба). Покажем, что она не может быть записана как непересекающаяся сумма ∑ r + i ; под «дизъюнктом» мы подразумеваем, что r + i ∩ rLa,bab∑r+i + j =∅.r+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б N ! , Точно так же y = a N ! b N порождается некоторым r + j , что также порождает z . Обратите вниманиечто я ≠ J , так как х у ∉ L . Таким образом, представление не может быть дизъюнктивным.z=aN!bN!y=aN!bNr+jzi≠jxy∉L