Information

Author(s) Vincent Branders, Pierre Dupont
Deadline 06/03/2024 14:00:00
Submission limit No limitation

Sign in

[TP.03] Evaluation expérimentale

Vous êtes chargé de faire une étude expérimentale comparative sur la complexité temporelle des algorithmes présentés dans l'exercice précédent.


Question 1: Temps d'exécution

Sélectionnez, parmi les réponses proposées, celles qui peuvent influer sur le temps d'exécution d'un programme mettant en oeuvre un algorithme.

Question 2: Temps d'exécution

Le temps d’exécution d’un même programme sur les mêmes données et exécuté sur une même machine peut-il varier d’une exécution à l’autre ? Pourquoi ?

Question 3: Mesure expérimentale

Pour mesurer expérimentalement le temps d'exécution d'un programme, on peut suivre la procédure suivante :

  1. Exécuter le programme pour plusieurs instances du problème
  2. Mesurer le temps pris par chaque exécution

Toutefois, cette procédure ne permettra pas d'estimer de façon fiable la complexité temporelle de l'algorithme une fois implémenté. Sélectionnez, parmi les réponses proposées, celles qui permettent d'améliorer la procédure proposée pour réaliser une estimation plus fiable de la complexité temporelle.

Question 4: Paire_max_efficace

Réalisez maintenant l'étude expérimentale sur l'implémentation produite dans l'exercice précédent. Pour ce faire, commencez par suivre la référence sur l'étude expérimentale disponible sur moodle. On vous demande de réaliser l'ensemble des étapes, de la génération aléatoire d'instances à la production d'un graphe illustrant vos résultats. Comparez vos résultats avec les complexités calculées à la séance précédente.

On vous demande de produire le graphe de la complexité, mesurée expérimentalement, des deux implémentations que vous avez réalisées.

Concernant le graphe :

  • Pensez à définir un titre
  • Pensez à définir les axes du graphe (les unités si il y en a)
  • Faites attention à l'échelle utilisée pour représenter les axes (linéaire, logarithmique,..)
  • Utilisez des barres d'erreurs pour identifier la variabilité des résultats

Prenez un peu de recul sur votre graphe :

  • Avez-vous obtenu des résultats clairs ? Si ce n'est pas le cas, discutez-en avec votre tuteur.
  • Comparez la complexité, mesurée expérimentalement, des implémentations efficace et simple (fournie en pseudo-code). Pouvez-vous observer une différence entre les complexités expérimentales des deux implémentations que vous avez produites ?
  • Pouvez-vous identifier des meilleurs et pire cas ? Comment les représenteriez-vous sur vos graphes ?

Max file size: 1.0 MiB
Allowed extensions: .png
Question 5: Analyse d'un graphe

Supposons que votre étude expérimentale vous mène au graphe suivant. Ce graphe indique le temps d'exécution en fonction de la taille des instances :

https://inginious.info.ucl.ac.be/course/LINFO1103/S03_2_1_expe/exp1.png

Que pouvez-vous dire à propos de la complexité temporelle de la fonction ? Supposez que n correspond à la taille des instances.