Нахождение максимальной факторизации регулярных языков


13

Пусть язык LΣ LΣ регулярный.

Факторизация LL - это максимальная пара ( X , Y )(X,Y) наборов слов с

  • X Y LXYL
  • X YXY ,

где X Y = { x yXY={xy | x X , y Y }xX,yY} .

(X,Y)(X,Y)(X,Y)XYLXXXXY Y YY

Есть ли простая процедура, чтобы узнать, какие пары максимальны?

Пример:

Пусть L = Σ a b Σ L=ΣabΣ . Множество F = { u , v , w }F={u,v,w} вычисляется:

  • u = ( Σ , Σ a b Σ )u=(Σ,ΣabΣ)

  • v = ( Σ a Σ , Σ b Σ )v=(ΣaΣ,ΣbΣ)

  • w = ( Σ a b Σ , Σ )w=(ΣabΣ,Σ)

где Σ = { a , b }Σ={a,b} .

Другой пример:

Σ = { a , b } L = Σ a Σ F = { q , r , s , t }Σ={a,b} и Factorization set сL=ΣaΣF={q,r,s,t}

  • q = ( Σ , L )q=(Σ,L)

  • r = ( Σ a , Σ + L )r=(Σa,Σ+L)

  • s = ( Σ a a , ϵ + Σ + L )s=(Σaa,ϵ+Σ+L)

  • t = ( L , ϵ + L )t=(L,ϵ+L)


4
Я рекомендую прочитать следующую статью (особенно подраздел 4.1) Жака Сакаровича: perso.telecom-paristech.fr/~jsaka/PUB/Files/TUA.pdf
Бренд Cornelius,

1
Интересно, может быть, вы хотите более конкретно рассказать о проблеме, то есть о последнем предложении вашего вопроса? Нам даны и мы хотим проверить, является ли максимальным? Наша задача перечислить все , которые максимальны? Если последнее, ясно ли, что этот список конечен или имеет полиномиальный размер? Вероятно, не имеет смысла просить алгоритм для перечисления всех возможностей, если их экспоненциально много. Кроме того, хотите ли вы указать, как представлен язык когда он представлен нам, и как представлены ? (например, DFA, NFA, regexp)X,YX,Y(X,Y)(X,Y)(X,Y)(X,Y)LLX,YX,Y
DW

2
Я не понимаю ваши примеры. Должны ли быть максимальными парами? кажется, не является действительным ...u,v,wu,v,wvv
Рафаэль

1
Пример взят из упомянутой выше статьи. u , v , w должны быть максимальными парами. Я также не понимаю , как v вычисляется , так как он , похоже , не обязательно быть в L . Я опубликую другой пример. u,v,wvL
Лора

1
@ Рафаэль, мне кажется, что v действительно. Пусть X = Σ a Σ , Y = Σ b Σ , ( X , Y ) является факторизацией, поскольку X Y = L (рассмотрим любую строку, содержащую a , затем любую последовательность a 's и / или б «s, то в конечном счете б : эта строка должна иметь какой - то момент , когда первые б появляется, так что точка , где она содержитvX=ΣaΣY=ΣbΣ(X,Y)XY=Laabbbб ). У меня нет доказательствчто она максимальна, но я не могу найти больше множества X ' , Y ' , которые являются факторизация L . abX,YL
DW

Ответы:


8

Как предлагается в комментариях к вопросу, я постараюсь дать (к сожалению, частичный) ответ на вопрос, по крайней мере, в той степени, в которой я сам понял проблему (это подразумевает, что вы вполне можете найти ошибки, и если вы найдете способ более кратко или ясно объяснить один из следующих пунктов, не стесняйтесь редактировать ответ соответственно):

Во-первых, следует отметить, что на самом деле нам не нужно вычислять универсальный автомат языка, если мы хотим вычислить факторизации языка.

Из статьи, упомянутой в моем комментарии ¹, есть соответствие 1-1 между левым и правым факторами обычного языка, то есть, учитывая левый фактор языка, соответствующий правый фактор определяется однозначно, и наоборот. Точнее, имеем следующее:

Пусть ( X , Y ) является факторизация L . Тогда Y = x X x - 1 L , X = y Y L y - 1 , то есть любой левый фактор является пересечением правых отношений, а любой правый фактор - пересечением левых отношений. И наоборот, любое пересечение левых частного L является правым фактором L , и любое пересечение правого частного L является левым фактором L .(X,Y)L

Y=xXx1L,X=yYLy1,
LLLL

Обратите внимание, что для обычного языка существует только конечный набор левого и правого факторов, и, следовательно, или проблема сводится к вычислению левого и правого факторов языка, а затем к вычислению их ∩- стабильного замыкания, то есть минимального надмножество частных, замкнутое при пересечении. Они тогда точно правые и левые факторы факторы, а затем, как правило , легко увидеть , какие пары являются подмножества L .L

пример

Чтобы проиллюстрировать вышеуказанные моменты, рассмотрим первый пример в вопросе (о котором я также думаю, что он неверен в статье):

Пусть L = Σ a b Σ . Теперь, левый факторгруппы L являются множества х - 1 л для х Е * , то есть те слова U в Е * , что может быть с префиксом х , т.е. х у L . Когда y - 1 L = x - 1 L для различных x , y ? Это имеет место тогда и только тогда, когда хL=ΣabΣLx1LxΣuΣxxuLy1L=x1Lx,yxи y можно дополнить словами в L с точно такими же суффиксами. Это означает, что, если говорить более привычно, они эквивалентны Nerode, а суффиксы, необходимые для добавления слов в класс Nerode, являются именно соответствующими левыми частными.yL

Для L мы видим, что наши классы Nerode-эквивалентностиL

  • N 1 , набор слов, не содержащий a b как фактор и заканчивающийся на a , N1aba
  • N 2 - набор слов, оканчивающийся на b и не содержащий a b как фактор, и N2bab
  • N 3 , набор слов, содержащий a b как фактор, то есть N 3 = LN3abN3=L

Они могут быть дополнены следующими наборами (то есть, это левые коэффициенты слов в соответствующих классах):

  • S 1 = x - 1 L для x в N 1 состоит из всех слов в L (любое слово может быть дополнено словом, содержащим a b в качестве фактора и, таким образом, становится словом в L ) и b Σ , то есть S 1 = L b Σ S1=x1LxN1LabLbΣS1=LbΣ
  • S 2 = x - 1 L для x в N 2 - это сам язык, то есть S 2 = L иS2=x1LxN2S2=L
  • S 3 = x - 1 L для x в N 3 , очевидно, Σ . То есть, мы нашли три правильных факторы L . Поскольку S 2S 1S 3 , их ∩- стабильное замыкание тривиально S 1 , S 2 , S 3 , и тогда они являются точно правильными факторами.S3=x1LxN3ΣLS2S1S3S1,S2,S3

Следовательно, наш набор факторизации F L имеет вид ( P 1 , S 1 ) , ( P 2 , S 2 ) , ( P 3 , S 3 ) .FL(P1,S1),(P2,S2),(P3,S3)

Теперь для левых факторов P i используем уравнения начала этого ответа:Pi

P i = x S i L x - 1 .

Pi=xSiLx1

Для Р 1 , это дает L Е * , для P 2 мы получаем Е * и P 3 , получаем L . Вы можете убедиться в этом по проверке (наиболее популярное оправдание за то, что слишком ленив, чтобы сформулировать формальное доказательство) или по явному вычислению правильных отношений (что довольно аналогично, хотя и не полностью, вычислению левых отношений). Таким образом, наши факторизации определяются как F L = u , v , w, гдеP1LΣaP2ΣP3LFL=u,v,w

  • u = ( P 1 , S 1 ) = ( Σ a b Σ Σ a , Σ a b Σ b Σ )u=(P1,S1)=(ΣabΣΣa,ΣabΣbΣ)
  • v = ( P 2 , S 2 ) = ( Σ , Σ a b Σ ) иv=(P2,S2)=(Σ,ΣabΣ)
  • w = ( P 3 , S 3 ) = ( Σ a b Σ , Σ )w=(P3,S3)=(ΣabΣ,Σ)

Резюме

Подводя итог (как вы просили для простой процедуры):

  • Для вычисления факторизации языка L , сначала вычислить левую факторизацию L .LL
  • Вы можете сделать это на языке статьи, построив минимальный DFA A для L, а затем для каждого состояния q в A (соответствующего, как класс эквивалентности Nerode, левому частному) вычислить будущее q в A получая, таким образом, один левый коэффициент языка для каждого состояния.ALqAqA
  • Полученный таким образом набор левых отношений дает, как правило, подмножество S R правых факторов.SR
  • Вычислительное то -stable замыкания S R , который может быть реализован на практике путем формирования пересечения любого подмножества S R и добавления какого - либо подмножества , полученное таким образом , к S R .SRSRSR
  • Множество S R вместе со всеми пересечениями из предыдущего шага , то множество правых факторов L .SRL
  • Для того , чтобы получить левые факторы, мы можем вычислить правильную факторизацию L .L
  • Это множества вида L y - 1 для y Σ . Теперь их снова только конечное число, и для x y мы имеем L y - 1 = L x - 1 тогда и только тогда, когда для всех u Σ , u x L u y L , то есть они может иметь префикс к словам в языке с точно таким же набором строк.Ly1yΣxyLy1=Lx1uΣuxLuyL
  • Чтобы вычислить L x - 1 , рассмотрим те состояния q в A , что x содержится в будущем q . Союз прошлого тех государств составляет один правильный коэффициент. Найдите все эти коэффициенты.Lx1qAxq
  • Вы знаете, что вы сделали, когда вы нашли столько левых факторов, сколько у вас есть правильных факторов.
  • Найти такие пары левого и правого факторов X , Y такое , что X Y L . Это F L .X,YXYLFL

  1. Универсальный автомат Ломбардии и Сакаровича (в « Текстах в логике и играх», том 2: Логика и автоматы: история и перспективы , 2007)

3
Nice! Let's note that ABAB is decidable for regular languages and that these factors XX, YY end up being regular due to closure properties. Hence we can not only effectively compute the last bullet in the summary, but we can also filter out the maximal pairs.
Raphael
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.