Многоязычная минимизация DFA


10

Я заинтересован в небольшом обобщении DFA. Как обычно, мы имеем набор состояний , конечный алфавит , действие определенное на помощью , и начальное состояние ; но вместо обычного терминального множества, мы берем семейство подмножеств . Многоязычный DFA - это кортежQΣΣ∗Qδ:Q×Σ→Qq0(Ti)i∈1..nQM

(Q,Σ,δ,q0,(Ti))

и распознается если для некоторого . Определите как семейство языков, распознаваемых M, если хотите.L⊆Σ∗ML={s∈Σ∗|q0s∈Ti}i∈1..n(Li(M))i∈1..n

Хорошо, теперь мой вопрос: учитывая семейство регулярных языков , я хочу найти минимальный многоязычный DFA как описано выше, такой, что для все , то есть такие, чтосводится ко всем таким машинам. Мой вопрос: есть ли известные эффективные способы сделать это, возможно, аналогичные стандартной теории минимизации DFA? И наоборот, есть ли доказательства того, что эта проблема может быть сложной?(Li)i∈1..nMLi=Li(M)i∈1..n|Q|


7
Мне кажется, что стандартный алгоритм, основанный на уточнении разбиения, модифицированный только для начала путем разбиения исходного набора состояний по тому, принимают ли они / не принимают для каждого из заданных подмножеств а не для одного набора , должен просто работать немедленно. Почему бы и нет? Он разделяет пары состояний только тогда, когда они должны быть разделены, поэтому он все еще генерирует самое грубое уточнение состояний. TiT
— Дэвид Эппштейн

1
Доказательство комментария от @DavidEppstein легко, если вы определите отношение эквивалентности если для каждого , где - отношение эквивалентности Майхилла-Нерода. Затем вы можете продолжить в том же направлении, что и стандартный алгоритм минимизации. x∼yx∼Tiyix∼Tiy
— Шал

не совсем понимаю. Является ли ответом на эту проблему нахождение минимального DFA объединения DFA с одинаковой «настройкой», за исключением разных конечных состояний, каждое DFA для ? Кроме того, определение распознавания , похоже, не имеет смысла, похоже, что это смешивает строки и наборы состояний. 1..nL={...}
— 13

Замечания Дэвида Эппштейна и Шоулла выглядят убедительно, и я найду время, чтобы пересмотреть теорему Майхилла-Нерода, когда у меня будет время убедить себя, что частное все еще дает минимальный автомат. Оглядываясь назад, это кажется слишком очевидным.
— gdmclellan

@vzn: определенно не хочу объединять языки оригинального автомата; и может перекрываться. Многоязычным DFA с языками и должны быть в состоянии отчета, что , например, , но . Что касается нотации, используемой при определении распознавания языка, нотация определяется расширением до действия на по следующим правилам для всех : . TiABs∈As∉BδΣ∗Qq∈Q,σ∈Σ,s∈Σ∗qσ=δ(q,σ),q(sσ)=(qs)σ
— gdmclellan

Ответы:


14

Короткий ответ . Для конечного семейства регулярных языков существует уникальный минимальный детерминированный полный мультиавтомат, распознающий это семейство.L=(Li)1⩽i⩽n

Подробности . Случай соответствует стандартной конструкции, и общий случай не сильно отличается по духу. Для языка и слова пусть . Определите отношение эквивалентности на , установив как являются регулярными, это сравнение имеет конечный индекс. Кроме того, легко видеть , что каждый насыщается и что для каждого , означаетn=1Luu−1L={v∈A∗∣uv∈L}∼A∗

u∼v⟺for each L∈L, u−1L=v−1L
LiLi∼a∈Au∼vua∼va, Обозначим через пустое слово и -класса слова . Пусть будет детерминированным мультиавтоматом, определенным следующим образом:1[u]∼uAL=(Q,[1],⋅,(Fi)1⩽i⩽n)
  1. Q={[u]∣u∈A∗} ,
  2. [u]⋅a=[ua] ,
  3. Fi={[u]∣u∈Li} .

По построению, тогда и только тогда, когда и, следовательно, принимает семейство . Осталось доказать, что минимален. На самом деле оно минимально в сильном алгебраическом смысле (что означает, что оно имеет минимальное число состояний). Пусть и два мультиавтомата. Морфизм - это сюръективное отображение из на такое, что[1]⋅u∈Fiu∈LiALLALA=(Q,q−,⋅,(Fi)1⩽i⩽n)A′=(Q′,q−′,⋅,(Fi′)1⩽i⩽n)f:A→A′QQ′

  1. f(q−)=q−′ ,
  2. для , , 1⩽i⩽nf−1(Fi′)=Fi
  3. для всех и , .u∈A∗q∈Qf(q⋅u)=f(q)⋅u

Тогда для любого доступного детерминированного мультиавтомата принимающего , существует морфизм из в . Чтобы доказать это, сначала проверяется, что если , то . Теперь определяется как где - любое слово такое, что . Тогда можно показать, что удовлетворяет трем необходимым свойствам.ALAALq−⋅u1=q−⋅u2=qu1∼u2ff(q)=[u]uq−⋅u=qf

Конец немного отрывочный, дайте мне знать, если вам нужно больше деталей.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.