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 | ||
| msz:regularni_vyrazy [07. 06. 2012, 09.34:12] – [Algoritmus převodu RV na rozšířený KA] pitel | msz:regularni_vyrazy [11. 08. 2026, 10.08:15] (aktuální) – odstraněno - upraveno mimo DokuWiki (Neznámé datum) 127.0.0.1 | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| - | ====== Regulární množiny, regulární výrazy a rovnice nad regulárními výrazy ====== | ||
| - | ===== Regulární množiny ===== | ||
| - | Regulární množinu nad abecedou //Σ// definujeme takto: | ||
| - | * Prázdná množina ∅ je regulární množina. | ||
| - | * Množina obsahující pouze prázdný řetezec {//ε//} je regulární množina. | ||
| - | * Množina {//a//} po všechna //a// ∈ //Σ// je regulární množina. | ||
| - | * Jsou-li //P// a //Q// regulární množiny pak také jejich sjednocení (//P// ∪ //Q//), konkatenace (//P// . //Q//) a iterace (// | ||
| - | * Regulárními množinami jsou pouze množiny, které lze získat aplikací 1 až 4 | ||
| - | Třída regulárních množin je tedy nejmenší třída jazyků, která obsahuje ∅, //ε//, {//a//} pro všechny symboly //a// a je uzavřena vzhledem k operacím sjednoceni, součinu a iterace. | ||
| - | ===== Regulární výrazy (RV) ===== | ||
| - | Představují obvyklou notaci regulárních množin. | ||
| - | |||
| - | Regulární výraz nad abecedou //Σ// definujeme takto: | ||
| - | * ∅ je regulární výraz označující regulární množinu ∅. | ||
| - | * //ε// je regulární výraz označující regulární množinu {//ε//} | ||
| - | * //a// je regulární výraz označující regulární množinu {// | ||
| - | * Jsou-li //p// a //q// regulární výrazy označující regulární množiny //P// a //Q// pak: | ||
| - | * (//p// + //q//) je regulární výraz označující regulární množinu //P// ∪ //Q// | ||
| - | * (//pq//) je regulární výraz označující regulární množinu //P// . //Q// | ||
| - | * (// | ||
| - | * Regulárními výrazy jsou právě ty výrazy, které lze získat aplikací 1 až 4 | ||
| - | |||
| - | ===== Kleeneho algebra ===== | ||
| - | Algebra se sadou axiomů pro řešení rovnic nad regulárními výrazy. | ||
| - | |||
| - | Algebra (//A//, +, 0, ., 1, *) | ||
| - | |||
| - | Vazba na regulární výrazy: pokud //Σ// je abeceda, tak //A// může být definována jako např. množina všech regulárních výrazů nad touto abecedou. | ||
| - | |||
| - | * **+** -- Operace alternativy (asociativní, | ||
| - | * **0** -- Neutrální prvek operace alternativy, | ||
| - | * **.** -- Operace konkatenace (asociativní, | ||
| - | * **1** -- Neutrální prvek operace konkatenace | ||
| - | * ***** -- Operace iterace | ||
| - | |||
| - | ===== Regulární přechodový graf ===== | ||
| - | Regulární přechodový graf je zobecněný KA, který obsahuje množinu počátečních stavů a regulární výrazy na hranách. Každý reg. přechodový graf je možné převést na reg. přechodový graf s jediným přechodem na kterém je hledaný RV. | ||
| - | |||
| - | ===== Rovnice nad regulárními výrazy ===== | ||
| - | Rovnice jejichž složky jsou koeficienty a neznámé reprezentující dané a hledané regulární výrazy. | ||
| - | |||
| - | Při řešení se využívají axiomy Kleeneho algebry a klasické postupy řešení soustav rovnic. | ||
| - | |||
| - | Řešením rovnice: //X// = //aX// + //b// je regulární výraz //X// = // | ||
| - | - // | ||
| - | - // | ||
| - | - // | ||
| - | - // | ||
| - | |||
| - | Soustava rovnic nad RV je ve **standardním tvaru** vzhledem k neznámým //Δ// = {//X//₁, //X//₂, ..., //Xₙ//} má-li tvar ∧ //Xᵢ// = // | ||
| - | |||
| - | ===== Algoritmus převodu RV na rozšířený KA ===== | ||
| - | * Pro výraz //ε// zkonstruujeme // | ||
| - | * Pro výraz //x// zkonstruujeme přechod se symbolem //x// | ||
| - | * Pro výraz ∅ nezkonstruujeme žádný přechod | ||
| - | * Pro výraz //rq// sjednotíme koncový stav //r// a počátečním stavem //q// | ||
| - | * Pro výraz //r// + //q// zkonstruujeme z počátečního stavu // | ||
| - | * Pro výraz // | ||