• Aucun résultat trouvé

Exercice 1 – Listes de listes de listes...

N/A
N/A
Protected

Academic year: 2022

Partager "Exercice 1 – Listes de listes de listes..."

Copied!
2
0
0

Texte intégral

(1)

THLR 2016–2017 TD 4 – page 1/2

Lemme de pompage et déterminisation TD 4

Version du 26 septembre 2016

Exercice 1 – Listes de listes de listes...

Reprenons une question du TD précédent :

La notion de liste est étendue récursivement pour inclure les listes de listes, les listes de liste de liste... comme ((1 : 3) : 3 : (2 : 1) : ((1 : 2))). Est-il possible de reconnaître les listes avec un automate fini ?

1. Utilisez le lemme de pompage pour les langages rationnels afin de démontrer que le langage L

p

= { (

n

1)

n

| n ≥ 0 } n’est pas rationnel.

2. Déduisez-en qu’il n’est pas possible de reconnaître le langage L

l

, composé de listes, listes de listes, listes de listes de listes. . . avec un automate fini.

Exercice 2

On suppose Σ = { a, b } . En utilisant les méthodes du cours, construisez un automate déterministe équivalent à chacun des automates suivants :

0 1 2

b ε

a a

b

1

3

2

4 a

a a

b a

b 1

2 3

4 5

b a

b

a

a , b

b

a, b

Exercice 3 – Recherche de motifs Dans cet exercice on considère Σ = { a , b , c } .

1. Soit le mot m = abab et L le langage des mots qui ont m comme suffixe. L contient les mots de la forme v = um, avec u ∈ Σ

?

; soit, par exemple, les mots aaabab et babab. En revanche, caabc n’appartient pas à L.

Prouvez que L est rationnel. Proposez un automate fini non-déterministe A

n

pour L. Vous justifierez votre construction.

2. Transformez A

n

en un automate déterministe complet A

d

équivalent, en utilisant une construction étudiée en cours. Vous expliciterez les étapes de l’application de l’algorithme.

3. Pourquoi est-il évident que A

d

soit complet et émondé ?

(2)

THLR 2016–2017 TD 4 – page 2/2 4. On modifie l’alphabet avec Σ = { a , b , c , d , e } pour cette question uniquement. Comment répercuter cette

modification sur A

d

?

5. On considère l’algorithme suivant :

// u = u

1

. . . u

n

est le mot dans lequel on cherche.

// A

d

= (Σ, Q, { q

0

} , F , δ) est un automate déterministe pour L.

q ← q

0

i ← 1 c ← 0

tant que (i ≤ n) faire q ← δ(q, u

i

) i ← i + 1

si (q ∈ F) alors c ← c + 1 fin si fin tant que

a. Illustrez le fonctionnement de cet algorithme lorsque u = bcababcabbababac et l’automate A

d

calculé à la question 2. Vous donnerez pour chaque passage dans la boucle principale la valeur de c.

b. Que calcule cet algorithme en général ? Justifiez votre affirmation.

c. Quelle est la complexité de cet algorithme ?

d. Que vaut c à la fin de l’exécution de l’algorithme pour u = cabbababababc ? Que remarquez vous ? e. Comment faudrait-il modifier l’automate A

d

pour compter que le nombre maximal d’occurrences

disjointes du motif au sein de la chaîne d’entrée ? Par exemple la réponse devrait être 2 dans le

dernier exemple.

Références

Documents relatifs

On considère une liste d’ouvrages LOuvrages où chaque élément de la liste contient un Livre ; caractérisé par son code (un entier), son titre (une chaîne de caractères), et le

Avec la fonction random afficher un flottant al´ eatoire entre 0 et 1.. (2) D´ efinir une liste L de 100 nombres

Écrire une fonction maxmin(L) qui renvoie le maximum, le minimum et les positions du minimum et du maximum des éléments de la liste de flottants L. Indication : on pourra utiliser

• Nous avons vu que l'API Java fournit la classe brute ArrayList , que l'on doit en principe paramétrer par une classe d'objets. Cela permet de fixer une fois pour toutes le

Testez d'abord sur des listes courtes construites avec les méthodes vide et ajoutT. d) Testez ensuite sur des listes longues générées avec la méthode creerAleat. Le

tail retourne la liste compos´ ee de tous les ´ el´ ements sauf le premier isEmpty retourne True ssi la liste est vide.. Ces op´ erations sont d´ efinies comme m´ ethodes des objets

f) La fusion de deux listes triées d’entiers L1 et L2 en une liste triée L3 (avec ensuite sans création d’une nouvelle liste);.. EXERCICE

À partir d'une liste trié, la recherche dichotomique de la présence (et de l'index) d'une valeur consiste à prendre une valeur à l'index milieu d'une tranche de la liste (au début