Унарная операция над наборами строк
В математической логике и информатике звезда Клини (или оператор Клини или замыкание Клини ) — это унарная операция , либо над наборами строк , либо над наборами символов или символов. В математике она более известна как свободная моноидная конструкция. Применение звезды Клини к набору записывается как . Она широко используется для регулярных выражений , что является контекстом, в котором она была введена Стивеном Клини для характеристики определенных автоматов , где она означает «ноль или более повторений».
- Если — набор строк, то определяется как наименьшее надмножество , содержащее пустую строку и замкнутое относительно операции конкатенации строк .
- Если — набор символов или знаков, то — набор всех строк с символами в , включая пустую строку .
Множество также можно описать как множество, содержащее пустую строку и все строки конечной длины, которые могут быть получены путем конкатенации произвольных элементов из , что позволяет использовать один и тот же элемент несколько раз. Если — либо пустое множество ∅, либо одноэлементное множество , то ; если — любое другое конечное множество или счетно бесконечное множество , то — счетно бесконечное множество. [1] Как следствие, каждый формальный язык над конечным или счетно бесконечным алфавитом является счетным, поскольку он является подмножеством счетно бесконечного множества .
Операторы используются в правилах переписывания для генеративных грамматик .
Определение и обозначения
Дано множество , определите
- (язык, состоящий только из пустой строки),
- ,
и рекурсивно определим множество
- для каждого .
Если — формальный язык, то , -я степень множества , — это сокращение для конкатенации множества с самим собой раз. То есть, можно понимать как множество всех строк , которые могут быть представлены как конкатенация строк в .
Определение звезды Клини : [2]
Это означает, что оператор звезды Клини является идемпотентным унарным оператором : для любого набора строк или символов, как и для любого .
Клини плюс
В некоторых формальных языковых исследованиях (например, теория AFL ) используется вариация операции «звезда Клини», называемая « плюс Клини» . «плюс Клини» опускает термин в приведенном выше союзе. Другими словами, «плюс Клини» на
или
- [3]
Примеры
Пример звезды Клини, примененной к набору строк:
- {"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", "aaa", "aab", ...}.
Звезда Клини, примененная к тому же набору символов:
- {"a", "b", "c"} * = { ε, "a", "b", "c", "aa", "ab", "ac", "ba", "bb", «bc», «ca», «cb», «cc», «aaa», «aab», ...}.
Пример звезды Клини, примененной к пустому множеству:
- ∅ * = {ε}.
Пример применения Kleene plus к пустому множеству:
- ∅ + = ∅ ∅ * = { } = ∅,
где конкатенация является ассоциативным и некоммутативным произведением.
Пример применения «плюс Клини» и «звезды Клини» к одноэлементному набору, содержащему пустую строку:
- Если , то также для каждого , следовательно .
Обобщение
Строки образуют моноид с конкатенацией в качестве бинарной операции и ε в качестве единичного элемента. Звезда Клини определена для любого моноида, а не только для строк. Точнее, пусть ( M , ⋅) будет моноидом, а S ⊆ M . Тогда S * является наименьшим подмоноидом M , содержащим S ; то есть S * содержит нейтральный элемент M , множество S , и таково, что если x , y ∈ S * , то x ⋅ y ∈ S * .
Более того, звезда Клини обобщается путем включения *-операции (и объединения) в саму алгебраическую структуру с помощью понятия полного звездного полукольца . [4]
Смотрите также
Ссылки
- ↑ Наюки Минасэ (10 мая 2011 г.). «Счетные множества и звезда Клини». Проект Наюки . Проверено 11 января 2012 г.
- ^ Флетчер, Питер; Хойл, Хьюз; Патти, К. Уэйн (1991). Основы дискретной математики . Брукс/Коул. стр. 656. ISBN 0534923739
Замыкание
Клини L
*
для
L
определяется
как
.
- ^ Это уравнение справедливо, поскольку каждый элемент V + должен либо состоять из одного элемента V и конечного числа непустых членов в V , либо быть просто элементом V (где само V получается путем объединения V с ε).
- ^ Droste, M.; Kuich, W. (2009). "Глава 1: Полукольца и формальные степенные ряды". Handbook of Weighted Automata . Monographs in Theoretical Computer Science. Springer. p. 9. doi :10.1007/978-3-642-01492-5_1. ISBN 978-3-642-01491-8.
Дальнейшее чтение