[Informatica teorica] linguaggi regolari

sisafra
Ciao a tutti..sono alle prese con l'ODIATA ( perlomeno da me ) informatica teorica..
Dire che non ho dimestichezza con queste cose è poco..il corso è stato tenuto MALISSIMO, e quando mi trovo a fare gli esercizi non so dove sbattere la testa..o meglio, ho le idee, ma poi..

Una delle cose che mi blocca maggiormente è il pumping lemma e la sua applicazione..in particolare volevo proporvi un esercizio, e vedere se riuscivo un po' a chiarirmi le idee..

Sia $ L= ( w in (0,1)^** : $ numero di 1 in w è multiplo di 3, numero di 0 in w è multiplo di 2 $)$
Stabilire se tale L è regolare. In caso affermativo costruire un DFA A e formalmente dimostrare che L=L(A). In caso negativo dimostrare formalmente che L non è regolare.

Leggendo penso subito che qui o uso il pumping lemma per dimostrare la non regolarità, oppure uso l'induzione sulla lunghezza delle stringhe per dimostrare che L=L(A) dopo aver disegnato l'automa.

Ma il passo iniziale suppongo sia dare una motivazione intuitiva sul fatto che tale linguaggio sia o non sia regolare e quindi agire di conseguenza poi formalmente con la dimostrazione di una cosa o dell'altra.o sbaglio?

Come faccio a dire già da una prima occhiata se è o non è regolare?
Io direi che poichè devo tenere traccia del numero di 0 e di 1 contati il linguaggio proposto NON è regolare..andrei ad utilizzare poi il pumping lemma..ma..non sono sicura, è tutta una ipotesi, non ho un'idea di come affrontare la cosa a livello di intuizione..

Mi potete dare un suggerimento?
Grazie mille!

Risposte
Gi81
Se avessimo avuto \( \displaystyle L_1 = \{ w \in \{0,1\}^{*} \quad | \quad \text{ il numero di 1 in }w\text{ è multiplo di 3} \}\), cosa avresti detto?
$L_1$ è regolare?

sisafra
Avrei detto sempre di no, per lo stesso motivo di prima. Perchè non esiste un DFA che "conta", ho letto una cosa del genere su una dispensa da qualche parte..
Non ho proprio idea di come fare a stabilire "a naso" se un linguaggio è regolare o meno..

Una stringa che appartiene al linguaggio L da me indicato può essere $ w=0^(3k)1^(2k) $ ?
Scusate per le domande banali, magari, e anche stupide magari, ma proprio mi perdo in questa materia..

Gi81
Stai facendo un po' di confusione.
Prendiamo il mio esempio, cioè $L_1$ come definito sopra.
Questo potrebbe essere un dfa per rappresentarlo:

sisafra
Ok, fin qui ci sono..quindi dici che dato che esiste questo DFA si deduce che L1 è regolare..giusto?

Gi81
Esatto. Quindi, come vedi, in alcuni casi si può anche "contare" anche con i dfa.

Prova a fare il dfa del linguaggio $L$. Non è troppo diverso da quello che ho fatto io.
Bisogna "contare" le occorrenze, oltre che degli $1$, anche degli $0$ .

sisafra
Ora provo .. poi se ho l'illuminazione posto qui..grazie mille intanto!

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.