2013-12-06 4 views
4

подготовка к экзамену и проходил через эту проблему:Определение, если два языка равны [Регулярное выражение]

определить множество строк, представленное R1, является ли подмножество R2?

R1 = (01 +10)*  R2 = ((01)* + (10)*) 

Моя попытка: Поскольку представляют такое же выражение, я пытался доказать, что они такие же R1 ⊆ R2

Я попытался показать R2 такой же, как R1: поэтому я попытался это , используя регулярное выражение теорему эквивалентности:

((01 + ε) + (10 + ε) ) = (01 + ε) + (10 + ε) *

нет wi застрял, я думаю о применении правила ассоциативности здесь и показывая, что (01 + ε) * + (10 + ε) * = (01 + 10) * + (ε + ε) * = (01 + 10) * // Я думаю, этот шаг может быть неправильно

, таким образом, R 2 = R 1

стадия: (01 + ε) + (10 + ε) * = (01 + 10) + (ε + ε) * = (01 + 10) *

Я думаю, что это неправильно, я думаю, что неправильно применяю закон ассоциативности, я не знаю, как его использовать, когда он имеет * на нем. Любая помощь по этому поводу будет оценена по достоинству. Пожалуйста:

+1

Я не делал этих доказательств довольно давно, но на первый взгляд оказывается, что r2 является подмножеством r1, но r1 не является подмножеством r2. –

+4

Этот вопрос не соответствует теме, потому что это не вопрос программирования. Попробуйте http://cs.stackexchange.com/ –

ответ

1

Я не сделал доказательств через некоторое время, но я бы подумал, что здесь достаточно простого доказательства контрпримера.

Начните с утверждения, что R1 является подмножеством R2 (строгое или не должно иметь значения).

Обратите внимание, что R1 может произвести следующую строку (при условии + средства ИЛИ, так что R1 может производить либо 01 или 10 в любом шаблоне бесконечно):

10 01 

Вы можете наблюдать, что невозможно произвести эту строку в R2, так как R2 определен таким образом, что он должен иметь либо только пары 01, либо только пары 10.

Следовательно, поскольку R1 может создавать строки за пределами области R2, R1 не может быть подмножеством, строгим или нет, R2.

+0

Ударьте вас к нему. :) –

+0

Я знаю, я был раздражен собой, потому что не набирал быстрее! Изменить: а также для неверного толкования определения R2, ​​исправлено это. – ajp15243

+0

Не знаю, почему мы можем получить только 1 или 10 пар из R2, Разве мы не можем выбрать оба?Также из R1 мы можем получить 1001 пару? или это только 10 или 01 – Rave

2

Предположим, что для противоречия R1 ⊆ R2. Поэтому каждая строка, s, в R1 также находится в R2.
Пусть s = "1001", который является членом R1; однако s не является членом R2. => < =

Поскольку R1 не является подмножеством R2, поэтому все, что вам нужно показать, является контрпримером.

Смежные вопросы