Calcul d itinéraires ferroviaires.



Documents pareils
21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

Jean-Philippe Préaux

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

Puissances d un nombre relatif

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

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

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

Introduction à la théorie des graphes. Solutions des exercices

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

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

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

Correction TD algorithmique

L apprentissage automatique

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet.

S initier aux probabilités simples «Un jeu de cartes inédit»

L exclusion mutuelle distribuée

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Module Planification

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Quelques algorithmes simples dont l analyse n est pas si simple

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Introduction au Data-Mining

Big Data et Graphes : Quelques pistes de recherche

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Application de K-means à la définition du nombre de VM optimal dans un cloud

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Mise en place d un cluster. De basculement. Et DHCP Failover. Installation. Préparation. Vérification

Continuité et dérivabilité d une fonction

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Chapitre 6. Fonction réelle d une variable réelle

Algorithmes de recherche d itinéraires en transport multimodal

Chap17 - CORRECTİON DES EXERCİCES

Ebauche Rapport finale

FIMA, 7 juillet 2005

Machines virtuelles Cours 1 : Introduction

Présentation du Master Ingénierie Informatique et du Master Science Informatique , Année 2 Université Paris-Est Marne-la-Vallée

Indications pour une progression au CM1 et au CM2

Algorithmes récursifs

Introduction à l algorithmique et à la programmation (Info 2)

Introduction au Data-Mining

SYSTÈMES DE CONFÉRENCE. Système de conférence analogique CDS Système de conférence numérique DCS

Structure fonctionnelle d un SGBD

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

Gestion collaborative de documents

Initiation à LabView : Les exemples d applications :

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Cours d algorithmique pour la classe de 2nde

Big Data et Graphes : Quelques pistes de recherche

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable

Quantification Scalaire et Prédictive

TP3 : Manipulation et implantation de systèmes de fichiers 1

Historique. Architecture. Contribution. Conclusion. Définitions et buts La veille stratégique Le multidimensionnel Les classifications

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

Introduction aux algorithmes MapReduce. Mathieu Dumoulin (GRAAL), 14 Février 2014

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

Programmation en Java IUT GEII (MC-II1) 1

Programmation C. Apprendre à développer des programmes simples dans le langage C

Initiation à Excel. Frédéric Gava (MCF)

Le jour et ses divisions

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Calcul intégral élémentaire en plusieurs variables

L informatique en BCPST

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Feuille TD n 1 Exercices d algorithmique éléments de correction

Parallélisme et Répartition

La question est : dans 450 combien de fois 23. L opération est donc la division. Le diviseur. Le quotient

Chapitre 5 : Flot maximal dans un graphe

«Clustering» et «Load balancing» avec Zope et ZEO

LES SYSTÈMES DE FICHIERS

TP 1. Prise en main du langage Python

Annexe commune aux séries ES, L et S : boîtes et quantiles

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

BAREME sur 40 points. Informatique - session 2 - Master de psychologie 2006/2007

La classification automatique de données quantitatives

Initiation. àl algorithmique et à la programmation. en C

UE Programmation Impérative Licence 2ème Année

Licence Sciences et Technologies Examen janvier 2010

Resolution limit in community detection

Suites numériques 3. 1 Convergence et limite d une suite

Cours 1 : Qu est-ce que la programmation?

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

Annexe 6. Notions d ordonnancement.

Bases de données Cours 1 : Généralités sur les bases de données

Probabilités sur un univers fini

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Présentation du cursus Animateur de Cluster et de réseaux territoriaux Etat du 14 avril 2013

I- Définitions des signaux.

Guide d installation JMap 5.0

Programmation C++ (débutant)/instructions for, while et do...while

Fiche Produit. Sauvegarde en ligne Kiwi Online

Bases de programmation. Cours 5. Structurer les données

Algorithmique avec Algobox

Assises Européennes du Bâtiment Basse Consommations. Frédéric ric FRUSTA. Président Directeur Général. ENERGIVIE 25 Juin 2010

Algorithmique et Programmation, IMA

Circuits RL et RC. Chapitre Inductance

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Gestion des Clés Publiques (PKI)

Transcription:

p. 1/2 Calcul d itinéraires ferroviaires. Destination Origine

p. 2/2 Déroulement du projet Etape 1 : calcul d itinéraires ferroviaires. lecture des fichiers de données construction des structures de données calcul d itinéraires optimaux (algorithme de Dijsktra) 13 février : 1er rapport intermédiaire Etape 2 : tests, délais moyens, clustering. génération aléatoire d instances et tests calcul des délais moyens entre deux villes problème de clustering interface graphique (optionnel) 10 avril : rapport final

p. 3/2 Evaluation Le travail est à faire seul ou par groupe de deux (en aucun cas par groupe de trois ou plus). Le rapport intermédiaire et le rapport final donnent lieu à une présentation écrite et orale du travail effectué incluant une description succinte des structures de données utilisées et des principales fonctions. Rapport intermédiaire : 2 pages et 10 min. de présentation. Rapport final : 5 pages et 15 min. de présentation.

p. 4/2 Lecture des données. Syntaxe du fichier de données <nombre de villes n> <abcisse ville 1> <ordonnée ville 1>... <abcisse ville n> <ordonnée ville n> <nombre de lignes m> <definition de la ligne 1>... <definition de la ligne m>

p. 5/2 Lecture des données. Définition d une ligne : <nombre de villes k> <ville 1> <ville 2>... <ville k> <nombre de passages journaliers p> <P1 horaire 1> <P1 horaire 2>... <P1 horaire k>... <Pp horaire 1> <Pp horaire 2>... <Pp horaire k>

p. 6/2 Lecture des données : exemple. 10 383 886 777 915 793 335 386 492 649... 763 926 540 426 172 736 2 3 1 0 9 2 14h44 18h41 21h16 03h30 07h27 10h02 3 3 8 6 3 20h33 22h13 02h10 05h02 06h42 10h39 12h50 14h30 18h27 Codage des horaires : nombre de minutes

p. 7/2 Algorithme de Dijkstra Fixer d[v] pour tout v V et d[s] = 0 Placer tous les sommets v V dans un tas T ordonné selon d[v]. S, l ensemble des sommets traités est vide Tant que T n est pas vide faire Extraire de T le sommet u de marque d(u) minimum Ajouter u à l ensemble S des sommets traités. Pour chaque voisin v de u faire Si d[v] > d[u] + l(u, v) alors faire d[v] d[u] + l(u, v), mettre à jour le tas T pere[v] = u Renvoyer d[t]

p. 8/2 Construction des structures de données. Déf. On dit qu une ville v est un successeur d une ville v si v est le successeur de v sur au moins une ligne. Structure de données. pour chaque ville v, calculer la liste des successeurs de v. pour chaque successeur v de v, calculer la liste des trajets de v à v ordonnée par date de départ croissante ; un trajet est caractérisé par un horaire de départ et un horaire d arrivée.

p. 9/2 Première étape Ecrire un programme qui lit les fichiers de données au format indiqué et qui calcule les structures de données. Problème : On se trouve dans une ville s à l heure h, quel itinéraire suivre pour se rendre le plus vite possible dans une ville d? Algorithme : modifier la signification des marques dans l algorithme de Dijkstra, i.e. la marque d une ville v sera l heure d arrivée au plus tôt en v en partant de s à l heure h. Le programme devra permettre de calculer la date d arrivée au plus tôt en d et d afficher un itinéraire optimal (listes de villes traversées et horaires).

p. 10/2 Calcul du délai moyen entre deux villes On veut calculer le délai moyen m(v, u) pour se rendre de la ville v à la ville u. Ce délai inclue le temps d attente dans chacune des villes intermédiaires et dans la ville de départ. Délai Délai moyen sur chaque intervalle de temps 10h 8h 6h 4h 2h 8h 9h 14h 17h 22h 5h 8h Horaires de départ Départs : 9h, 14h, 17h, 22h, 5h Temps trajets : 3h, 4h, 3h, 5h, 3h

p. 11/2 Calcul du délai moyen entre deux villes Soient h 0 = 0, h n = 24 et soient h 1,..., h n 1 les horaires de départ des trains à partir de la ville de départ. Entre deux départs de trains consécutifs h i 1 et h i, le temps de trajet diminue de façon linéaire, le délai moyen pendant cet intervalle est donc m i = (delai(h i 1 ) + delai(h i ))/2. Le délai moyen sur 24 heures est donné par m(u, v) = n i=1 m i(h i h i 1 ) h n h 0. Votre programme devra permettre de calculer et d afficher le délai moyen entre deux villes u et v données.

p. 12/2 Distance On définit la distance d(u, v) entre deux villes u et v de la façon suivante : d(u, v) = m(u, v) + m(v, u) 2 Votre programme devra calculer la matrice des distances entre chaque paire de villes. Remarque. Cette distance est définie de façon à être symétrique, i.e. d(u, v) = d(v, u) ce qui n est pas le cas pour m(u, v).

p. 13/2 Clustering Pour un entier k donné, on veut partionner les villes en k clusters V 1, V 2,..., V k de telle sorte que la plus grande distance entre deux villes d un même cluster soit la plus petite possible.

p. 14/2 Clustering : solution initiale L algorithme suivant permet d obtenir une solution (pas nécessairement optimale) : Trouver deux villes v 1 et v 2 à distance maximum l une de l autre. Placer v 1 dans V 1 et v 2 dans V 2. Pour i = 3,..., k faire Trouver une ville v i à distance maximum des villes {v 1,..., v i 1 }. Placer la ville v i dans un nouveau groupe V i. Pour chaque ville v / {v 1,..., v k }, placer v dans le groupe de la ville v i la plus proche de lui. Déf. La distance entre une ville v et un sous-ensemble S de villes est d(v, S) = min{d(v, u) : u S}.

p. 15/2 Clustering : recherche locale Méthode : construire une solution initiale (aléatoirement ou avec le premier algorithme). tenter d améliorer cette solution en déplaçant une ville d un groupe à un autre. recommencer Stratégie : recherche du meilleur déplacement recherche (aléatoire) d un déplacement améliorant

p. 16/2 Challenge temps limite de calcul de 600 secondes par problème mémoire limitée à 1 Go jeu de problèmes donné modalités à venir

p. 17/2 Critères d évaluation et Barême Critères d évaluation : travail effectué (calcul d itinéraires, délais moyens, clustering, interface), développement : lisibilité, simplicité du code, structuration du projet, algorithmes : compréhension, amélioration des méthodes, qualité de la présentation Barême : lecture (3pts), structure de données (3pts), Dijkstra (6pts) générateur (3pts), calcul des délais moyens (3pts), clustering (3pts), interface graphique (3pts)

p. 18/2 Génération du réseau. fonction Génération(n, d, m, min, max) (génère un réseau ferroviaire de m lignes) (avec entre min et max passages journaliers) (dans un graphe de n gares de densité d) début générer aléatoirement les positions géographiques des villes, calculer les distances euclidiennes entre les villes, pour chaque arete à générer faire fin faire fin fonction choisir une ville u au hasard, connecter u à la ville la plus proche qui n est pas voisine, pour chaque ligne faire choisir p avec min p max, générer une ligne avec p passages journaliers,

p. 19/2 Génération d une ligne. choisir une gare de départ et une gare objectif la ligne est constuite en partant de la gare de départ : on étend la ligne chaque fois en choisissant au hasard parmi les gares voisines rapprochantes (au sens des plus courts chemins) s il n y a pas assez de gares dans la ligne l essai est abandonné si la ligne est trop longue la ligne est tronquée a 18 5 18 3 3 17 5 4 15 x 20 7 13 6 7 12 8 4 3 8 6 8 b 5 5

p. 20/2 Interface graphique. http ://pageperso.lif.univ-mrs.fr/ edouard.thiel/ez-draw/index.html Présentation à venir