Klinijevo zatvorenje

U matematičkoj logici i računarstvu, Klinijevo zatvorenje (ili Klinijeva zvezda) je unarna operacija, na skupovima niski ili na skupovima simbola ili karaktera. Primena Klinijevog zatvorenja na skup V se zapisuje kao V*. Ovaj operator je u širokoj upotrebi u regularnim izrazima, što je i kontekst u kome ga je uveo Stiven Klini da karakteriše određene automate.

  1. Ako je V skup niski, onda se V* definiše kao najmanji nadskup od V, koji sadrži ε (praznu nisku) i zatvoren je u odnosu na konkatenaciju niski. Ovaj skup se takođe može opisati kao skup niski koje se mogu dobiti dopisivanjem nula ili više niski iz V.
  2. Ako je V skup simbola ili karaktera, onda je V* skup svih niski nad simbolima V, uključujući i praznu nisku.

Definicija i notacija

uredi

Dat je skup

 

rekurzivno definišemo skup

  gde  

Ako je   formalni jezik, onda  -ti stepen skupa   predstavlja konkatenaciju skupa   sa samim sobom   puta. To jest,   se može razumeti kao skup svih niski dužine  , dobijenih od simbola iz  .

Definicija Klinijeve zvezde nad   je  

To jest, to je kolekcija svih mogućih niski konačne dužine, generisanih od simbola iz  .

U nekim istraživanjima formalnih jezika, koristi se varijacije operacije Klinijeve zvezde, operacija Klinijev plus. Klinijev plus isključuje   iz gornje unije. Drugim rečima, Klinijev plus nad   je  

Primeri

uredi

Primer Klinijevog zatvorenja skupa niski:

{"ab", "c"}* = {ε, "ab", "c", "abab", "abc", "cab", "cc", "ababab", "ababc", "abcab", "abcc", "cabab", "cabc", "ccab", "ccc", ...}

Primer Klinijevog zatvorenja skupa karaktera:

{'a', 'b', 'c'}* = {ε, "a", "b", "c", "aa", "ab", "ac", "ba", "bb", "bc", ...}

Uopštenje

uredi

Klinijeva zvezda se često generalizuje za bilo koji monoid (M,  ), to jest, skup M i binarnu operaciju   nad M, takvu da važi

  • (zatvorenje)  
  • (asocijativnost)  
  • (neutral)  

Vidi još

uredi