Dératisation à Manhattan

Documents pareils
PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

chapitre 4 Nombres de Catalan

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

Algorithmes de recherche

FÉDÉRATION INTERNATIONALE DE PÉTANQUE ET JEU PROVENÇAL REGLEMENT DU CHAMPIONNAT DU MONDE DE TIR INDIVIDUEL

Recherche dans un tableau

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

CONCOURS D OUVRIER PROFESSIONNEL SPÉCIALITÉ "AGENCEMENT INTÉRIEUR" CONCOURS EXTERNE ET INTERNE

Fonctions de plusieurs variables

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, Cachan Cedex. Resume

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

LE PROBLEME DU PLUS COURT CHEMIN

Cours 02 : Problème général de la programmation linéaire

Vers l'ordinateur quantique

modélisation solide et dessin technique

Date : Tangram en carré page

Mémo d'utilisation de BD Dico1.6

Les Cheminements piétons

Guide de démarrage rapide Centre de copies et d'impression Bureau en Gros en ligne

Chapitre 1 : Introduction aux bases de données

Google Drive, le cloud de Google

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

Pourquoi l apprentissage?

Comparaison des performances d'éclairages

Avec PICASA. Partager ses photos. Avant de commencer. Picasa sur son ordinateur. Premier démarrage

Créer votre propre modèle

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

Chaînes de Markov au lycée

Equipement d un forage d eau potable

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

Université du Québec à Trois-Rivières Politique de gestion des documents actifs, semi-actifs et inactifs de l'u.q.t.r.

Guide pour la réalisation d'un document avec Open Office Writer 2.2

Salle de technologie

Les quatre chantiers :

Rechercher et supprimer les doublons!

Chapitre 7: Dynamique des fluides

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

Variotec 150/GV. La ferrure. Domaine d'utilisation. Données spécifiques HAWA-Variotec 150/GV. Exemples de construction. Entailles du verre.

Copropriété: 31, rue des Abondances Boulogne-Billancourt

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Instructions d'utilisation

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Sur une aire de stationnement, accessible par tranche de 50 places.

OPTIMISATION À UNE VARIABLE

DYNAMIQUE DE FORMATION DES ÉTOILES

Programmation linéaire

Thème 17: Optimisation

- Le Diagramme de Gantt. - Le Diagramme de Pert - La Méthode QQCQCCP - La Méthode MOSI - Cahier des charges fonctionnel

Des systèmes de chauffage avec pompe à chaleur et accumulateur de chaleur pour les construction dans les zones de montagne.

Alain DI MAGGIO Mise à jour sur le site 11/01/10

l'ordinateur les bases

Centre de Ressources pour les Evaluations (ERC) Guide d'utilisateur. Bureau d Evaluation, Septembre 2006

VOIRIE ACCESSIBLE Véronique IMBAULT Décembre 2011

Algorithmes d'apprentissage

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

Enquête 2014 de rémunération globale sur les emplois en TIC

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

Programmation Objet - Cours II

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

La gestion des boîtes aux lettres partagées

L inégale répartition de l énergie solaire est à l origine des courants atmosphériques

Fête de la science Initiation au traitement des images

Exemples et tutoriels Version 7.5. Tutoriel de l'exemple Recrutement de personnel pour IBM Process Designer

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies

Cours Modélisation et Programmation avec tableur

Logiciel de gestion Pour les Coiffeurs à domicile

ALGORITHME GENETIQUE ET MODELE DE SIMULATION POUR L'ORDONNANCEMENT D'UN ATELIER DISCONTINU DE CHIMIE

SECURITE - Quelques règles - Ce document est vivant, chacun peut proposer des améliorations en accord avec le Road Marshal. Doc001-3A Page 1/16

1 Recherche en table par balayage

Autorisation pour le négoce ou le courtage de déchets. Informations pour remplir le formulaire de demande

FONCTIONNEMENT D UNE MACHINE-OUTIL À COMMANDE NUMÉRIQUE - 1/2

Ebauche Rapport finale

Date de diffusion : Rédigé par : Version : Mars 2008 APEM 1.4. Sig-Artisanat : Guide de l'utilisateur 2 / 24

Soutien technique en informatique

POUR ALLER UN PEU PLUS LOIN SUR UN TABLEUR. Version EXCEL

Espace FOAD IRTS Guide de l étudiant Septembre 2009

DEMONSTRATION AMIENS

NOTATIONS PRÉLIMINAIRES

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

BANQUES DE DONNÉES PÉDAGOGIQUES

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Carport Evolution 1 Voiture Adossant

BORNE DE RECHARGE SUPERVISION GESTION D ENERGIE DIVA BORNE DE VOIRIE NOTICE D INSTALLATION

Recommandation n 22 relative à l ouverture d un compte bancaire ou postal séparé (06 novembre 2001).

POKER ET PROBABILITÉ

Arrêté Royal du 7 juillet 1994 fixant les normes de base en matière de prévention contre l incendie et l explosion : Notice explicative

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Comment développer et intégrer un module à PhpMyLab?

Le pare-feu de Windows 7

SANDWICH CHEVRONNÉ Détails de mise en œuvre

Projet de Traitement du Signal Segmentation d images SAR

Décompresser, créer une archive au format «ZIP»

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

I. Introduction aux fonctions : les fonctions standards

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

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

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Transcription:

Dératisation à Manhattan É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 2007 ATTENTION! N oubliez en aucun cas de recopier votre u 0 à l emplacement prévu sur votre fiche réponse Important. 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. 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 Baaaam! Encore une explosion de gaz dans les sous-sols de Manhattan. En eet, ces dernières années, d'impressionnantes colonies de rats ont élu domicile dans les égouts et le service de dératisation fait son possible pour éliminer ce éau. Comme vous le savez, Manhattan est organisé de façon très régulière avec des rues et des avenues formant une grille rectangulaire. Les égouts suivent le même arrangement et les rats établissent toujours leurs colonies au niveau des intersections de rues. La seule méthode ecace pour s'en débarrasser semble être l'utilisation de bombes de gaz semblables à celle qui vient d'exploser. Cependant, ce gaz n'est pas nocif que pour les rats et il convient d'évacuer les immeubles dans la zone d'action de la bombe avant son explosion. Le placement de ces bombes doit donc être choisi avec précaution. Une des spécicités de ces bombes est que lors de leur explosion, le gaz se diuse de façon rectangulaire le long des égouts. La Figure 1 représente la zone couverte par l'explosion d'une bombe de rayon 1. Position de la bombe Zone couverte Fig. 1 Zone couverte par l'explosion d'une bombe de rayon 1. Notre objectif est de rééchir à la conception d'algorithmes permettant soit de supprimer le plus grand nombre de rats à l'aide d'un ensemble de bombes donné, soit de trouver le plus petit nombre de bombes (de même rayon) nécessaires à l'extinction de toutes les colonies. L'ecacité des programmes que vous concevrez sera prise en compte. Il vous sera demandé de donner une réponse pour chacune des situations, que vous ne pourrez calculer dans le temps imparti qu'à la condition que vous ayez programmé des algorithmes ecaces. Il est à noter que moins d'une minute de calcul est nécessaire pour chacune des questions de ce sujet. 2 Génération aléatoire de colonies La situation de la ville de Manhattan peut être modélisée par les données suivantes : n le nombre de colonies, m le nombre de bombes, la liste de n triplets (x i, y i, t i ) avec 1 i n où (x i, y i ) représente la coordonnée de la i ème colonie et t i la taille de cette colonie, le rayon d des m bombes. Chacune des valeurs précédentes est à valeur dans N. 1 / 4

L'objectif est de placer les m bombes dans le plan an de supprimer le plus grand nombre de rats possible. Un placement P des bombes est représenté par (X 1, Y 1 ),..., (X m, Y m ). Une colonie est couverte par le placement P s'il existe une bombe j à distance (pour la norme innie) inférieure à d. Autrement dit, la colonie i est couverte par le placement P si et seulement s'il existe une bombe j telle que max( x i X j, y i Y j ) d. Le poids d'un placement est la somme des t i des colonies couvertes (attention, une colonie couverte par plusieurs bombes ne compte qu'une seule fois dans le poids d'un placement) et c'est donc ce que l'on va chercher à maximiser par la suite. Considérons la suite d'entiers (u k ) dénie pour k 0 par : u k = { votre u 0 (à reporter sur votre che) si k = 0 15 091 u k 1 mod 64 007 si k 1 Attention : On choisira u 0 strictement positif et inférieur ou égal à 64 006. Question 1 Que valent : u 10 u 100 u 1000. Dénition 1 On note C(n, m, d) l'instance comportant m bombes de rayon d et n colonies telles que la colonie i (pour 0 i < n) est située en (x i, y i ) = ((u 3i mod 10000)+1, (u 3i+1 mod 10000) + 1) et est de taille t i = (u 3i+2 mod 40) + 1. S'il existe i < j tel que (x i, y i ) = (x j, y j ) on fusionnera la colonie j avec la colonie i en ajoutant t j à t i et on supprimera la colonie j de la liste. Il y aura alors strictement moins de n colonies. Question 2 Donner la taille de la colonie ayant la plus petite coordonnée selon x (et en cas d'ex-aequo celle ayant la plus petite coordonnée selon y). C(10, 2, 500) C(50, 10, 500) C(1000, 20, 500) 3 Le cas mono-dimensionnel Dans cette partie, on s'intéresse au cas mono-dimensionnel, c'est-à-dire au cas où on considère que y i = 1 pour tout 0 i < n. On ne considèrera que des placements [x d, x + d] dits canoniques, c'est-à-dire tels que x d coïncide avec une colonie et x est le plus petit possible. Question 3 Écrire une fonction retournant le placement optimal d'une bombe et indiquer le nombre de rats tués pour chacune des congurations suivantes : C(10, 2, 500) C(50, 10, 500) C(1000, 20, 500) Question 4 Écrire une fonction retournant le placement optimal de deux bombes et indiquer le nombre de rats tués pour chacune des congurations suivantes : C(10, 2, 500) C(50, 10, 500) C(1000, 20, 500) Question 5 Écrire une fonction calculant le nombre minimal de bombes pour éradiquer toutes les colonies et indiquer ce nombre pour chacune des congurations suivantes : C(10, 2, 500) C(50, 10, 500) C(1000, 20, 500) 2 / 4

On peut remarquer un certain nombre de choses. D'une part le nombre de positions canoniques pour une bombe donnée est borné par n. D'autre part, le placement optimal de m bombes peut s'obtenir en posant une bombe à un endroit donné et en utilisant le placement optimal de m 1 bombes pour les colonies non couvertes et situées à droite de la première bombe. Si on note A[s, k] le nombre optimal de rats tués en plaçant k bombes à droite de la s-ième colonie, on peut donc écrire une relation de récurrence sur A et le stockage de A ne nécessite qu'un espace mémoire raisonnable. Question 6 En déduire un algorithme retournant un placement optimal de m bombes et indiquer le nombre de rats tués pour chacune des congurations suivantes : C(10, 2, 500) C(50, 10, 500) C(1000, 20, 500) 4 Le cas bi-dimensionnel On s'intéresse dans cette partie au cas général où les deux coordonnées sont considérées. On peut alors faire le constat suivant : comme l'illustre la Figure 2, on peut se restreindre aux positions de bombes telles que le bord supérieur et le bord gauche de la zone de couverture sont tous deux en contact avec une colonie (pas nécessairement la même). y d d x Fig. 2 Positionnement canonique d'une bombe : le bord supérieur et le bord gauche de la zone de couverture sont tous deux en contact avec une colonie. Le nombre de positionnement est donc toujours polynomial mais bien plus gros que précédemment. On propose de regarder l'algorithme glouton consistant à placer successivement les bombes à l'endroit permettant d'éliminer le plus grand nombre de rats possible. On propose donc l'utilisation de la structure suivante pour essayer de réduire au mieux la complexité. On note R = {1,..., n} l'ensemble des colonies B l'ensemble de positionnements canoniques de bombes possibles. On dira que r R et b B sont reliés si le positionnement b couvre la colonie r. On note E l'ensemble de ces relations. Pour mettre en oeuvre ecacement l'algorithme glouton on aura besoin de savoir rapidement le nombre de rats tués par une bombe donnée. On aura également besoin de pouvoir mettre à jour rapidement R, B et E lorsque l'on pose une bombe donnée. Question 7 Écrire une fonction construisant la structure en question et indiquer B, le nombre de positions possibles pour les congurations suivantes : 3 / 4

C(10, 2, 500) C(50, 10, 500) C(1000, 20, 500) Question 8 Écrire une fonction retournant le placement optimal d'une bombe et indiquer le nombre de rats tués pour chacune des congurations suivantes : C(10, 2, 500) C(50, 10, 500) C(1000, 20, 500) Question 9 Écrire une fonction mettant la structure à jour lorsque l'on pose une bombe à un endroit donné et écrire l'algorithme glouton plaçant m bombes. Indiquer le nombre de rats tués pour chacune des congurations suivantes : C(10, 2, 500) C(50, 10, 500) C(1000, 20, 500) Question 10 Écrire une fonction calculant gloutonnement le nombre de bombes pour éradiquer toutes les colonies et indiquer ce nombre pour chacune des congurations suivantes : C(10, 2, 500) C(50, 10, 500) C(1000, 20, 500) Suite aux temps de calcul prohibitifs et aux résultats décevants de cet algorithme, on propose une autre approche. L'idée consiste à découper l'espace en bandes horizontales de largeur 2d et à utiliser les solutions pour le cas mono-dimensionnel. Attention, pour créer ces bandes horizontales, on prendra bien soin d'utiliser le même type de techniques que dans le cas mono-dimensionnel et de toujours traiter les coordonnées par ordre croissant. Question 11 Pour couvrir toutes les colonies, on propose d'appliquer la solution optimale mono-dimensionnelle dans chaque bande. Indiquer le nombre de bombes nécessaires à l'aide de cette méthode pour chacune des congurations suivantes : C(10, 2, 500) C(50, 10, 500) C(1000, 20, 500) Question 12 On propose un autre algorithme pour placer m bombes. Comme précédemment, on coupe en bandes horizontales de largeur 2d, puis on sélectionne la bande où il est le plus intéressant de placer une bombe. On met à jour et on recommence. Indiquer le nombre de rats tués à l'aide de cette méthode pour chacune des congurations suivantes : C(10, 2, 500) C(50, 10, 500) C(1000, 20, 500) 4 / 4

Dératisation à Manhattan Nom, prénom, u 0 :......................................... Question 1 Question 6 Question 2 Question 7 Question 3 Question 8 Question 4 Question 9 Question 5 Question 10 I / II

Question 11 Question 12 II / II

Fiche d'évaluation: Dératisation à Manhattan Nom, prénom, u 0 :......................................... Question 1 0 1 2 3 4 5 6 7 8 0 4 0 4 0 4 0 4 Question 5 0 1 2 3 4 5 6 7 8 Question 2 0 1 2 3 4 5 6 7 8 0 4 0 4 0 4 0 4 Question 6 0 1 2 3 4 5 6 7 8 Question 3 0 1 2 3 4 5 6 7 8 0 4 0 4 0 4 0 4 Question 7 0 1 2 3 4 5 6 7 8 Question 4 0 1 2 3 4 5 6 7 8 A / B

0 4 0 4 Question 8 0 1 2 3 4 5 6 7 8 0 4 0 4 Question 11 0 1 2 3 4 5 6 7 8 0 4 0 4 Question 9 0 1 2 3 4 5 6 7 8 0 4 0 4 Question 12 0 1 2 3 4 5 6 7 8 0 4 0 4 0 4 0 4 Question 10 0 1 2 3 4 5 6 7 8 B / B