Loading [MathJax]/jax/output/HTML-CSS/jax.js

מידע

יוצרים Vincent Branders, Pierre Dupont
מועד הגשה 05/03/2025 14:00:00
מגבלת הגשות אין הגבלה

כניסה

[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.


שאלה 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.

שאלה 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 ?

שאלה 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.

שאלה 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'erreur 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 ?

גודל קבצים מרבי: 1.0 MiB
הרחבות מורשות: .png
שאלה 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.