Klinijevo zatvorenje

S Vikipedije, slobodne enciklopedije

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 | uredi izvor]

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 | uredi izvor]

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 | uredi izvor]

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 | uredi izvor]