В двух словах
Название Kleene замыкание явно предназначено для обозначения замыкания
при какой-либо строковой операции.
Однако тщательный анализ (благодаря критическому комментарию О.П. Малларда) показывает, что звезда Клини не может быть замыканием при конкатенации, что скорее соответствует оператору Клини плюс.
Звездный оператор Клини фактически соответствует замыканию под действием мощности, полученному в результате конкатенации.
Название Kleene star происходит от синтаксического представления операции со звездой *
, тогда как замыкание - это то, что она делает.
Это дополнительно объясняется ниже.
Напомним, что замыкание вообще, и звезда Клини в частности, является операцией над множествами, здесь над множествами строк, то есть над языками. Это будет использовано в объяснении.
Закрытие подмножества в операции всегда определяется
Множество замкнуто относительно некоторых п - арной операции F тогда и только тогда е всегда определяется для любого п -кратного аргументов в C и
C = { F ( с 1 , ... , с п ) | ∀ с 1 , ... , с п ∈ C } .CnffnCC={f(c1,…,cn)∣∀c1,…,cn∈C}
Расширяя к наборам значений обычным способом, то есть
п ( S 1 , ... , S п ) = { F ( s 1 , ... , ев н ) | ∀ s я ∈ S я . 1 ≤ i ≤ n }
мы можем переписать условие в виде заданного уравнения: C = f ( C , … , C )f
f(S1,…,Sn)={f(s1,…,sn)∣∀si∈Si.1≤i≤n}
C=f(C,…,C)
Для области (или множества) с операцией f, которая всегда определяется на D , и множеством S ⊂ D , замыкание S в f является наименьшим множеством S f,
содержащим S, которое удовлетворяет уравнению:
S f = { f ( s 1 , … , s n ) ∣ ∀ s 1 , … , s n ∈ S f } .DfDS⊂DSfSfSSf={f(s1,…,sn)∣∀s1,…,sn∈Sf}
Более кратко с заданным уравнением, замыкание под f может быть определено как:Sf
Sf is the smallest set such that S⊂Sf and Sf=f(Sf,…,Sf)
Это пример определения с наименьшей фиксированной точкой, часто используемый в семантике, а также используемый в формальных языках. Не зависящую от контекста грамматику можно рассматривать как систему уравнений языка (то есть уравнений набора строк), где нетерминальные обозначают языковые переменные. Наименьшее решение с фиксированной запятой связывает язык с каждой переменной, и язык, таким образом связанный с начальным символом, является языком, определенным грамматикой CF.
Расширение концепции
Замыкание, как определено выше, предназначено только для расширения подмножества
в минимальный набор S f , так что операция f всегда определяется.SSff
Как отмечает ОП mallardz, это не является достаточным объяснением, так как она не будет включать в себя пустое слово в S е , когда он уже не в S . Действительно, это замыкание соответствует определению плюса Клини, а не звезде Клини .ϵSfS+
*
На самом деле, идея закрытия может быть расширена или рассмотрена по-разному.
Распространение на другие алгебраические свойства
При способе его расширения (хотя оно больше не называется замыканием ) рассматривается более общее расширение множества имеющего определенные алгебраические свойства в отношении операции f .Sff
Если вы определите как наименьшее множество, содержащее S, которое является
моноидом для двоичной функции f , то вам потребуется и замыкание, и нейтральный элемент, который является пустым словом ϵ .SfSfϵ
Расширение через производную операцию
Есть второй способ, который является более правильным вопросом закрытия. Когда вы определяете замыкание , вы можете рассматривать его в отношении некоторых аргументов, в то время как вы разрешаете значения из всего набора D для других аргументов.S⊂DD
Рассматривая (для простоты) двоичную функцию над D , вы можете определить S f , 1 как наименьшее множество, содержащее S , удовлетворяющее уравнению: S f , 1 = { f ( s 1 , s 2 ) ∣ ∀ s 1 ∈ S е , 1 ∧ ∀ s 2 ∈ D }fDSf,1S
Sf,1={f(s1,s2)∣∀s1∈Sf,1∧∀s2∈D}
или с заданными уравнениями:
Sf,1 is the smallest set such that S⊂Sf,1 and Sf,1=f(Sf,1,D)
Это также имеет смысл, когда аргументы не принадлежат одному и тому же набору. Тогда у вас может быть замыкание в отношении некоторых аргументов в одном наборе при рассмотрении всех возможных значений для других аргументов (возможны многие варианты).
(M,f,ϵ) −−fMϵu∈M
∀u∈M.u0=ϵ and ∀n∈Nun=f(u,un−1)
unMN0
MnUn={un∣u∈U}unf
{U0={u0∣u∈U}={ϵ}∀n∈N,Un=f(U,Un−1)
fM
U∧,1U⊂M
U∧,1 is the smallest set such that U⊂U∧,1 and U∧,1=f(U∧,1,N0)
И это действительно дает нам операцию звезды Клини, когда конструкция применяется к операции конкатенации свободного моноида струн.
Честно говоря, я не уверен, что я не изменял. Но определение - это только то, что вы делаете, и это был единственный способ, который я нашел, чтобы фактически превратить звезду Клини в замыкание. Возможно, я слишком стараюсь.
Комментарии приветствуются.
Закрытие набора в операции, которая не всегда определена
Это немного другой взгляд и использование концепции закрытия. Эта точка зрения на самом деле не отвечает на этот вопрос, но, похоже, следует помнить об этом, чтобы избежать возможных путаницы.
fD
Df
D′Df′
DD′ff′
D′f′Df
Таким образом, целые числа строятся из натуральных чисел, учитывая набор пар натуральных чисел, квотированных отношением эквивалентности (две пары эквивалентны, если два элемента находятся в одном и том же порядке и имеют одинаковую разницу).
Это также, как рациональные числа могут быть построены из целых чисел.
И вот как классические реалы могут быть построены из рациональных, хотя строительство является более сложным.