Dlaczego operator gwiazdy Kleene jest również nazywany operatorem „zamykania” Kleene?


14

Przekonałem się, że jeśli nie rozumiem etymologii kryjącej się za terminem cs / programowanie, zwykle oznacza to, że przeoczyłem lub źle zrozumiałem jakąś ważną koncepcję.

Nie rozumiem, dlaczego gwiazda Kleene jest również nazywana zamknięciem Kleene. Czy ma to związek z zamknięciami w programowaniu, funkcją ze związanymi zmiennymi nielokalnymi?

... po zastanowieniu, może dlatego, że pozwala na napisanie zbioru otwartego w formie wyrażenia zamkniętego?

... no cóż, w dobrym, starym stylu wyjaśniającym gumową kaczkę , domyślam się, że o to chodzi, ale nadal chętnie przyjmę wiarygodną odpowiedź.


3
Czy nazwa użytkownika jest powodem, dla którego chcesz mieć dobrą, starą modę objaśniającą gumową kaczkę ?
babou

@babou Tak. Ale dzisiaj mi się nie udało :(
mallardz

Twoja uwaga, że ​​zamknięcie w trakcie konkatenacji zdefiniowane w mojej odpowiedzi (i w odpowiedzi Davida Richerby'ego, w sposób jawny, ponieważ nigdy nie wspomina wyraźnie o żadnej operacji łańcuchowej, z wyjątkiem komentarza) nie będzie zawierać pustego słowa ϵ, jest dość dokładne. Dzięki. W konsekwencji operator gwiazdy Kleene nie może reprezentować zamknięcia w ramach konkatenacji: operator Kleene + tak. Jednak operator gwiazdy Kleene może reprezentować zamknięcie w wyniku operacji mocy pochodzącej z konkatenacji. Uzupełniono moją odpowiedź, aby objąć ten aspekt. To było bardziej subtelne niż się spodziewano.
babou

Czy odpowiedź jest wystarczająco czytelna, czy powinienem dodać sekcję z miękkiej gumy?
babou,

Odpowiedzi:


16

Zestaw jest zamykany przez jakiegoś operatora, jeśli wynik zastosowania operatora do rzeczy w zestawie jest zawsze w zestawie. Na przykład liczby naturalne są zamknięte podczas dodawania, ponieważ za każdym razem, gdy i m są liczbami naturalnymi, n + m jest liczbą naturalną. Z drugiej strony, naturals nie są zamknięte odejmowanie, ponieważ na przykład 3 - 5 nie jest liczbą naturalną.nmn+m35

Zamknięcie z ustalonym pod pewnym operatora jest najmniejszy zestaw zawierający S , który jest zamknięty pod operatora. Na przykład zamknięcie odejmowanych liczb naturalnych jest liczbami całkowitymi; zamknięcie dodawanych liczb naturalnych jest tylko liczbami naturalnymi, ponieważ zestaw jest już zamknięty.SS

Tak więc „zamknięcie Kleene” nie jest alternatywną nazwą dla „gwiazdy Kleene”. Gwiazdą Kleene jest operator; zamknięcie Kleene zestawu jest zamknięciem tego zestawu pod operatorem.


Ok, dzięki, wyjaśnienie zamknięcia zestawu jest bardzo łatwe do zrozumienia. Ale czy masz na myśli, że gwiazda Kleene jest operatorem (jak plus jest operatorem), a zamknięcie Kleene jest operacją (jak dodanie)? Również odpowiedź Babou, że nazwa pochodzi od faktu, że operacja w istocie reprezentuje zamknięcie zestawu w konkatenacji, ma sens. Chociaż epsilon nie
psuje

1
@mallardz Właściwie mówiąc, zamknięcie jest zbiorem; operacja formowania zamknięcia jest zwykle nazywana „zamykaniem”.
David Richerby,

@DavidRicherby: Czy możesz odjąć zbiór liczb naturalnych odejmowanych jako zamknięcie ? Czy masz na myśli powiedzieć, że skoro zbiór wyrażeń regularnych zamkniętych pod operatorem kleene * daje wyrażenie regularne, nazywamy to zamknięciem?
justin

@ justin Z definicji zamknięcie dowolnego zestawu w ramach operacji musi zostać zamknięte w ramach tej operacji. Ponieważ naturale nie są zamknięte odejmowaniem, nie mogą być zamknięciem niczego odejmowanego. Zbiór wyrażeń regularnych jest już zamknięty pod gwiazdą Kleene, a zamknięcie zbioru wyrażeń regularnych w ramach niektórych operacji jest z definicji zbiorem rzeczy, a nie pojedynczym wyrażeniem regularnym. Więc tak naprawdę nie rozumiem twoich pytań.
David Richerby,

@DavidRicherby: Tak, to prawda. Przez pomyłkę wziąłem zestaw liczb naturalnych odejmowanych jako liczbę całkowitą. Czy gwiazda Kleene jest związana z zestawami, z automatami skończonymi czy z obydwoma?
justin

7

W skrócie

Nazwa zamknięcie Kleene ma wyraźnie oznaczać zamknięcie w przypadku niektórych operacji łańcuchowych.

Jednak dokładna analiza (dzięki krytycznemu komentarzowi OP mallardz) pokazuje, że gwiazda Kleene nie może być zamknięta podczas konkatenacji, co raczej odpowiada operatorowi Kleene plus.

Operator gwiazdy Kleene w rzeczywistości odpowiada zamknięciu pod operacją mocy pochodzącą z konkatenacji.

Nazwa gwiazda Kleene pochodzi od syntaktycznego przedstawienia operacji z gwiazdą *, podczas gdy zamknięcie jest tym, co robi.

Jest to wyjaśnione poniżej.
Przypomnijmy, że zamknięcie w ogóle, a zwłaszcza gwiazda Kleene, jest operacją na zbiorach, tutaj na zbiorach ciągów, tj. Na językach. Zostanie to wykorzystane w wyjaśnieniu.

Zamknięcie podzbioru w ramach operacji zawsze zdefiniowane

CnffnCC={f(c1,,cn)c1,,cnC}

f

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


C=f(C,,C)

DfDSDSfSfSSf={f(s1,,sn)s1,,snSf}

Sf

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

Jest to przykład definicji o najmniej ustalonym punkcie, często używanej w semantyce, a także używanej w językach formalnych. Gramatyka bezkontekstowa może być postrzegana jako układ równań języków (tj. Równań ciągów znaków), gdzie nieterminalne oznaczają zmienne językowe. Najmniej rozwiązywanym punktem kojarzy język z każdą zmienną, a językiem związanym w ten sposób z symbolem początkowym jest język zdefiniowany przez gramatykę CF.

Rozszerzenie koncepcji

SSff

ϵSfS+*

W rzeczywistości pomysł zamknięcia można rozszerzyć lub rozważyć na różne sposoby.

  1. Rozszerzenie na inne właściwości algebraiczne

    Sff

    SfSfϵ

  2. Rozszerzenie poprzez operację pochodną

    SDD

    fDSf,1S

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

    lub z ustalonymi równaniami:

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

    Ma to również sens, gdy argumenty nie należą do tego samego zestawu. Wtedy możesz mieć zamknięcie w odniesieniu do niektórych argumentów w jednym zestawie, biorąc pod uwagę wszystkie możliwe wartości dla innych argumentów (możliwych jest wiele odmian).

    (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)

    To daje nam operację gwiazdy Kleene, gdy konstrukcja jest zastosowana do operacji konkatenacji wolnego Monoidu z łańcuchów.

    Szczerze mówiąc, nie jestem pewien, czy nie oszukiwałem. Ale definicja jest tylko tym, co stworzysz, i to był jedyny sposób, w jaki znalazłem sposób, aby zmienić gwiazdę Kleene w zamknięcie. Być może próbuję zbyt mocno.
    Komentarze są mile widziane.

Zamykanie zestawu w ramach operacji, która nie zawsze jest zdefiniowana

Jest to nieco inny pogląd i zastosowanie koncepcji zamknięcia. Ten pogląd tak naprawdę nie odpowiada na pytanie, ale wydaje się, że warto o tym pamiętać, aby uniknąć pewnych nieporozumień.

fD

  • Df

  • DDf

  • DDff

DfDf

Tak buduje się liczby całkowite z liczb naturalnych, biorąc pod uwagę zestaw par liczb naturalnych ilorazowych przez relację równoważności (dwie pary są równoważne, jeśli dwa elementy są w tej samej kolejności i mają tę samą różnicę).

W ten sposób można również tworzyć racjonalne liczby całkowite.

I w ten sposób można zbudować klasyczne realia z racjonalności, chociaż konstrukcja jest bardziej złożona.


Hej, dziękuję, zamknięcie w ramach wyjaśnienia konkatenacji ma sens, ale czy epsilon istnieje w zamknięciu w ramach konkatenacji?
mallardz

ϵ

@DavidRicherby Właściwie to miałem na myśli, że jeśli masz zestaw S = {m}, to czy zamknięcie połączone S zawiera epsilon? Ponieważ m * ma rację? Jeśli nie, to myślę, że zamknięcie Kleene nie jest całkiem równoważne zamknięciu w ramach konkatenacji, chociaż wciąż widzę, skąd wzięła się ta nazwa. Wydaje mi się też, że pamiętam gdzieś, jak początkowo gwiazda Kleene była operatorem podwójnym i unikała produkcji epsilonu?
mallardz

@DavidRicherby Wypełniłem odpowiedź, próbując odpowiedzieć na @ mallardz uczciwy sprzeciw.
babou

6

:XXX

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

=(xy)=xy

X=2Σx,yΣxyxy

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

Operator Kleene plus również spełnia te aksjomaty, więc jest również operatorem zamknięcia zgodnie z tą definicją.


Czy to nie usuwa wymogu minimalności? To znaczy, jeśli usuniesz ten wymóg, zarówno odpowiedź Davida Richerby'ego, jak i moja wstępna odpowiedź są w porządku dla gwiazdy Kleene.
babou

Odpowiadając na mój własny komentarz. Zachowana jest minimalność, ale jest zdefiniowana w odniesieniu do zestawu zamkniętych zbiorów. Brak bezpośredniego związku z operacją na ciągach, takich jak konkatenacja. Gwiazda Kleene i plus są wówczas operacjami zamykania, ale są definiowane przy użyciu minimalności w odniesieniu do różnych zestawów zbiorów zamkniętych. To jest znacznie bardziej abstrakcyjny widok. (Przynajmniej mam satysfakcję z tego, że rozumowanie na ustalonym poziomie, tak jak w końcu to zrobiłem, było właściwą drogą :). Ciekawy. Dzięki.
babou,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.