Implantation d’une structure avec opérations par intervalles

Download (0)

Full text

(1)

UNIVERSITÉ DE MONTRÉAL Automne 05

Département IRO Neil Stewart

IFT 2010 A05 Devoir 2.

(25/100)(0.30), soit7.5%de la note finale.

1 Partie théorique (10 points)

1. (2 points)

Lors de l’analyse du coût moyen de recherche dans une arborescence vue en cours, à la fin, il a été dit que

Hn=

n

X

i=1

1 i

est approximativement égal àlogen. On vous demande de trouver des bornes logarithmiques simples pourHndans un cas spécial.

Trouvez des bornes inférieures et supérieures logarithmiques pourHn en supposant que n ait la formen = 2m+1.

Indice: regardez seulement les derniers2mtermes 1

2m+ 1 +. . .+ 1 2m+1

dans la série pourHn, et remplacez-les par des bornes inférieures et supérieures grossières, du style2−m et2−(m+1).

2. (4 points).

(a) (2 points)

Dans le cours, à la fin de l’analyse des arborescences AVL, il a été dit que logφ

√5(n+ 2) φ3

!

≤ lgn

lgφ, n ≥3.

Donnez la preuve.

(b) (1 point)

SoitFn =Fn−1+Fn−2,F0 = 0,F1 = 1.

Nous nous sommes servis aussi du fait que Fi = 1

√5

φi−φˆi, φ= 1 +√ 5

2 , φˆ= 1−√ 5 2 . Donnez la preuve (cf IFT1063).

1

(2)

(c) (1 point)

Et enfin nous avons utilisé le fait que|φˆi5|<1,i≥0.

Donnez la preuve.

3. (1 point)

Drozdek, Exercice 6, page 289.

4. (2 points)

Drozdek, Exercice 12, page 290.

5. (1 point)

Drozdek, Exercice 15, page 291.

2 Partie pratique (15 points)

Implantation d’une structure avec opérations par intervalles

Dans un système de fichiers, un catalogue de tous les fichiers est emmagasiné dans une structure de données en mémoire. Chaque élément du catalogue est un descripteur de fichier qui spécifie les attributs d’un fichier, dont le nom et la date de dernière modification1. Dans le contexte de ce travail, nous vous demandons d’implanter une telle structure en considérant principalement les opérations reliées à la date de modification. Cette structure doit être implantée dans une classe FileDescriptorCatalogImpl, qui doit implanter les méthodes de l’interface

FileDescriptorCatalog, fournie sur le site du cours. Consultez la documentation de cette dernière pour connaître les méthodes à implanter.

Contraintes

Vous êtes libres d’employer la structure de votre choix, mais vous devez respecter les contraintes suivantes :

1. Vous n’avez pas droit à l’API de Java à l’exception dejava.lang.*etjava.util.Date (vous n’aurez pas le choix pour cette dernière). Autrement dit, vous devez implanter toutes les structures vous-mêmes. Si vous trichez, vous serez pénalisés sévèrement lors de la cor- rection.

2. Vous devez respecter la complexité moyenne attendue pour chaque opération (elles sont men- tionnées dans la documentation deFileDescriptorCatalog), ou faire mieux.

3. Votre implantation FileDescriptorCatalogImpl doit fournir un constructeur sans paramètre.

1Notez qu’il est possible d’avoir des répétitions dans les dates et noms de fichier.

2

(3)

4. Vous devez avoir une implantation ayant une consommation de mémoire raisonnable (i.e.

O(N), où N est le nombre maximum d’éléments ; notez cependant que vous ne pouvez absolument pas faire d’hypothèse sur la valeur de ce nombre).

Vous trouverez sur le site du cours :

– l’interfaceFileDescriptorCatalog.javaque vous devez implanter ;

– les fichiersFileDescriptor.java(les éléments à emmagasiner dans le catalogue) et FileDescriptorIterator.java, un utilitaire pour lire les données ;

– le fichierRandom.java, des utilitaires pour générer des nombres pseudo-aléatoires ; – un répertoire doc/ qui contient la documentation (Javadoc) des trois fichiers précédents,

aussi accessible à l’URL suivant :

http://www.iro.umontreal.ca/˜dift2010/archives/A05/devoir2/doc/

– le fichierTestCatalog.java, un programme pour vous aider à tester votre implantation ; – les fichiersinput1etinput2, deux exemples de fichiers d’entrée. Vous n’avez pas a trai-

ter vous-même la lecture des fichiers, c’est fait pour vous avecFileDescriptorIterator.

Il est fortement recommandé de créer vous-mêmes d’autres entrées pour tester votre implan- tation sur des données différentes, et surtout en plus grande quantité. Le format des fichiers est très simple : il y a un fichier par ligne, et chaque ligne est composée du nom du fichier, suivi d’un point-virgule, puis de la date (simplement :HH:M M:SS).

Vous devez remettre :

– le fichierFileDescriptorCatalogImpl.java, qui doit implanter FileDescriptorCatalog;

– tout autre fichier secondaire nécessaire pour compiler le fichier précédent, s’il y a lieu (si vous avez créé des classes supplémentaires).

Ces fichiers doivent être remis avec la commande :

remise ift2010 tp2 <vos fichiers>

Fonctionnement du programme de test :

Le programme TestCatalog se charge de la lecture du fichier et effectue un test princi- pal qui exécute un certain nombre d’itérations (donné sur la ligne de commande). Pour chaque itération, deux opérations de recherche, quelques comptages et deux opérations du type inser- tion/suppression (déterminées au hasard, ou presque) sont effectuées. Pour en savoir plus sur ce programme, compilez-le et exécuter d’abord ceci :

java TestCatalog --help

Le programme effectue aussi une mesure du temps de la lecture/construction initiale du cata- logue, de l’extraction de tous les éléments, et du test principal. Vous êtes encouragés à d’utiliser la commandetimepour avoir une mesure globale du temps d’exécution.

3

(4)

*** Version de Java ***

En raison des fichiers qui vous sont fournis, vous devez compiler avec Java1.5.

Performance et opérations additionnelles

Vous serez notés sur la performance (temps d’exécution) de votre implantation (environ le tiers des points). Le temps d’exécution de votre implantation sera comparé au temps d’une implantation peu optimisée qui respecte les contraintes sur la complexité.

De plus, vous devez remettre avec la partie théorique du devoir environ une page (pas plus) sur laquelle vous devez nous décrire brièvement votre implantation, et justifier votre approche.

Donnez-nous les avantages et les inconvénients de la structure que vous avez choisie.

À réaliser en équipes de 1 ou 2. À remettre le 14 octobre, 2005, avant 11 :30. Les démons- trateurs présenteront les solutions dans la démonstration de vendredi 14 octobre. Ils n’accepteront pas de devoirs après le début de la présentation des solutions.

4

Figure

Updating...

References

Related subjects :