Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Obě strany předchozí revizePředchozí verzeNásledující verze | Předchozí verze | ||
| tin:ukoly:2011:2 [10. 11. 2011, 12.55:15] – [Příklad 5] indexy pitel | tin:ukoly:2011:2 [18. 08. 2026, 18.00:40] (aktuální) – odstraněno - upraveno mimo DokuWiki (Neznámé datum) 127.0.0.1 | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| - | ====== Úkol 2 ====== | ||
| - | Bc. Jan Kaláb %%< | ||
| - | ===== Příklad 1 ===== | ||
| - | **Uvažte jazyk //L//₁ = {//wcⁱ// | //w// ∈ {//a//, //b//}* ∧ (#< | ||
| - | |||
| - | **Sestavte gramatiku //G//₁ takovou, že // | ||
| - | |||
| - | //G//₁ = ({//S//, //A//, //B//}, {//a//, //b//, //c//}, //P//, //S//) | ||
| - | |||
| - | //P//: | ||
| - | * //S// → //A// | //B// | //ε// | ||
| - | * //A// → //aAc// | //bA// | //ε// | ||
| - | * //B// → //bBc// | //aB// | //ε// | ||
| - | |||
| - | **Algoritmickým postupem převeďte gramatiku //G//₁ na zásobníkový automat provádějící syntaktickou analýzu zdola nahoru.** | ||
| - | |||
| - | //M// = ({//q//, //r//}, {//a//, //b//, //c//}, {//S//, //A//, //B//, //a//, //b//, //c//, //#//}, //δ//, //q//, //#//, {//r//}) | ||
| - | |||
| - | Reduce: | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | |||
| - | Shift: | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | |||
| - | Accept: | ||
| - | * // | ||
| - | |||
| - | **Lze jazyk //L//₁ přijmout deterministickým zásobníkovým automatem (DZA)? Zdůvodněte své tvrzení (formální důkaz se nepožaduje).** | ||
| - | |||
| - | Nelze. Kvůli ∨ v zadání nevíme, zda použít podmínku #< | ||
| - | ===== Příklad 2 ===== | ||
| - | **Mějme jazyky //L//₁ = {// | ||
| - | |||
| - | ==== L₁ ==== | ||
| - | Důkaz sporem. | ||
| - | |||
| - | Předpokládejme, | ||
| - | |||
| - | Zvolíme si //z// = // | ||
| - | * //vwx// = //aᵐ//, //m// ≤ //k//, #< | ||
| - | * //vwx// = // | ||
| - | * //vwx// = //bᵐ//, //m// ≤ //k//, #< | ||
| - | * //vwx// = // | ||
| - | * //vwx// = //cᵐ//, //m// ≤ //k//, #< | ||
| - | * //vwx// = // | ||
| - | * //vwx// = //dᵐ//, //m// ≤ //k//, #< | ||
| - | |||
| - | Ukázali jsme, že nelze najít takové rozdělení, | ||
| - | |||
| - | ==== L₂ ==== | ||
| - | //G// = ({//A//, //S//, //T//}, {//a//, //b//, //c//, //d//}, //P//, //A//) | ||
| - | * //A// → //ST// | ||
| - | * //S// → //aSb// | //ε// | ||
| - | * //T// → //cTd// | //ε// | ||
| - | |||
| - | K jazyku //L//₂ lze sestavit bezkontextovou gramatiku, tudíž je bezkontextový. | ||
| - | ===== Příklad 3 ===== | ||
| - | **Mějme jazyky //L//₃ ∈ ℒ₃ a //L//₂ ∈ ℒ₂. Dokažte, že problém //L//₂ ⊆< | ||
| - | |||
| - | //L//₂ ⊆ //L//₃ ⇔ //L//₂ ∩ //L//₃′ = ∅((′ značí doplněk)) | ||
| - | |||
| - | * ℒ₂ jsou uzavřené na průnik s ℒ₃ | ||
| - | * ℒ₃ jsou uzavřené na doplněk | ||
| - | |||
| - | Problém //L//₂ ⊆< | ||
| - | ===== Příklad 4 ===== | ||
| - | **Uvažujte jazyk //L//₄, který je generován gramatikou\\ //G//₄ = ({//E//, //T//, //F//}, {//(//, //)//, //true//, //or//, //and//, //not//}, //P//, //E//), kde** | ||
| - | |||
| - | **//P//:** | ||
| - | * **//E// → //E or T// | //T//** | ||
| - | * **//T// → //T and F// | //F//** | ||
| - | * **//F// → //(E)// | //not(E)// | //true//** | ||
| - | |||
| - | **Sestrojte // | ||
| - | |||
| - | {{ pda.png |Deterministický zásobníkový automat přijímající jazyk L4}}((U přechodu ve trvaru //a//, //b// / //xyz// považuji //z// za nový vrchol zásobníku.)) | ||
| - | |||
| - | - // | ||
| - | - // | ||
| - | - // | ||
| - | - // | ||
| - | - // | ||
| - | - // | ||
| - | - // | ||
| - | - // | ||
| - | - // | ||
| - | - // | ||
| - | ===== Příklad 5 ===== | ||
| - | **Mějme gramatiku //G//₅ = ({//S//, //A//, //B//, //C//}, {//a//, //b//, //c//}, //P//, //S//), kde** | ||
| - | |||
| - | **//P//:** | ||
| - | * **//S// → //aACa//** | ||
| - | * **//A// → //B// | //a//** | ||
| - | * **//B// → //C// | //c//** | ||
| - | * **//C// → //Cc// | //bC// | ε** | ||
| - | |||
| - | **Převeďte gramatiku //G//₅ // | ||
| - | |||
| - | Bez ε přechodů: | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | |||
| - | * //S// → //aACa// | //aAa// | //aCa// | //aa// | ||
| - | * //A// → //B// | //a// | ||
| - | * //B// → //C// | //c// | ||
| - | * //C// → //Cc// | //b// | //bC// | //c// | ||
| - | |||
| - | Bez jednoduchých pravidel: | ||
| - | * // | ||
| - | * // | ||
| - | |||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | |||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | |||
| - | * // | ||
| - | * // | ||
| - | |||
| - | * //S// → //aACa// | //aAa// | //aCa// | //aa// | ||
| - | * //A// → //Cc// | //a// | //b// | //bC// | //c// | ||
| - | * //B// → //Cc// | //b// | //bC// | //c// | ||
| - | * //C// → //Cc// | //b// | //bC// | //c// | ||
| - | |||
| - | Vlastní gramatika (odstranění zbytečných a nedostupných symbolů): | ||
| - | * //V//₀ = {//S//} | ||
| - | * //V//₁ = {//S//, //a//, //A//, //C//} | ||
| - | * //V//₂ = {//S//, //a//, //A//, //C//, //c//, //b//} | ||
| - | * //V//₃ = {//S//, //a//, //A//, //C//, //c//, //b//} = //V//₂ = //V// | ||
| - | |||
| - | * //S// → //aACa// | //aAa// | //aCa// | //aa// | ||
| - | * //A// → //Cc// | //a// | //b// | //bC// | //c// | ||
| - | * //C// → //Cc// | //b// | //bC// | //c// | ||
| - | |||
| - | Chomského normální forma: | ||
| - | |||
| - | //G// = ({//S//, <// | ||
| - | |||
| - | //P//: | ||
| - | * //S// → // | ||
| - | * <// | ||
| - | * <// | ||
| - | * <// | ||
| - | * //A// → // | ||
| - | * //C// → // | ||
| - | * //a//′ → //a// | ||
| - | * //b//′ → //b// | ||
| - | * //c//′ → //c// | ||
| - | |||
| - | **Převeďte gramatiku //G//₅ // | ||
| - | |||
| - | Vlastní gramatika: | ||
| - | * Viz převod do Chomského normální formy | ||
| - | |||
| - | Odstranění levé rekurze (//S// < //A// < //C//): | ||
| - | * //S// → //aACa// | //aAa// | //aCa// | //aa// | ||
| - | * //A// → //Cc// | //a// | //b// | //bC// | //c// | ||
| - | * //C// → //b// | //bC// | //bC//′ | //bCC//′ | //c// | //cC//′ | ||
| - | * //C//′ → //c// | //cC//′ | ||
| - | |||
| - | Greibachové normální forma: | ||
| - | |||
| - | //G// = ({//S//, //A//, //C//, //C//′, //a//′, //c//′}, {//a//, //b//, //c//}, //P//, //S//) | ||
| - | |||
| - | //P//: | ||
| - | * //S// → //aACa//′ | //aAa//′ | //aCa//′ | //aa//′ | ||
| - | * //A// → //a// | //b// | //bC// | // | ||
| - | * //C// → //b// | //bC// | //bC//′ | //bCC//′ | //c// | //cC//′ | ||
| - | * //C//′ → //c// | //cC//′ | ||
| - | * //a//′ → //a// | ||
| - | * //c//′ → //c// | ||