В математической логике и информатика, звезда Клини (или оператор Клини или замыкание Клини ) - это унарная операция, либо в задает из строк, либо в наборах символов или знаков. В математике это более широко известно как конструкция свободного моноида . Применение звезды Клини к множеству V записывается как V. Оно широко используется для регулярных выражений, что является контекстом, в котором оно было введено Стивеном Клини для характеристики некоторых автоматы, где это означает "ноль или более".
Набор V также можно описать как набор строк конечной длины, которые могут быть сгенерированы путем объединения произвольных элементов V, что позволяет использовать один и тот же элемент несколько раз. Если V является либо пустым набором ∅, либо одноэлементным набором {ε}, то V = {ε}; если V - любое другое конечное множество или счетно бесконечное множество, то V - счетно бесконечное множество. Как следствие, каждый формальный язык над конечным или счетно-бесконечным алфавитом является счетным.
Операторы используются в правилах перезаписи для генеративных грамматик.
Для данного набора V определить
и определим рекурсивно множество
Если V является формального языка, тогда V, i-я степень множества V, является сокращением для конкатенации множества V с самим собой i раз. То есть, V можно понимать как набор всех строк, которые могут быть представлены как конкатенация i строк в V.
Определение звезды Клини на V:
Обратите внимание, что звездный оператор Клини является идемпотентным унарным оператором: (V) = V для любого набора V строк или символов.
В некоторых исследованиях формального языка (например, теория AFL ) используется вариант звездной операции Клини, называемый Клини плюс. Клини плюс пропускает член V в приведенном выше союзе. Другими словами, Клини плюс на V равен
Для каждого множества L Клини плюс L (обозначенный L) равен конкатенации L и L; это верно, потому что каждый элемент L должен быть либо составлен из одного элемента L и конечного числа непустых членов в L, либо является просто элементом L (где сам L извлекается путем объединения L с ε). И наоборот, L = {ε} ∪ L.
Пример звезды Клини, примененной к набору строк:
Пример применения Kleene plus к набору символов:
Звездочка Клини применена к тому же набору символов:
Пример Звездочка Клини, примененная к пустому набору:
Пример использования Клини плюс к пустому набору:
где конкатенация - это ассоциативное и некоммутативное произведение, разделяющие эти свойства с декартовым произведением наборов.
Пример применения Клини плюс и звезды Клини к одноэлементному набору, содержащему пустую строку:
Строки образуют моноид с конкатенацией в качестве двоичной операции и ε в качестве элемента идентичности. Звезда Клини определена для любого моноида, а не только для струн. Точнее, пусть (M, ⋅) - моноид и S ⊆ M. Тогда S - наименьший подмоноид в M, содержащий S; то есть S содержит нейтральный элемент M, множество S, и такова, что если x, y ∈ S, то x⋅y ∈ S.
Кроме того, звезда Клини обобщается путем включения * -операция (и объединение) в самой алгебраической структуре с помощью понятия полного звездообразного полукольца.