Пересечение двух (минимальных) DFA с n состояниями может быть вычислено с использованием O (n 2 ) времени и пространства. В общем, это оптимально, поскольку результирующий (минимальный) DFA может иметь n 2 состояний. Однако, если результирующий минимальный DFA имеет z состояний, где z = O (n), можно ли его вычислить в пространстве n 2-eps для некоторой константы eps> 0? Я был бы заинтересован в таком результате даже для особого случая, когда входные DFA являются ациклическими.
automata-theory
dfa
Расмус Паг
источник
источник
Ответы:
Ответ - да, без каких-либо требований к размеру автомата. Его можно вычислить в пространствеO(log2n) даже для DFA, где - это константа.k k
Пусть ( будет DFA. Мы показываем, что с учетом вычисление минимального распознавания DFA может быть выполнено в пробел. Сначала докажем некоторые технические результаты.я ∈ [ K ] ) к ⟨ 1 , ... , к ⟩ л ( 1 ) ∩ ⋯ ∩ L ( к ) О ( log 2 n )Ai=(Qi,Σi,δi,zi,Fi) i∈[k]) k ⟨A1,…,Ak⟩ L(A1)∩⋯∩L(Ak) O(log2n)
Определение 1 : Пусть два состояния, тогда если ,q ≡ r ∀ w ∈ Σ ∗ q . w ∈ F ⇔ r . w ∈ Fq,r q≡r ∀ ж Е Е* Q, w ∈ F⇔ р . w ∈ F
Теперь рассмотрим автомат заданный классической декартовой конструкцией произведений. Пусть и быть состояния .q = ( q 1 , … , q k ) r = ( r 1 , … , r k ) AA Q= ( д1, … , ДК) г = ( г1, … , ГК) A
Лемма 1 : Решаем, находится ли в NL.Q≡ г
Доказательство (набросок): мы показываем, что проверка неэквивалентности находится в NL, и используем NL = coNL. Угадай слово (одна буква за раз), такое что является конечным состоянием и не Это может быть достигнуто путем вычисления в лог-пространстве для и использования того факта, что является конечным, если . Можно показать, что влечет существование поли-размера. q . ж г . w q i . w , r i . w i ∈ [ k ] q q i ∈ F iw ∈ Σ* Q.w r.w qi, w , rя, вес i ∈ [ k ] Q д ≢ г шQя∈ Fя∀ я ∈ [ к ] Q≢ г вес
Лемма 2 : Решение о том, является ли доступным, находится в NL.Q
Доказательство (эскиз): угадать (полиразмер) пути от до ( ).q i i ∈ [ k ]Zя Qя i ∈ [ k ]
Определение 2 : Рассмотрим состояния в лексикографическом порядке. Определите как первое доступное состояние и первое доступное состояние после которое не эквивалентно никакому предыдущему состоянию. Определим как уникальное такое, что .s ( 1 ) s ( i ) s ( i - 1 ) c ( q ) i q ≡ s ( i )A с ( 1 ) с ( я ) s(i−1) c(q) i q≡s(i)
Лемма 3 : может быть вычислена в пространстве .O ( log 2 n )s(i) O(log2n)
Доказательство (набросок): определение 2 дает алгоритм. Мы используем счетчиков для перебора состояний. Пусть и текущее состояние. В каждом состоянии мы используем лемму 2, чтобы проверить , доступна ли . Если это так, мы зацикливаемся на всех предыдущих состояниях и проверяем, эквивалентно ли какое-либо из них . Если их нет, мы увеличиваем и выводим если . В противном случае мы сохраняем как и продолжаем. Поскольку мы храним только постоянное количество счетчиков, наши тесты можно выполнить вj ← 0 q q q j q j = i q s ( j ) NL ⊆ DSPACE ( log 2 n )k j←0 q q q j q j=i q s(j) NL⊆DSPACE(log2n) , это завершает доказательство.
Следствие 1 : может быть вычислено в пространстве .c(q) O(log2n)
Теорема : минимизировать можно в пространстве .A O(log2n)
Доказательство (эскиз): Пустьбыть наибольшим таким, что определено (т. е. количество классов ). Мы даем алгоритм, выводящий автомат где1≤m≤|Q0|⋯|Q1| i s(i) ≡ A′=(Q′,Σ,δ′,z′,F′)
Теперь мы покажем, как вычислить . Для каждого , вычислите и выведите переход . По лемме 3 и следствию 1 этот алгоритм работает в пространстве . Можно проверить, что минимально и .δ′ i∈[m],a∈Σ q←s(i).a (s(i),a,s(c(q))) O(log2n) A′ L(A′)=L(A)
источник
Дик Липтон и его коллеги недавно работали над этой проблемой, и Липтон писал об этом здесь:
http://rjlipton.wordpress.com/2009/08/17/on-the-intersection-of-finite-automata/
Кажется, что работа лучше, чем O (n ^ 2) открыта даже для очень особого случая определения, определяет ли пересечение DFA пустой язык.
В статье приводятся последствия сложности, которые могут возникнуть в результате значительно улучшенного алгоритма обработки не только двух DFA на перекрестке, но и больших чисел.
источник
Если вам дано k DFA (k является частью входных данных) и вы хотите знать, пусто ли их пересечение, эта проблема в целом завершена PSPACE:
Возможно, если вы внимательно изучите это доказательство (и подобные конструкции Липтона и его соавторов), вы можете найти некоторую нижнюю границу пространства даже для фиксированного k.
источник
Для двух автоматов , B, принимающих конечные языки (ациклические автоматы), сложность состояний L ( A ) ∩ L ( B ) лежит в Θ ( | A | ⋅ | B | ) (1) . Этот результат также справедлив для унарных DFA (не обязательно ациклических) (2) . Тем не менее, вы, похоже, говорите о пространстве, необходимом для вычисления пересечения двух автоматов. Я не вижу, как классическая конструкция, использующая декартово произведение, использует O ( n 2 )A B L(A)∩L(B) Θ(|A|⋅|B|) O(n2) Космос. Все, что вам нужно, это постоянное количество счетчиков логарифмического размера. Когда вы вычисляете функцию перехода для нового состояния вам нужно только сканировать входные данные, не просматривая ранее сгенерированные данные.(q,r)
Возможно, вы хотите вывести минимальный автомат? Если это так, то я понятия не имею, можно ли этого достичь. Сложность состояния пересечения для конечных языков не выглядит обнадеживающей. Однако унарные DFA имеют одинаковую сложность состояния, и я думаю, что этого можно достичь с помощью таких автоматов. Используя результаты из (2) , вы можете получить точный размер автомата, распознающего пересечение. Этот размер описывается длиной хвоста и цикла, поэтому переходная функция может быть легко вычислена с очень небольшим пространством, так как структура полностью описывается этими двумя размерами. Затем все, что вам нужно сделать, это сгенерировать набор конечных состояний. Пусть будет числом состояний в результирующем автомате, тогда для всех 1 ≤ in , состояние я это конечное состояние тогдатолько тогда я принимаюсь как A и B . Этот тест может быть проведен с небольшим количеством места.1≤i≤n i ai A B
источник