Pourquoi l'opérateur étoile de Kleene est-il également appelé opérateur de «fermeture» de Kleene?


13

J'ai trouvé que si je ne comprends pas l'étymologie derrière un terme cs / programmation, cela signifie généralement que j'ai manqué ou mal compris un concept sous-jacent important.

Je ne comprends pas pourquoi l'étoile Kleene est aussi appelée la fermeture Kleene. Est-ce lié aux fermetures de programmation, une fonction avec des variables non locales liées?

... à la réflexion, c'est peut-être parce qu'il permet d'écrire un ensemble ouvert sous une forme d'expression fermée?

... bien dans la bonne vieille façon d' expliquer le canard en caoutchouc , je suppose maintenant que c'est ça, mais j'aimerais toujours une réponse faisant autorité.


3
Votre nom d'utilisateur est-il la raison pour laquelle vous voulez une bonne vieille mode expliquant le canard en caoutchouc ?
babou

@babou Oui. Mais ça m'a échoué aujourd'hui :(
mallardz

Votre remarque que la fermeture sous concaténation définie dans ma réponse (et dans la réponse de @David Richerby, implicitement car il ne mentionne explicitement aucune opération de chaîne, sauf dans un commentaire) n'inclura pas le mot vide ϵ est tout à fait exacte. Merci. Par conséquent, l'opérateur étoile Kleene ne peut pas représenter la fermeture sous concaténation: l'opérateur Kleene + le fait. Cependant, l'opérateur étoile de Kleene peut représenter une fermeture sous l'opération de puissance dérivée de la concaténation. Je complète ma réponse pour couvrir cet aspect. C'était plus subtil que prévu.
babou

La réponse est-elle suffisamment lisible ou dois-je ajouter une section en caoutchouc plus souple?
babou

Réponses:


15

Un ensemble est fermé sous un opérateur si le résultat de l'application de l'opérateur à des éléments de l'ensemble est toujours dans l'ensemble. Par exemple, les nombres naturels sont fermés sous addition car, chaque fois que et m sont des nombres naturels, n + m est un nombre naturel. D'un autre côté, les naturels ne sont pas fermés par soustraction puisque, par exemple, 3 - 5 n'est pas un nombre naturel.nmn+m35

La fermeture d'un ensemble sous un opérateur est le plus petit ensemble contenant S qui est fermé sous l'opérateur. Par exemple, la fermeture des nombres naturels soustraits est les entiers; la fermeture des nombres naturels sous addition n'est que les nombres naturels, puisque l'ensemble est déjà fermé.SS

Ainsi, "fermeture Kleene" n'est pas un nom alternatif pour "étoile Kleene". L'étoile Kleene est l'opérateur; la fermeture Kleene d'un ensemble est la fermeture de cet ensemble sous l'opérateur.


Ok merci, votre explication d'une fermeture d'un set est très simple à comprendre. Mais voulez-vous dire que l'étoile de Kleene est un opérateur (comme plus est un opérateur) et la fermeture de Kleene est une opération (comme l'addition)? La réponse de Babou selon laquelle le nom vient du fait que l'opération représente essentiellement la fermeture de l'ensemble en concaténation a beaucoup de sens. Bien
qu'epsilon ne gâche

1
@mallardz À proprement parler, la fermeture est l'ensemble; l'opération de formation de la fermeture est normalement appelée "fermeture".
David Richerby

@DavidRicherby: Pourriez-vous appeler l'ensemble des nombres naturels soustraction comme une fermeture ? Voulez-vous dire que puisque l'ensemble des expressions régulières fermé sous l'opérateur kleene * produit une expression régulière, nous l'appelons une fermeture?
justin

@justin Par définition, la fermeture de tout ensemble sous une opération doit elle-même être fermée sous cette opération. Puisque les naturels ne sont pas fermés par soustraction, ils ne peuvent pas être la fermeture de quoi que ce soit par soustraction. L'ensemble d'expressions régulières est déjà fermé sous l'étoile de Kleene et la fermeture de l'ensemble d'expressions régulières sous une opération est, par définition, un ensemble de choses, pas une seule expression régulière. Je ne comprends donc pas vraiment vos questions.
David Richerby

@DavidRicherby: Oui, c'est vraiment vrai.Par erreur, j'ai pris l'ensemble des nombres naturels soustraits comme un entier naturel.L'étoile de Kleene est-elle liée aux ensembles ou aux automates finis ou aux deux?
just

7

En un mot

Le nom de fermeture Kleene est clairement destiné à signifier la fermeture sous une opération de chaîne.

Cependant, une analyse minutieuse (grâce à un commentaire critique de l'OP mallardz), montre que l'étoile Kleene ne peut pas être fermée sous concaténation, ce qui correspond plutôt à l'opérateur Kleene plus.

L'opérateur étoile de Kleene correspond en fait à une fermeture sous l'opération de puissance dérivée de la concaténation.

Le nom étoile Kleene vient de la représentation syntaxique de l'opération avec une étoile *, tandis que la fermeture est ce qu'elle fait.

Ceci est expliqué plus en détail ci-dessous.
Rappelons que la fermeture en général, et l'étoile de Kleene en particulier, est une opération sur les ensembles, ici sur les ensembles de chaînes, c'est-à-dire sur les langues. Cela sera utilisé dans l'explication.

Clôture d'un sous-ensemble sous une opération toujours définie

Un ensemble est fermé sous une opération n -aire f ssi f est toujours défini pour toutCnfF -tuple d'arguments dans C et C = { f ( c 1 , , c n ) c 1 , , c nC } .nCC={f(c1,,cn)c1,,cnC}

En étendant à des ensembles de valeurs de la manière habituelle, c'est-à-dire f ( S 1 , , S n ) = { f ( s 1 ,f on peut réécrire la condition comme une équation d'ensemble: C = f ( C , , C )

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


C=f(C,,C)

Pour un domaine (ou ensemble) avec une opération f toujours définie sur D , et un ensemble S D , la fermeture de S sous f est le plus petit ensemble S f contenant SDfDSDSfSfS qui satisfait l'équation: .Sf={f(s1,,sn)s1,,snSf}

Plus précisément avec une équation établie, la fermeture de sous f peut être définie par:Sf

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

Il s'agit d'un exemple de définition du point le moins fixe, souvent utilisé en sémantique, et également utilisé dans les langages formels. Une grammaire sans contexte peut être considérée comme un système d'équations de langues (c'est-à-dire des équations de chaînes de caractères), où le non-terminal représente des variables de langue. La solution la moins fixe associe un langage à chaque variable, et le langage ainsi associé au symbole initial est celui défini par la grammaire CF.

Élargir le concept

La fermeture telle que définie ci-dessus est uniquement destinée à étendre un sous-ensemble dans un ensemble minimal S f de sorte que l'opération f est toujours définie.SSff

Comme le fait remarquer le mallardz OP, ce n'est pas une explication suffisante, car elle ne comprend pas le mot vide dans S f quand il est pas déjà dans S . En effet cette fermeture correspond à la définition de la Kleene plus et non à l'étoile Kleene .ϵSfS+*

En fait, l'idée de fermeture peut être étendue ou envisagée de différentes manières.

  1. Extension à d'autres propriétés algébriques

    En voie de l'étendre (bien qu'elle ne soit plus appelée fermeture ) envisage plus généralement une extension à un ensemble ayant des propriétés algébriques spécifiques par rapport à l'opération f .Sff

    Si vous définissez comme le plus petit ensemble contenant S qui est un monoïde pour la fonction binaire f , alors vous avez besoin à la fois de fermeture et d'un élément neutre qui est le mot vide ϵ .SfSfϵ

  2. Extension via une opération dérivée

    Il y a une deuxième voie qui est plus proprement une question de fermeture. Lorsque vous définissez la fermeture de , vous pouvez la considérer par rapport à certains des arguments, tandis que vous autorisez les valeurs de l'ensemble D pour les autres arguments.SDD

    En considérant (pour simplifier) ​​une fonction binaire sur D , vous pouvez définir S f , 1 comme le plus petit ensemble contenant S qui satisfait l'équation: S f , 1 = { f ( s 1fDSf,1S

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

    ou avec des équations définies:

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

    Cela a également un sens lorsque les arguments n'appartiennent pas au même ensemble. Ensuite, vous pouvez avoir la fermeture par rapport à certains arguments dans un ensemble, tout en considérant toutes les valeurs possibles pour les autres arguments (de nombreuses variantes sont possibles).

    Étant donné un monoïde - par exemple le monoïde de chaînes avec concaténation -(M,f,ϵ) est une opération binaire associative sur les éléments de l'ensemble M avec un élément d'identité ϵ , vous pouvez définir les puissances d'un élément u M en tant que: u M .fMϵuM

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

    Cette exponentiation est une opération qui prend comme argument un élément de M et un entier non négatif de N 0 .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)

    Et cela nous donne l'opération étoile de Kleene lorsque la construction est appliquée à l'opération de concaténation du monoïde libre de cordes.

    Pour être tout à fait honnête, je ne suis pas sûr de ne pas avoir triché. Mais une définition n'est que ce que vous en faites, et c'est la seule façon que j'ai trouvée de transformer réellement l'étoile Kleene en fermeture. Je fais peut-être trop d'efforts.
    Les commentaires sont les bienvenus.

Fermer un ensemble sous une opération qui n'est pas toujours définie

Il s'agit d'une vision et d'une utilisation légèrement différentes du concept de fermeture. Ce point de vue ne répond pas vraiment à la question, mais il semble bon de le garder à l'esprit pour éviter certaines confusions possibles.

fD

  • Df

  • DDf

  • DDff

DfDf

C'est ainsi que les entiers sont construits à partir de nombres naturels, en considérant l'ensemble des paires de nombres naturels quotientées par une relation d'équivalence (deux paires sont équivalentes si les deux éléments sont dans le même ordre et ont la même différence).

C'est aussi ainsi que les rationnels peuvent être construits à partir des entiers.

Et c'est ainsi que les réels classiques peuvent être construits à partir des rationnels, bien que la construction soit plus complexe.


Hé merci, la fermeture sous explication de concaténation a beaucoup de sens, mais epsilon existe-t-il dans la fermeture sous concaténation?
mallardz

ϵ

@DavidRicherby En fait, ce que je voulais dire, c'est que si vous avez un ensemble S = {m}, la fermeture sous concaténation de S contient-elle epsilon? Parce que m * fait bien? Sinon, je suppose que la fermeture de Kleene n'est pas tout à fait équivalente à la fermeture sous concaténation, bien que je puisse encore voir comment c'est à l'origine du nom. Je me souviens aussi d'avoir lu quelque part comment l'étoile de Kleene était initialement un opérateur binaire et a évité de produire de l'epsilon?
mallardz

@DavidRicherby J'ai complété ma réponse pour tenter de répondre à l'objection juste de @ mallardz.
babou

6

Un autre sens de la fermeture, which is more general than the meaning explained by David Richerby, is any operator :XX sur un poset X that satisfies the following axioms:

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

The classical example is topological closure, which also satisfies = and (xy)=Xy, deux propriétés non satisfaites par l'étoile Kleene.

Le poset dans le cas de l'étoile de Kleene est le poset de tous les ensembles de mots: X=2Σ. SiX,yΣ ensuite Xy si Xy. Les axiomes de fermeture indiquent alors que

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

L'opérateur Kleene plus satisfait également ces axiomes, il en va de même pour l'opérateur de fermeture selon cette définition.


Cela ne supprime-t-il pas l'exigence de minimalité? Je veux dire, si vous supprimez cette exigence, la réponse de David Richerby et ma réponse initiale sont OK pour l'étoile Kleene.
babou

Répondre à mon propre commentaire. La minimalité est conservée, mais est définie par rapport à l'ensemble des ensembles fermés. Pas de relation directe avec une opération sur des chaînes comme la concaténation. L'étoile de Kleene et le plus sont alors tous deux des opérations de fermeture, mais définis en utilisant un minimum par rapport à différents ensembles d'ensembles fermés. C'est une vue beaucoup plus abstraite. (Au moins, j'ai la satisfaction de voir que le raisonnement au niveau défini comme je l'ai finalement fait était la bonne voie à suivre :). Intéressant. Merci.
babou
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.