Алгоритм перетину DFA для особливих випадків


9

Мене цікавлять ефективні алгоритми перетину DFA для особливих випадків. А саме, коли ДФА для перетину підкоряються певній структурі та / або працюють з обмеженим алфавітом. Чи є джерело, де я можу знайти алгоритми таких випадків?

Щоб питання не було занадто широким, особливу інтерес представляє наступна структура: всі DFA, які перетинаються, працюють у двійковому алфавіті (0 | 1), вони також можуть використовувати символи, що не цікавляться. Більше того, всі стани мають лише один перехід, за винятком якнайбільше K спеціальних станів, у яких є лише два переходи (і ці переходи завжди є 0 або 1, але жодного не хвилює). K - ціле число, менше 10 для практичних цілей. Також у них є єдиний приймаючий стан. Крім того, відомо, що перетин ВЖЕ є DFA у вигляді "смужки", тобто немає гілок, як на наступному зображенні:

введіть тут опис зображення

EDIT: Можливо, опис обмеження на вхідних DFA не дуже зрозумілий. Я спробую вдосконалити це в цьому пункті. Ви маєте вхідні T DFA. Кожен з цих DFA працює лише на двійковому алфавіті. Кожен з них має не більше N станів. Для кожного DFA, кожен з його штатів є одним із наступних:

1) стан, що приймає (він лише один і немає переходу з нього в інший стан)

2) стан з двома переходами (0 і 1) в один і той же цільовий стан (більшість штатів такого роду)

3) стан із двома переходами (0 та 1) у різні цільові стани (щонайбільше K такого типу)

Гарантується, що існує лише один стан, що приймає, і що в кожному вхідному DFA є щонайбільше K станів типу (3). Це також гарантує , що перетин DFA все вхідні ДКІ є «смугою» (як описано вище), розміри менше , ніж N .

EDIT2: Деякі додаткові обмеження, як вимагає DW у коментарях:

  • Вхідні DFA - це DAG.
  • Вхідні DFA "вирівнюються", дотримуючись визначення DW в коментарях. А саме, ви можете призначити різні цілі числа для кожного стану таким чином, що кожен перехід переходить від цілого числа u до цілого числа v , такого, що u + 1 = v .
  • Кількість допускають станів для кожного вхідного DFA, не перевищує K .

Будь-які ідеї? Дякую.


Як саме ви моделюєте "байдуже"? Це, здається, робить автомати недетермінованими, певним чином.
Шаул

@Shaull Чому він повинен зробити автомат не детермінованим. Це може статися лише за умови іншого переходу з того ж стану, який явно виключений.
babou

1
Що таке a DFA in form of "strip", i.e., no branches? Чи є у вас якісь конкретні причини вважати, що у вашому випадку можна зробити краще, ніж стандартний алгоритм?
бабу

1
Привіт. Обчислення фактичного перехрестя було б чудово, оскільки воно спростило б багато речей, але вирішення порожнечі було б також корисним.
ale64bit

1
щойно наткнувся на новий документ про графіки перетину , чи може бути деяка частина цієї теорії актуальною? Ви могли б розширити свою заявку, згадану у вашому коментарі у Теоретичному чаті з інформатики ? & запросити інших продовжити подальшу дискусію там.
vzn

Відповіді:


9

Так , є деякі випадки проблеми введення порожнечі DFA, які знаходяться всередині П. Моє магістерська робота присвячена цьому питанню, але, на жаль, це французькою мовою. Тим НЕ менше, більшість результатів з'явилися тут в[2].

Коли алфавіт не є однорідним, то проблема є L-повною, коли кожен DFA має щонайбільше два кінцеві стани, а NP - завершеним в іншому випадку. Більшість інших випадків - обмеження на перехідні моноїди автоматів. Наприклад, для моноїдів абелевої групової перехідної проблеми проблема полягає вNC3коли кожен DFA має щонайменше один кінцевий стан, а NP - завершений в іншому випадку; для елементарних 2-груп перехідних моноїдів проблема єL-завершений, коли кожен DFA має щонайбільше два кінцеві стани, а NP - завершені в іншому випадку.


Дозвольте зараз вирішити ваше більш точне запитання, яке можна знайти лише в [1]. Припустимо, вам надано DFA{0,1} і має форму дерев, тобто існує держава у (початковий стан) такий, що для кожного стану v існує унікальний шлях від у до v. Тоді вирішенням перехрестя не порожнечі є:

  1. L-повна для одного кінцевого стану у кожному DFA,
  2. NL - повна для двох кінцевих станів у кожному DFA, і
  3. NP-повна для трьох або більше кінцевих станів у кожному DFA.

Результати твердості все ще зберігаються, навіть якщо ви "роздвояєте" відповідно 0, 1 або 2 рази (це ваше К). Тепер, якщо ваші DFA спрямовані на ациклічні графіки замість дерев, то проблема є NP-повною навіть з одним кінцевим станом у кожному DFA таК=2; зменшення є досить простим і відбувається від Monotone 1-in-3 3-SAT.

Тому ні , я не думаю, що існує ефективний алгоритм для вашої проблеми.

Тепер, якщо кількість автоматів буде фіксованою, ви можете поговорити з Майклом Вехаром, який нещодавно опублікував[3].


EDIT: Оскільки ОП редагував його питання, дозвольте мені уточнити свою відповідь щодо його нових вимог. Розгляньте NP-повну проблему Monotone 1-in-3 3-SAT, де вам задано формулу в 3-CNF без заперечення, і де ви повинні визначити, чи є призначення, яке робить рівно одну змінну істинною в кожному пункті. Ви можете звести цю проблему до проблеми перетину порожнечі наступним чином. Наприклад, для пунктух2х3х5, ви будуєте наступний автомат:

гаджет для зменшення

Зауважте, що автомати - це дерева (а отже, і DAG), вирівнюються і мають три кінцеві стани. Насправді три кінцеві стани можуть бути об'єднані в одне, якщо задоволене DAG. Більше того, лише два стани мають два (чіткі) вихідні переходи.

  1. Майкл Блондин. Complexité raffinée du problème d'intersection d'automates, магістратура дисертація, Університет де Монреаль, 2012.
  2. Майкл Блондин, Андреас Кребс та П'єр МакКензі. Складність пересічних кінцевих автоматів, що мають небагато кінцевих станів, обчислювальна складність (CC), 2014 рік.
  3. Майкл Вехар. Результати твердості для перетину не порожнечі. ICALP, 2014 рік.

2
Дуже дякую! Я приймаю вашу відповідь. Питання випливало з деяких практичних тестів, де все зменшилося після багатьох кроків до перетину рішень багатьох ДФА з цими конкретними характеристиками. Тим не менш, ми помітили, що, хоча в кінці ми отримаємо простий DFA, процес так і не закінчився, оскільки проміжні DFA (в той час як послідовно перетинаються) дико переросли в експоненціальну кількість станів. Таким чином, питання, як отримати відповідь, не проходячи посередницьких "наївних" кроків.
ale64bit

1
Велике спасибі (і вибачте за те, що я незрозумілий, я в цій галузі нижче початківця). Тепер я щось не розумію. Ви згадуєте, що "у формі дерева" означає "унікальний шлях від кореня до кожного іншого вузла". Але, наприклад, у зображенні, яке ви розмістили в редагуванні, це не було б дерево (якщо ви не рахуєте переходи 0/1 як одну мітку)?
ale64bit

1
Ви маєте рацію, але я розумію, що ви дозволяєте переходити "не байдуже". Чи не так?
Майкл Блондин

2
Привіт, Майкл. Дякую за гарну відповідь. Сподіваюсь, все гаразд. :)
Майкл Вехар

2
@MichaelWehar Якщо ви виправите і k, і c, ви згадаєте, що можете вирішити проблему "швидко". Але ти не згадуєш часові складності, а лише складність простору. Що саме "швидко" означає у цьому контексті?
ale64bit
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.