Informatikai logikai alapjai Mérnök informatikus 10. gyakorlat 1. Reguláris kifejezések illeszkedése 1. Az b +b ab +b ab ab +b ab ab ab reguláris kifejezés mely karaktersorozatokra illeszkedik az alábbiak közül: aaaaaaa, aaaaba, aaaabb, aaabbaa, aaabbb, abaa, abaaaab, abaaaba, baaa, baabbaa, bab, bba, bbaaab és bbbbb? Megoldás: A reguláris kifejezés jelentése: maximum 3 darab a betűt tartalmaz. Ezekre a szavakra illeszkedik a felsoroltak közül: aaabbb, abaa, baaa, bab, bba, bbaaab és bbbbb. 2. Az (a + b) aa(a + b) bb(a + b) +(a + b) bb(a + b) aa(a + b) reguláris kifejezés mely karaktersorozatokra illeszkedik az alábbiak közül: aaaaa, aaaabbb, aabab, aababba, abaabba, abb, abba, baabb, baabbb, babb, bbaa, bbab, bbabaab és bbbb? Megoldás: A reguláris kifejezés jelentése: tartalmaznak aa és bb részszót is. Ezekre a szavakra illeszkedik a felsoroltak közül: aaaabbb, aababba, abaabba, baabb, baabbb, bbaa és bbabaab. 3. Az (b + ab) reguláris kifejezés mely karaktersorozatokra illeszkedik az alábbiak közül: aaba, aabab, abaabbb, abbb, abbbabb, baabb, babaaaa, bababb, bb, bbbaab, bbbb, bbbbb, bbbbba és bbbbbb? Megoldás: A reguláris kifejezés jelentése: nem a-re végződnek és nem tartalmaznak aa részszót, illetve lehet üres szó is. Ezekre a szavakra illeszkedik a reguláris kifejezés a felsoroltak közül: abbb, abbbabb, bababb, bb, bbbb, bbbbb és bbbbbb. 4. Az (a(aa) +ɛ)(bb (ɛ + a(aa) )) reguláris kifejezés mely karaktersorozatokra illeszkedik az alábbiak közül: aaaabba, aabaaba, aababa, abba, baaaaa, bab, babaaa, babbba, bbaaaa, bbaab, bbaaba, bbbabab, bbbbb és bbbbbaa? Megoldás: A reguláris kifejezés jelentése: a betűt csak páratlan hosszú blokkokban tartalmaznak. Ezekre a szavakra illeszkedik a reguláris kifejezés a felsoroltak közül: abba, baaaaa, bab, babaaa, babbba, bbbabab és bbbbb. 5. Az b (aa(aa) bb(bb) +a(aa) b(bb) ) reguláris kifejezés mely karaktersorozatokra illeszkedik az alábbiak közül: aaab, ab, abaa, abaaa, abaab, ba, baaa, baabb, bb, bbbab, bbbba, bbbbab, bbbbba és bbbbbb? Megoldás: A reguláris kifejezés jelentése: a páratlan hosszú a blokkokat páratlan hosszú b blokkok követik, a páros hosszúakat pedig páros hosszúak. Ezekre a szavakra illeszkedik a felsoroltak közül: aaab, ab, baabb, bb, bbbab, bbbbab és bbbbbb. 6. Az a ba ba reguláris kifejezés mely karaktersorozatokra illeszkedik az alábbiak közül: aaaaabb, aab, aabba, ababaa, abbb, abbba, abbbaa, baaaba, bab, bb, bba, bbaaab, bbb és bbbaa? Megoldás: A reguláris kifejezés jelentése: pontosan 2 darab b betűt tartalmaz. Ezekre a szavakra illeszkedik: aaaaabb, aabba, ababaa, baaaba, bab, bb és bba.
INBK401 10. gyakorlat 2/5 7. Az a ba b(a + b) reguláris kifejezés mely karaktersorozatokra illeszkedik az alábbiak közül: aa, aaa, aaaa, aaaaaba, aaaab, ab, abaab, abaabb, abab, ababbb, abbbbb, ba, baabab és bbb? Megoldás: A reguláris kifejezés jelentése: legalább 2 darab b betűt tartalmaz. Ezekre a szavakra illeszkedik: abaab, abaabb, abab, ababbb, abbbbb, baabab és bbb. 8. Az a (ba ba ) reguláris kifejezés mely karaktersorozatokra illeszkedik az alábbiak közül: aa, aaaaa, aabaabb, aababa, ababab, abababb, abba, ba, baa, baaa, babaa, babaab, bababbb és bbabaab? Megoldás: A reguláris kifejezés jelentése: páros sok b betűt tartalmaz. Ezekre a szavakra illeszkedik: aa, aaaaa, aababa, abababb, abba, babaa és bbabaab. 9. Az a b reguláris kifejezés mely karaktersorozatokra illeszkedik az alábbiak közül: aaaaaa, aaaaba, aaaabbb, aab, aabaaab, aabbb, ab, ababaab, babb, bb, bbabba, bbba, bbbabaa és bbbb? Megoldás: A reguláris kifejezés jelentése: nem tartalmaz ba részszót. Ezekre a szavakra illeszkedik: aaaaaa, aaaabbb, aab, aabbb, ab, bb és bbbb. 10. Az (a + b) (b + ba + baa) + aa + a + ɛ reguláris kifejezés mely karaktersorozatokra illeszkedik az alábbiak közül: aaa, aaaa, aaabba, aaba, aabaaa, aabaaaa, abaaaaa, baaa, babab, bba, bbabbbb, bbba és bbbabb? Megoldás: A reguláris kifejezés jelentése: nem aaa-ra végződik. Ezekre a szavakra illeszkedik: aaabba, aaba, babab, bba, bbabbbb, bbba és bbbabb. 11. Az (b + ab) (a + ɛ) reguláris kifejezés mely karaktersorozatokra illeszkedik az alábbiak közül: aaab, aaabba, aabaaa, aabbaaa, ababa, abbaab, abbb, abbba, abbbbb, bab, babbbba, bbaaab, bbbaa és bbbb? Megoldás: A reguláris kifejezés jelentése: nem tartalmazza az aa részszót. Ezekre a szavakra illeszkedik: ababa, abbb, abbba, abbbbb, bab, babbbba és bbbb. 12. Az (b + ab) (aa + a + ɛ)(b + ba) reguláris kifejezés mely karaktersorozatokra illeszkedik az alábbiak közül: aaa, aaaabab, aaab, ab, abaaaaa, ababa, abbbaba, baaaab, baaaba, baabba, babbb, bbaaa, bbaaba és bbaba? Megoldás: A reguláris kifejezés jelentése: maximum egyszer tartalmazza az aa részszót. Ezekre a szavakra illeszkedik: ab, ababa, abbbaba, baabba, babbb, bbaaba és bbaba. 13. Az (a + b) aaa reguláris kifejezés mely karaktersorozatokra illeszkedik az alábbiak közül: aaaaa, aaaaaa, aaaaaaa, ab, abaaaaa, abbaa, abbb, abbbaaa, babbaaa, bbaaaa, bbaba, bbabbbb, bbbabb és bbbbbba? Megoldás: A reguláris kifejezés jelentése: aaa-ra végződik. Ezekre a szavakra illeszkedik: aaaaa, aaaaaa, aaaaaaa, abaaaaa, abbbaaa, babbaaa és bbaaaa.
INBK401 10. gyakorlat 3/5 14. Az (a+b) aba(a+b) reguláris kifejezés mely karaktersorozatokra illeszkedik az alábbiak közül: aaaba, aababa, aabb, aabbaa, abaa, abaaaa, abaab, ababba, abbb, baabab, baabbab, bbaaaa, bbb és bbbbbab? Megoldás: A reguláris kifejezés jelentése: tartalmazza az aba részszót. Ezekre a szavakra illeszkedik: aaaba, aababa, abaa, abaaaa, abaab, ababba és baabab. 2. Reguláris kifejezések konstruálása 15. A továbbiakban legyen Σ = {a, b}! (a) Konstruáljon meg egy olyan reguláris kifejezést, mely által felismert szavak maximum 3 darab a betűt tartalmaznak! Megoldás: b +b ab +b ab ab +b ab ab ab, azaz állhat a szó csak b betűkből, az egyetlen a előtt és után állhatnak b betűk, ahogy a két, vagy három a betű között, előtt és után. (b) Konstruáljon meg egy olyan reguláris kifejezést, mely által felismert szavak tartalmaznak aa és bb részszót is! Megoldás: [(a + b) aa(a + b) bb(a + b) ] + [(a + b) bb(a + b) aa(a + b) ], mindkét sorrendet jelölni kell. (c) Konstruáljon meg egy olyan reguláris kifejezést, mely által felismert szavak nem a-ra végződnek és nem tartalmaznak aa részszót! Megoldás: Ha nem lehet a szóban aa részszó, akkor az a betű mögött b betűnek kell lennie, és bármilyen hosszú b-kből álló blokk is kialakítható. Ezért a megoldás (b + ab). (d) Konstruáljon meg egy olyan reguláris kifejezést, mely által felismert szavak a betűket csak páratlan hosszú blokkokban tartalmaznak (azaz a abbbabbaaa szót felismeri, míg a aabbaaabba szót már nem)! Megoldás: a(aa) +b (a(aa) bb ) (ɛ + a(aa) ), a szó állhat csak a betűkből. vagy az a-blokkokat b betűk választják el. A szó befejeződhet a-blokkal, vagy b betűkkel is. (e) Konstruáljon meg egy olyan reguláris kifejezést, mely által felismert szavakban a páratlan hosszú a-blokkokat közvetlenül páratlan hosszú b-blokkok követik, míg a páros hosszú a-blokkokat pedig páros hosszú b- blokkok! Megoldás: A szó elején állhatnak b betűk b [aa(aa) bb(bb) a(aa) b(bb) ] (f) Konstruáljon meg egy olyan reguláris kifejezést, mely által felismert szavakban pontosan 2 darab b található! Megoldás: A két b betű előtt, között és után tetszőleges számú a betű előfordulhat, így a válasz: a ba ba. (g) Konstruáljon meg egy olyan reguláris kifejezést, mely által felismert szavakban legalább 2 darab b található!
INBK401 10. gyakorlat 4/5 Megoldás: (a + b) b(a + b) b(a + b) vagy a ba b(a + b) (h) Konstruáljon meg egy olyan reguláris kifejezést, mely által felismert szavakban páros sok b található! Megoldás: A két b betűt szerepeltetni kell, előttük, közöttük, mögöttük tetszőleges a betű szerepelhetne. Ilyen két-b-s blokkokból tetszőleges sok követheti egymást. A blokk elején szereplő a betűket kiemelhetjük, mert a blokkot záró a betűk úgyis összeolvadnak a következő blokkot kezdő a betűkkel. Innen a megoldás: a (ba ba ). (i) Konstruáljon meg egy olyan reguláris kifejezést, mely által felismert szavak nem tartalmaznak ba részszót! Megoldás: A feltétel miatt a betű nem szerepelhet b betű mögött. Ha mégis lenne ilyen, akkor közülük a legelső csak közvetlenül egy b betű mögött kapna helyet, ezért az összes a betű az összes b betű előtt szerepel, azaz a megoldás: a b. (j) Konstruáljon meg egy olyan reguláris kifejezést, mely által felismert szavak nem végződnek aaa-ra! Megoldás: A szó első részében bármi szerepelhet, majd az utolsó b-t követően maximum 2 db. a fordulhat elő. Azzal is számolni kell, hogy nincs utolsó b (azaz egy sem). (a+b) (b+ba+baa)+ɛ+a+aa (k) Konstruáljon meg egy olyan reguláris kifejezést, mely által felismert szavak nem tartalmazzák az aa részszót! Megoldás: A (b + ab) reguláris kifejezés által felismert szavakban minden a betűt egy b betű követ, és a szó nem a betűre végződik (b-re, vagy maga egy üres szó). Ha az a betűre végződő szavakat is szeretnénk, akkor ezt alternatív módon engedélyezni kell, így a megoldás (b + ab) (a + ɛ). (l) Konstruáljon meg egy olyan reguláris kifejezést, mely által felismert szavak maximum egyszer tartalmazhatják az aa részszót! Megoldás: Az előző megoldásból megismertük a (b + ab) reguláris kifejezést, ami jó lesz a felismert szavak prefixéhez. Suffix (végszelet) esetén ennek tükrözött alakját kapjuk: (b + ba) E két rész között kaphat helyet a aa rész, illetve ha egy a betű lenne önmagában a szó, akkor ez. Sőt ha a szó csak b betűkből állna, akkor ennek a középső résznek el kell tünnie. Ezzel a válasz (b+ab) (aa+a+ɛ)(b+ba) lesz. (m) Konstruáljon meg egy olyan reguláris kifejezést, mely által felismert szavak aaa-ra végződnek! Megoldás: (a + b) aaa (n) Konstruáljon meg egy olyan reguláris kifejezést, mely által felismert szavak tartalmazzák a aba részszót! Megoldás: (a + b) aba(a + b) (o) Adja meg azt a legrövidebb szót, melyet nem ismer fel az a (ab) b reguláris kifejezés! Megoldás: A 0 és 1 hosszú szavakat felismeri, ahogy a aa, ab és bb szavakat is, de nem a ba szót! (p) Konstruáljon meg egy olyan reguláris kifejezést, mely által felismert szavak nem ab-re végződnek!
INBK401 10. gyakorlat 5/5 Megoldás: A szó vagy a-ra végződik, vagy dupla b-re, így a megoldás (a + b) (a + bb) (q) Legyen R 1 = a +b és R 2 = ab +ba +b a + (a b)! Adjon meg egy olyan szót, melyet az R 2 felismer, viszont az R 1 nem! Megoldás: Az egyfajta betűből álló szavakat az R 1 felismeri, így olyan szóra van szükség, mely a és b betűt is tartalmaz, pl. ab vagy ba. Legyen R 1 = a +b és R 2 = ab +ba +b a + (a b)! Adjon meg egy olyan szót, melyet az R 1 és R 2 is felismer! Megoldás: Az R 1 a maximum egyfajta betűből álló szavakat ismeri fel, míg az R 2 által felismert ilyen szavak a ɛ, a, b, illetve az utolsó tagból a b. 16. A továbbiakban legyen Σ = {a, b, c}! (a) Konstruáljon meg egy olyan reguláris kifejezést, mely által felismert szavak nem tartalmaznak bc részszót! Megoldás: c (b + ac ), azaz minden c-blokkot kezdő c-t csak a előzhet meg.