Gestion d'un entrepôt



Documents pareils
chapitre 4 Nombres de Catalan

Algorithmes d'apprentissage

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

LE PROBLEME DU PLUS COURT CHEMIN

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Recherche dans un tableau

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Couples de variables aléatoires discrètes

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

CHAPITRE VIII : Les circuits avec résistances ohmiques

Espaces probabilisés

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

(VM(t i ),Q(t i+j ),VM(t i+j ))

Algorithmes de recherche

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

CH.6 Propriétés des langages non contextuels

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Les structures de données. Rajae El Ouazzani

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Conception d'un réseau de transport d'électricité

Compte-rendu de projet de Système de gestion de base de données

NOTATIONS PRÉLIMINAIRES

Table des matières. 1 Programmation linéaire 1

Pourquoi l apprentissage?

Ebauche Rapport finale

Baccalauréat technologique

OPTIMISATION À UNE VARIABLE

TP3 : Creation de tables 1 seance

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

1. Introduction Création d'une requête...2

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures)

Chapitre 5 : Flot maximal dans un graphe

Chaînes de Markov au lycée

Programmation linéaire

5 ème Chapitre 4 Triangles

Peut-on tout programmer?

Définitions. Numéro à préciser. (Durée : )

Arbres binaires de recherche

L exclusion mutuelle distribuée

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Programmation Objet - Cours II

Programmation linéaire

Date : Tangram en carré page

Année Universitaire 2009/2010 Session 2 de Printemps

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

Quelques Algorithmes simples

BACCALAUREAT GENERAL MATHÉMATIQUES

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire

Probabilités Loi binomiale Exercices corrigés

BACCALAURÉAT PROFESSIONNEL EPREUVE DE TRAVAUX PRATIQUES DE SCIENCES PHYSIQUES SUJET A.1

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Master Modélisation Aléatoire Paris VII, Cours Méthodes de Monte Carlo en nance et C++, TP n 2.

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

DYNAMIQUE DE FORMATION DES ÉTOILES

6. Les différents types de démonstrations

1 Définition. 2 Systèmes matériels et solides. 3 Les actions mécaniques. Le système matériel : Il peut être un ensemble.un sous-ensemble..

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

ARBRES BINAIRES DE RECHERCHE

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Vers l'ordinateur quantique

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

Colorations identiantes de graphes

I3, Probabilités 2014 Travaux Dirigés F BM F BM F BM F BM F B M F B M F B M F B M

A. Définition et formalisme

Licence Sciences, Technologies, Santé Mention Informatique Codage de l'information

Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Développement d'un projet informatique

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

Plus courts chemins, programmation dynamique

Jean-Philippe Préaux

(51) Int Cl.: H04L 29/06 ( ) G06F 21/55 ( )

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Chapitre 1. Une porte doit être ouverte et fermée. 1.1 Les enjeux de l'informatique quantique

Construction de l'intégrale de Lebesgue

CARACTERISTIQUE D UNE DIODE ET POINT DE FONCTIONNEMENT

Processus aléatoires avec application en finance

Druais Cédric École Polytechnique de Montréal. Résumé

Algorithmique et Programmation

Propagation sur réseau statique et dynamique

Les indices à surplus constant

LibreOffice Calc : introduction aux tableaux croisés dynamiques

LES DÉTERMINANTS DE MATRICES

Excel Avancé. Plan. Outils de résolution. Interactivité dans les feuilles. Outils de simulation. La valeur cible Le solveur

Exercices de dénombrement

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Programmation linéaire

AGRÉGATION «ÉCONOMIE ET GESTION»

LES GENERATEURS DE NOMBRES ALEATOIRES

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Les devoirs en Première STMG

Les différents types de données et leurs opérations de base

Optimisation for Cloud Computing and Big Data

I. Introduction aux fonctions : les fonctions standards

1 TD1 : rappels sur les ensembles et notion de probabilité

Transcription:

Gestion d'un entrepôt Épreuve pratique d'algorithmique et de programmation Concours commun des écoles normales supérieures Durée de l'épreuve: 3 heures 30 minutes Juin/Juillet 2010 ATTENTION! N oubliez en aucun cas de recopier votre u 0 à l emplacement prévu sur votre fiche réponse Important. Sur votre table est indiqué un numéro u 0 qui servira d'entrée à vos programmes. Les réponses attendues sont généralement courtes et doivent être données sur la che réponse fournie à la n du sujet. À la n du sujet, vous trouverez en fait deux ches réponses. La première est un exemple des réponses attendues pour un ũ 0 particulier (précisé sur cette même che et que nous notons avec un tilde pour éviter toute confusion!). Cette che est destinée à vous aider à vérier le résultat de vos programmes en les testant avec ũ 0 au lieu de u 0. Vous indiquerez vos réponses (correspondant à votre u 0 ) sur la seconde et vous la remettrez à l'examinateur à la n de l'épreuve. En ce qui concerne la partie orale de l'examen, lorsque la description d'un algorithme est demandée, vous devez présenter son fonctionnement de façon schématique, courte et précise. Vous ne devez en aucun cas recopier le code de vos procédures! Quand on demande la complexité en temps ou en mémoire d'un algorithme en fonction d'un paramètre n, on demande l'ordre de grandeur en fonction du paramètre, par exemple: O(n 2 ), O(n log n),... Il est recommandé de commencer par lancer vos programmes sur de petites valeurs des paramètres et de tester vos programmes sur des petits exemples que vous aurez résolus préalablement à la main ou bien à l'aide de la che réponse type fournie en annexe. Enn, il est recommandé de lire l'intégralité du sujet avant de commencer an d'eectuer les bons choix de structures de données dès le début.

1 Introduction On s'intéresse dans ce sujet à l'organisation d'un atelier. Cette atelier fabrique à partir de plaques d'acier toute une gamme de pièces. La plaque initiale subit un traitement (découpage, emboutissage, etc.) qui produit une ou plusieurs pièces temporaires, qui subissent à leurs tours diérents traitements jusqu'à produire les pièces nales. Il est naturel de modéliser l'ensemble de traitements à eectuer par un arbre, dont les n uds représentent les diérents traitements. Dénition 1 (Arbre) Un arbre est un couple T = (V, E) où V = {1,..., n} est un ensemble de n uds et E V V est une relation (aussi appelée ensemble d'arêtes) sur l'ensemble des n uds vériant la propriété suivante : Pour tout j {2,..., n}, il existe un unique i {1,..., j 1} tel que (i, j) E. Un tel i est appelé père de j et noté p(j). Pour tout i V, on appelle ls de i l'ensemble, noté f(i), des j tels que (i, j) E. Seul le n ud 1 n'a pas de père : ce n ud particulier est appelé racine de l'arbre. Enn, les n uds n'ayant pas de ls sont appelés feuilles. On appelle degré d(i) d'un n ud i son nombre de ls : d(i) = card(f(i)). On appelle descendants de i les ls de i, les ls des ls de i et ainsi de suite. On appelle sous-arbre enraciné en i l'arbre dont les n uds sont i et ses descendants, et dont les arêtes sont les arêtes de l'arbre initial qui ont pour sommets i et ses descendants. Par la suite, on note t i la pièce temporaire qui sera traité par le n ud 1 i, qui correspond à l'arête (p(i), i). t 2 t 3 La gure ci-contre représente par exemple les traitements nécessaires 2 3 pour obtenir les pièces A, B et C. La plaque initiale est d'abord transformée en deux pièces temporaire t 2 et t 3 par le traitement 1, t 4 t 5 t 6 puis t 2 est à son tour transformée en t 4 et t 5 par le traitement 2, tandis que t 6 est produit à partir de t 3. Chacune des pièces t 4, t 5 et t 6 donnent ensuite les pièces nales A, B et C. 4 A 5 B 6 C L'atelier dispose d'un entrepôt dans lequel sont stockées les pièces temporaires, avant qu'elles ne soient transformées à leur tour. Cet entrepôt est de taille limitée. Pour simpli- er, on supposera que l'entrepôt, ainsi que les pièces, sont de dimension un. On pourra par exemple assimiler l'entrepôt à une étagère linéaire sur laquelle sont posées les pièces temporaires. La taille de l'entrepôt est la longueur de l'étagère L, et chaque pièce temporaire t i a une taille s i (c'est la longueur qu'elle occupe sur l'étagère). On suppose qu'il n'y a pas de problème de fragmentation (on peut déplacer les pièces sur l'étagère), de telle sorte que l'entrepôt peut stocker tout ensemble de pièces S tel que t i S s i L. Les pièces nales sont immédiatement acheminées vers leur lieu de stockage nale, elle ne sont donc pas stockées dans l'entrepôt. On modélise le problème sous la forme d'un arbre étiqueté, où le poids d'une arête représente la taille de la pièce temporaire associée. Dénition 2 (Arbre étiqueté) On appellera arbre étiqueté un triplet T = (V, E, w) où (V, E) est un arbre et w : E N indique la poids de chaque arête. Pour un arbre étiqueté, on peut dénir le degré pondéré de chaque n ud i de la façon suivante : { 0 si f(i) = δ(i) = j f(i) w(i, j) sinon 1 / 5

On note le degré pondéré maximum de tout n ud de l'arbre : = max δ(i) i V De même, on dénit le poids total W de l'arbre par la relation suivante : W = (i,j) E Le but de cette étude est de déterminer s'il est possible d'eectuer un arbre de traitements avec un entrepôt de taille donnée, ainsi que de déterminer la plus petite taille d'entrepôt nécessaire pour eectuer un arbre de traitements. w i,j 2 Génération aléatoire d'arbres Considérons la suite d'entiers (u k ) dénie pour k 0 par : { votre u0 (à reporter sur votre che) si k = 0 u k = 15 091 u k 1 mod 64 007 si k 1 Question 1 Que valent : u 10 u 100 u 1000 On s'assurera de pré-calculer et de stocker susamment de valeurs de u n de manière à pouvoir y accéder en temps constant par la suite. Dénition 3 Pour n N on note T n = (V, E, w) l'arbre étiqueté déni par : V = {( {1,..., n}, ) } (j 1) u2j E = 1 +, j j {2,..., n}, 64007 ( ) w(p(j), j) = 2. 1 + 400 u2j+1 64007 Question 2 Calculer le plus grand degré des n uds ainsi que le nombre de feuilles des arbres suivants : T 10 T 100 T 200 Question 3 Calculer et W pour les arbres suivants : T 10 T 100 T 200 3 Test d'heuristiques simples Dans cette partie, nous allons évaluer quelle est la taille minimale de l'entrepôt nécessaire pour des stratégies simples de parcours de l'arbre. On considère d'abord les stratégies de parcours en profondeur d'abord : lorsqu'on traite un n ud i, on traite ensuite tout le sous-arbre enraciné en i avant de traiter une autre partie de l'arbre. 2 / 5

Lorsqu'un n ud possède plusieurs ls, il faut choisir dans quel ordre les traiter : on décide de traiter d'abord le ls qui a le degré pondéré le plus faible (en cas d'égalité, on choisit le ls de numéro le plus petit). On rappelle qu'une feuille a un degré pondéré nul. Pour l'arbre ci-contre, cette stratégie parcourt les n uds dans l'ordre suivant : 1, 2, 4, 5, 7, 3 puis 6. La taille de l'entrepôt nécessaire pour cette stratégie est 50, qui correspond au stockage des pièces temporaires t 3 et t 7 après le traitement 5. 1 10 15 2 3 12 10 30 4 5 6 35 7 Question 4 Quelle est la taille minimale de l'entrepôt pour traiter avec cette stratégie les arbres suivants : T 10 T 100 T 200 Nous nous aranchissons maintenant de la contrainte de parcours en profondeur d'abord : à chaque étape, nous choisissons de traiter parmi les n uds actifs (c'est-à-dire ceux dont le père a déjà été traité), celui qui a le degré pondéré le plus faible (encore une fois, en cas d'égalité, on choisit le n ud de numéro le plus petit). Avec cette stratégie, on traite les n uds de l'exemple précédent dans l'ordre suivant : 1, 2, 4, 3, 6, 5 et 7. La taille minimale de l'entrepôt est 40, qui correspond au stockage des pièces t 5 et t 6, après le traitement du n ud 3. Question 5 Quelle est la taille minimale de l'entrepôt nécessaire pour traiter avec cette stratégie les arbres suivants : T 10 T 100 T 200 Question à développer pendant l'oral : Quelle est la complexité de vos algorithmes pour les questions 4 et 5? Que pensez-vous du critère de tri des n uds (degré pondéré croissant)? Pouvez-vous proposez d'autres critères et les justier? 4 Recherche de la taille minimale de l'entrepôt Dans cette partie, nous allons chercher à trouver la façon de traiter l'arbre qui minimise la taille de l'entrepôt nécessaire. Nous nous intéressons tout d'abord à certains types d'arbres. 4.1 Cas particulier des arbres homogènes On s'intéresse ici aux cas particuliers où toutes les pièces sont de même taille ; on supposera que cette taille vaut une unité de stockage pour toutes les arêtes. Pour tester les algorithmes, on utilisera dans cette partie les arbres dénis précédemment sans prendre en compte la pondération w des arêtes. Question à développer pendant l'oral : Soit r la racine d'un arbre, et f 1,..., f k ses ls. En supposant qu'on connaît la taille minimale de l'entrepôt nécessaire pour traiter chacun des sous-arbres enracinés en f 1,..., f k, comment peut-on en déduire la taille minimale de l'entrepôt nécessaire pour traiter l'arbre enraciné en r, ainsi que l'ordre de traitement? 3 / 5

Question 6 En déduire un algorithme calculant la taille minimale de l'entrepôt nécessaire pour eectuer les traitements décrits par les arbres suivants, lorsque toutes les pièces sont de taille unitaire : T 10 T 100 T 200 4.2 Cas particulier des harpons On appelle harpon un arbre dont tous les n uds sont de degré un, sauf la racine. Un harpon est formée de plusieurs branches, qui sont chacunes de chaînes de n uds. On r considère plus particulièrement les harpons H n,m dénis comme suit, et illustré ci-contre : H n,m est un harpon à n branches, où chaque branche possède m n uds. On désigne par (1, 1) (2, 1) (n, 1) (1, 2) (2, 2) (n, 2) (1, 3) (2, 3) (n, 3) (1, m) (2, m) (n, m) (i, j) le j ème n ud de la i ème branche. Chaque n ud (i, 1) est connecté à la racine r. Par commodité, on considère que le n ud (i, 0) dénote la racine, pour tout i. Le poids de l'arête ((i, j 1), (i, j)), correspondant à la taille de la pièce temporaire produite par le n ud (i, j 1) et utilisée par (i, j) est donnée par la formule suivante : ( w((i, j 1), (i, j)) = 1 + 100 1 + j ( )) n m ui m+j 1 64007 Question 7 Calculer et W pour les harpons suivants : H 3,5, H 10,100, H 50,1000 Question 8 Écrire un algorithme permettant de tester si on peut traiter un harpon avec un entrepôt de taille L donné. On pourra par exemple se souvenir de l'arête de poids minimal atteinte sur chaque branche. Tester cet algorithme sur les couples (harpon, taille d'entrepôt) suivants : (H 3,5, 1, 2 (H 3,5 )), (H 10,100, 1, 2 (H 10,100 )), (H 50,1000, 1, 2 (H 50,1000 )). Question à développer pendant l'oral : Quelle est la complexité de votre algorithme? Peut-on l'améliorer? Question 9 En vous appuyant sur l'algorithme de la question précédente, calculer la taille minimum de l'entrepôt nécessaire pour les harpons suivants : H 3,5, H 10,100, H 50,1000 Question à développer pendant l'oral : Quelle est la complexité de cet algorithme? Lorsque l'algorithme qui vérie si le traitement d'un harpon est faisable indique qu'il n'y a pas de solution, comment peut-on en déduire une borne inférieure sur la taille de l'entrepôt nécessaire? Expliquer comment on pourrait modier cet algorithme pour calculer la taille minimum de l'entrepôt. Comparez la complexité des deux approches, en fonction du nombre de n uds dans l'arbre et de la taille maximale S des pièces. 4 / 5

4.3 Cas général Attention : Les questions de cette partie sont particulièrement diciles. On conseille aux candidats de ne l'aborder qu'après avoir traité les questions précédentes. On retrouve ici le cas général de l'arbre. On cherche tout d'abord à vérier s'il est possible de traiter un arbre avec une taille d'entrepôt donné. Question 10 On cherche ici à élargir la notion d'arête minimale atteignable vue pour les harpons. Sur un graphe, on cherchera un état temporaire de taille de stockage minimale, atteignable depuis un n ud i avec un entrepôt de taille L donnée. Par exemple, sur l'arbre représenté à la question 4, en partant du n ud 1 et avec L = 37, l'état atteignable de taille minimal consiste à stocker t 3 et t 5, après avoir traiter les n uds 1, 2 et 4. On ne peut plus eectuer de traitement puisque le traitement du n ud 5 demanderait un stockage de 35 (en plus de t 3 = 15), et celui du n ud 6 demanderait un stockage de 30 (en plus de t 5 = 10). On notera que lorsqu'on traite une feuille, il n'y a plus de pièce temporaire à stocker, la taille de stockage est donc nulle. Écrivez une fonction qui, pour un espace de taille L disponible dans l'entrepôt, renvoie la taille minimal de stockage de tout état atteignable à partir d'un n ud i. Tester votre algorithme sur les arbres suivants, en prenant comme taille d'entrepôt le degré pondéré maximal de l'arbre : T 10, T 100, T 200. Question à développer pendant l'oral : Expliquez comment on peut utiliser l'algorithme précédent pour vérier s'il est possible de traiter un arbre avec une taille d'entrepôt donnée. Question 11 En déduire un algorithme pour calculer la taille minimale de l'entrepôt nécessaire pour traiter un arbre. Tester votre algorithme sur les arbres : T 10 T 100 T 200 5 / 5

ũ 0 : 30 Fiche réponse type: Gestion d'un entrepôt Question 1 11015 18003 1276 1317 Question 6 31540 3 Question 2 (3,6) (6,52) 7 7 Question 7 (7,96) 333,2039 Question 3 (700,2009) (1137,21017) 1052,307087 5130,65195519 Question 8 (1175,38694) oui Question 4 700 1600 oui non Question 9 1753 397 Question 5 700 1248 I / II

6168 700 Question 10 0 123 1167 1175 0 Question 11 II / II

Fiche réponse: Gestion d'un entrepôt Nom, prénom, u 0 :......................................... Question 1 Question 6 Question 2 Question 7 Question 3 Question 8 Question 4 Question 9 Question 5 I / II

Question 10 Question 11 II / II