Чому оператор зірки Kleene також називають оператором Kleene «закриття»?


14

Я виявив, що якщо я не розумію етимологію, що стоїть за терміном cs / програмування, це зазвичай означає, що я пропустив або неправильно зрозумів якусь важливу основоположну концепцію.

Я не розумію, чому зірку Кліна ще називають закриттям Кліна. Чи пов’язано це із закриттями в програмуванні, функцією із зв'язаними не локальними змінними?

... на роздум, може, це тому, що це дозволяє записувати відкритий набір у закритій формі виразу?

... добре, коли це добре пояснює каучукові качки , я зараз здогадуюсь, що це, але все-таки вітаю авторитетну відповідь.


3
Чи є ваше ім'я користувача причиною, чому ви хочете стару добру моду, що пояснює гуму ?
бабу

@babou Так. Але це мене сьогодні провалило :(
mallardz

Ваше зауваження про те, що закриття під конкатенацією, визначене моєю відповіддю (і у відповіді @David Richerby, явно, оскільки він ніколи прямо не згадує жодної строкової операції, крім коментаря), не буде містити порожнє слово ϵ є досить точним. Спасибі. Як наслідок, оператор зірки Kleene не може представляти закриття під час конкатенації: оператор Kleene + робить. Однак оператор зірки Kleene може представляти закриття під час роботи енергії, отриманої в результаті конкатенації. Я доповнюю свою відповідь, щоб висвітлити цей аспект. Це було більш тонко, ніж очікувалося.
бабу

Чи відповідь читається достатньо, чи слід додати розділ з м’якшої гуми?
бабу

Відповіді:


16

Набір закривається під деяким оператором, якщо результат застосування оператора до речей у множині завжди знаходиться у множині. Наприклад, натуральні числа додатково закриваються, тому що, коли і m є натуральними числами, n + m є натуральним числом. З іншого боку, натурали не закриваються на віднімання, оскільки, наприклад, 3 - 5 не є натуральним числом.nmn+m35

Замикання деякого безлічі під деяким оператором є найменшим безліч , що містить S , замкнутий щодо оператора. Наприклад, закінчення натуральних чисел під відніманням - цілі числа; закриття натуральних чисел, що додаються, є лише натуральними числами, оскільки множина вже закрита.SS

Отже, "закриття Kleene" не є альтернативною назвою для "зірки Kleene". Зірка Клейна - оператор; закриття набору Kleene набору - це закриття цього набору під оператором.


Добре дякую, ваше пояснення про закриття набору зрозуміти дуже просто. Але ви маєте на увазі, що зірка Kleene є оператором (як плюс - це оператор), а закриття Kleene - це операція (як додавання)? Також відповідь Бабу, що назва походить від того, що операція по суті являє собою закриття набору під конкатенацією, має багато сенсу. Хоча там епсілон трохи не
псує

1
@mallardz Правильно кажучи, закриття - це безліч; операція формування закриття зазвичай називається «закриттям».
Девід Річербі

@DavidRicherby: Чи не могли б ви назвати безліч натуральних чисел при відніманні як замикання ви сказати , що , оскільки безліч регулярних виразів замкнуто щодо оператора? Кліні * виробляє регулярний вираз , яке ми називаємо цим замиканням?
Джастін

@justin За визначенням, закриття будь-якого набору в рамках операції повинно бути закрито в рамках цієї операції. Оскільки натурали не закриваються відніманням, вони не можуть бути закриттям нічого, що віднімається. Набір регулярних виразів вже закритий під зіркою Клінова, і закриття набору регулярних виразів під деякою операцією, за визначенням, є сукупністю речей, а не єдиним регулярним виразом. Тому я не дуже розумію ваші запитання.
Девід Річербі

@DavidRicherby: Так, це дійсно правильно. Помилково, я набір натуральних чисел під відніманням вважаю цілим натуральним числом. Це зірка клеєну, пов'язана з множинами або з кінцевими автоматами чи обома?
Джастін

7

Коротко

Назва закриття Kleene , очевидно, покликана означати закриття під час деяких рядкових операцій.

Однак ретельний аналіз (завдяки критичному коментарю OP mallardz) показує, що зірка Клейна не може бути закритою при конкатенації, що скоріше відповідає оператору Kleene plus.

Оператор зірки Клейна фактично відповідає закриттю під час роботи енергії, отриманої в результаті конкатенації.

Назва зірки Kleene походить від синтаксичного зображення операції зіркою *, тоді як закриття - це те, що вона робить.

Це далі пояснено нижче.
Нагадаємо, що закриття взагалі, і зірка Kleene зокрема, - це операція на множинах, тут на множинах рядків, тобто на мовах. Це буде використано в поясненні.

Закриття підмножини під час операції завжди визначається

Множина закрита під деякою n- операцією f iff f завжди визначається для будь-якого n- множини аргументів в C і C = { f ( c 1 , , c n ) c 1 , , c nC } .CnffnCC={f(c1,,cn)c1,,cnC}

Розширюючи на множини значень звичайним способом, тобто f ( S 1 , , S n ) = { f ( s 1 , , s n ) s iS i . 1 i n } умову можна переписати у вигляді множинного рівняння: C = f ( C , , C )f

f(S1,,Sn)={f(s1,,sn)siSi.1in}


C=f(C,,C)

Для домену (або набору) з операцією f, яка завжди визначена на D , і безлічі S D , закриття S під f - найменший набір S f, що містить S, що задовольняє рівнянню: S f = { f ( s 1 , , s n ) s 1 , , s nS f } .DfDSDSfSfSSf={f(s1,,sn)s1,,snSf}

Більш коротко з набором рівняння, закриття під f може бути визначене:Sf

Sf is the smallest set such that SSf and Sf=f(Sf,,Sf)

Це приклад визначення найменшої фіксованої точки, що часто використовується в семантиці, а також використовується в формальних мовах. Безтекстова граматика може розглядатися як система рівнянь мов (тобто рівняння набору рядків), де нетермінальне значення є мовними змінними. Рішення з найменшою фіксованою точкою пов'язують мову з кожною змінною, а мова, пов'язана таким чином з символом intial, є тією, що визначена граматикою CF.

Розширення концепції

Закриття, як визначено вище, призначене лише для розширення підмножини на мінімальний набір S f таким чином, що операція f завжди визначається.SSff

Як зазначає ОП mallardz, це не є достатнім поясненням, так як вона не буде включати в себе пусте слово в S е , коли він вже не в S . Дійсно, це закриття відповідає визначенню Клінова плюс, а не зірці Клінова .ϵSfS+*

Власне, ідею закриття можна поширити або розглянути по-різному.

  1. Поширення на інші алгебраїчні властивості

    Sff

    SfSfϵ

  2. Розширення через похідну операцію

    SDD

    fDSf,1S

    Sf,1={f(s1,s2)s1Sf,1s2D}

    або із заданими рівняннями:

    Sf,1 is the smallest set such that SSf,1 and Sf,1=f(Sf,1,D)

    Це також має сенс, коли аргументи не належать до одного набору. Тоді, можливо, вам доведеться закрити деякі аргументи в одному наборі, при цьому враховуючи всі можливі значення для інших аргументів (можливі багато варіантів).

    (M,f,ϵ) fMϵuM

    uM.u0=ϵ and nNun=f(u,un1)

    unMN0

    MnUn={unuU}unf

    {U0={u0uU}={ϵ}nN,Un=f(U,Un1)
    fM

    U,1UM

    U,1 is the smallest set suchthat UU,1 and U,1=f(U,1,N0)

    І це дійсно дає нам операцію зірки Kleene, коли конструкція застосовується до операції конкатенації вільного Monoid рядків.

    Якщо бути чесним, я не впевнений, що мене не обдурили. Але визначення - це лише те, що ви це зробите, і це був єдиний спосіб, який я виявив насправді перетворити зірку Клейна в закриття. Я, можливо, дуже стараюся.
    Коментарі вітаються.

Закриття набору під час операції, яка не завжди визначена

Це дещо інший погляд і використання концепції закриття. Ця думка насправді не відповідає на питання, але, здається, добре пам’ятати про це, щоб уникнути можливих плутанин.

fD

  • Df

  • DDf

  • DDff

DfDf

Ось так будуються цілі числа з натуральних чисел, враховуючи множину пар натуральних чисел, які визначаються співвідношенням еквівалентності (дві пари еквівалентні, якщо два елементи знаходяться в одному порядку і мають однакову різницю).

Це також те, як з цілих чисел можна побудувати раціональність.

Ось так можна побудувати класичні реалії з раціональних, хоча конструкція є більш складною.


Привіт, дякую, закриття під поясненням конкатенації має багато сенсу, але чи існує епсилон у закритті під конкатенацією?
mallardz

ϵ

@DavidRicherby Насправді, що я мав на увазі, якщо у вас є набір S = {m}, то чи закриття під конкатенацією S містить епсилон? Тому що m * робить правильно? Якщо ні, то я гадаю, що закриття Kleene не зовсім рівнозначно закриттю під конкатенацією, хоча я все ще бачу, як саме звідси походить назва. Також, здається, я пам’ятаю, що десь читав, як спочатку зірка Кліна була бінарним оператором і уникала виробляти епсилон?
mallardz

@DavidRicherby Я доповнив свою відповідь, намагаючись зустріти справедливе заперечення @ mallardz.
babou

6

:XXX

  1. xx
  2. xyxy
  3. (x)=x

=(xy)=xy

X=2Σx,yΣxyxy

  1. LL
  2. L1L2L1L2
  3. (L)=L

Оператор Kleene plus також задовольняє ці аксіоми, тому також є оператором закриття згідно з цим визначенням.


Чи не це зняття вимоги щодо мінімальності? Я маю на увазі, якщо ви знімете цю вимогу, і відповідь Девіда Ріхербі, і моя початкова відповідь в порядку для зірки Клін.
бабу

Відповідаючи на власний коментар. Мінімальність зберігається, але визначається стосовно набору закритих множин. Немає прямого відношення до операції над рядками, такими як конкатенація. Зірка Клейна і плюс - це операції закриття, але визначені з використанням мінімальності щодо різних наборів закритих множин. Це набагато більш абстрактний погляд. (Принаймні, я маю задоволення бачити, що міркування на встановленому рівні, як я, нарешті, зробив це правильний шлях :). Цікаво. Спасибі.
бабу
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.