0% ont trouvé ce document utile (0 vote)
108 vues4 pages

Devoir 5

Ce document présente l'algorithme pseudomed pour choisir un pivot raisonnable pour le tri rapide. Il définit ce qu'est un élément raisonnable et décrit l'algorithme pseudomedk qui choisit k éléments aléatoirement puis retourne la médiane. Des questions portent sur la complexité de l'algorithme et la probabilité d'erreur.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
108 vues4 pages

Devoir 5

Ce document présente l'algorithme pseudomed pour choisir un pivot raisonnable pour le tri rapide. Il définit ce qu'est un élément raisonnable et décrit l'algorithme pseudomedk qui choisit k éléments aléatoirement puis retourne la médiane. Des questions portent sur la complexité de l'algorithme et la probabilité d'erreur.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

IFT436 – Algorithmes et struct.

de données Devoir 5 Automne 2023

Annabelle 20
Fortin FORA
IFT436 – Algorithmes et structures de données AnthonyLopezGagnon Lora
210
Université de Sherbrooke

Devoir 5
Enseignant: Michael Blondin
Date de remise: mardi 5 décembre 2023 à 23h59
À réaliser: en équipe de deux ou individuellement
Modalités: remettre en ligne sur Turnin dans un fichier PDF
Bonus: les questions bonus sont indiquées par !
Pointage: max. 15 points + 1,5 points bonus

Le pivot idéal pour le tri rapide est la médiane. En théorie, on peut calculer la médiane d’une séquence en
temps linéaire, mais cela s’avère peu efficace en pratique. Une autre approche consiste à choisir un élément à
une distance raisonnable de la médiane, comme un élément compris entre le premier et troisième quartile.

Soit s une séquence de n éléments comparables distincts. Le rang d’un élément x ∈ s, dénoté rang(x), cor-
respond à la position de x dans s ordonnée en ordre croissant (en comptant à partir de 1). Nous disons qu’un
élément x ∈ s est raisonnable si
"n/4# < rang(x) ≤ %3n/4&.
Par exemple, considérons la séquence s = [50, 13, 20, 67, 41, 89, 70, 30]. Nous avons rang(13) = 1, rang(67) = 6
et rang(89) = 8. Les pivots raisonnables de s sont 30, 41, 50 et 67.
13,2030,4150167170.89
Afin d’identifier un pivot raisonnable, une approche probabiliste consiste à choisir k éléments aléatoirement
(de façon uniforme), puis de retourner la médiane de ces k éléments, où k ∈ N est un paramètre impair:

Entrées : séquence s de n ∈ N≥3 éléments comparables distincts


Résultat : un élément raisonnable x ∈ s
pseudomedk(s):
t ← []
faire k fois
choisir i ∈ [1..n] aléatoirement de façon uniforme
ajouter s[i] à t
trier t
retourner t["k/2#]

Remarques:
— la constante k ne fait pas partie de l’entrée, il s’agit d’un paramètre fixe. Autrement dit, pseudomed1 , pseudomed3 ,
pseudomed5 , pseudomed7 , . . . sont tous des algorithmes différents;

— le choix d’un nombre aléatoire est ici une opération élémentaire qui s’effectue toujours en temps constant.

1
IFT436 – Algorithmes et struct. de données Devoir 5 Automne 2023

Question 1.

(a) L’algorithme pseudomedk est-il de Las Vegas ou de Monte Carlo? Justifiez. 2 pts

(b) Quelle est la probabilité que pseudomed3 retourne la médiane de s = [42, 9000, 0]? Justifiez. 4 pts

Indice: combien y a-t-il de séquences avec 2 éléments identiques, 3…

Pour les sous-questions suivantes, supposez que n est divisible par 4 (cela simplifie les calculs).

(c) Donnez la probabilité d’erreur de pseudomed1 et de pseudomed3 , puis généralisez en donnant une expres- 6 pts
sion symbolique qui décrit la probabilité d’erreur de pseudomedk . Justifiez.
Indice: considérez trois types d’éléments: raisonnables, déraisonnables de gauche et déraisonnables de droite;
oubliez les nombres, pensez à des chaînes formées avec les caractères {r, g, d}, puis au coefficient binomial.

(d) La procédure ci-dessous exécute pseudomed3 jusqu’à ce qu’un élément raisonnable soit identifié. Ainsi, sa 3 pts
valeur de retour est toujours correcte. Quel est son temps espéré sous notation O? Justifiez.

Entrées : séquence s de n ∈ N≥3 éléments comparables distincts


Résultat : un élément raisonnable x ∈ s
faire
x ← pseudomed3 (s)
tant que x n’est pas raisonnable // déterminé avec algo. déterministe en temps O(n)
retourner x

! Montrez qu’il existe une valeur de k pour laquelle la probabilité d’erreur de pseudomedk est ≤ 1/2275 . ! 1,5 pts

2
C'estunalgorithmdeMonteCarlocar l'operation est faite un nombre fini
defois ar lieud'etre répétéjusqu'davoirle bon résultat

Il 13 résultats sur 27 possibilities done 1327 chances de returner


a
y
le bon résultat
Pow une sequence de n values il y a Ya des valens

déraisonnable degauche et 44 des valens déraisonnable de


droite Il
y a done V2 Valens raisonnables

Ainsi puisque pseudomed prendonesale


variable et la retourne il y
a 501de chances d'errew 14yd'erreur
Poor pseudo
meds il a 64
piges possibles avec44 qui vetownent me
y
valour raisonnable comme nous powersvoiravec exemple suivant en considérant
one sequence de 4 valeurs Siune
pigemax Ivariable
déraisonnable de droiteet max 1

variablederaisonnabledegauchealors i'algorithme retournera une variable


raisonnable
14 4cierreur

s givraid

ggg [Link] rigg egg


[Link] regr dgr
[Link] [Link]
rigd dga
grig ring ring drag
grin river river drr
[Link] river river dr.r
grid rind rind and
gray ring ring drag
grer river river drer
gree river river drer

gigiigiigig
rdr rdr
gdr ddr
gdr rdr rdr ddr
geld reld redd dad
equivalent
degaucheusdroite
variable
d
chance avoirune
déraisonnablegauche
autre
les
guy 0déraisonnablemeter
1,11 de gauche

É Ya in 2
te
itai y
d
nombre optiondeivaleurs
d la
chance avoirune dans souspigedek
diraisonnablede
gauche

Vous aimerez peut-être aussi