You are on page 1of 6

ING2 2005-2006 Thorie des graphes et Recherche oprationnelle Projet informatique : optimisation dune station de ski

Projet ING2 : Optimisation dune station de ski


Droulement du projet
Ce projet se droule de la semaine du 20 mars la semaine du 8 mai 2006 (8 semaines). Les quipes peuvent tre constitues de 2 4 personnes (ni plus, ni moins), dans le mme groupe de TD-TP. Le rapport et lannexe DOXYGEN (voir documentation sur le site informatique.ece.fr, rubrique projet) sont dposer la reprographie avant le mardi 9 mai 12h (aucun e-mail autoris). Pass ce dlai, votre travail est dposer la scolarit pour application des pnalits de retard. Le CD grav ou clef USB contenant votre code et une installation automatique du logiciel et des bibliothques graphiques ncessaires est prsenter le jour de la soutenance. Des sances de suivi de projet seront organises dans la semaine du 10 avril afin de rpondre vos questions.

Plan du projet

1. 2. 3.

Introduction ........................................................................................................................ 2 Consignes du projet ............................................................................................................ 3 Cahier des charges de M. Touchousse .............................................................................. 4 3.1 3.2 3.3 3.4 3.5 3.6 Synthse du plan du site ....................................................................................... 4 Structures de donnes modliser ...................................................................... 4 Algorithmes de base.............................................................................................. 5 Analyse combinatoire et algorithmique du plus court chemin ......................... 5 Optimisation des vacances ................................................................................... 5 Extensions (BONUS) : tude des flots de skieurs et autres extensions ............. 6

JP SEGADO

Page 1 sur 6

ING2 2005-2006 Thorie des graphes et Recherche oprationnelle Projet informatique : optimisation dune station de ski

1. Introduction
En prvision du prochain SDI qui se tiendra dans une grande station de ski de Savoie (les Arcs pour ne pas la nommer), son directeur M. Touchousse, en accord avec lECE, cherche optimiser la gestion de son entreprise tout en rendant le domaine skiable plus attractif auprs des touristes. Passionn dinformatique, il dcide dengager les tudiants chevronns dING2 (dont vous fates partie !). M. Touchousse fait part de son ide dinstaller des bornes interactives dans les files dattentes des remontes et dans divers points de la station permettant aux skieurs de slectionner son itinraire. Il souhaitait notamment leur indiquer comment se rendre le plus rapidement possible vers nimporte quel autre point de la station. M. Touchousse sadresse alors aux professeurs de lECE et demande ironiquement : - Mais vos petits gnies en informatique seraient-ils capables de mcrire un logiciel calculant rapidement un tel itinraire ? . Les profs rpondent dune seule voix : Bien sr ! Ils vont modliser votre station comme un graphe orient o les sommets reprsentent les points de la station et les arcs reprsentent les pistes et les remontes. Les temps de descente et de monte tant videmment non ngatifs cest ensuite un jeu denfant dappliquer au graphe lalgorithme de Dijkstra qui vous donnera votre rsultat en O(n2) ! Le plan complet est disponible sur le site de la station o vous pouvez accder, entre autres, aux plans fixes ou au plan interactif des pistes

JP SEGADO

Page 2 sur 6

ING2 2005-2006 Thorie des graphes et Recherche oprationnelle Projet informatique : optimisation dune station de ski

2. Consignes du projet
Respectez scrupuleusement le cahier des charges de M. Touchousse, sous peine quil vous mette hors piste. Respectez les consignes de ralisation du rapport de programmation et de lannexe DOXYGEN dcrites sur le site informatique.ece.fr, rubrique projets. Servez-vous du fichier de synthse data_arcs.txt dont les informations sont dtailles au chapitre 3.1 du prsent document. Vous devez mettre jour ce fichier selon les nouvelles donnes qui vous sont fournies dans ce sujet (voir cahier des charges de Mr Touchousse ). Dans un premier temps, modlisez les structures de donnes dfinies au chapitre 3.2. Puis implmentez les algorithmes de base du chapitre 3.3. Amliorez encore le projet en faisant lanalyse algorithmique et combinatoire du plus court chemin au chapitre 3.4. Ensuite comme le souhaite M. Touchousse, optimisez vos vacances au chapitre 3.5. Pour les plus ambitieux, des extensions tudiant les flots de skieurs au chapitre 3.6 sont possibles. Et bien dautres extensions issues de votre imagination fconde. Les structures de donnes et les algorithmes de base sont coder en C, ou pour les amateurs dobjets en C++, lexception de tout autre langage (JAVA, Delphi, PHP, Python etc.) . Dvelopper une interface graphique vnementielle, performante et intelligente pour la borne interactive avec le ou les outils graphiques suivants : - GTK/GDK pour les amateurs de widgets (zone de texte, zone de dialogue, menu droulant etc.), - Allegro, Open GL ou/et SDL pour ceux qui souhaitent travailler sur un plan interactif de la station. - Tout autre outil graphique est interdit ! Consignes sur le rapport de programmation rdiger : o La mise jour commente et argumente du fichier de synthse data_arcs.txt avec des exemples concrets o Les structures de donnes choisies en les argumentant (avantages et inconvnients) et en les schmatisant laide dexemples concrets o Les algorithmes utiliss : leur thorie et leur mthode pratique avec schmas et jeux de tests sur des exemples concrets o Lanalyse des problmes dans leur aspect programmation et les choix de programmation arguments (performance, volutivit ) o Le fonctionnement de lquipe et lordonnancement du projet avec la mthode Pert o Les choix de linterface graphique avec maquettes issus de lanalyse (ergonomie, performance) o La description de linterface graphique avec copies dcrans commentes o Le graphe dappels avec lgende des principales fonctions montrant la modularit et lvolutivit de votre programme. Pour les dveloppeurs objet en C++, dessinez et commentez les diagrammes de classes et de squences ainsi que les cas dutilisations (vus en cours dUML). o Une conclusion objective sur le travail ralis dans le dlai imparti et sur les potentialits relles de votre programme par rapport vos objectifs de dpart (dans le but dapprendre grer votre temps et vous organiser) o Les annexes : documentation DOXYGEN telle qunonce sur le site DOXYGEN de lECE (voir informatique.ece.fr, rubrique projets), complments dinformation issus de vos recherches bibliographiques Pour plus de prcision sur le rapport se rfrer au Contenu des rapports de programmation en ligne Voir aussi le lien ECE concernant les projets informatiques : http://www.ece.fr/~ravaut/html/projets-accueil.php

JP SEGADO

Page 3 sur 6

ING2 2005-2006 Thorie des graphes et Recherche oprationnelle Projet informatique : optimisation dune station de ski

3. Cahier des charges de M. Touchousse


3.1 Synthse du plan du site
Le plan du site est synthtis dans un fichier texte tlchargeable contenant les informations suivantes: <Nombre de points> puis, pour chaque point : <n point> <nom du lieu> <altitude> <Nombre de trajets> puis, pour chaque trajet : <n trajet> <nom du trajet> <type > <npoint dpart> <npoint arrivee> Pour les trajets on distingue les types suivants : TK pour un tlski, TS pour un tlsige, TSD pour un tlsige dbrayable, TC pour une tlcabine, TPH pour un tlphrique, BUS pour une navette, V pour piste verte, B pour piste bleue, R pour piste rouge, N pour piste noire, KL pour la piste de Kilomtre Lanc et SURF pour le domaine rserv au surf. Ltude exprimentale effectue pendant votre sjour dans la station vous a permis de dfinir les rgles suivantes pour le calcul des temps de trajet : Pour les descentes, le temps est proportionnel au dnivel. o Piste verte (V) 5mn pour 100m de dnivel. o Piste bleue (B) 4mn pour 100m de dnivel. o Piste rouge (R) 3mn pour 100m de dnivel. o Piste noire (N) 2mn pour 100m de dnivel. o Piste de kilomtre lanc (KL) 10sec pour 100m de dnivel. o Snowpark (SURF) 10mn pour 100m de dnivel. Pour les remontes, le temps est compos dune partie fixe et dune partie proportionnelle au dnivel. o Tlphrique (TPH) 4mn + 2mn pour 100m de dnivel. o Tlcabine (TC) 2mn + 3mn pour 100m de dnivel. o Tlsige dbrayable (TSD) 1mn + 3mn pour 100m de dnivel. o Tlsige (TS) 1mn + 4mn pour 100m de dnivel. o Tlski (TK) 1mn + 4mn pour 100m de dnivel. Pour les navettes (BUS), en comptant le temps dattente, le trajet dure en moyenne 40mn pour aller dArc2000 Arc1600 ou dArc1600 Arc2000 et 30mn pour aller dArc1600 Arc1800 ou dArc1800 Arc1600

Les informations prsentes dans le fichier servent de base de donnes votre plan du site. Tout en les respectant, vous devrez les enrichir chaque nouvelle rgle : par exemple, les temps de trajet par dfaut fournis ci-dessus sont ajouter dans le fichier. Ces temps par dfaut pourront tre modifis de manire interactive par lutilisateur grce une interface graphique vnementielle (par exemple en GTK). Toute autre information que vous jugez ncessaire peut tre ajoute dans ce fichier. Par exemple, vous pouvez ajouter les coordonnes de chaque point dans le cas o vous souhaitez travailler sur un plan interactif de la station (pour les fans dAllegro ou de 3D en Open GL).

3.2 Structures de donnes modliser


Votre premire mission, car vous l'acceptez, est de modliser les diffrentes structures de donnes : pour reprsenter les points de la station, pour reprsenter les trajets en prenant en compte les contraintes sur leur dure, indiques ci-dessus. Pour reprsenter la station, avec le graphe des trajets etc.

JP SEGADO

Page 4 sur 6

ING2 2005-2006 Thorie des graphes et Recherche oprationnelle Projet informatique : optimisation dune station de ski

3.3 Algorithmes de base


Les premiers algorithmes justifier dans votre rapport et coder sont les suivants : Implmentez le chargement du fichier texte fourni par M Touchousse : vous mmoriserez dabord lensemble des points. Justifiez vos choix algorithmiques, en particulier les listes d'adjacence ou les listes de voisins dans l'implmentation du graphe des trajets. Implmentez une interface simple d'aide l'utilisateur (du type Widgets GTK) permettant : o en choisissant un trajet, de savoir d'o il part et o il arrive, o en choisissant un point, de savoir les trajets qui en partent.

3.4 Analyse combinatoire et algorithmique du plus court chemin


Votre mission, car vous l'acceptez, est maintenant d'analyser dans votre rapport les aspects combinatoires et algorithmiques permettant d'implmenter : un algorithme dterminant, partir d'un point de dpart, tous les plus courts chemins issus de ce point ainsi que leurs temps. un algorithme qui affiche litinraire le plus rapide entre deux points sur la borne interactive. Ajoutez votre interface ce qu'il faut pour choisir deux points de la station et afficher l'itinraire le plus rapide obtenu par la mthode prcdente.

3.5 Optimisation des vacances


Ayant ralis avec brio la mission que vous avait confie M. Touchousse, celui-ci vous offre une semaine de vacances aux Arcs. Vous avez remarqu que le programme que vous lui avez fourni nest pas trs intressant pour vous : vous tes en vacances et vous avez donc tout votre temps pour aller dun endroit un autre de la station. De plus, vous avez remarqu que les chemins les plus rapides sont rarement les plus intressants. Vous navez pas envie de passer vos vacances sur les remontes et vous dcidez donc que celles-ci auront un intrt ngatif. En revanche, lintrt associ chaque piste (descente) est accru. Pour cela vous devez paramtrer ces remontes et ces descentes de manire interactive. Vous dcidez donc, avant de partir en vacances, dajouter rapidement une fonctionnalit votre programme qui vous permettra de calculer le chemin le plus intressant entre deux points de la station. Ajoutez ces nouveaux paramtres votre borne interactive en justifiant leur choix dans le rapport. Les valeurs de ces paramtres seront sauvegardes dans le fichier texte du plan du site tlcharg initialement, ceci afin dtre ultrieurement charges. Modifiez les structures de donnes et les algorithmes des tapes prcdentes afin dy intgrer ces nouveaux paramtres. Vous justifierez vos choix dans le rapport.

JP SEGADO

Page 5 sur 6

ING2 2005-2006 Thorie des graphes et Recherche oprationnelle Projet informatique : optimisation dune station de ski

3.6 Extensions (BONUS) : tude des flots de skieurs et autres extensions


Bravo. Vous avez encore rempli brillamment la mission que vous avait confie M. Touchousse qui vous offre le snow-board dernier cri. Les petits logiciels interactifs lusage des skieurs que vous avez raliss fonctionnent mais son projet est maintenant autrement plus ambitieux : il souhaite rentabiliser le fonctionnement de la station en tudiant le dbit global des skieurs (nombre de skieurs par heure) dans les diffrentes remontes et descentes. A titre dexemple, les dbits (capacits) des remontes pourraient tre les suivants: Tlphrique (TPH) : 1200 skieurs/heure Tlcabine (TC) : 2200 skieurs/heure Tlsige dbrayable (TSD) : 2500 skieurs/heure Tlsige (TS) : 1800 skieurs/heure Tlski (TK) : 800 skieurs/heure Navettes (BUS) : 300 skieurs par heure Nayant pas de mission prcise pour linstant mais vous souvenant de vos cours de graphe, vous dcidez astucieusement danticiper celle-ci en prparant le terrain pour la rsolution des problmes du flot maximum : Le but est doptimiser le flot de skieurs circulant entre deux points. Puis connaissant un flot ralisable entre deux points il sera sans doute intressant de savoir trouver un plus court chemin dans le graphe dcart correspondant vous dites-vous. Ajoutez ces dbits votre borne interactive et sauvegardez-les dans le fichier. Vous indiquerez dans votre rapport le dbit (capacit) que vous proposez pour les descentes. Ajouter le flot dans vos structures de donnes. Ecrivez lalgorithme de rsolution du flot maximum : cet algorithme permet de calculer laugmentation possible du flot entre deux points. Affichez le graphe dcart des chemins trouvs en testant la valeur du flot de chaque arc du graphe rel par rapport sa capacit. Puis calculez et affichez le plus court chemin en nombre darcs entre deux points dans le graphe dcart. Toute autre extension est la bienvenue. Je fais confiance votre crativit et votre esprit de futurs ingnieurs pour enrichir votre borne interactive.

JP SEGADO

Page 6 sur 6

You might also like