Спасибо за любую помощь заранее!
Я беру курс автоматов в школе и для жизни не могу решить пересечение двух регулярных выражений. Я посмотрел в Интернете и здесь и обнаружил, что могу создать NFA для обоих языков, дополнить их по отдельности, а затем объединить (ise) - здесь не уверен на английском языке.
После этого я затем дополняю объединение, чтобы найти последующий DFA и найти регулярное выражение из него, которое будет регулярным выражением пересечения. Однако именно с расчетом всего этого я борюсь.
У меня есть вопрос ниже, где я изменил выражения, чтобы не просто задать учебный вопрос. Оба находятся над одним и тем же алфавитом: {a,b,c,d}
.
Пусть R1 = (a(a+d))*
и R2 = ((a+b)+a+(a+d))*
Я расширил языки, чтобы попытаться понять их лучше.
Мысли: R1 содержит пустое слово (эпсилон) и слова длины 2 и 4 R2 содержит пустое слово и слова длины 3
Последующий язык пересечения должен делиться на 6?
Я искренне не знаю, как действовать дальше. Пожалуйста, может кто-нибудь помочь мне создать NFA, если это будет лучший подход. Я использовал онлайн-генераторы NFA, но продолжаю делать ошибки, когда оглядываюсь на ответы в учебных пособиях университетов. Кстати, как бы вы доказали правильность вычисляемого вами регулярного выражения?
Спасибо!
(a(a+d))*
? Кроме того, это дополнение. - person melpomene   schedule 26.02.2017+
? - person melpomene   schedule 26.02.2017(a+b)
эквивалентно(a|b)
. - person user62622   schedule 26.02.2017(a+b+d)*
. - person melpomene   schedule 26.02.2017