[Résolu]Langages formels->Résiduels d'expressions rationelles

Langages formels->Résiduels d'expressions rationelles [Résolu] - Algo - Programmation

Marsh Posté le 22-12-2005 à 17:25:48    

Bonjour,
Je ne sais pas si c'est ici que mon sujet devrais se trouver, mais bon..
 
En fait j'ai une question qui peut paraitre idiote, mais je ne trouve pas ne serais-ce que le début d'une réponse sur le net, alors peut etre n'ai-je pas bin cherché, mais cette question sans réponse me bloque dans mes révisions..
 
Je ne comprends pas ce que représente le résiduel gauche d'une expression rationelle (sensée représenter un langage). Pour illustrer, je vais donner un exemple ou deux et vous dire précisément là ou mon cerveau bloque:
 
L=A*aA
a^(-1)L=a^(-1)(A*aA)  // Jusqu'ici, tout va bien :)
           =A*aAUA          // La je ne comprends pas
 
 
 
D'ou vient cet U (union) A?
Je comprend les notation "A" comme nimporte quel mot construit avec l'alphabet A sauf le mot vide epsilon,
"A*" pareil mais avec le mot vide, "a" comme la lettre "a" ...
Mais comment interpréter ce a^(-1)? Sinon, je comprend bien qu'on risque de me dire qu'il faut que je trouve un cours, mais je n'en trouve pas qui traite tout ca.
 
Autre exemple:
 
L=a*ba*Ub*aba
a^(-1)L=a*ba*U0Uba // Ici non plus je ne comprend pas la transition...
 
 
Merci de votre aide.


Message édité par milootooloo le 23-12-2005 à 12:51:49
Reply

Marsh Posté le 22-12-2005 à 17:25:48   

Reply

Marsh Posté le 22-12-2005 à 18:00:36    

essaye de voir du côté des machines de turing... peut-être que tu trouveras qq chose qui te mettra sur la voie...

Reply

Marsh Posté le 22-12-2005 à 19:43:26    

rufo a écrit :

essaye de voir du côté des machines de turing... peut-être que tu trouveras qq chose qui te mettra sur la voie...


 
Ben a la base, c'est pour les automates finis.. Mais je veux bien aller faire un tour de ce coté.. Ca fera as de mal..
Merci qd meme.

Reply

Marsh Posté le 22-12-2005 à 22:09:40    

je fais du langage formel cette année en cours d'ailleurs la je revise pr les partiels
 
jaurais bien voulu taider mais on a  jamais vu de ^-1
 
et la transition que tu montres je la comprends pas non plus
 
bon courage quand meme parce que bon pour trouver des infos sur ca c'est pas la joie

Reply

Marsh Posté le 23-12-2005 à 12:51:11    

On m'a trouvé une solution, je la poste ici au cas ou ca serais utile à quelqu'un..
 

Citation :

Alors pour L=A*aA:
 
ba en fait pour calculer le residuel gauche t'enleve le premier a que tu rencontre sur la gauche. Ici ya deux solutions: si le A* est pas vide(parceke tu peut avoir nimporte quoi dans A* meme le mot vide) dans ce cas t'enleve le premier a que tu rencontre et ca change rien le langage s'ecrira tjs A*aA. genre si le mot c'est abaabbbabaa ca fera baabbbabaa et c'est toujours dans le langage.
Mais si le A* est vide,alors le langage s'ecrit aA et la t'enleve le premier a rencontré et ca fait A.
Donc le residuel gauche c'est l'union des 2 solutions onc A*aA U A.
 
et le truc du a^(-1) c'est juste une notation pour calculer les residuels gauches, ca veut juste dire que t'enleve le premir a sur la gauche.
 
Voila j'espere que c'est clair...

Reply

Marsh Posté le 23-12-2005 à 14:17:45    

Note qu'on parle de résiduel par rapport à un mot, et là en l'occurrence c'était le mot "a". Le résiduel d'un langage L par rapport à un mot "u" (de A*), qu'on note L/u, c'est simplement l'ensemble des mots "w" de A* tels qu'il existe un "v" de A* pour lequel : w = u.v.
 
Ensuite l'explication de la solution donnée est douteuse, notamment le passage :
 

Citation :


si le A* est pas vide(parceke tu peut avoir nimporte quoi dans A* meme le mot vide) dans ce cas t'enleve le premier a que tu rencontre


 
Il ne s'agit pas de prendre n'importe quel mot de A*aA de lui enlever le premier "a" sur la gauche mais de prendre tous les mots de A*aA qui commencent par "a" et de leur enlever "a".
 
Ensuite il suffit de remarquer que le langage des mots de A*aA qui commencent par "a" s'écrit : aA*aA U aA.
 
L'intérêt de la notation a^(-1) pour la concaténation c'est de pouvoir écrire : a^(-1).(aA*aA U aA) et d'utiliser la distributivité du produit de concaténation par rapport à l'union et le fait que a^(-1).a = epsilon, pour obtenir finalement : L/a = A*aA U A.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed