YaChudo

Зірочка Кліні

Переглядів: 0. Оновлено 08.11.2026.

В математичній логіці та інформатиці, зірка Кліні (або оператор Кліні, або замикання Кліні) це унарна операція, або на множинах рядків або на множинах символів або букв. Застосування зірки Кліні до множини V записується як V*. Це широко використовується в регулярних виразах, в контексті яких вони були введені Стівеном Кліні для описання деяких автоматів.

  1. Якщо V це набір рядків, тоді V* визначається як найменша надмножина V, яка містить λ (порожній рядок) і є замиканням для операції конкатенації рядків. Ця множина також може бути описана як множина рядків, які можуть бути утворені конкатенацією нуля або більшої кількістю рядків з V.
  2. Якщо V це набір символів або букв, тоді V* це множина всіх рядків над символами з V, включно з порожнім рядком.[1]

Визначення і запис

Дано

V 0 = { λ } {\displaystyle V_{0}=\{\lambda \}\,}

рекурсивно визначимо множину

V i + 1 = { w v ∣ w ∈ V i  and  v ∈ V } {\displaystyle V_{i+1}=\{wv\mid w\in V_{i}{\mbox{ and }}v\in V\}\,} де i ≥ 0 . {\displaystyle i\geq 0\,.}

Якщо V {\displaystyle V} — формальна мова, тоді V i {\displaystyle V_{i}} , i-й ступінь множини V {\displaystyle V} , це умовний запис для конкатенації множин V {\displaystyle V} із собою i разів. Тобто, V i {\displaystyle V_{i}} можна розуміти як множину всіх рядків, що можуть бути представлені як конкатенація i рядків з V {\displaystyle V} .

Визначенням зірки Кліні на V {\displaystyle V} є V ∗ = ⋃ i ∈ N V i = { λ } ∪ V 1 ∪ V 2 ∪ V 3 ∪ … . {\displaystyle V^{*}=\bigcup _{i\in \mathbb {N} }V_{i}=\left\{\lambda \right\}\cup V_{1}\cup V_{2}\cup V_{3}\cup \ldots .}

Тобто, це набір всіх можливих рядків скінченної довжини утворених з символів з V {\displaystyle V} .

В деяких дослідженнях формальних мов, використовується різновид операції Кліні званий плюс Кліні. Плюс Кліні упускає[уточнити] терм V 0 {\displaystyle V_{0}} в попередньому об'єднанні. Іншими словами, плюс V {\displaystyle V} це V + = ⋃ i ∈ N ∖ { 0 } V i = V 1 ∪ V 2 ∪ V 3 ∪ … . {\displaystyle V^{+}=\bigcup _{i\in \mathbb {N} \setminus \{0\}}\!\!\!\!V_{i}=V_{1}\cup V_{2}\cup V_{3}\cup \ldots .}

Додатково, зірка Кліні використовується в теорії оптимальності.

Приклади

Приклад зірки Кліні застосованої до множини рядків:

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

Приклад зірки Кліні застосованої до множини букв:

{'a', 'b', 'c'}* = {λ, "a", "b", "c", "aa", "ab", "ac", "ba", "bb", "bc", "ca", "cb", "cc", ...}.

Приклад зірки Кліні застосованої до порожньої множини:

∅ ∗ = { λ } . {\displaystyle \varnothing ^{*}=\{\lambda \}.}

Приклад плюса Кліні застосованого до порожньої множини:

∅ + = ∅ ∅ ∗ = { } = ∅ . {\displaystyle \varnothing ^{+}=\varnothing \varnothing ^{*}=\{\}=\varnothing .}

Зауважимо, що для кожної множини L, L + {\displaystyle L^{+}} дорівнює конкатенації L з L ∗ {\displaystyle L^{*}} . І навпаки, L ∗ {\displaystyle L^{*}} можна записати як { λ } ∪ L + {\displaystyle \{\lambda \}\cup L^{+}} . Оператори L + {\displaystyle L^{+}} і L ∗ {\displaystyle L^{*}} описують одну множину тоді і тільки тоді, якщо множина L містить порожнє слово.

Узагальнення

Рядки утворюють моноїд з конкатенацією як бінарною операцією і нейтральним елементом λ. Зірка Кліні визначена для будь-якого моноїда, не тільки рядків. Більш точно, нехай ( M , ⋅ ) {\displaystyle (M,\cdot )} це моноїд, і S ⊆ M {\displaystyle S\subseteq M} . Тоді S ∗ {\displaystyle S^{*}}  — найменший моноїд M {\displaystyle M} , що містить S {\displaystyle S}  ; такий, що S ∗ {\displaystyle S^{*}} містить нейтральний елемент з M {\displaystyle M} , множину S {\displaystyle S} , і такий, що якщо x , y ∈ S ∗ {\displaystyle x,y\in S^{*}} , тоді x ⋅ y ∈ S ∗ {\displaystyle x\cdot y\in S^{*}} .

Див. також

Примітки

  1. ↑ Визначення на planetmath.org. Архів оригіналу за 29 травня 2015. Процитовано 29 травня 2015.

Джерело: стаття у Вікіпедії та історія редагувань (автори).