Télécharger - WordPress.com
Transcription
Télécharger - WordPress.com
Programmation par contraintes pour la génération assistée d’environnements urbains Présenté le 8 septembre 2011 Réalisé par Bruno BELIN Rapport Stage de Recherche de fin d’études Master II ALMA Université de Nantes Année 2010 - 2011 Version finale (exposition universelle) Travaux supervisés par Marc Christie, Charlotte Truchet et Frédéric Benhamou. 1 2 A Ronan, mon filleul 3 Remerciements Je tiens à remercier mon tuteur, Marc Christie, pour m’avoir offert au travers ce stage la possibilité de me confronter à des questions stimulantes et enrichissantes. J’ai ainsi pu découvrir de façon très concrète l’univers quotidien de chercheurs et rencontrer de nombreux acteurs associés à l’urbanisme. Ses remarques judicieuses et ses connaissances approfondies m’ont permis d’avancer rapidement pour aboutir. Grâce à son sens de l’écoute, il a su prendre en compte ma situation particulière et aménager des conditions d’accueil favorables. Je lui suis très reconnaissant pour toutes les démarches qu’il a entrepris afin d’envisager une suite bénéfique à ce stage. Comment remercier Charlotte Truchet qui n’a pas hésité malgré un emploi du temps chargé à m’inviter aux réunions d’équipe, à m’inscrire sur les forums ou encore à me présenter à ses collègues pour partager leur repas du midi. Les nombreuses techniques de Recherche Locale n’ont pas de secret pour elle. Encore désolais de l’avoir sollicité pendant ses congés afin d’obtenir son avis éclairé et ses remarques pertinentes sur mon travail. Je remercie vivement Frédéric Benhamou pour sa confiance et son accessibilité. Je suis bien évidemment impressionné à la fois par son sens de l’analyse aiguisé et son grand charisme. Merci à Charles Prud’homme pour le temps qu’il m’a consacré et ses conseils précieux sur l’utilisation et l’optimisation du moteur CHOCO. Je remercie également mes proches, tout particulièrement ma femme et mes enfants pour les nombreux efforts qu’ils ont consentis pendant ces deux dernières années d’études et ces cinq mois de stage. Table des matières Table des matières 4 1 Introduction 8 I Problématiques liées à la génération assistée d’environnements urbains 2 Enjeux relatifs à l’urbanisme moderne 2.1 Introduction . . . . . . . . . . . . . . . 2.2 Qu’est-ce qu’une ville ? . . . . . . . . . 2.3 Les temps et la ville . . . . . . . . . . 2.4 De la ville à l’aire urbaine . . . . . . . 2.5 Définition des formes urbaines . . . . . 2.6 Urbanisme et écologies urbaines . . . . 2.7 Conclusion . . . . . . . . . . . . . . . 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 11 11 12 13 13 14 15 3 Deux approches existantes pour la simulation d’environnements urbains 3.1 Le projet UrbanSim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2 Une plateforme ouverte . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.3 Motivations de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.4 Approche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.5 Un système basé sur les modèles . . . . . . . . . . . . . . . . . . . . . 3.1.6 Étude de cas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Le projet GeOpenSim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Approche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 Évaluation d’hypothèses sur les dynamiques urbaines . . . . . . . . . . 3.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 16 16 16 16 17 18 19 19 19 19 20 20 4 Problématiques du projet SUSTAINS 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Objectifs du projet global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Lot : Modélisation par contraintes . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 Objectifs du lot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.2 Verrous identifiés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.3 Démarche proposée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.4 Risques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Éléments majeurs identifiés en réunion d’analyse . . . . . . . . . . . . . . . . 4.4.1 Programmation, pré-programmation, aide à la décision, concertation et nication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.2 Notions développées . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.3 Différents niveaux d’information à représenter . . . . . . . . . . . . . . 4.4.4 Tout doit s’articuler autour des centralités par niveau d’intensité . . . 4.4.5 Création d’une ville nouvelle . . . . . . . . . . . . . . . . . . . . . . . 4.4.6 Importance des formes urbaines dans le processus de construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . commu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 21 21 22 22 22 22 22 22 . . . . . . 23 23 24 24 25 25 . . . . . . . . . . . . . . 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TABLE DES MATIÈRES 4.5 5 4.4.7 Intégration des différents modules dans une plateforme commune . . . . . . . . . 26 Axes de recherche et hypothèses retenus pour le stage . . . . . . . . . . . . . . . . . . . 26 II Un état de l’art 5 État de l’art de la Programmation Par Contraintes 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Problèmes de nature combinatoire . . . . . . . . . . . . . . . . . . . . . . 5.3 Programmation Par Contraintes ou Recherche Locale . . . . . . . . . . . . 5.4 Programmation Par Contraintes . . . . . . . . . . . . . . . . . . . . . . . 5.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.2 Principes de la PPC . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.3 Contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.3.1 Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.3.2 Contrainte simple et globale . . . . . . . . . . . . . . . . 5.4.4 Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.5 Un exemple classique : placement des n-reines . . . . . . . . . . . . 5.4.6 Résolution des CSOP . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.7 Solveurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5 Recherche Locale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.2 Métaheuristiques et évaluation de la qualité d’une solution . . . . 5.5.3 Principe de la RL . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.4 Guider la recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.5 S’échapper des minima locaux . . . . . . . . . . . . . . . . . . . . 5.5.6 Problème d’optimisation . . . . . . . . . . . . . . . . . . . . . . . . 5.5.7 Programmation par Recherche Locale . . . . . . . . . . . . . . . . 5.5.8 Méthodes de Recherche Locale . . . . . . . . . . . . . . . . . . . . 5.5.8.1 Méthode de descente (amélioration continue) . . . . . . . 5.5.8.2 Le recuit simulé (Simulated Annealing) . . . . . . . . . . 5.5.8.3 La recherche à voisinage variable (Variable Neighborhood 5.5.8.4 Recherche Tabou (Tabu search) . . . . . . . . . . . . . . 5.5.9 Intensification et diversification . . . . . . . . . . . . . . . . . . . . 5.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Search) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 28 28 29 30 30 30 32 32 32 33 33 34 34 35 35 35 36 38 39 39 40 40 40 41 42 42 42 43 6 État de l’art de l’organisation spatiale d’un espace urbain 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Utilité des formes urbaines dans une simulation interactive . . . . . . . . . . . . . 6.3 Un modèle simple et efficace basé sur l’aménagement urbain pour générer des villes 6.4 De l’organisation spatiale d’un territoire agricole aux espaces urbains . . . . . . . . 6.4.1 Approche à base d’expertise . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4.2 Approche multi-agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4.3 Le modèle de recuit simulé . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4.4 Comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.5 Vers un modèle mixte (comportemental et géométrique) . . . . . . . . . . . . . . . 6.5.1 Modélisation comportementale . . . . . . . . . . . . . . . . . . . . . . . . . 6.5.2 Modélisation géométrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.5.3 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 44 44 46 46 46 47 47 48 48 49 49 49 50 IIIModèle et prototypes proposés 51 7 Modèle proposé 52 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 7.2 Formes urbaines à positionner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 TABLE DES MATIÈRES 7.3 7.4 7.5 7.6 6 Tables d’attraction-répulsion . . . . . . . . . . . . . Layers . . . . . . . . . . . . . . . . . . . . . . . . . . Procédure de placement . . . . . . . . . . . . . . . . Représentation de la ville par un quadrillage régulier . . . . 54 55 56 58 8 Résolutions et expérimentations 8.1 Programmation Par Contraintes avec CHOCO . . . . . . . . . . . . . . . . . . . . . . . 8.1.1 Formalisation textuelle du problème . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.2 Description technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.2.1 Une variable par cellule contenant la forme urbaine . . . . . . . . . . . 8.1.2.2 Une contrainte pour fixer le nombre de chaque forme urbaine sur le territoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.2.3 Des contraintes pour écarter les zones non constructibles . . . . . . . . 8.1.2.4 Des contraintes pour forcer une forme urbaine particulière sur une cellule 8.1.2.5 Définition de la variable de score global à maximiser . . . . . . . . . . . 8.1.2.6 Contraintes sur la variable de score global . . . . . . . . . . . . . . . . 8.1.3 Évaluation et résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.3.1 Évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.3.2 Résultats et optimisations . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2 Recherche locale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.1 Sélection des techniques principales de RL . . . . . . . . . . . . . . . . . . . . . . 8.2.2 Principe général lié aux permutations . . . . . . . . . . . . . . . . . . . . . . . . 8.2.3 Fonctionnement général . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.3.1 Initialiser les paramètres de configuration . . . . . . . . . . . . . . . . . 8.2.3.2 Déterminer si les conditions de fin sont remplies . . . . . . . . . . . . . 8.2.3.3 Construction du résultat . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.3.4 Récupérer la liste des candidats . . . . . . . . . . . . . . . . . . . . . . 8.2.3.5 Rechercher la meilleure permutation possible . . . . . . . . . . . . . . . 8.2.3.6 Effectuer une éventuelle perturbation . . . . . . . . . . . . . . . . . . . 8.2.3.7 Permuter la valeur des cellules . . . . . . . . . . . . . . . . . . . . . . . 8.2.3.8 Mémoriser le meilleur score . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.3.9 Actualiser la liste tabou . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.3.10 Vérifier si maximum local . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.3.11 Actualiser les statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.4 Contribution relative aux techniques de RL . . . . . . . . . . . . . . . . . . . . . 8.2.4.1 Réduction du voisinage en fonction de la distance entre deux cellules et utilisation d’un cache de données . . . . . . . . . . . . . . . . . . . . 8.2.4.2 Élimination des mauvais candidats : la "liste des bannis" . . . . . . . . 8.2.4.3 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.4.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.5 Contribution liée à la parallélisation des traitements . . . . . . . . . . . . . . . . 8.2.5.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.5.2 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.5.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.6 Implémentation des prototypes de RL & IHM . . . . . . . . . . . . . . . . . . . . 8.2.6.1 Un moteur d’intégration configurable . . . . . . . . . . . . . . . . . . . 8.2.6.2 Parallélisation des traitements de RL . . . . . . . . . . . . . . . . . . . 8.2.6.3 Interface graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 60 60 60 60 9 Évolutions : vers la mixité et le passage 9.1 Mixité . . . . . . . . . . . . . . . . . . . 9.2 Passage à l’échelle . . . . . . . . . . . . 9.3 Vers un modèle hiérarchique . . . . . . . 10 Conclusion et perspectives à . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 61 61 62 62 65 65 65 66 67 67 67 68 69 69 69 70 70 71 71 71 71 71 72 72 72 72 73 76 77 77 78 78 80 80 82 82 87 l’échelle 89 . . . . . . . . . . . . . . . . . . . . . . . . . . 89 . . . . . . . . . . . . . . . . . . . . . . . . . . 89 . . . . . . . . . . . . . . . . . . . . . . . . . . 90 91 TABLE DES MATIÈRES 7 10.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 10.2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 IVAnnexes 11 Notions avancées d’urbanisme 11.1 L’urbanisme . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Développement des théories de l’urbanisme et applications 11.3 Conséquences des politiques successives . . . . . . . . . . 11.4 Théories urbaines après l’urbanisme moderne . . . . . . . 11.5 Formes et structures de la ville contemporaine . . . . . . . 11.6 Renouvellement des grands ensembles . . . . . . . . . . . 93 . . . . . . pratiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 94 95 96 98 99 101 12 Diagrammes UML 102 12.1 Cas d’utilisation général . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 12.2 Moteur de placement hiérarchique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 13 Logiciels et Matériels utilisés 108 13.1 Outils logiciels mis en oeuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 13.2 Matériel utilisé pour le développement et les tests . . . . . . . . . . . . . . . . . . . . . . 108 Bibliographie 109 Chapitre 1 Introduction Le contexte Ce document constitue le rapport de mon stage de recherche de Master II ALMA 1 réalisé du mois d’avril au mois d’aout 2011 au sein de l’équipe TASC 2 du LINA 3 sous la responsabilité conjointe de Marc Christie et de Charlotte Truchet, Maîtres de conférences, et de Frédéric Benhamou, Professeur des universités. Le Laboratoire d’Informatique de Nantes Atlantique dirigé par Pierre Cointe est un laboratoire en « sciences et technologies du logiciel » avec un effectif global proche de 170 membres. Ses recherches sont organisées autour de deux axes : les architectures logicielles distribuées et les systèmes d’aide à la décision. L’axe ALD 4 s’attaque en particulier aux problématiques liées à l’ingénierie du logiciel et à la gestion de données, dans des architectures massivement distribuées, nomades, communicantes et adaptatives. L’axe SAD 5 développe des recherches destinées au développement d’algorithmes et d’outils logiciels performants pour l’aide à la décision, le traitement du langage, la gestion de la connaissance et de la bio-informatique. Le LINA s’articule autour de neuf équipes de recherche. Ces équipes sont regroupées sur deux sites : la Lombarderie (Faculté des Sciences et Techniques) et la Chantrerie (École des Mines de Nantes et Polytech’Nantes). L’équipe TASC dirigée par Nicolas Beldiceanu est une équipe du centre de recherche de Rennes de l’INRIA et du Laboratoire Informatique de Nantes-Atlantique du CNRS. Elle a été créée en avril 2011 sur les bases de la précédente équipe CONTRAINTES et regroupe une vingtaine d’enseignantschercheurs de l’École des Mines de Nantes ou de l’Université de Nantes, oeuvrant dans le domaine de la Programmation Par Contraintes. Le sujet de mon stage se positionne dans le contexte d’un projet national (FUI SUSTAINS) dédié à la proposition de techniques, modèles et outils d’aide à la décision pour la pré-programmation urbaine. La pré-programmation urbaine consiste à organiser spatialement les différentes entités constituant un quartier / une ville (ilots, quartiers, centralités, équipements induits, logements, commerces) en intégrant les dimensions environnementales, sociales, de transport, de gestion des déchets et énergétiques, le tout sous des contraintes de taux d’emploi, de densités de population, et de topologie de l’environnement. Le projet vise à rassembler les différents acteurs de l’urbain autour de nouvelles technologies permettant l’exploration de solutions de conception, et la mesure de l’impact des décisions sur des aménagements urbains. L’aspect systémique de l’approche (intégrer les contraintes issues des différentes problématiques de la ville) est le moteur du projet. 1. 2. 3. 4. 5. Master Informatique en Architectures Logicielles Théorie, Algorithmes et Systèmes en Contraintes Laboratoire d’Informatique de Nantes Atlantique Architectures Logicielles Distribuées Systèmes d’Aide à la Décision 8 CHAPITRE 1. INTRODUCTION 9 Les objectifs Dans ce cadre, le LINA s’intéresse à la proposition d’un outil d’aide à la décision, basé sur des techniques de résolution de contraintes, permettant de modéliser le problème de pré-programmation urbaine et de proposer des techniques de résolution efficaces et interactives. L’objectif du stage consiste à réaliser un prototype logiciel en se basant sur la Programmation Par Contraintes pour modéliser et générer une pré-programmation urbaine. L’organisation du rapport Ce rapport est constitué de trois sections principales. Il présente dans une première partie les problématiques liées à la génération assistée d’environnements urbains en s’appuyant sur les enjeux relatifs à l’urbanisme moderne, à l’étude de deux projets existants (UrbanSim & GeOpenSim) avant d’aborder les problématiques particulières du projet SUSTAINS. La seconde partie de ce document dresse un état de l’art de la Programmation Par Contraintes et recense les travaux existants relatifs à l’organisation spatiale d’un espace urbain. La lecture se poursuit ensuite par une présentation détaillée du modèle urbain proposé et des prototypes logiciels réalisés au cours de ce stage. Nous terminons ce document avec une partie "Annexes" pouvant être utile aux lecteurs désireux d’approfondir certains aspects comme l’urbanisme, l’implémentation des prototypes ou encore le matériel exploité pour nos tests. Première partie Problématiques liées à la génération assistée d’environnements urbains 10 Chapitre 2 Enjeux relatifs à l’urbanisme moderne [NATION-07, DEHAN, SUEUR-11] Nous débutons cette section par la découverte des notions de base relatives à l’urbanisme qu’il est souhaitable d’intégrer avant d’envisager toute modélisation informatique (Le lecteur intéressé trouvera une partie plus complète sur l’urbanisme dans les annexes). Nous poursuivons ensuite par la présentation des concepts mis en oeuvre dans UrbanSim et GeOpenSim, deux projets Open Source qui s’intéressent à la simulation d’environnements urbains, pour nous permettre d’approfondir ces problématiques de génération, mais cette fois ci par l’exemple. Nous disposerons alors de tous les éléments pour étudier les enjeux relatifs au projet SUSTAINS et comprendre les axes de recherche et les hypothèses retenus pour ce stage. 2.1 Introduction Depuis 2008, 50% de la population mondiale vit en agglomération dont un tiers en bidonville : une "bombe urbaine explosive". L’un des enjeux majeur de l’urbanisme de demain sera donc de parvenir à transformer les bidonvilles en vraies villes. L’Europe et l’Amérique du Nord sont les plus urbanisés, tandis que l’Afrique et l’Asie comptent encore une majorité de ruraux. L’Europe de l’Ouest est globalement très urbanisée, avec un taux de 75 %. En France, le taux d’urbanisation actuel est de 80 %. Nous sommes dans un milieu très urbain, mais dans une urbanité de moins en moins dense et qui intègre un usage urbain de la campagne. Dans les projections publiées par les Nations Unies, la population mondiale en zone urbaine atteindra les 70% en 2050. Cette augmentation sera principalement concentrée dans les régions les moins développées : Asie, Afrique et Amérique Latine. 2.2 Qu’est-ce qu’une ville ? Définitions Jean-Louis Huot [HUOT-98], professeur d’archéologie, esquisse une définition de la ville : c’est un lieu d’échanges et de production, un lieu d’interactions économiques complexes. C’est un lieu mixte et hiérarchisé où plusieurs classes sociales coexistent et la société y est organisée de manière structurée. Selon lui, une vraie ville doit donc être mixte, complexe et hiérarchisée. Pour les statisticiens français, depuis 1887, les choses sont simples : une ville est une agglomération comptant au moins 2000 habitants. C’est la même chose en Allemagne. Mais il existe près de 200 seuils à travers le monde. Pour l’historien belge Henri Pirenne [PIRENNE-98], les villes sont l’oeuvre des marchands, elles n’existent que par eux. Pour l’historien français Pierre Lavedan [LAVEDAN-36], la ville est un être vivant. Comme tout être vivant, elle naît, elle grandit, elle meurt. Pierre Riboulet [RIBOUL-98], architecte et urbaniste français, parle d’oeuvre. La ville est en effet une oeuvre collective, une sorte de production artisanale unique, réalisée par les hommes qui composent la société qui y vit. 11 CHAPITRE 2. ENJEUX RELATIFS À L’URBANISME MODERNE 12 Principes constitutifs de la ville Pierre Merlin, ingénieur géographe, expert-démographe et statisticien, écrit dans [MERLIN-07] que la ville est constituée de deux éléments : l’espace et le temps. A ces deux composante, il faut ajouter celle des dynamiques socio-économique. La dynamique sociale et économique, c’est la société en mouvement dans l’espace et dans le temps. Ce sont les initiatives et les mouvements de la société, des groupes sociaux et des individus qui la constitue qui produisent la ville et la font évoluer à la fois dans le temps et dans l’espace. Ces dynamiques intègrent une quadruple dimension : économique, culturelle, démographique et juridique. Le temps est l’élément qui fait évoluer la ville dans la durée, qui fonde, progressivement, sa complexité. L’espace quant à lui est le support matériel de la ville : le site, l’environnement naturel et les formes d’occupation du sol, le bâti. Les formes urbaines partagent quelques caractéristiques de base : – le tracé des voies et des espaces publics, support des flux et des réseaux, – le découpage parcellaire, support matériel et juridique de l’investissement social du territoire, – l’occupation du sol, c’est-à-dire les caractéristiques du bâti et des aménagements des surfaces non bâtis L’évolution urbaine "naturelle" est celle du "marché", celle qui traduit les rapports de forces au sein de la société. Mais cette évolution peut être corrigée par les nécessités de l’intérêt général, et l’urbanisme avec la politique sont des instruments de cette correction. Pour la sociologue Jane Jacobs [JACOBS-69], le dynamisme économique des villes se fait à cause de ses congestions et de ses dysfonctionnements, car c’est la richesse du creuset urbain, son bouillonnement qui conduisent à la création économique et culturelle : plus la ville est grande, plus les fonctions urbaines sont diversifiées, plus elle a de chance d’inventer de nouveaux métiers, de nouvelles productions, donc de continuer à croître. Le droit, qui régit à la fois la possession et l’usage du sol, est un élément majeur qui façonne la ville de manière essentielle, à la fois dans l’espace et dans le temps. C’est donc un élément fondateur de la ville. L’homme est un être social complexe qui, au-delà de ses besoins de base, a des besoins spécifiques qui varient d’une culture à une autre, d’une époque à une autre, d’un groupe social à un autre. Ce sont les sociétés organisées qui peuplent la ville et la font évoluer en fonction de leurs besoins, de leurs désirs et de leurs ambitions. Comme le rappelle Jacques Donzelot [DONZEL-03], les ghettos sont d’abord issus du choix de « l’entre soi » des plus riches. Ainsi, les évolutions sociologiques les plus récentes en France, comme l’augmentation du nombre de divorces, de familles monoparentales, la diminution du nombre de personnes par foyer et par logements, et l’augmentation globale de la richesse et des exigences en matière de confort au cours des 40 dernières années, ont conduit à une modification radicale des besoins en terme de logements, de services urbains, de transport. Finalement, la ville est intimement liée à l’évolution démographique parce que c’est elle qui forge la croissance ou le déclin de la population qui est un facteur qui interagit fortement avec les dynamiques économiques et sociales. Lorsqu’une dynamique de croissance économique existe, la croissance de la population vient souvent la renforcer. La ville n’est pas un support statique pour l’économie et la population. Elle est en perpétuelle évolution et il existe une interaction forte entre les différentes composantes économiques, démographique et sociale. 2.3 Les temps et la ville Les villes naissent, grandissent, se développent. Elles peuvent aussi avoir des périodes de décroissance ou de stagnation et, enfin elles peuvent mourir. Après une catastrophe, les habitants les abandonnent pour s’installer ailleurs, à côté ou beaucoup plus loin. Naissance des villes Une ville naît de l’action d’un essaim d’hommes groupés, qui s’installe et agit sur un territoire. Deux formes de créations peuvent être distinguées : les "agglomérations spontanées" et les "villes créées". Les villes spontanées se forment par l’action non formalisée du groupe humain sur le lieu qui lui permet d’exercer une activité et souvent aussi, de se défendre. La géographie a donc une influence essentielle sur la formation des villes spontanées. Ces villes se structurent plus ou moins bien, en CHAPITRE 2. ENJEUX RELATIFS À L’URBANISME MODERNE 13 fonction de la rapidité de leur croissance. C’est le mode de formation de nombreuses villes, mais c’est aussi celui des bidonvilles. La ville peut aussi naître de la volonté délibérée d’un groupe humain organisé. Ce sont les "villes créées", les villes neuves, les villes nouvelles. Des hommes décident de créer une cité pour répondre à des objectifs liés à leurs activités. Les villes créées le sont par la volonté d’un groupe organisé, souvent très structuré, hiérarchisé avec un pouvoir fort. Elles le sont avec un objectif précis : colonisation, commerce, défense, industrie, etc. Le modèle le plus répandu est celui du plan en damier avec un quadrillage régulier de rues. Mais les villes neuves peuvent ne pas être totalement organisées et la fondation peut se limiter à la création de grandes structures sans que soit défini l’ensemble des quartiers qui se mettent en place progressivement au fur et à mesure de l’occupation des habitants. Développement des villes Après leur fondation, les villes se développent, plus ou moins vite. Certaines périclitent. Quelque soit leur origine (création ou naissance spontanée) leur développement associe presque toujours croissance spontanée issue d’une multitude d’initiatives autour d’une voie ou d’un axe et extensions programmées qu’elles soient d’initiative publique ou privée. En fait, la ville se constitue par stratification. Reconstruction - transformation Les dynamiques individuelles et collectives des habitants conduisent à une permanente reconstruction de la ville sur elle-même. Une bonne partie des réglementations urbaines sont là pour gérer ces transformations du bâti en essayant de ménager l’intérêt collectif en canalisant les initiatives individuelles. Ces transformations peuvent prendre quatre formes : extension de l’emprise, surélévation, reconstruction ou dédensification. La reconversion des friches est devenue un enjeu à la fois économique et symbolique des villes centres, face aux extension périphériques et urbaines. On parle alors de reconstruire la ville sur la ville comme une alternative à l’extension urbaine. Cycles de croissance urbaine Des sociologues ont développé un schéma radioconcentrique qui démontre une certaine superposition entre la répartition sociale et la répartition géographique : le centre est occupé par un noyau constituant la zone d’affaire, après une zone de transition on trouve un anneau de résidences occupées par les travailleurs les moins favorisés (ouvriers / immigrés, ...) puis une zone résidentielles plus aisée avant des banlieues très chics. 2.4 De la ville à l’aire urbaine La ville ne constitue plus aujourd’hui un ensemble compact bien défini, placé sur une commune unique. Elle forme une agglomération qui se développe sur plusieurs communes. Pour parler de ces ensembles composites qui s’agrègent autour des villes anciennes pour constituer un ensemble urbain, les géographes font appel à la notion d’aire urbaine. Pour l’Insee, une aire urbaine est un ensemble de communes, d’un seul tenant et sans enclave, constitué par un pôle urbain, et par des communes rurales et/ou une couronne périurbaine dont au moins 40 % de la population résidente a un emploi et travaille dans le pôle ou dans des communes attirées par celui-ci. 2.5 Définition des formes urbaines Du point de vue physique, l’agglomération se place sur un site naturel donné (géographique, hydrologique, végétal) qui impose ses contraintes et qui la modèle au moins partiellement. En retour, l’occupation urbaine va modifier le site, créer un nouveau territoire. Du point de vue physique, les formes urbaines se caractérisent par quatre éléments majeurs : – le site – le tracé et le découpage de l’espace urbain – la structure du parcellaire – la morphologie du bâti. Ce phénomène est presque universel. Quelque soit le continent et la civilisation, de manière générale, les agglomérations se constituent à partir d’une division du sol en propriétés individualisées et ces parcelles CHAPITRE 2. ENJEUX RELATIFS À L’URBANISME MODERNE 14 sont distribuées par des espaces urbains d’usage public, le plus souvent des rues, mais aussi des places, des ruelles, des impasses, des avenues, ou encore comme à Amsterdam ou Venise, des canaux, etc. 2.6 Urbanisme et écologies urbaines D’après le Robert, le mot écologie aurait deux sens : 1. Étude des milieux où vivent les êtres vivants ainsi que des rapports de ces êtres entre eux et avec le milieu ; 2. Mouvement visant à un meilleur équilibre entre l’homme et son environnement naturel, ainsi qu’à la protection de celui-ci. L’écologie urbaine doit partir de l’étude du milieu en incluant non seulement les aspects physicobiologiques mais aussi les rapports sociaux humains, pour tendre vers un meilleur équilibre entre l’homme et son environnement naturel, ainsi qu’à la protection de celui-ci. L’écologie ne peut pas se limiter aujourd’hui à "la protection de la nature" mais doit avoir une vision plus large selon laquelle l’urbain est un milieu global et que la densité urbaine n’est pas en soi un mal, peut-être même une qualité. La ville intelligente, intéressée à sa propre survie, doit être plus économe et attentive aux composantes de l’environnement, mais aussi aux équilibres sociaux qui, pour une part, la conditionnent. Penser globalement / agir localement Le modèle actuel de développement urbain des pays riches n’est pas durable. Si tous les pays se mettaient à consommer comme nous, les ressources seraient épuisées en quelques décennies. Le développement de la Chine et de l’Inde selon nos modèles de consommation est un scénario catastrophe. L’architecte Raymond Lorenzo note qu’un habitant de la ville de Denver, dont la densité est très faible, consomme environ 3800 litres d’essence par an alors qu’un habitant de Manhattan en consomme 335 litres, soit 11 fois moins. Cela veut donc dire que les formes de la ville, sa densité et les modes de vie qui leur sont liés ont une influence importante et donc qu’il est possible d’agir à travers l’urbanisme. Il faut repenser les infrastructures urbaines, mais il faut aussi agir localement, en particulier sur la manière d’augmenter la densité par des aménagements favorisant un sentiment de faible densité : la présence végétale et les quartiers mixtes sont des éléments pouvant y contribuer. Il faut avoir des visions globales pour gérer les questions au niveau national en proposant des politiques spécifiques. Mais il faut ensuite que chaque agglomération ait une réflexion locale sur son impact territorial et sur les moyens de l’améliorer. Comme l’a souvent montré François Ascher, on ne peut plus aujourd’hui faire l’urbanisme du haut vers le bas, comme dans les années 60. Il faut écouter les habitants de base, faire du bottom / up, de la pédagogie, convaincre mais aussi écouter pour inventer de nouvelles solutions. Il faut donc avoir une action parallèle et forte à des échelles plus petites comme celle du quartier. En fait, il s’agit d’une application du principe « penser globalement, agir localement ». Mais le renouvellement du parc urbain représentant environ 1% par an, il ne suffira pas à lui seul à produire une ville écologique. Il faut donc aussi réfléchir au moyen d’agir sur l’ancien, sur l’existant pour l’améliorer et le rendre plus performant. Éléments d’une politique urbaine de développement durable Un aménagement écologique, c’est-à-dire répondant aux exigences de développement durable, doit porter sur une dizaine de thèmes : – Mixité et densité – Qualité de l’air – Qualité de l’environnement sonore – Transport et déplacement – Gestion du cycle de l’eau (pluies, eaux usées, alimentation, nappe phréatiques, rivières) – Gestion des déchets – Énergies : consommer moins et tendre vers les énergies renouvelables – Présence de la nature en ville : bio diversité, milieu naturel, faune et flore – Paysage et protection du patrimoine – Une économie durable CHAPITRE 2. ENJEUX RELATIFS À L’URBANISME MODERNE 2.7 15 Conclusion Grâce à cette présentation, nous apprenons que la structure d’une ville est complexe et qu’elle fait référence à de nombreuses disciplines complémentaires et parfois opposées : sociologie, économie, démographie, politique, histoire, écologie, etc. Il s’agit d’un espace sensible en mouvement perpétuel dont il faut contrôler l’évolution en pensant globalement et en agissant localement. Pour palier à l’extension urbaine, il parait primordial d’introduire une densité suffisante en reconstruisant la ville sur la ville. Dans ce contexte, la mixité sociale et fonctionnelle apparait également essentielle pour assurer l’équilibre et la cohésion de ces grands ensembles vivants. D’un point de vue informatique, la modélisation d’un tel ensemble apparait comme très délicate compte tenu du nombre important de notions à traiter et de la difficulté à les représenter. De plus, il faut être en mesure d’appréhender l’aspect dynamique des interactions dans son intégralité car tout est lié (prix des terrains, politiques, nouveaux besoins, ...). Il parait donc essentiel d’étudier des projets informatiques existants qui se sont déjà confrontés à ces problématiques pour profiter de leur expérience et s’assurer de la collaboration des professionnels du secteur, les urbanistes, afin d’identifier les axes importants. Chapitre 3 Deux approches existantes pour la simulation d’environnements urbains Afin d’approfondir les problématiques générales relatives à la génération d’environnements urbains, attardons-nous un instant sur deux projets opérationnels qui font référence dans ce domaine : le projet UrbanSim en premier lieu et le projet de recherche GeOpenSim dans un second temps. 3.1 3.1.1 Le projet UrbanSim Introduction UrbanSim est apparu aux États-Unis en 1999 pour répondre aux nouvelles exigences de la loi, à savoir l’obligation de prendre en compte dans tout processus de planification régional les dimensions relatives à l’urbanisation, aux transports et à l’environnement. Il s’agit d’un logiciel de simulation complet qui repose sur une approche à base de modèles pour la planification et l’analyse du développement urbain, en prenant en compte les différentes interactions entre l’utilisation des espaces (terrains), les transports ainsi que les politiques publiques. Il est destiné aux organismes de planification métropolitaine et autres groupements qui ont besoin d’intégrer des modèles de transport existants avec une nouvelle utilisation des espaces dans le but de faire des prévisions et des analyses de capacités. UrbanSim constitue la pièce maitresse des activités de recherche du laboratoire de l’Université de Washington pour la simulation urbaine et l’analyse des politiques. Ce logiciel est disponible en téléchargement libre sous licence GPL. 3.1.2 Une plateforme ouverte Par la suite, une plateforme ouverte a été développée pour y intégrer UrbanSim. Il s’agit de la plateforme OPUS 1 qui permet une intégration d’extensions (plugin). UrbanSim constitue la pièce centrale de cette plateforme. Après un premier développement en Java, l’application a été totalement réécrite en Python pour faciliter l’intégration et son ouverture. Les développements exploitent le paradigme de la programmation orientée objet pour offrir un maximum de flexibilité. L’application dispose d’une interface graphique écrite en PyQt4. Elle peut s’interfacer avec les principales bases de données du marché (MySQL, Miscrosoft SQL Server et Postgres, etc.) bien qu’elle dispose d’une base de données intégrée (SQLLite). Il est possible de travailler avec les différents Systèmes d’Informations Géographiques (ArcGIS, PostGIS, Quantum GIS, etc.) disponibles sur le marché pour afficher les informations entrées (modèles) ou le résultat des simulations. 3.1.3 Motivations de base Tout les aspects d’une agglomération sont interconnectés et interdépendants. Une action sur un secteur influence automatiquement les autres secteurs à des degrés différents et en fonction des autres 1. Open Platform for Urban Simulation 16 CHAPITRE 3. DEUX APPROCHES EXISTANTES POUR LA SIMULATION D’ENVIRONNEMENTS URBAINS 17 actions opérées au même moment. La coordination des différents évènements constitue donc un élément important qui n’est pas souvent pris en considération et qui peut aboutir parfois à des comportements inattendus. De plus, il existe une grande variété d’intervenants différents (urbanistes, organismes publics, citoyens et associations, etc.), qui, chacun à son niveau, doit pouvoir constater les conséquences et les alternatives possibles des choix politiques et investissements. L’outil doit faciliter les délibérations publiques parfois houleuses relatives à l’aménagement du territoire, aux transports ou à l’environnement en indiquant les conséquences et alternatives possibles sur les effets à longs termes sur l’environnement et les considérations d’équité. Enfin, il doit permettre aux différentes communautés (au sens de l’agglomération) d’avoir une vision globale pour coordonner leurs actions. 3.1.4 Approche La conception d’UrbanSim prend en compte les expériences du passé en terme de modélisation de l’urbanisation. Cet environnement s’appuie sur un modèle dynamique (la dimension du temps intervient) qui reproduit l’évolution de l’occupation du sol au cours de la période simulée. La structure de données d’UrbanSim permet de prendre en compte des données d’occupation du sol à un niveau infracommunal 2 et donc de dépasser des approches classiques trop simplificatrices (découpage concentrique en trois zones ou découpage par agrégation de communes). Les différents modules d’UrbanSim requièrent des données spécifiques. Les données d’entrées sont composées : – des données de l’année initiale – des données de prévisions macro-économiques – des données sur les transports issues du modèle de trafic (temps et coûts de parcours par mode, etc.). – les scénarios de politiques d’urbanisation tenant compte des schémas d’aménagement locaux et régionaux Les différents modules sont cependant interdépendants car les sorties de l’un sont les entrées des autres. Le déroulement des calculs est séquentiel et l’ordre peut être paramétré par l’utilisateur dans un fichier XML. Le logiciel est conçu comme un ensemble de composants reflétant les choix des agents économiques (ménages, entreprises) et leurs interactions avec le marché de l’immobilier. On retrouve par exemple : – les choix de localisation résidentielle des ménages, – les choix de localisation des emplois – les choix de développement immobilier Les modules de localisation sont basés sur un quadrillage fin de l’aire d’étude et les choix sont relatifs à chaque cellule de ce quadrillage. Le secteur d’étude doit être découpé en mailles ou cellules carrées les plus fines possibles, et les données d’entrée sont à recueillir dans ce maillage, pour l’année initiale et l’année de calage. Le calage d’UrbanSim consiste à estimer les paramètres du modèle à partir de données désagrégées sur une période constituée de deux années pour lesquelles il existe le maximum de données. Le modèle sera ensuite appliqué, avec les mêmes paramètres, à un horizon futur selon différents scénarios à définir. 2. à l’intérieur des limites communales CHAPITRE 3. DEUX APPROCHES EXISTANTES POUR LA SIMULATION D’ENVIRONNEMENTS URBAINS 18 Figure 3.1: Cours du temps dans UrbanSim. Figure extraite de [SIMAUR-04] Certains composants sont capable de simuler la mobilité des ménages et des emplois. En parallèle, il existe des composants basés sur des données agrégées, comme les modules de transitions économique et démographique. Ces modules non spatiaux sont liés aux données macroéconomiques exogènes et permettent de caler le modèle au niveau global. Un autre module permet de simuler le prix du foncier. Les versions d’UrbanSim les plus récentes proposent des modules complémentaires (choix de localisation des entreprises, choix de développement de projet, etc). Les différents modules s’exécutent sur un pas d’un an, pendant toute la période de simulation (par exemple une période de vingt ans). Par ailleurs, UrbanSim utilise une structure hiérarchique pour organiser les différentes simulations appelées "scénarios". UrbanSim est prévu pour simuler et évaluer les effets potentiels de scénarios multiples. Dans ce contexte, un scénario correspond à une combinaison de données en entrée et d’hypothèses, en incluant les hypothèses macroéconomiques au regard de l’augmentation de la population et de l’emploi pour la zone étudiée. On considère que la configuration des moyens de transport est connue pour les prochaines années et que les plans généraux des juridictions locales qui vont définir les types de développement sont disponibles pour chaque localité. Une simulation UrbanSim consiste à faire tourner le moteur UrbanSim sur un "scénario". Les résultats de la simulation sont alors stockés dans une base de données unique (Output Database). Il existe un moyen dans UrbanSim de prendre en compte des évènements exceptionnels prévus dans le futur. Il suffit pour cela de définir dans les fichiers de type « events » les nombres d’emplois, de ménages, le changement de type urbain et l’année pour les cellules où se produisent ces évènements. Enfin, le module d’export de données permet le regroupement, l’agrégation et l’export des résultats dans des fichiers externes destinés à l’analyse et à l’importation dans un système d’information géographique. 3.1.5 Un système basé sur les modèles Le modèle intervient à différents niveaux : – simule les décisions et choix qui impactent le développement urbain (mobilité, choix d’implantation des habitations et des zones d’affaires, choix des constructeurs) – prend explicitement en compte les terrains, les structures (maisons d’habitation et bâtiments commerciaux) ainsi que les occupants (ménages, commerces) – simule le développement urbain comme un processus dynamique dans le temps et l’espace – simule le prix des terrains en fonction de l’offre (espace libres, nouvelles constructions ou rénovation) et de la demande (emplacements préférés pour les maisons d’habitations ou les commerces) – tient compte des choix politiques gouvernementaux et évalue les impacts politiques en modélisant les réactions du marché – est basé sur la théorie aléatoire et il est en mesure d’impacter les composants – est conçu pour travailler sur une représentation de haut niveau de l’espace et des activités avec un système de zones identique à celui des déplacements – est adapté aux besoins de développement ou de réaménagement, en travaillant au niveau du détail des parcelles. CHAPITRE 3. DEUX APPROCHES EXISTANTES POUR LA SIMULATION D’ENVIRONNEMENTS URBAINS 3.1.6 19 Étude de cas Dans l’étude de cas "la Tangentielle Nord", les rapports du projet SIMAURIF (SIMulation de l’interAction Urbanisation-transport en Région d’Ile-de-France) indiquent que ce projet a exploité le modèle d’urbanisation UrbanSim avec succès mais non sans difficulté. En effet, la dimension historique et la densité importante de la ville de Paris sont différentes d’une ville américaine moyenne ayant des constructions beaucoup plus récentes et une organisation semble-t-il plus simple. D’autre part, les règles d’accès aux données sont différentes et parfois plus strictes et contraignantes en France qu’aux États-Unis. Enfin, ils ont été amenés au cours de ce projet à essayer plusieurs types de modèle afin d’en trouver un de qualité explicative suffisante compte tenu des données disponibles mais surtout de qualité prédictive et cette démarche s’est avérée très « gourmande » en temps de travail. Cette étude de cas permet également de mettre en évidence les limites de la modélisation : les modèles ne sont pas en mesure de prédire des évènements exceptionnels, certains facteurs difficilement mesurables peuvent influencer les comportements et de nombreux facteurs humains sont impossibles à intégrer. 3.2 3.2.1 Le projet GeOpenSim Introduction Il s’agit d’une plate-forme géographique de simulation qui s’inscrit dans un projet ANR 3 commencé en 2007 et qui s’est achevé en avril 2011. Le projet GeOpenSim vise le développement d’une plate-forme Open Source pour l’analyse et la simulation des dynamiques urbaines à l’aide de bases de données topographiques historiques. Ces dernières sont construites à l’aide de bases de données topographiques récentes ainsi que de photographies aériennes et/ou de cartes historiques. Ces bases de données sont analysées afin d’identifier : – des règles d’évolution au niveau de la ville, du quartier ou de l’îlot. – des statistiques sur des objets spécifiques comme les bâtiments composant un îlot ou les îlots présents dans un quartier Chaque simulation peut ainsi être paramétrée à l’aide de règles d’évolution provenant de l’analyse automatique des données historiques, mais aussi de règles énoncées par des experts. 3.2.2 Approche Le système multi-agent proposé comporte une hiérarchie d’agents topographiques (bâtiments, routes, cours d’eau, îlots, quartiers, ville) qui peuvent être construits, modifiés, fusionnés , découpés, restructurés et détruits au cours du temps. Le comportement de chaque agent est contrôlé par un ensemble de règles d’évolution, de contraintes et d’actions associées. GeOpenSim repose sur une structure hiérarchique (allant du bâtiment à l’agglomération) organisée par des réseaux de communication (les routes, les voies ferrées, etc.) et des graphes de voisinage (notamment entre bâtiments et entre les bâtiments et les routes) permettant une certaine autonomie à l’échelle micro (bâtiments, routes, etc.) et des comportements de régulation à différents niveaux macro (îlot, quartier, ville, etc.). Construit à partir d’un modèle existant, le système multi-agent hiérarchique a été adapté aux besoins de la simulation urbaine et plusieurs fonctionnalités ont été ajoutées, telles que les règles d’évolution et les méthodes de peuplement. Les règles d’évolutions sont définies soit par analyse de données historiques, soit par des experts afin d’affecter des objectifs appropriés aux agents. Elles peuvent prendre en compte le voisinage des agents ainsi que leurs différents attributs (pour les îlots : la densité, le type d’îlot, la localisation de l’îlot dans la ville, etc.) Les méthodes de peuplement sont définies afin de modéliser les différentes stratégies que les agents peuvent utiliser pendant leur évolution (par exemple, la façon dont les îlots se densifient en reproduisant leur structure interne, en se restructurant ou en diversifiant leur structure). 3. Agence Nationale de la Recherche CHAPITRE 3. DEUX APPROCHES EXISTANTES POUR LA SIMULATION D’ENVIRONNEMENTS URBAINS 20 Le modèle GeOpenSim utilise des méthodes d’analyse spatiale permettant la construction automatique des objets composant les différents niveaux de la hiérarchie urbaine, ainsi que les relations entre ces objets. On peut ainsi reconstituer les objets ville, quartiers et îlots à partir des objets bâtiments et routes présents dans les bases de données topographies. D’autres structures telles que les alignements de bâtiments sont également automatiquement construites et utilisées dans la simulation. Les objets géographiques sont évalués sur des critères morphologiques et c’est l’évolution de ces caractéristiques que l’on cherche à simuler : – pour un bâtiment : sa surface, son élongation, sa concavité, son orientation, son type (habitation, industriel, etc.) – pour une route : sa sinuosité, son type (rue, autoroute, etc.) – pour un îlot : sa densité (quotient de sa surface bâtie et de sa surface totale), sa taille, son type (tissu urbain continu ou discontinu, industriel ou commercial, etc.), sa quantité d’espaces vides (par taille), indicateurs statistiques sur les bâtiments le composant, etc. – pour un quartier : sa surface, périphérique ou non, indicateurs statistiques sur les îlots le composant, etc. – pour une ville : sa surface totale, sa surface bâtie, la taille de ses réseaux de transport, la distribution de ses bâtiments par type, par taille, par forme, etc. Le modèle GeOpenSim permet de simuler l’évolution de ces objets en les modélisant comme des agents dont le but est de se transformer pour acquérir un état satisfaisant ses règles d’évolution. Pour cela, l’état cible d’un agent à une date t + dt est décrit sous forme de contraintes sur ses caractéristiques morphologiques ; les règles d’évolution sont utilisées uniquement pour calculer les valeurs buts de ces contraintes. L’objectif de chaque agent est de satisfaire ses contraintes afin d’acquérir un état à la date t + dt satisfaisant au mieux ses règles d’évolution. Lors de chaque activation, si l’état initial de l’agent n’est pas parfait, une liste d’actions pouvant potentiellement améliorer son état est calculée. Cette liste est fonction des contraintes insatisfaites de l’agent et de leur degré d’insatisfaction. Chaque action consiste à déclencher un algorithme de transformation géométrique sur l’agent afin de faire évoluer certaines de ses caractéristiques morphologiques. Ces essais sont effectués jusqu’à ce que l’agent atteigne un état parfait ou que toutes les actions possibles aient été essayées. Tous les agents ont le même cycle de vie qui leur permet de satisfaire les contraintes de leur niveau. 3.2.3 Évaluation d’hypothèses sur les dynamiques urbaines Grâce à cette plate-forme, des règles d’évolution peuvent être utilisées pour différentes simulations dont les résultats sont alors comparés à des données réelles dans le cas de simulations à partir de données du passé, permettant ainsi d’évaluer des hypothèses sur les dynamiques urbaines. 3.3 Conclusion On notera que la réalisation de ces projets nécessite la mobilisation d’équipes pluri-disciplinaires importantes qui doivent travailler en collaboration étroite compte tenu du large spectre de connaissances et d’expertises requis pour aboutir à un résultat opérationnel. Bien que ces solutions soient différentes dans leur approche, elles s’intéressent toutes les deux aux problématiques de la modélisation urbaine et aux évolutions permanentes qui s’opèrent dans les villes au niveau du temps et de l’espace. On parle ainsi de modèle "dynamique". Elles nécessitent l’une comme l’autre une quantité importante de données historiques en amont pour alimenter les modèles ainsi que la mise en place de règles énoncées par des experts du domaine. La ville peut-être structurée en quartiers, îlots jusqu’au détail de la parcelle, hiérarchie organisée par les réseaux de communication. Les types urbains apparaissent également dans ces deux environnements comme des éléments fondateurs de la ville (type d’îlot). De plus, la mise en oeuvre d’un système multi-agent semble bien adaptée aux différents éléments constitutifs de la ville et à leur interaction. Chapitre 4 Problématiques du projet SUSTAINS Nous avons vu qu’il était essentiel de s’entourer de professionnels du secteur urbain pour arriver à modéliser une ville. Les sections suivantes s’appuient sur le dossier de soumission relatif au projet SUSTAINS et sur les réunions d’analyse de ces cinq derniers mois pour identifier les différentes parties du projet dans sa globalité, déterminer le lot affecté au LINA et finalement appréhender les éléments retenus pour ce stage. 4.1 Introduction Le projet SUSTAINS correspond à la mise au point d’un outil d’aide à la décision pour la planification urbaine et le choix des systèmes énergétiques. Cet outil doit permettre d’appréhender la complexité des modèles urbains (résidentiels, industriels, services public) dans ses dimensions sociales, économiques, énergétiques, de mobilité et de durabilité. L’intégration, la visualisation et la manipulation de ces dimensions dans une plate-forme informatique opérationnelle de la ville, visent à replacer les différents acteurs (élus, financeurs, société civile) au sein du processus de décision. Elles se focalisent sur deux enjeux : environnement et énergie. Ce projet a commencé au début de l’année 2011 et s’organise sur une période de 36 mois. Il est réalisé en collaboration étroite entre des praticiens de la ville, des experts du domaine de la production et distribution énergétique ainsi que des équipes de chercheurs. 4.2 Objectifs du projet global Le projet dans sa globalité est réparti sur les différents acteurs impliqués et se décompose de la façon suivante : – Concevoir un modèle théorique de développement urbain durable reposant sur l’expérience pluridisciplinaire de praticiens de l’aménagement urbain (Établissement Public d’Aménagement EPAMARNE). Ce modèle de pré-programmation urbaine est construit autour de la notion d’intensités urbaines intégrant formes urbaines, programmations, énergie et mobilité. – Étudier et réaliser un modèle informatique interactif qui génère une planification urbaine à partir des règles du modèle théorique de développement urbain durable et de contraintes posées sur les indicateurs (par exemple le maintien d’indicateurs dans des fourchettes de valeurs). Ce modèle doit permettre une visualisation de la ville et de ses indicateurs, ainsi qu’une interaction avec celle-ci (modification des seuils par exemple). Cette démarche inverse de conception consiste en l’expression sous forme de contraintes des propriétés désirées de la ville au travers des nombreux indicateurs qui la caractérisent (habitat, énergie, transport, services), la génération d’une planification urbaine par résolution de ces contraintes (création d’un maillage routier, identification des quartiers et des îlots, caractérisation de la nature des ilôts) et l’interaction avec cette planification à différents niveaux (répartition spatiale, agencement des quartiers, seuillage des indicateurs) en maintenant la satisfaction des contraintes et la cohérence de l’ensemble. – Concevoir et développer un module de simulation et d’optimisation des schémas énergétiques. Ce module permettra de modéliser les besoins énergétiques d’un ensemble urbain (zones résidentielles, industries, services publics), de simuler les profils de production/distribution pour 21 CHAPITRE 4. PROBLÉMATIQUES DU PROJET SUSTAINS 22 répondre à cette demande et d’évaluer l’impact environnemental ainsi que les coûts complets correspondants. – Expérimenter et valider le modèle à différentes échelles de villes (éco-quartier, ville,. . . ) en utilisant les données socio-économiques, écologiques et d’aménagement fournies par des projets en cours menés par EPAMARNE. 4.3 4.3.1 Lot : Modélisation par contraintes Objectifs du lot La modélisation par contraintes correspond au lot affecté au LINA et se caractérise par les objectifs suivants : – Proposer un modèle de représentation informatique des contraintes, domaines et indicateurs liés à la planification urbaine – Proposer des opérateurs locaux et globaux pour une résolution efficace – Étudier la problématique de l’interaction avec les domaines et avec les indicateurs en maintenant la cohérence (minimisation des changements) 4.3.2 Verrous identifiés Les verrous portent sur l’échelle du problème de 200 à 300 000 variables, la structuration particulière des variables du problème (représentation multi-échelle des variables de l’habitat à l’ilot, du quartier à la centralité) et l’établissement d’une métrique de distance entre solutions, et son maintien dans les tâches d’interaction. Ces trois verrous représentent des axes importants de recherche de la communauté Programmation Par Contraintes. 4.3.3 Démarche proposée La planification d’une ville est exprimée par des propriétés et des contraintes. Les propriétés considérées sont par exemple le nombre d’habitants, le taux d’activité, le nombre de centralités, les différents niveaux de densité et la ventilation entre les niveaux d’habitats, denses (immeubles) et moins denses (pavillons). Une description géométrique de l’environnement est donnée en entrée (topologie avec fleuves/étendues d’eau, coulées vertes). Des contraintes s’expriment ensuite sur les propriétés, quartiers et îlots, telles que distances entre centralités, accessibilité des services, ventilations locales (dans un niveau d’intensité) et globales (sur l’ensemble de la ville), connexité entre îlots et quartiers. 4.3.4 Risques Les risques identifiés sont les suivants : – les difficultés à modéliser certaines contraintes ou indicateurs, par manque d’expressivité du modèle, – les difficultés à formaliser les supposés implicites (qui sont nécessaires, mais non exprimés), – la difficulté à maintenir la cohérence des solutions dans les étapes interactives. 4.4 Éléments majeurs identifiés en réunion d’analyse Depuis le mois de mars dernier, trois réunions d’analyse se sont succédées sur Paris avec les différents acteurs impliqués sur le projet pour bien identifier les contours de SUSTAINS, échanger et débattre sur les différents thèmes et coordonner les actions des uns et des autres. Nous relevons ci-dessous les notions relatives au lot du LINA et pouvant intervenir dans le cadre de ce stage. CHAPITRE 4. PROBLÉMATIQUES DU PROJET SUSTAINS 4.4.1 23 Programmation, pré-programmation, aide à la décision, concertation et communication Dans un contexte juridique, institutionnel et technique de plus en plus complexe et économiquement plus tendu, il est devenu indispensable de prendre le temps de formaliser les intentions de la maîtrise d’ouvrage et de vérifier la faisabilité de ces intentions avant d’engager le projet. La notion de programmation a fait son apparition dans le décret n° 73-207 du 28 février 1973 relatif à l’ingénierie. Il faudra attendre la loi du 12 juillet 1985 dite loi MOP pour que l’élaboration du programme devienne obligatoire. La programmation peut se décomposer en trois phases successives : – la pré-programmation qui énonce une intention de réalisation. Elle permet les premiers arbitrages et la précision des choix préalables à la conception ; – la faisabilité qui permet de tester la validité de l’intention ; – la rédaction du programme qui doit formaliser les objectifs du projet. Suivant les projets, une concertation et une communication qui portent sur les enjeux et les objectifs de l’aménagement est organisée et des séances de présentation au public sont généralement prévues. La concertation préalable est obligatoire pour les aménagements d’espaces publics dépassant le seuil de 1,9 million d’euros d’investissement (c.f. articles L 300-2 et R 300-1 du Code de l’Urbanisme). Notre projet se situe au niveau de la pré-programmation pour aider les politiques à identifier les conséquences de tel ou tel choix afin qu’ils puissent prendre des orientations et les justifier auprès du grand public en proposant éventuellement différents scénarios possibles. Toute la difficulté consiste donc à se positionner au niveau des décideurs pour ressortir les tendances et impacts en fonction des actions. Par rapport au champ des possibles, qu’est-ce qui semble être le mieux : il est essentiel de rester dans l’orientation et de ne pas descendre au niveau de la conception. L’aspect agrégation des données est très important dans ce contexte et il est essentiel de hiérarchiser l’information et les résultats. Cette étape de pré-programmation doit pouvoir se faire naturellement par des personnes non expertes, de façon interactive et en limitant la saisie d’information au strict minimum. Elle peut néanmoins nécessiter une phase préparatoire en amont réalisée par des experts du domaine. Le résultat obtenu ne doit pas prendre une apparence trop réaliste car cela nuirait à la phase de concertation et de communication, pouvant faire croire qu’il s’agit d’un projet fini et que toutes les décisions sont déjà arrêtées. Néanmoins, il faut tout de même être en mesure de représenter différents scénarios réalistes sur une table tactile de grande surface avec des quartiers, des îlots, des parcelles et des bâtiments de différentes natures (maison d’habitation, immeuble collectif, bureau, usine, etc.) en y intégrant les rues, espaces verts, espaces naturels et équipements publics. Il est prévu de se limiter à une représentation externe des bâtiments prenant la forme de prototypes. La réalisation de ces étapes nécessite généralement plusieurs mois de travaux (2 à 6 mois) avec des aller retour permanents entre les experts et les décisionnaires. L’objectif de SUSTAINS est de gagner un temps précieux à ce stade. Un second objectif consiste à économiser de l’espace en évitant les "gaspillages" sur le territoire. 4.4.2 Notions développées Forme urbaine La signification d’une forme urbaine peut être multiple en fonction de l’approche (paysage urbain, forme sociale, tissu urbain, tracé, etc). Dans notre contexte, elle correspond à un type d’utilisation qui est fait de l’espace et du bâti correspondant. Les formes urbaines se décomposent en trois grandes catégories : – d’habitat : maison individuelle, maison de ville, habitat intermédiaire, habitat collectif – d’activité économique : activité industrielle, artisanale, commerciale, tertiaire – d’équipements publics : crèches, école maternelle, écoles primaires, collèges, lycées, etc. Objectif de mixité Peut être fonctionnel ou social. Seuil d’apparition des fonctions certaines fonctions. Par exemple : Nécessité d’un seuil minimum de regroupement pour attirer CHAPITRE 4. PROBLÉMATIQUES DU PROJET SUSTAINS 24 – Il faut un minimum d’habitat pour pouvoir attirer certains commerces – Combinaison d’attractions entre bureaux et services : la présence de bureau nécessite la proximité de services. Taux d’emploi Le taux d’emploi est calculé en rapportant le nombre d’emploi au nombre total d’individus. Il est calculé sur la population en âge de travailler. On cherche à se rapprocher d’un taux d’emploi idéal égal à "1". En effet, cette situation provoque moins de déplacement puisque chaque individu dispose dans ce cas d’un travail et d’un logement au sein de la ville. 4.4.3 Différents niveaux d’information à représenter Les éléments de la ville à représenter sont hiérarchiques et structurés. Dans un premier temps, on trouve la ville (ou le territoire faisant l’objet de l’étude) composée des différents quartiers. On notera qu’un piéton peut parcourir un quartier sans trop se fatiguer. Il est demandé de définir des quartiers théoriques par type de forme urbaine (dominant), intégrant une hiérarchie des voies. Chaque quartier est constitué d’îlots. Ces îlots sont généralement représentés par un quadrillage orthogonal dont la dimension varie entre 80 et 100 mètres de coté dans nos régions. Un piéton peut donc facilement faire le tour d’un îlot, ce dernier étant déterminé par la voirie. On parle également de nature d’un îlot : son type de forme urbaine dominant. La disposition orthogonale offre plusieurs avantages : – très simple au niveau fonctionnel (desserte) – malgré la densité réelle, il y a une échappée visuelle qui diminue la densité perçue Le quadrillage doit être orienté en fonction du vent dominant et on applique une déformation nécessaire à l’ilot pour qu’il soit viable. Ensuite, chaque ilôt est constitué de parcelles sur lesquelles on retrouve les bâtiments. Ces bâtiments peuvent être de différentes natures : – maison individuelle ou intermédiaire (de ville) – immeuble (barre, tour, etc.) – bureau, commerce – industrie – équipement public – etc. 4.4.4 Tout doit s’articuler autour des centralités par niveau d’intensité La notion de densité étant mal perçue par les politiques et les électeurs, on préfère parler d’intensité. Le centre ville dispose généralement de l’intensité la plus forte. A une forte intensité correspond une voirie densifiée. Le modèle comportera environ cinq degrés d’intensité urbaine : deux faibles, deux moyennes et une forte. Chaque intensité sera définie par les pourcentages des éléments de programmation et de formes urbaines possibles pour « remplir » l’emprise de territoire à aménager (pour les logements, pourcentages de maisons individuelles, maisons de ville, habitat intermédiaire, bâtiments collectifs et pour l’activité économique, le pourcentage d’emplois dans les activités industrielles, artisanales, les bureaux et les pôles commerciaux). Le modèle permettra, aussitôt la surface brute du territoire concerné saisie, d’avoir une lecture directe des emprises de logements, activités et équipements publics, du nombre d’habitants dans chaque forme urbaine et du nombre d’emplois dans chaque type d’emplois. Pour les équipements publics apparaîtront également instantanément le nombre de classes en maternelle, primaire, au collège et au lycée. Le modèle définira également sur les emprises à préserver pour les installations sportives et les espaces verts de quartier, les emprises de commerces, de services, ainsi que les emprises d’équipements inter quartiers. La centralité quant à elle pourrait apparaître comme la propriété fondamentale qui explique la formation des agglomérations urbaines. Elle s’auto-entretient car la valorisation du capital économique, social et symbolique accumulé suscite localement des investissements visant à renforcer l’accessibilité du lieu central, au fur et à mesure de sa croissance, par rapport à celle des lieux avec lesquels il est en relation ou en concurrence, et ce surcroît d’accessibilité rend le lieu attractif pour de nouvelles CHAPITRE 4. PROBLÉMATIQUES DU PROJET SUSTAINS 25 activités. Mais la croissance des fonctions centrales, avec l’encombrement qu’elle suscite, se traduit aussi par l’émergence de centres secondaires, nouvelles villes dans une région, ou centres nouveaux dans une ville ou une région urbanisée. Le maillage routier est constitué à partir des grandes caractéristiques du modèle urbain représentées par : – les centralités, – les degrés d’intensité, – la topologie, – le style urbain On crée la topologie d’un réseau routier en fonction du positionnement des centralités, des niveaux d’intensités fournis et de la présence de contraintes spécifiques (coulées vertes, fleuves ou carte de niveau). Ensuite, à partir de la représentation topologique du réseau, on crée un modèle géométrique simple des axes de circulation et des ilots. 4.4.5 Création d’une ville nouvelle Dans sa première version, le projet est limité à la création d’une ville nouvelle en partant d’un espace vierge. Il faut permettre aux experts de travailler sur une phase en amont pour identifier les propriétés techniques de cet espace en précisant : – la nature du terrain (océan, colline, dune, montagne, prairie, etc.), – les espaces naturels (forêt, rivière, lac, etc.), – les grands axes de circulation existants ou à prévoir (autoroute, voie ferrée, etc.). – la voirie existante ou prévue en fonction de contraintes de positionnement A ces éléments, il faudrait probablement ajouter la nature des sous-sols et les courbes de niveau. A terme, une grande partie de ces informations devraient pouvoir être automatiquement rapatriées à partir de relevés existants, cartes, etc. Ensuite, soit dans le même outil, soit dans un outil adapté, les décideurs doivent pouvoir mener des actions et visualiser les conséquences de leurs choix au travers d’une esquisse de la ville. Une représentation sur table tactile multi-points semble souhaitable pour faciliter un travail collaboratif et la réactivité. Parmi ces actions, on note les possibilités suivantes : – positionner des centralités avec différents niveaux d’intensité – fixer ou déplacer certains éléments constituant la ville (forme urbaine, équipement public, zone verte, etc.) – jouer sur les propriétés (nombre d’habitants, % espace vert, % équipement induit, mixité, objectif de taux d’emploi, etc.) à différentes échelles (ville, quartier, ilôt) – favoriser certains modes de transport ou choix énergétiques 4.4.6 Importance des formes urbaines dans le processus de construction Comme il l’est précisé dans le dossier de soumission et plus particulièrement dans la partie relative au modèle urbain, les formes urbaines séparées jouent un rôle prépondérant dans la constitution de la ville : elles sont le point de départ. En effet, il y est indiqué que pour chaque type de forme urbaine d’habitat, on définit des unités parcellaires et des architectures types des modes de vie. Ensuite on assemble ces unités en îlot ceint de voiries, et on peut ainsi générer des données chiffrées de l’îlot pour chaque type de forme urbaine. L’assemblage suivant consiste à définir des quartiers théoriques par type de forme urbaine, intégrant une hiérarchie des voies, permettant d’avoir des données chiffrées sur le nombre de logements, nombre d’habitants dans ces quartiers théoriques. Pour chaque forme urbaine d’activité économique, on définit de la même manière des unités parcellaires et des architectures types des bâtiments abritant des activités économiques. Pour l’équipement public, il reste à faire le lien de tous les ratios concernant tous les équipements publics induits (crèches, école maternelle, écoles primaires, collèges, lycées, etc.) avec les données des quartiers théoriques d’habitat. CHAPITRE 4. PROBLÉMATIQUES DU PROJET SUSTAINS 4.4.7 26 Intégration des différents modules dans une plateforme commune A ce stade du projet, il parait essentiel de poser la question d’une intégration commune entre les parties du logiciel issues des différents contributeurs. En effet, les prototypes présentés à ce jour reposent sur leurs propres choix technologiques sans prendre en compte cette contrainte d’intégration et de cohérence globale. Cela concerne essentiellement la partie « conception ». Le choix d’une architecture à plugin a été proposé pour les futurs développements. Mais cette intégration ne se limite pas aux applications, elle concerne également le format des données, les échanges et les représentations urbaines. C’est un sujet sensible car certains prototypes reposent sur des architectures déjà existantes provenant de différents contributeurs : cette intégration pourrait donc remettre en cause ces architectures existantes ou occasionner des aménagements importants. 4.5 Axes de recherche et hypothèses retenus pour le stage Mode opératoire Lors des différentes réunions d’analyse, beaucoup d’intervenants sont présents et des sujets très variés sont abordés en un temps limité. Avec le recul, la fréquence de ces réunions peut paraître faible au regard d’un sujet aussi vaste. De plus, les intervenants concernés sont difficile à contacter compte tenu de leur charge de travail importante. Mais ce qui renforce la difficulté correspond probablement aux notions "évidentes" qui ne sont pas formalisées et qui vont de soi : "les supposés implicites nécessaires mais non exprimés". C’est pour ces différentes raisons que nous avons opté pour un mode opératoire basé sur la réalisation de prototypes afin d’avancer étape par étape. Compte tenu de ce mode de fonctionnement, nos travaux de recherche sont nécessairement opérationnels et pragmatiques. Positionnement En comparaison à SUSTAINS, UrbanSim comme GeOpenSim visent la simulation et l’évolution d’un espace urbain et nécessitent tous deux l’introduction d’un grand nombre de données et de règles pour pouvoir fonctionner. Ils s’adressent à des experts du domaine et semblent relativement lourds à mettre en oeuvre. SUSTAINS vise la pré-programmation et l’impact immédiat de telle ou telle décision, ce qui le situe en amont de ces deux projets. Il s’agit donc d’approches totalement différentes et qui pourraient à terme être complémentaires. Axes de recherche et hypothèses Nous l’avons vu dans les pages précédentes, le sujet à traiter est vaste et extrêmement ardu. Pour mener à bien ce stage, il a donc été nécessaire de se fixer un nombre restreint d’objectifs prioritaires qui sont les suivants : – Générer un prototype de ville réaliste avec un minimum de données nécessaires en entrée et pouvant être formulées par des utilisateurs non experts – Utiliser comme point de départ les formes urbaines pour générer la ville et les positionner au mieux sur une grille uniforme représentant le territoire – Prendre en compte la notion de mixité des formes urbaines – Proposer de bonnes solutions avec des temps de réponse compatibles à une utilisation interactive et ceci à l’échelle d’une ville importante D’autre part et bien que la partie IHM 1 ne soit pas dans nos attributions, nous allons proposer un outil basique pour modéliser le terrain, les axes routiers et voies fluviales principales afin de faciliter la mise au point de nos prototypes logiciels. En termes d’hypothèses, nous considérons que : – les formes urbaines et le nombre de chaque forme urbaine sont connus (identifiés en amont) – il existe deux niveaux de représentation complémentaires pour une ville : symbolique (grille uniforme) et géométrique (non abordé) 1. Interface Homme Machine Deuxième partie Un état de l’art 27 Chapitre 5 État de l’art de la Programmation Par Contraintes Ce chapitre constitue une synthèse des travaux et documents de référence suivants : [BARTAK-99][SOLNON-03][REGIN-04][BARNIER-02][DIB-10][BLUM-03][CODOG-01] [GLOVER-99][CHOCO-11][U-BOUL] 5.1 Introduction Bien que nous ayons réduit la portée du projet global dans le cadre de ce stage, il en reste pas moins que le sujet fait intervenir des problèmes de grande taille (de 200 à 300 000 variables) devant être résolus dans un temps limité, fixé par l’utilisateur (de l’ordre de quelques secondes). Même si on se satisfait d’une bonne solution qui ne soit pas nécessairement la meilleure, les nombreux aspects et l’ensemble des contraintes liées à notre sujet confèrent aux problèmes à résoudre un aspect fortement combinatoire. Après l’identification de ce qu’on entend par "problème de nature combinatoire", nous nous intéresserons plus précisément à deux méthodes de résolution efficaces applicables à nos problèmes : la Programmation Par Contraintes (PPC) qui est une méthode complète 1 et les techniques de Recherche Locale (RL) qui sont des méthodes incomplètes 2 . Il existe bien d’autres techniques, comme les algorithmes génétiques ou les stratégies d’évolution. Cependant, ces techniques sortent du cadre de cette étude car elles ne sont pas dans les prérogatives de l’équipe TASC. Elles ne seront donc pas développées à ce niveau. 5.2 Problèmes de nature combinatoire Les problèmes de nature combinatoire possèdent un nombre fini de configurations possibles, mais ce nombre est très grand, de sorte qu’une résolution par une simple énumération est non concevable dans la pratique. Ces problèmes sont souvent faciles à définir mais habituellement difficiles à résoudre. Les problèmes ne possèdent pas tous la même difficulté. Des classes de difficultés ont été définies afin de cerner la difficulté d’un problème donné. Lorsque le problème à résoudre est NP-difficile, une méthode complète qui garantit l’obtention de la meilleure solution peut nécessiter un temps de calcul très long qui croit de façon exponentielle avec la taille du problème traité. Dans ce cas, l’utilisation d’une méthode incomplète peut s’avérer pratique pour obtenir une solution que l’on espère de bonne qualité, la meilleure possible en tout cas, en un temps raisonnable, le temps de recherche raisonnable de la méthode étant fixé par l’utilisateur. Intuitivement on peut penser que la difficulté d’une instance est proportionnelle au nombre de variables, au nombre de ressources par variable et au nombre de contraintes. Ceci étant, il reste difficile d’évaluer avec précision le niveau de difficulté réel d’une instance. Un très grand nombre de problèmes combinatoires réels et théoriques appartient à la famille des problèmes de satisfaction de contraintes (Constraint Satisfaction Problem ou CSP) : configuration, 1. Peut prouver l’insatisfiabilité ou un optimum 2. A l’inverse, elles ne sont pas en mesure de prouver l’insatisfiabilité ou un optimum 28 CHAPITRE 5. ÉTAT DE L’ART DE LA PROGRAMMATION PAR CONTRAINTES 29 planification, ordonnancement, affectation de ressources, etc. Ces problèmes partagent une description commune, basée sur un formalisme très simple, qui autorise en général une modélisation claire et intuitive. Un CSP est défini par un ensemble X de variables, un ensemble D de domaines de définition qui encadrent les valeurs que peuvent prendre ces variables, et un ensemble C de contraintes qui conditionnent les valeurs que pourront prendre les variables appartenant à X. Résoudre un CSP consiste à trouver une solution réalisable, ou éventuellement un nombre donné ou toutes les solutions réalisables. Un problème d’optimisation sous contraintes est un problème pour lequel on cherche parmi l’ensemble de toutes les solutions réalisables la meilleure solution selon une fonction qui définit un objectif donné. La fonction objectif a pour rôle d’évaluer la qualité d’une solution et les contraintes d’éliminer les configurations qui ne sont pas des solutions. Le problème est alors double : le premier consiste à trouver l’ensemble de toutes les solutions réalisables et le deuxième à trouver dans cet ensemble la meilleure solution qui maximise ou minimise la fonction. Les enjeux de la résolution de ces problèmes sont très importants, sur le plan scientifique pour produire du savoir algorithmique, et sur le plan économique pour améliorer la performance de systèmes de toutes natures. Les méthodes sont classées essentiellement en deux familles. La première, qui est la base de la Programmation Par Contraintes (PPC), englobe les méthodes dites complètes. La deuxième famille englobe les méthodes dites incomplètes qui ont été proposées pour faire face à l’explosion combinatoire. 5.3 Programmation Par Contraintes ou Recherche Locale Les paradigmes les mieux adaptés aujourd’hui à la résolution de nos problèmes de nature combinatoire proviennent de la Programmation Par Contraintes et de la Recherche Locale. La PPC effectue en général une recherche énumérative complète en inférant des réductions de l’espace de recherche à partir des contraintes du problème et permet donc de prouver l’optimalité d’une solution ; mais les temps de calcul peuvent devenir rédhibitoires quand la taille du problème est trop grande. Au contraire, la RL parcourt l’espace de recherche en se dirigeant vers les régions "prometteuses" grâce à une heuristique mais en exploitant les contraintes de façon passive : pénalité dans le coût pour les solutions qui violent les contraintes et impossibilité de garantir l’optimalité du résultat. Cependant, la RL permet d’obtenir de bonnes solutions pour les problèmes de grandes tailles ou très difficiles. Mais les différences entre ces deux techniques ne s’arrêtent pas à la méthode de recherche de solution. La PPC constitue en fait un langage de modélisation déclaratif avec une sémantique bien fondée qui permet d’écrire des prototypes rapidement et des les modifier très facilement. La RL ne jouit pas encore de la même élégance que la PPC mais elle s’en rapproche avec l’apparition des travaux sur la "constraint-based local search"[HENTEN-05]. Elle rassemble une collection de techniques heuristiques fondées sur différentes métaphores (par exemple l’évolution darwinienne pour les algorithmes évolutionnistes ou un procédé métallurgique pour le recuit simulé). L’utilisation de la RL demande beaucoup d’expertise (définition des voisinages ou opérateurs, nombreux paramètres qui influencent la convergence, prise en compte des contraintes, etc) et les tentatives d’unification de ces différents algorithmes sont très récentes. Néanmoins, sur certains problèmes de grandes tailles ou peu structurés, les algorithmes de RL parviennent aux meilleurs résultats connus. Pour résoudre des problèmes industriels de plus en plus complexes, la tendance actuelle est l’hybridation de la PPC et de techniques de Recherche Opérationnelle, dont la RL. La RO, qui fédère les paradigmes d’optimisation des problèmes industriels, recense des algorithmes efficaces et éprouvés dans de nombreux domaines, y compris l’optimisation combinatoire. En intégrant depuis plusieurs années des algorithmes de RO, la PPC apparaît comme une plateforme d’intégration de ces techniques, ses principaux avantages étant la flexibilité et la lisibilité des formulations des problèmes. Ceci implique une mise en oeuvre beaucoup plus facile et une maintenance plus simple. En revanche, une des principales faiblesse de la PPC est la difficulté à prévoir ses performances sur un problème d’optimisation donné. La RL, quant à elle, est souvent utilisée quand les autres méthodes échouent à cause de la trop grande taille ou du manque de structure d’un problème. CHAPITRE 5. ÉTAT DE L’ART DE LA PROGRAMMATION PAR CONTRAINTES 5.4 5.4.1 30 Programmation Par Contraintes Introduction La notion de contrainte est naturellement présente dans notre vie, qu’il s’agisse d’affecter des stages aux étudiants en fonction de leurs souhaits, de ranger des pièces de formes diverses dans une boîte rigide ou encore de planifier le trafic aérien en toute sécurité. La Programmation Par Contraintes (PPC) provient de l’intelligence artificielle. C’est une technique de résolution de problèmes née dans les années 70 qui a pour ambition de résoudre n’importe quel type de problèmes combinatoires. "La Programmation Par Contraintes représente une des avancées que l’informatique ait jamais réalisée qui se rapproche le plus du Saint Graal de la programmation : l’utilisateur définit le problème, l’ordinateur le résout", traduction [Eugene C. Freuder]. Elle est utilisée par des acteurs de renom (SAP, Oracle, Nissan, etc.) pour une très grande variété d’applications industrielles allant de la planification à la production industrielle et en passant par le transport. En Programmation Par Contraintes, un problème est défini à partir de variables et de contraintes. Chaque variable est munie d’un domaine définissant l’ensemble des valeurs possibles pour cette variable. Une contrainte exprime une propriété qui doit être satisfaite par un ensemble de variables. Un problème est vu comme une conjonction de sous-problèmes pour lesquels on dispose de méthodes efficaces de résolution. Ces sous-problèmes correspondent aux contraintes et peuvent être très simples ou complexes. Par exemple, la contrainte "x + 3*y = 12" restreint les valeurs que l’on peut affecter simultanément aux variables x et y. 5.4.2 Principes de la PPC La PPC utilise une approche de construction qui bâtit pas à pas une solution en partant d’une solution partielle initialement vide qu’elle cherche à étendre à chaque étape. Pour cela, elle détermine la prochaine variable, choisit une valeur dans son domaine et l’ajoute pour obtenir un nouvelle solution partielle, ce processus étant répété jusqu’à ce que l’on obtienne une solution complète (où la preuve qu’il n’y a pas de solution). Durant la recherche d’une solution, une méthode de construction fait intervenir des heuristiques pour effectuer chacun des deux choix : le choix de la variable et le choix de la valeur à affecter à cette variable. La Programmation Par Contraintes s’articule autour de quatre entités majeures : – le CSP 3 (ou réseau de contraintes) – les algorithmes de filtrage, – la propagation – la recherche de solutions (ou le parcours de l’espace de recherche) CSP (ou réseau de contraintes) Un CSP est un problème modélisé sous la forme d’un ensemble de contraintes posées sur des variables, chacune de ces variables prenant ses valeurs dans un domaine. De façon plus formelle, un CSP est défini par un triplet (X, D, C) tel que : – X = {x1 , ..., xn } est l’ensemble des variables (les inconnues) du problème, – D = {D(x1 ), ..., D(xn )} est l’ensemble des domaines et D(xi ) correspond à l’ensemble fini des valeurs possibles pour la variable xi , – C = {C1 , C2 , ..., Ck } représente l’ensemble des contraintes et Cj est une relation entre certaines variables de X. Une contrainte définit les combinaisons de valeurs des variables autorisées. C’est une relation logique (une propriété devant être vérifiée) entre différentes variables. Ainsi, une contrainte restreint les valeurs que peuvent prendre simultanément les variables. Étant donné le CSP (X, D, C), sa résolution consiste à affecter des valeurs aux variables, de telle sorte que toutes les contraintes soient satisfaites. On appelle affectation (ou configuration) le fait d’instancier certaines variables par des valeurs. Une affectation est dite totale si elle instancie toutes les variables et partielle si elle n’en instancie qu’une partie. Une affectation (totale ou partielle) est consistante si elle ne viole aucune contrainte, et inconsistante si elle viole une ou plusieurs contraintes. 3. Problème de Satisfaction de Contraintes CHAPITRE 5. ÉTAT DE L’ART DE LA PROGRAMMATION PAR CONTRAINTES 31 Une solution est une "affectation totale consistante", c’est-à-dire une valuation de toutes les variables du problème qui ne viole aucune contrainte. Lorsqu’un CSP n’a pas de solution, on dit qu’il est surcontraint : il y a trop de contraintes et on ne peut pas toutes les satisfaire. Dans ce cas, on peut souhaiter trouver l’affectation totale qui viole le moins de contraintes possibles. Un tel CSP est appelé max-CSP, car on cherche à maximiser le nombre de contraintes satisfaites. Une autre possibilité est d’affecter un poids à chaque contrainte (une valeur proportionnelle correspondant à l’importance de cette contrainte) et de chercher l’affectation totale qui minimise la somme des poids des contraintes violées. Un tel CSP est appelé CSP valué (VCSP). Inversement, lorsqu’un CSP admet beaucoup de solutions différentes, on dit qu’il est sous-contraint. Si les différentes solutions ne sont pas toutes équivalentes, dans le sens où certaines sont mieux que d’autres, on peut exprimer des préférences entre les différentes solutions. Pour cela, on ajoute une fonction qui associe une valeur numérique à chaque solution, valeur dépendante de la qualité de la solution. L’objectif étant alors de trouver une solution qui maximise cette fonction : un tel CSP est appelé CSOP 4 . Filtrage La Programmation Par Contraintes va utiliser pour chaque sous-problème une méthode de résolution spécifique à ce sous-problème afin de supprimer les valeurs des domaines des variables impliquées dans le sous-problème qui, compte tenu des valeurs des autres domaines, ne peuvent appartenir à aucune solution de ce sous-problème. Ce mécanisme est appelé filtrage. En procédant ainsi pour chaque sous-problème, donc pour chaque contrainte, les domaines des variables vont se réduire, réduisant par la même occasion l’espace de recherche associé au problème. Un algorithme de filtrage (ou de réduction de domaines) est associé à chaque contrainte. Par exemple, pour la contrainte (x < y) avec D(x) = [10 ; 20] et D(y) = [0 ; 15], un algorithme de filtrage associé à cette contrainte pourra supprimer les valeurs de 15 à 20 de D(x) et les valeurs de 0 à 10 de D(y). Un algorithme de filtrage associé à une contrainte binaire (qui porte sur deux variables) réalise la consistance d’arc si il supprime toutes les valeurs des variables impliquées dans la contrainte qui ne sont pas consistantes avec la contrainte. Par exemple, pour la contrainte x+3 = y avec les domaines D(x) = {1, 3, 4, 5} et D(y) = {4, 5, 8}, un algorithme de filtrage établissant la consistance d’arc modifiera les domaines pour obtenir D(x) = {1, 5} et D(y) = {4, 8}. Propagation Après chaque modification du domaine d’une variable, il est utile de réétudier l’ensemble des contraintes impliquant cette variable car cette modification peut conduire à de nouvelles déductions. Autrement dit, la réduction du domaine d’une variable peut permettre de déduire que certaines valeurs d’autres variables n’appartiennent pas à une solution. Ce mécanisme est appelé propagation. Dès lors qu’un algorithme de filtrage associé à une contrainte modifie le domaine d’une variable, les conséquences de cette modification sont étudiées pour les autres contraintes impliquant cette variable : les algorithmes de filtrage des autres contraintes sont appelés afin de déduire éventuellement d’autres suppressions. On dit alors qu’une modification a été propagée. Ce mécanisme de propagation est répété jusqu’à ce que plus aucune modification n’apparaisse. Recherche de solutions L’espace de recherche d’un CSP est l’ensemble des configurations possibles noté E, tel que : E = D(x1 ) * D(x2 ) * ... * D(xn ) L’espace de recherche est égal au produit cartésien de l’ensemble des domaines des variables. Une solution est considérée comme étant une instanciation des variables qui satisfait toutes les contraintes. Il s’agit d’une affectation complète s ∈ E tel que : Sol(P ) = {s ∈ E ∀c ∈ C, s satisf ait c} Afin de parvenir à une solution, l’espace de recherche va être parcouru en essayant d’affecter successivement une valeur à toutes les variables. Les mécanismes de filtrage et de propagation étant bien entendu relancés après chaque essai puisqu’il y a modification de domaines. Parfois, une affectation peut entraîner la disparition de toutes les valeurs d’un domaine : on dit alors qu’un échec se produit ; 4. Constraint Satisfaction Optimisation Problem CHAPITRE 5. ÉTAT DE L’ART DE LA PROGRAMMATION PAR CONTRAINTES 32 le dernier choix d’affectation est alors remis en cause, il y a "backtrack" ou "retour en arrière" et une nouvelle affectation est tentée. Une méthode de "retour arrière" avec une stratégie de recherche en profondeur d’abord consiste à fixer à chaque étape la valeur d’une variable. Aussitôt qu’un échec est détecté, un retour arrière est effectué, i.e., une ou plusieurs instanciations déjà effectuées sont annulées et de nouvelles valeurs recherchées [BITNER-75]. Par exemple, un algorithme typique avec retour arrière pour la résolution d’un problème de satisfaction de contraintes cherche à prolonger à chaque étape l’assignation courante de manière consistante. En cas d’échec, un retour arrière est effectué sur la dernière variable instanciée possédant encore des valeurs non essayées [MACKW-87]. Les méthodes avec retour arrière sont en général complètes et de complexité exponentielle. Pour réduire le nombre de retour arrière (et le temps de recherche), on utilise les techniques de filtrage décrites précédemment afin d’anticiper le plus tôt possible les échecs. Lors de la résolution de problèmes d’optimisation, on distinguera deux types de solutions : – les solutions du problème de satisfaisabilité, c’est-à-dire celles qui ne tiennent pas compte du coût, – les solutions optimales, c’est-à-dire celles qui maximisent (ou minimisent) la fonction de coût. Résoudre à l’optimalité un problème consiste à trouver une solution réalisable s de plus grande valeur (respectivement de plus petite valeur) pour f(s). Formellement : s ∈ Sol(P )∀s0 ∈ Sol(P ), f (s0 ) ≤ f (s) ; (et respectivement f (s0 ) ≥ f (s)). 5.4.3 5.4.3.1 Contraintes Généralités Une contrainte est une relation entre différentes variables. Cette relation peut être définie en extension en énumérant les tuples de valeurs appartenant à la relation (x=0 et y=1) ou en intension en utilisant des propriétés mathématiques connues (x<y). En fonction du nombre de variables sur lesquelles elle porte (Arité), on dira qu’un contrainte est unaire si elle porte sur une seule variable (x * x = 4), binaire si elle met en relation deux variables (x 6= y) ou encore n-aire si elle met en relation un ensemble de n variables. On distingue différents types de contraintes en fonction des domaines de valeurs des variables. Il y a notamment les contraintes numériques (sur les réels, les entiers) et les contraintes booléennes. Les contraintes peuvent être exprimées sous différentes formes : formules mathématiques, tables de valeurs compatibles, etc. 5.4.3.2 Contrainte simple et globale Contrainte simple Les chercheurs intéressés par la résolution d’applications réelles avec la PPC ont écrit des algorithmes de filtrage spécifiques aux contraintes simples les plus communes (comme =, 6=, <, ≤, ...). Ils ont alors été confrontés à deux problèmes : le manque d’expressivité de ces contraintes simples et la faiblesse des réductions de domaines, entraînés par les algorithmes de filtrage associés à ces contraintes. Contrainte globale Pour répondre à ces difficultés, les chercheurs ont proposé des contraintes correspondant à un ensemble de contraintes simples : ces contraintes sont appelées contraintes globales. Il existe trois intérêts majeurs liés aux contraintes globales : – L’expressivité : il est plus pratique de définir une contrainte correspondant à un ensemble de contraintes plutôt que de définir indépendamment chacune des contraintes de cet ensemble. Par exemple, une contrainte "alldiff" définie sur un ensemble X de variables impose que les valeurs prises par ces variables soient deux à deux différentes. Il est beaucoup plus simple de définir une seule contrainte alldiff(X), plutôt que de définir une contrainte de différence entre chaque paire de variables de X. – Comme une contrainte globale correspond à un ensemble de contraintes, il est possible de déduire plus d’informations à partir de la présence simultanée de contraintes. CHAPITRE 5. ÉTAT DE L’ART DE LA PROGRAMMATION PAR CONTRAINTES 33 – Des algorithmes de filtrage puissants prenant en compte l’ensemble des contraintes comme un tout peuvent être écrits. Ces algorithmes de filtrage rendent possible l’utilisation de techniques de Recherche Opérationnelle ou de théorie des graphes en PPC. C’est ainsi que de nombreuses contraintes globales ont été développées (Catalogue des contraintes globales de l’équipe TASC, [BESSIER-03]). 5.4.4 Modélisation Pour résoudre un problème à l’aide d’un solver, l’utilisateur doit modéliser le problème sous la forme d’un CSP. Il s’agit tout d’abord d’identifier l’ensemble des variables X (les inconnues du problème) ainsi que le domaine associé à chaque variable, c’est-à-dire les valeurs que les variables peuvent prendre. Il faut ensuite identifier les contraintes C entre les variables. A ce niveau, on ne se soucie pas de savoir comment résoudre le problème, on cherche simplement à le spécifier formellement. La modélisation se fait donc par l’identification de sous-problèmes aisés à résoudre qui vont correspondre aux contraintes choisies. L’une des difficultés majeures de la PPC et notamment de la modélisation est l’identification des contraintes. Pour que la résolution ait une chance d’être efficace, deux conditions doivent généralement être remplies : – les contraintes doivent être fortes afin d’engendrer des modifications des domaines des variables. – les modifications dues à un filtrage doivent pouvoir être utilisées par les autres contraintes. Un problème possède souvent plusieurs modélisations possibles. Choisir un bon modèle parmi les possibles est très important. Les critères de choix sont la simplicité et l’efficacité par exemple vis à vis de la taille de l’espace de recherche engendré par le modèle, sa simplicité d’expression ou encore la rapidité d’évaluation des configurations. La modélisation est une démarche de conception qui nécessite de s’approprier intellectuellement le problème initial et les différentes catégories de contraintes disponibles. Il n’y a pas toujours de solution évidente. Cependant, il est judicieux de respecter certains principes lorsque l’on veut représenter sous la forme d’un CSP un problème concret : – Partir de la représentation d’une solution : Il faut que cette solution soit représentée par une assignation de variables. Ce qui donne une première piste pour définir les variables et les domaines du problème – Extraire les contraintes de l’énoncé : Il faut isoler chacune des contraintes, la comprendre, puis l’exprimer sous la forme d’une relation entre certaines des variables qui ont été préalablement définies. – Identifier les contraintes implicites : Il arrive fréquemment que certaines contraintes ne soient pas exprimées explicitement dans l’énoncé du problème lorsqu’elles sont évidentes pour tout le monde (par exemple, un même enseignant ne peut pas faire plusieurs cours simultanément) – Décomposer certaines contraintes : Lorsqu’une contrainte extraite de l’énoncé ne peut pas être spécifiée dans le formalisme disponible, il faut la décomposer en plusieurs contraintes. Par exemple, lorsque la contrainte globale "alldiff" n’est pas disponible, on peut la remplacer par un ensemble de contraintes qui expriment que les valeurs qui seront assignées aux variables devront être différentes deux à deux. – Introduire des variables de liaison : La décomposition de certaines contraintes requiert l’introduction de variables dites de liaison qui permettent l’introduction de valeurs intermédiaires qui seront utilisées dans de nouvelles contraintes, un peu comme lorsqu’on décompose un calcul en plusieurs étapes. – Rester déclaratif : Le but de la Programmation Par Contraintes n’est pas d’écrire un programme qui résout un problème, mais de poser des contraintes qui spécifient le problème ; charge ensuite au solver de trouver une solution ou de déterminer l’inconsistance. 5.4.5 Un exemple classique : placement des n-reines Le problème des n-reines bien connu et souvent repris comme exemple en PPC consiste à placer n reines sur un échiquier de n*n cases de telle manière qu’aucune reine ne puisse être prise par une CHAPITRE 5. ÉTAT DE L’ART DE LA PROGRAMMATION PAR CONTRAINTES 34 autre. Le but est donc de placer une seule reine sur la même ligne, colonne et diagonale. Figure 5.1: Solution réalisable pour le placement de 8 reines. Figure extraite de [DIB-10] Il y a plusieurs façons de modéliser ce problème sous forme d’un CSP. Une possibilité est de considérer chaque colonne i comme une variable xi . Une variable possède alors un domaine de (1 à n) qui désigne le numéro de ligne où se place la reine de la colonne. Formellement, et pour le problème avec 8 reines, nous avons : – X = {x1 , x2 , ..., x8 } – D ={D(x1 ), D(x2 ), ..., D(x8 )} avec D(xi ) = {1, ..., 8} – C est défini par, ∀i, ∀j 6= i : les reines doivent être sur des lignes différentes, soit xi 6= xj , et les reines doivent être sur des diagonales différentes, soit xi + i 6= xj + j et xi − i 6= xj − j Une solution réalisable pour ce problème est illustrée en Figure 5.1. 5.4.6 Résolution des CSOP Dans le cas de la résolution d’un CSOP 5 , le but est de trouver une solution qui satisfait un ensemble de contraintes donné mais aussi d’optimiser une fonction définissant un objectif. Nous supposons que le but est de trouver une solution pour P=(X, D, C) qui minimise f avec f, une fonction sur toutes les variables de P. Nous supposons également qu’une variable t est ajoutée à la liste des variables X de P avec t = f(X). L’approche la plus intuitive est de trouver une solution optimale par la résolution d’une séquence de CSP. Initialement, un algorithme de backtracking est utilisé pour trouver une solution qui satisfait toutes les contraintes. Chaque fois qu’une solution est trouvée, une contrainte s’ajoute au CSP avec la forme t > f(S) qui exclut toutes les solutions qui ne sont pas meilleures que S. Ce processus est répété jusqu’à ce que le CSP résultant soit infaisable ; dans ce cas la dernière solution trouvée est optimale. 5.4.7 Solveurs La PPC est un paradigme de premier choix pour modéliser des problèmes d’optimisation combinatoire comme ceux rencontrés dans le placement des formes urbaines. Reste à choisir un solveur de contraintes souple et efficace. Dans ce domaine, deux grandes classes de logiciels s’opposent : les logiciels libres ou Open Source dont le code source est accessible, et les logiciels commerciaux dont seuls les exécutables sont distribués. Les solveurs Open source permettent à leurs utilisateurs d’en comprendre et corriger les erreurs ainsi que de modifier ses caractéristiques. Le logiciel profite ainsi des améliorations apportées par des utilisateurs avertis très divers, ce qui tend à le rendre robuste et complet. Le paradigme de la PPC est né de l’extension des systèmes Prolog, la plupart des solveurs de contraintes sont donc naturellement fondés sur des compilateurs de programmes logiques. Par la suite, certains solveurs de contraintes ont été réalisés avec un langage généraliste non-logique. Ainsi, un solveur de PPC peut profiter de la puissance, de l’efficacité et de la portabilité de compilateurs d’autres langages existants. Le solveur correspond alors à une librairie pour un langage hôte. 5. Constraint Satisfaction Optimisation Problem CHAPITRE 5. ÉTAT DE L’ART DE LA PROGRAMMATION PAR CONTRAINTES 35 C’est le cas de CHOCO, le solveur développé par l’équipe TASC qui se présente sous la forme d’une librairie Java permettant de formuler et de résoudre les problèmes de satisfaction de contraintes (CSP). Cette librairie contient des algorithmes de retour arrière ainsi que de nombreux algorithmes de réduction de l’espace de recherche. Elle définit les structures de bases d’un système de contraintes telles que les variables, domaines, les contraintes, la propagation et la recherche arborescente. Il s’agit d’un logiciel Open Source distribué sous licence BSD et disponible à l’adresse suivante : http ://www.emn.fr/z-info/choco-solver/. 5.5 5.5.1 Recherche Locale Introduction Alors que la plupart des études sur la résolution des CSP se concentraient sur les améliorations des techniques d’inférence et de recherche systématique par backtracking, des algorithmes de Recherche Locale (RL) particulièrement efficaces sur des instances "difficiles" ont été proposés au début des années 90 6 . Les algorithmes systématiques se heurtent à leur complexité exponentielle en pire cas, contrepartie de leur complétude, quand les problèmes sont de trop grande taille : si on fixe une limite de temps de calcul, l’algorithme peut terminer sans rendre de résultat même si le problème est consistant. Ainsi, lorsque l’on est limité par un temps de calcul sur des problèmes de grande taille, il est préférable de chercher une solution de bonne qualité avec des méthodes incomplètes plutôt que d’utiliser des méthodes complètes sans garantie de trouver une solution dans le temps imposé. Cette classe de méthodes permet de trouver une solution de bonne qualité en un temps raisonnable. Parmi les méthodes incomplètes, on peut distinguer deux catégories : – les heuristiques : généralement conçues pour un problème particulier, en s’appuyant sur sa structure propre, mais les approches peuvent contenir des principes plus généraux. – les métaheuristiques : peuvent s’appliquer à différents problèmes. 5.5.2 Métaheuristiques et évaluation de la qualité d’une solution Une métaheuristique est constituée d’un ensemble de concepts fondamentaux qui permettent d’aider à la conception de méthodes heuristiques pour un problème d’optimisation 7 . Ainsi, les métaheuristiques sont adaptables et applicables à une large classe de problèmes. Dans le livre "Ordonnancement de la Production", chapitre "Les Métaheuristiques", Widmer et al. ont proposé un ensemble de propriétés intéressantes qui caractérisent les métaheuristiques : – Les métaheuristiques sont des stratégies qui permettent de guider la recherche d’une solution optimale. – Le but visé par les métaheuristiques est d’explorer l’espace de recherche efficacement afin de déterminer des solutions (presque) optimales. – Les techniques qui constituent des algorithmes de type métaheuristique vont de la simple procédure de Recherche Locale à des processus d’apprentissage complexes. – Les métaheuristiques sont en général non-déterministes et ne donnent aucune garantie d’optimalité. – Les métaheuristiques peuvent contenir des mécanismes qui permettent d’éviter d’être bloqué dans des régions de l’espace de recherche. – Les concepts de base des métaheuristiques peuvent être décrits de manière abstraite, sans faire appel à un problème spécifique. – Les métaheuristiques peuvent faire appel à des heuristiques qui tiennent compte de la spécificité du problème traité mais ces heuristiques sont contrôlées par une stratégie de niveau supérieur. – Les métaheuristiques peuvent faire usage de l’expérience accumulée durant la recherche de l’optimum pour mieux guider la suite du processus de recherche. 6. Cependant, des algorithmes de RL sont utilisés en RO depuis les années 60 7. Une heuristique est une méthode, conçue pour un problème d’optimisation donné, qui produit une solution non nécessairement optimale lorsqu’on lui fournit une instance de ce problème. Une métaheuristique est définie de manière similaire, mais à un niveau d’abstraction plus élevé (d’après E. Taillard). CHAPITRE 5. ÉTAT DE L’ART DE LA PROGRAMMATION PAR CONTRAINTES 36 Ces propriétés définissent le comportement de toutes les métaheuristiques pendant la recherche d’une solution, en allant de la Recherche Locale jusqu’aux algorithmes génétiques qui sont parmi les plus complexes. Les métaheuristiques visent principalement à minimiser ou maximiser une fonction de coût donnée appelée fonction objective dans le sens où elle vise à évaluer la qualité d’une solution. Soit : – P un problème d’optimisation combinatoire, – S un ensemble de solutions, – X un sous-ensemble de S représentant les solutions admissibles (réalisables) – et une fonction de coût f (ou fonction objectif) qui assigne à chaque solution s ∈ X le nombre réel f(s) (ou un entier). Résoudre le problème consiste à trouver une solution s∗ ∈ X optimisant la valeur de la fonction de coût. Une telle solution s∗ s’appelle une solution optimale ou un optimum global. Définition [PAPADIM-82] : Une instance I d’un problème de minimisation est un couple (X,f) où X ⊆ S est un ensemble fini de solutions admissibles, et f une fonction de coût (ou objectif) à minimiser f : X → R. Le problème est de trouver s∗ ∈ X tel que f (s∗ ) ≤ f (s) pour tout élément s ∈ X. D’une manière similaire, on peut définir les problèmes de maximisation en remplaçant ≤ par ≥. 5.5.3 Principe de la RL Pour résoudre ces problèmes qui résistent aux algorihmes systématiques, on choisit donc d’abandonner l’exactitude de la recherche pour pouvoir parcourir plus librement l’espace de recherche en étant guidé par une métaheuristique généralement inspirée d’une métaphore (Par exemple, en géographie hill climbing ou algorithmes évolutionnistes en biologie). Contrairement aux méthodes constructives, la plupart des méthodes de Recherche Locale manipulent des configurations complètes qu’elles modifient afin de rechercher une meilleure solution. La Recherche Locale se base donc sur l’idée d’amélioration d’une configuration complète donnée S en faisant des changements sur les affectations. Les configurations complètes obtenues en modifiant S s’appellent les voisines de S et constituent l’ensemble N(S). Ainsi, la Recherche Locale commence par une configuration complète initiale (éventuellement non-consistance) pour se diriger vers une solution consistante ou un optimum : – un voisinage est défini autour de l’instanciation totale courante : il représente l’ensemble des instanciations totales obtenues en altérant "localement" la solution courante, par exemple en changeant la valeur de l’une de ses variables. Plus formellement : S étant une configuration complète, le voisinage de S est un sous-ensemble de configurations complètes directement atteignable à partir d’une transformation donnée de S. Il est noté V(S) et une configuration S 0 ∈ V (S) est dite voisine de S. – une heuristique de sélection indique l’un des voisins qui devient la solution courante, par exemple celui qui permet de faire diminuer le plus le nombre de contraintes violées ou le coût de la solution (pour un problème de minimisation). – si une instanciation totale consistante est obtenue, la solution est renvoyée. Sinon (ou si on cherche un optimum) un critère d’arrêt est testé pour limiter le temps de calcul, par exemple un nombre d’itérations maximal. La structure du voisinage dépend de la transformation autorisée. Ainsi, à partir d’une configuration donnée, on peut établir plusieurs structures de voisinage selon la transformation que l’on autorise. Le fonctionnement d’une méthode de Recherche Locale est illustré de manière général dans la Figure 5.2 : X correspond à l’espace de recherche, si est une solution admissible et s* correspond à une solution optimale. CHAPITRE 5. ÉTAT DE L’ART DE LA PROGRAMMATION PAR CONTRAINTES 37 Figure 5.2: Fonctionnement d’une méthode de RL. Figure extraite de [WIDMER-01] Pour un voisinage donné, si on se contente de choisir systématiquement le voisin qui réduit le plus le nombre de contraintes violées (qu’on appellera coût de la solution), on peut se retrouver bloqué dans un optimum local (ou local maximum dans la Figure 5.3) dont tous les voisins dégradent le coût. Figure 5.3: Optimum local. Figure extraite de [KABANZ-11] Une stratégie est donc utilisée pour s’en échapper, par exemple en autorisant des transitions défavorables (i.e. choix d’un voisin de coût supérieur) ou en recommençant la recherche avec une nouvelle solution choisie aléatoirement ; certains algorithmes utilisent également les solutions précédentes (recherche taboue) ou maintiennent un ensemble de solutions (algorithmes génétiques) pour informer leur stratégie. Les algorithmes de RL ne sont pas complets car ils ne maintiennent pas de représentation de la partie déjà explorée de l’espace de recherche, alors que les algorithmes systématiques le font en structurant l’espace sous la forme d’un arbre, ils ne peuvent donc pas garantir que tout l’espace de recherche sera exploré ni qu’une même solution ne sera pas visitée plusieurs fois. Leur efficacité est donc empirique et dépend de l’instance considérée, mais ils ont l’avantage de pouvoir résoudre les problèmes sur-contraints car ils manipulent des solutions éventuellement non-consistantes, et fournir une solution (éventuellement non-consistante) à tout moment (algorithme anytime) car l’état courant est une instanciation totale. CHAPITRE 5. ÉTAT DE L’ART DE LA PROGRAMMATION PAR CONTRAINTES 38 L’algorithme 5.1 présente un cadre générique qui schématise la plupart des algorithmes de RL. nb_essais recherches successives sont tentées tant qu’une condition globale sur les solutions déjà trouvées est respectée. Chaque recherche consiste en nb_iterations itérations d’un déplacement local dans le voisinage de la solution courante s tant qu’une condition "locale" à cette recherche est satisfaite (e.g. la recherche peut être arrêtée si l’évaluation de la solution ne s’améliore plus pendant un certain nombre d’itérations). A chaque étape, on teste si s est consistante, auquel cas la solution est renvoyée. Sinon un voisin v de s est choisi et si v respecte un certain critère, par exemple v n’a pas été considéré depuis un certain nombre d’itérations (recherche taboue), il remplace la solution courante. Au bout de n_iterations itérations, une nouvelle solution initiale est générée et la recherche recommence. On peut utiliser par exemple un algorithme glouton 8 pour construire les solutions initiales. S’il s’agit d’un problème d’optimisation, il suffit de modifier l’algorithme pour mémoriser la solution courante si son coût est inférieur à celui de la meilleure solution trouvée au lieu de la renvoyer (ligne 4 et 5). Algorithm 5.1 Cadre générique de Recherche Locale. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 s := initialise () for i =1 to nb_essais while condition_gloale do for j =1 to nb_iterations while condition_locale do if consistante ( s ) then return s end if v := choisit ( voisinage ( s )) if acceptable ( v ) then s := v end if end for s := reinitialise ( s ) end for return s 5.5.4 Guider la recherche Différentes stratégies sont utilisées pour guider la recherche vers des solutions qui violent le moins possible de contraintes. Elles définissent le voisinage de la solution courante, en général l’ensemble des instanciations qui différent de la solution courante par la valeur d’une unique variable, et la manière de sélectionner l’un des voisins : – Hill climbing : le voisin qui minimise le nombre de contraintes violées est choisi. Il s’agit du cas le plus simple qui garde juste un état (état courant) en mémoire et l’améliore itérativement jusqu’à converger à une solution. La fonction objective à optimiser (maximiser ou minimiser) permet de déterminer l’état successeur. – Min-conflits [MINTON-90][MINTON-92] : pour éviter d’avoir à explorer exhaustivement le voisinage comme avec le hill climbing à chaque itération, une variable en conflit (impliquée dans une contrainte violée) est choisie aléatoirement et instanciée avec la valeur qui minimise le nombre de conflits, avec choix aléatoire en cas d’égalité. Cette heuristique tente ainsi de réparer une instanciation non-consistante. La méthode de min-conflits a été introduite pour des problèmes de satisfaction de contraintes. – Algorithmes génétiques (AG) [GOLDB-89] : contrairement aux autres algorithmes de RL, les AG maintiennent une "population" de solutions et utilisent un opérateur de "recombinaison". Cet opérateur (le croisement) construit une nouvelle instanciation (ou deux) à partir de deux solutions de la population en prenant une partie des valeurs de l’une et le reste de l’autre, ce qui correspond à la métaphore génétique de la reproduction sexuée ; cette descendance a éventuellement une meilleure évaluation que ses géniteurs. Ce type de transitions "non locales" 8. Algorithme faisant un choix à chaque étape sans jamais remettre en cause ce choix CHAPITRE 5. ÉTAT DE L’ART DE LA PROGRAMMATION PAR CONTRAINTES 39 et l’utilisation simultanée d’un ensemble de solutions fait sortir les AG du cadre de la RL, bien qu’ils en soient une extension. Notons que, de manière analogue au croisement d’un AG, [Selman 93] propose de combiner les solutions des deux dernières tentatives de GSAT 9 en conservant les valeurs communes pour obtenir une meilleure réinitialisation qu’une instanciation aléatoire. Bien d’autres techniques sont envisageables comme l’exploration de voisinages plus grands (où les valeurs de plusieurs variables sont changées). 5.5.5 S’échapper des minima locaux Si le meilleur voisin est systématiquement sélectionné, un algorithme de RL risque (fortement) de se retrouver bloqué avec une solution courante dont tout le voisinage dégrade le coût, i.e. un optimum local. De nombreuses techniques ont été proposées pour éviter ce comportement en acceptant des transitions défavorables avec une certaines probabilité, ce qui confère à la RL son caractère "stochastique" (aléatoire) : – Multi-start : comme le suggère l’algorithme 5.1, la recherche redémarre à partir d’une nouvelle solution initiale (e.g. générée aléatoirement) une fois qu’un certain nombre de transitions a été réalisé. On remarque que cette solution ne tire aucun profit des optima locaux déjà découverts. – Random walk : la définition du voisinage et/ou la sélection de la transition sont "randomisées" pour accepter des voisins qui n’améliorent pas le coût de la solution courante. Une métaheuristique très populaire, le recuit simulé, utilise une technique similaire en choisissant un voisin aléatoirement puis en acceptant systématiquement la transition si elle est favorable et avec une certaine probabilité (dépendante d’un paramètre global appelé température, par analogie avec le procédé métallurgique de recuit) si elle est défavorable. – Algorithme génétiques : les AG gardent leur population de solutions diversifiée pour éviter d’être bloqués dans un optimum local. Les solutions sont gardées d’une génération à l’autre en les sélectionnant avec une probabilité inversement proportionnelle à leur coût. – Recherche taboue : pour empêcher la recherche d’effectuer des séquences de transitions qui "bouclent" et de rester bloquée dans un optimum local, une liste de longueur fixée des dernières solutions visitées est maintenue et un voisin n’est accepté que s’il n’en fait pas partie. – Pondération des contraintes : en constatant que, sur certains problèmes, différentes tentatives se concluaient par les mêmes clauses non satisfaites, on modifie l’algorithme pour donner plus d’importante, lors de la sélection du meilleur voisin, à ces clauses. Ainsi, après chaque nouvelle tentative, le poids (initialisé à 1) des clauses non satisfaites est incrémenté pour accentuer leur importance dans le nombre de conflits associé à un voisin. Cette technique est également à la base de la méta-heuristique Guided Local Search (GLS) [TSANG-99]. On peut la considérer comme l’apprentissage ou l’adaptation automatique d’une heuristique qui indique la difficulté de résoudre chaque clause. Là encore, la variété de ces techniques heuristiques, dont seules les principales sont recensées ici, n’a de limite que l’imagination de leurs auteurs. Par ailleurs, la plupart d’entre elles nécessitent le réglage de nouveaux paramètres qui viennent s’ajouter à la liste, souvent déjà longue, de ceux qui contrôlent le fonctionnement d’un algorithme de RL. 5.5.6 Problème d’optimisation Les méthodes de RL considèrent un CSP (standard) comme un problème d’optimisation en calculant le coût d’une solution à partir du nombre de contraintes violées. Cependant, quand on souhaite trouver la solution consistante optimale d’un CSP vis-à-vis d’un certain critère, il faut intégrer le degré de satisfaction et le critère dans l’évaluation d’une instanciation, ce qui pose des problèmes de convergence similaires à ceux des algorithme d’optimisation multi-critères [TALBI-00]. Au contraire, les algorithmes systématiques ne recherchent l’optimum que parmi les instanciations consistantes, mais ne peuvent pas fournir de solutions approchées si le problème est sur-contraint. Certaines approches, comme celles des AG [EIBEN-95], divisent l’ensemble des contraintes en deux groupes : le premier contient les contraintes qui doivent être satisfaites par toutes les instanciations 9. Greedy SATisfiability. Une méthode d’amélioration itérative présentée comme une application du principe de minconflits au problème SAT (un CSP particulier) CHAPITRE 5. ÉTAT DE L’ART DE LA PROGRAMMATION PAR CONTRAINTES 40 manipulées et les opérateurs de l’AG (croisement et mutation qui définissent une notion équivalente au voisinage) doivent être adaptés pour ne générer que des instanciations valides, et le second est constitué des autres contraintes du CSP qui sont incorporées à la fonction de coût. Dans la cas général, de tels opérateurs sont très complexes à réaliser. 5.5.7 Programmation par Recherche Locale Les études qui ont pour ambition d’unifier les différents types d’algorithmes de RL et d’améliorer leur compréhension ne sont que très récentes. [YAGIURA-01] propose d’adopter un cadre générique similaire à celui de l’algorithme 5.1 (appelé random multi-start local search) pour comparer les comportements des divers algorithmes et leurs raffinements. Plus générale et originale, l’approche de [TAILLAR-00] utilise le concept de Adaptive Memory Programming pour fédérer recherche taboue, AG, recuit simulé et même colonie de fourmis. Par exemple, la population d’un AG est ainsi vue comme la "mémoire" de la recherche du passé, au même titre qu’une liste taboue. Ce formalisme permet également de décrire et mieux comprendre le fonctionnement d’hybrides de ces méta-heuristiques. Les outils destinés à abstraire les mécanismes élémentaires de la résolution par RL ne sont apparus que très récemment. Localizer [MICHEL-97], dont est extrait l’algorithme générique 5.1, est un langage de spécification d’algorithmes de RL et de ses structures de données qui permet d’exprimer de manière souple et concise la résolution d’un CSP, et le système maintient automatiquement et efficacement les structures de données lors de la recherche. Des librairies de classes génériques ont également été développées (LOCAL++ [SCHAERF-00], HotFrame [FINK-98], SCOOP [NILSEN-98]) mais avec un niveau d’abstraction moindre que celui de Localizer. [HENTEN-05][MARTIN-10]Comet, qui constitue la plate-forme de recherche du laboratoire d’optimisation de la Brown University, est un outil primé pour résoudre des problèmes complexes d’optimisation combinatoire dans des domaines tels que l’allocation de ressources et l’ordonnancement. Il peut simplifier considérablement la conception et la mise en oeuvre d’algorithmes de Recherche Locale et de Programmation Par Contraintes tout en préservant leur efficacité : il peut être vu comme une hybridation de ces deux techniques. En effet, une des principales innovations de Comet repose sur le concept de Recherche Locale à base de contraintes (constraint-based local search) : ce paradigme permet de construire des algorithmes de Recherche Locale en séparant la modélisation de la recherche, et de promouvoir ainsi la réutilisation. Comet est un langage orienté objet très riche qui supporte à la fois la modélisation et l’abstraction des recherches dans l’esprit de la Programmation Par Contraintes. La plupart de ses avantages peuvent être exprimés par la formule : "Recherche Locale = model + recherche" signifiant que les algorithmes de Recherche Locale peuvent être spécifiés en termes de modélisation et de composants de recherche. Les deux composantes "contraintes" et "recherche" sont présentes et dissociées. Comet propose un langage de contraintes et des constructions pour programmer des stratégies de branchement, des heuristiques d’ordonnancement (de listes), et aussi des parcours d’arbres. Le langage offre des facilités pour l’ingénierie et permet par exemple différentes entrées / sorties pour se connecter à des bases de données ou lire des fichiers XML. Comet permet aussi de construire des interfaces utilisateur pour observer graphiquement l’évolution de l’exécution des modèles compilés. Enfin, le langage prend le parti de programmer la recherche. Il offre des structures de contrôle comme les conditionnelles et les boucles « tant que » et demande à déclarer, transformer ou manipuler les structures de données de telle sorte qu’elles soient exploitables par des heuristiques. Cet environnement semble être de loin le plus abouti dans ce contexte. 5.5.8 Méthodes de Recherche Locale Nous décrivons ci-dessous certaines méthodes de Recherche Locale populaires afin d’illustrer dans le détail les différentes techniques mises en oeuvre. 5.5.8.1 Méthode de descente (amélioration continue) Une méthode de descente est une méthode dont le principe consiste à choisir à chaque étape une configuration voisine meilleure que la configuration courante. Quand une méthode de descente n’est CHAPITRE 5. ÉTAT DE L’ART DE LA PROGRAMMATION PAR CONTRAINTES 41 plus applicable, un optimum local est atteint. Une variante est la méthode de plus forte descente qui choisit à chaque étape la meilleure configuration voisine parmi celles qui améliorent la solution courante. L’avantage principal de cette méthode réside dans sa grande simplicité et sa rapidité. Historiquement, les méthodes de descente ont toujours compté parmi les méthodes heuristiques les plus populaires pour traiter les problèmes d’optimisation combinatoire. Toutefois elles comportent deux obstacles majeurs qui peuvent limiter considérablement leur efficacité : – suivant la taille et la structure du voisinage N(s) considéré, la recherche de la meilleure solution voisine est un problème qui peut être aussi difficile que le problème (P) initial ; – une méthode de descente est incapable de progresser au-delà du premier minimum local rencontré. Or les problèmes d’optimisation combinatoire comportent typiquement de nombreux optima locaux pour lesquels la valeur de la fonction objectif peut être fort éloignée de la valeur optimale. Algorithm 5.2 La méthode de descente Initialisation c h o i s i r une s o l u t i o n a d m i s s i b l e i n i t i a l e s a p p a r t e n a n t à X; p o s e r s ∗:= s ; Processus i t é r a t i f t a n t que l e c r i t è r e d ’ a r r ê t n ’ e s t pas s a t i s f a i t f a i r e g é n é r e r N( s ) ; d é t e r m i n e r s ’ a p p a r t e n a n t à N( s ) t e l l e que f ( s ’)= min f ( s ’ ’ ) ; s ’ ’ a p p a r t e n a n t à N( s ) ; s := s ’ ; s i f ( s ) < f ( s ∗ ) a l o r s s ∗:= s ; sinon l e c r i t è r e d ’ arrêt est s a t i s f a i t Pour remédier à ce dernier problème, la solution la plus simple est la méthode de relance aléatoire qui consiste à générer une nouvelle configuration de départ de façon aléatoire et à recommencer une descente. On remarquera cependant que cette solution ne tire aucun profit des optima locaux déjà découverts. Une autre solution consiste à accepter des voisins de même performance que la configuration courante. Cette approche permet à la recherche de se déplacer sur les plateaux, mais n’est pas suffisante pour ressortir de tous les optima locaux. 5.5.8.2 Le recuit simulé (Simulated Annealing) Le recuit simulé est une méthode de Recherche Locale inspirée d’une technique utilisée en métallurgie. Kirkpatrick et al. [KIRKPAT-83] et Cerny [CERNY-85] ont été les premiers à s’inspirer d’une telle technique pour résoudre des problèmes d’optimisation combinatoire. Le voisinage N(s) d’une solution s ∈ X s’apparente à l’ensemble des états atteignables depuis l’état courant en faisant subir des déplacements infinitésimaux aux atomes du système physique. A chaque itération, une seule solution voisine s’ est générée. Celle-ci est acceptée si elle est meilleure que la solution courante s. Dans le cas contraire, la nouvelle solution s’ est acceptée avec une certaine probabilité prob(4f, t) qui dépend de l’importance de la détérioration 4f = f (s0 ) − f (s) et d’un paramètre t correspondant à la température. Les changements de température sont effectués sur la base d’un schéma de refroidissement précis. En règle générale, la température est diminuée par paliers à chaque fois qu’un certain nombre d’itérations est effectué. La meilleure solution trouvée est mémorisée dans la variable s*. L’algorithme est interrompu lorsqu’aucune solution voisine n’a été acceptée pendant un cycle complet d’itérations à température constante. La performance du recuit simulé est étroitement liée au schéma de refroidissement considéré. De nombreuses études théoriques ont été effectuées à ce sujet et plusieurs variantes ont été proposées (Collins et al, 1988), (Osman et Christofides, 1994). CHAPITRE 5. ÉTAT DE L’ART DE LA PROGRAMMATION PAR CONTRAINTES 5.5.8.3 42 La recherche à voisinage variable (Variable Neighborhood Search) Proposée par Hansen et Mladenovic en 1997 [HANSEN-99], la méthode de recherche à voisinage variable de base VNS (Variable Neighborhood Search) est une métaheuristique récente qui exploite le changement de structure de voisinage, que ce soit en descente vers un optimum local ou pour s’échapper de ces optimums locaux. L’idée de base est de faire varier les structures de voisinage en se basant sur le fait qu’une configuration S reconnue comme un optimum local pour une structure de voisinage donnée peut ne pas être un optimum local pour une autre structure de voisinage. Cette méthode fonctionne en plusieurs étapes. Tout d’abord elle nécessite la définition de différentes structures de voisinage, notées V1 , ..., Vkmax , forcément différentes dans leurs actions. A partir d’une configuration complète de départ S, une voisine de S est sélectionnée en utilisant la structure de voisinage V1 à priori de plus faible portée pour favoriser une recherche locale. Si la configuration obtenue est meilleure que la configuration de départ alors la recherche reprend à partir de cette configuration. Sinon, une autre configuration complète peut être sélectionnée en utilisant un autre voisinage de portée supérieure, soit ici le voisinage V2 ; la même règle est appliquée sur ce deuxième choix, une nouvelle recherche locale est effectuée sur cette configuration ou on passe à un autre voisinage. A noter que les règles de changement de structure peuvent être plus complexes. Cette méthode permet de sortir d’un optimum local si celui-ci est un optimum local pour un voisinage Vi avec i < kmax . Il peut être intéressant d’utiliser des algorithmes combinant plusieurs structures de voisinage pour la recherche dans les problèmes disposant de nombreux minimums locaux. 5.5.8.4 Recherche Tabou (Tabu search) Introduite par Glover [GLOVER-86] et indépendamment par Hansen [HANSEN-86], la recherche Tabou est une méthode de Recherche Locale qui construit un voisinage excluant un certain nombre de configurations récemment visitées ou de mouvements récemment utilisés. La méthode permet de gérer les cycles en les interdisant complètement ou pas selon les options choisies. L’idée initiale consiste à se déplacer d’une configuration à une autre tout en s’interdisant de revenir sur une configuration déjà rencontrée dans un nombre donné d’itérations antérieures (éventuellement depuis le début). Pour se faire, une liste Tabou a été introduite. Elle contient les configurations vers lesquelles il est interdit de se déplacer pendant un certain nombre d’itérations. Cependant stocker et gérer des configurations entières est coûteux en espace et en temps de calcul. Pour éviter ces inconvénients, la méthode Tabou consiste aussi à interdire un ensemble de mouvements récemment utilisés, ces mouvements peuvent ramener à une configuration déjà visitée ou non. Dans ce cas, il n’y a plus de garantie sur les boucles mais la gestion de la mémoire est facilitée. Pour ne pas interdire d’accéder par un mouvement Tabou à des configurations de qualité supérieure à la meilleure configuration rencontrée, un critère d’aspiration a été introduit qui permet d’enlever le statut Tabou sur certains mouvements jugés utiles à un moment donné. La durée du statut Tabou peut être soit statique soit dynamique. En durée Tabou statique, on utilise une durée fixe et constante durant toute la recherche. En durée Tabou dynamique, on utilise une durée qui peut varier au cours de l’exécution. Plusieurs études comme celles réalisées par Hao et al. sur les listes Tabou dynamiques ont montré que les résultats obtenus pouvaient être plus intéressants que les résultats obtenus avec une liste statique. La durée Tabou est un paramètre essentiel et important qui influence énormément les performances de la méthode ; il est donc crucial de bien choisir les règles de gestion de la durée en fonction du problème traité. [DEVAR-06, DEVAR-05] proposent des techniques d’apprentissage pour définir empiriquement les paramètres de durée. Afin d’améliorer l’efficacité et les performances de la recherche Tabou, Glover et Laguna ont proposé plusieurs mécanismes. L’intensification et la diversification sont deux exemples. 5.5.9 Intensification et diversification L’intensification insiste sur la capacité d’examiner en profondeur par une méthode des zones de recherche particulières alors que la diversification met en avant la capacité de découvrir des zones de recherche prometteuses. L’idée de base de l’intensification est d’exploiter une ou des solutions prometteuses. L’intensification se fonde sur les notions liées à l’apprentissage en considérant que les attributs souvent présents dans les CHAPITRE 5. ÉTAT DE L’ART DE LA PROGRAMMATION PAR CONTRAINTES 43 configurations d’élite connues sont favorables, il faut donc les exploiter plus que les autres ; par contre les attributs rarement présents dans les configurations d’élite connues sont peu favorables, il faut donc les éviter. De nombreuses techniques ont été proposées : – Relancer la recherche à partir des bonnes solutions déjà rencontrées. – Reconstruire une solution de départ qui tente de combiner des attributs souvent rencontrés dans les meilleures configurations. – Fixer certains attributs qui ont souvent été présents dans les configurations d’élite. Cependant, l’application du seul principe d’intensification ne permet pas une recherche efficace. En effet, elle conduit à confiner la recherche dans une zone limitée qui finit par s’épuiser. Le cas de l’amélioration itérative rapidement piégée dans un optimum local illustre cruellement ce phénomène. A contrario, la diversification est un mécanisme qui oblige la recherche à s’éloigner de zones où les solutions sont connues pour se diriger temporairement vers d’autres zones inexplorées proposant des catégories de solutions inconnues. De nombreuses techniques ont été proposées. La technique la plus répandue consiste à construire une nouvelle solution de départ et à relancer la recherche, la solution de départ peut être la plus différente possible des solutions déjà visitées. Les changements de voisinage évoqués précédemment sont aussi une forme de diversification permettant d’atteindre de nouvelles solutions. En plus de la relance, les heuristiques exploitent principalement deux autres stratégies pour assurer la diversification : la première consiste à perturber aléatoirement et la seconde à caractériser les régions visitées pour pouvoir ensuite s’en éloigner. La première stratégie qui est aussi la plus simple consiste à introduire des perturbations aléatoires : c’est le cas pour la génération aléatoire d’un voisin dans le recuit simulé. La deuxième stratégie consiste à mémoriser au cours de la recherche des caractéristiques des régions visitées et à introduire un mécanisme permettant de s’éloigner de ces zones. C’est ce que fait la méthode tabou avec la liste tabou. Nous pouvons remarquer que cette seconde stratégie nécessite l’utilisation d’une mémoire. La recombinaison constitue un autre principe général qui complète l’intensification et la diversification. Elle consiste à construire de nouvelles configurations en combinant la structure de deux ou plusieurs bonnes configurations déjà trouvées. Cette idée issue des algorithmes génétiques (le croisement) a été introduite dans des méthodes de voisinage, par exemple dans la méthode tabou ("relinking paths"). 5.6 Conclusion Quelle technique utiliser : PPC (avec CHOCO) ou RL (amélioration itérative avec relance, recuit simulé, méthode tabou, etc.) ? En effet, le premier problème pratique qui se pose à un utilisateur confronté à une application concrète est d’effectuer un choix parmi les différentes techniques disponibles. Or ce choix est d’autant plus difficile qu’il ne semble pas exister de comparaison générale et fiable entre les différentes techniques, ni même entre les différentes métaheuristiques (RL). Chapitre 6 État de l’art de l’organisation spatiale d’un espace urbain 6.1 Introduction Dans [VANEG-09], les auteurs décrivent les espaces urbains comme un ensemble complexe de bâtiments, de parcelles, d’îlots et de quartiers reliés entre eux par des rues. Un processus habituel pour la modélisation consiste à produire dans un premier temps le réseau routier, en subdivisant ensuite les îlots issus du réseau routier en parcelles puis en générant un bâtiment à l’intérieur de chaque parcelle (Figure 6.1). Figure 6.1: Processus général de modélisation des espaces urbains. Figure extraite de [VANEG-09] Ils constatent que cette modélisation des espaces urbains représente un véritable challenge car leur structure est déterminée par un très grand nombre de variables difficiles à quantifier comme les politiques, le comportement des marchés, l’infrastructure de transport, les plans gouvernementaux et les changements relatifs aux populations. Les environnements urbains denses sont particulièrement complexes à modéliser car ils sont à la fois denses et importants, allant de quelques kilomètres carrés à plusieurs centaines de kilomètres carrés. De plus, concernant l’utilisation d’outils d’aide à la décision relatifs aux politiques d’aménagement urbaines actuelles et futures, les simulations génèrent de grandes quantités d’informations qui doivent être facilement interprétées par les décideurs, ce qui représente un réel défi de visualisation. 6.2 Utilité des formes urbaines dans une simulation interactive [WEBER-09]Les formes urbaines jouent un rôle important dans la constitution d’une ville. L’identification des formes urbaines est nécessaire notamment pour la simulation du trafic (le nombre de résidents par parcelle dépend de la forme urbaine) et la construction des bâtiments (afin de déterminer quel type de bâtiment doit être construit). En général, la simulation des formes urbaines est très difficile, car les milieux urbains sont intrinsèquement complexes. Contrôler la proportion de chaque forme urbaine par un paramétrage global permet d’assurer une simulation stable. 44 CHAPITRE 6. ÉTAT DE L’ART DE L’ORGANISATION SPATIALE D’UN ESPACE URBAIN 45 Lorsqu’un nouveau quartier est généré, sa forme urbaine dominante est estimée. Le simulateur de forme urbaine recherche alors la forme optimale en fonction des spécifications données par l’utilisateur. Lorsqu’un nouvel îlot est généré, sa forme urbaine est estimée de la même manière. Au final, chaque parcelle dispose d’une forme urbaine. Bien que les quartiers et les îlots ne soient pas directement impliqués dans la simulation, la forme urbaine est utilisée pour déterminer le type de rue d’un quartier ou une subdivision d’un îlot. Par exemple, un îlot dans une zone industrielle est décomposé en parcelles plus grandes que dans une zone résidentielle. La simulation peut être contrôlée par des objectifs de formes urbaines globaux définis par l’utilisateur qui précise les pourcentages de chaque forme urbaine au niveau de la ville. Chaque type de forme urbaine est associé à une combinaison de fonctions d’évaluation. L’algorithme permettant de modifier les formes urbaines pour les parcelles existantes est inspiré des algorithmes tels que le recuit simulé. Les auteurs évoquent plusieurs raisons à cela : – la vitesse de l’algorithme est très importante et opte contre un algorithme de simulation basé agent – la recherche d’une configuration de forme urbaine optimale n’est pas nécessaire, mais ils veulent tout de même que le système trouve une bonne configuration. – ils veulent être en mesure de configurer l’algorithme pour tenir compte du temps et des différentes stratégies (de planification). Critères d’évaluation Pour réaliser les différents calculs liés aux formes urbaines, ils prennent en compte plusieurs facteurs décrits ci-dessous. Clustering (regroupement) Pour différents types de forme urbaine, comme les zones résidentielles, il est avantageux d’être proche de parcelles de la même forme. Alors que des regroupements peuvent se produire par l’attraction de la même forme dans une région, le regroupement détermine explicitement l’avantage de plans de regroupement. Le regroupement peut être calculé comme le pourcentage de parcelles proches (≈10) autour du lot concerné qui possèdent la même forme urbaine. Neighborhood land use (forme urbaine voisine) L’influence des autres formes urbaines voisines peut être calculée comme suit ; Pour chaque forme urbaine (t), on applique un pourcentage pondéré à toutes les parcelles voisines de forme (t) à l’intérieur d’une distance de rayon r (≈256 mètres) autour du lot. Les lots les plus proches ont un poids plus fort que les lots les plus éloignés. Distance to center, forest and water La distance au centre ville le plus proche, la forêt la plus proche, et la proximité de l’eau peuvent être calculés. Pour avoir une portée similaire lors de la simulation, la distance est normalisée en la divisant par la distance la plus longue dans la configuration urbaine. Trafic urbaines Le trafic peut avoir une influence positive ou négative sur la pertinence de certaines formes Pente Une pente abrupte peut entraver fortement la construction. La pente est évaluée à plusieurs endroits choisis de façon aléatoire et on en fait la moyenne. Élevation Vivre sur une colline légèrement surélevée au dessus de la ville et souvent considéré comme prestigieux. On utilise une carte des hauteurs h(x,y) pour calculer une élévation moyenne à partir d’un échantillon de valeurs aléatoires. CHAPITRE 6. ÉTAT DE L’ART DE L’ORGANISATION SPATIALE D’UN ESPACE URBAIN 46 6.3 Un modèle simple et efficace basé sur l’aménagement urbain pour générer des villes Les approches existantes pour la modélisation procédurale 1 de villes visent à faciliter le travail de planification des urbanistes ou le travail des artistes, mais requièrent un niveau important d’expertise, nécessitent l’introduction d’une grande quantité de données externes pour générer un résultat réaliste, ou encore demandent des temps importants de calcul. Au final, elles ne sont pas adaptées à des "non experts" ou à un contexte interactif. De plus, la plupart des villes générées de façon procédurale ne disposent pas d’un modèle d’aménagement convaincant. CityEngine est de loin le logiciel disponible sur le marché le plus avancé dans ce domaine et l’aboutissement de nombreuses années de recherches. [GROEN-09][GROEN-09b]proposent une méthode de création procédurale de villes réalistes à partir d’informations utilisateurs intuitives de haut niveau comme la taille de la ville, sa localisation (e.g. Europe ou U.S.), son histoire et le nombre d’autoroutes qui la traverse. Le résultat obtenu est basé sur différents types de quartiers (liés à une forme urbaine) disposés selon des contraintes provenant de modèles liés à l’aménagement urbain. Dix-sept formes urbaines sont disponibles pour représenter un quartier. Le nombre de quartiers par forme urbaine est déduit des informations saisies par l’utilisateur. L’algorithme de placement des quartiers, au coeur du système proposé, est basé sur des coefficients d’attraction et de répulsion qui tiennent compte des autres quartiers déjà placés, de la nature du terrain, de l’emplacement dans la ville (plus ou moins proche du centre ville), et des distances aux rivières ou aux autoroutes. Cette approche permet à des personnes "non expertes" de générer des villes importantes et réalistes en quelques secondes seulement. Compte tenu de l’intérêt de ce procédé dans notre contexte et des choix qui ont été faits pour ce stage, nous reviendrons plus en détail sur ces principes dans la troisième partie de ce rapport. [LECHNER-06]décrivent une méthode équivalente de génération procédurale basée sur des schémas classiques d’aménagement urbain en utilisant une simulation basée agent. A partir de la description d’un terrain, leur système retourne une carte 2D avec le positionnement de différentes formes urbaines et des routes. Chaque agent est associé à un type de forme urbaine et cherche à se positionner ou à se déplacer en réalisant le maximum de profit. 6.4 De l’organisation spatiale d’un territoire agricole aux espaces urbains Dans cet article[LEBER-99], différents modèles construits pour simuler l’organisation spatiale d’un territoire agricole sont présentés et comparés. On y trouve un modèle à base de règles expertes, un modèle multi-agent et un modèle de recuit simulé. Le principe commun aux différents modèles consiste à affecter dans un territoire donné différentes occupations agricoles en fonction des contraintes et des besoins de chacune et de l’équilibre global du système de production agricole sous-jacent. Comment ne pas faire le parallèle avec l’affectation de formes urbaines dans la ville ? Compte tenu de cette proximité avec nos problématiques, nous allons aborder certains aspects de ces travaux (Modèles expert & multi-agent) qui sortent du "cadre fixé", ceci à titre de comparaison. 6.4.1 Approche à base d’expertise Il s’agit d’un modèle à base de règles, définies à partir des connaissances d’experts du domaine (agronomes) qui ont observés les répartitions d’occupations du sol réalisées par les agriculteurs. La répartition des cultures et prairies nécessaires à la production est alors réalisée en fonction des priorités du système, des exigences liées à la conduite et au mode d’exploitation des cultures et prairies, et des caractéristiques du territoire. Les modèle se décompose en trois tâches : Détermination des régions homogènes du territoire A partir des informations disponibles sur la région concernée, six classes de sol sont définies ainsi que deux classes de pente et les occupations 1. Techniques permettant la création automatique de modèles 3D et de textures à partir d’un ensemble de règles (L-Systems, fractales, grammaires de formes,...) CHAPITRE 6. ÉTAT DE L’ART DE L’ORGANISATION SPATIALE D’UN ESPACE URBAIN 47 du bâti et des forêts. D’autres part, différentes classes de distances (tous les 500 mètres) sont définies à partir du barycentre des bâtis villageois et dans la limite du territoire de chaque village. Calcul des productions et surfaces nécessaires Différents types d’exploitations sont identifiés et pour chacun de ces types, la quantité de produits alimentaires nécessaires (céréales, foin, ...) peut être déduite de la taille du troupeau, elle-même déduite du nombre de vaches laitières. Affectation des occupations du sol aux régions du territoire Cette affection se fait par étape successives en fonction des priorités du système. On commence par placer les pâturages, puis le maïs, etc. Cette première étape permet de modéliser un raisonnement d’agronome qui organise un système de production dans un territoire. Le modèle expert n’est pas construit pour optimiser l’occupation contrairement aux deux autres modèles mais pour reproduire un raisonnement de résolution qu’il met en oeuvre de façon séquentielle. En ce sens, ce modèle se situe dans la catégorie des modèles d’accompagnement qui aident les thématiciens à rassembler et formaliser leurs connaissances et à tester leurs hypothèses [BOUSQ-96]. 6.4.2 Approche multi-agent Dans ce modèle limité à l’affectation des occupations du sol aux régions du territoire, les différentes occupations sont représentées comme des agents concurrents qui cherchent à s’emparer de régions de territoire afin de satisfaire leur objectif propre tout en respectant leurs contraintes. De plus, l’agent doit respecter une contrainte globale du système : que les différentes occupations soient équilibrées pour que le système de production soit viable. Il prend en entrée un territoire parcellisé en régions homogènes pour le sol, la pente et la distance, et un ensemble d’occupations du sol, chacune décrite par un objectif (en production ou en surface) et un ensemble de contraintes. Ce modèle est construit avec un objectif de souplesse et de modularité. Il est rapide et aboutit toujours à une solution viable. De plus, le modèle multi-agent permet de réaliser des réorganisations à partir de pré-affectations [DURY-98], il peut donc être utilisé directement dans une perspective dynamique. Il s’agit d’un système concurrentiel où les groupes d’agents combattent pour réaliser un objectif, même si les heuristiques imposent un combat équilibré (Chaque agent dépend d’un groupe lié au type d’occupation et il doit y avoir un équilibre entre les différents groupes). Ce modèle peut être utilisé pour réaliser des simulations à grande échelle. L’expression des objectifs et des contraintes reste locale et son processus de résolution est restreint aux configurations ne violant pas les contraintes. Pour une utilisation sur d’autres classes de problèmes d’optimisation, il est nécessaire d’envisager de nouvelles heuristiques d’exploration des voisinages. 6.4.3 Le modèle de recuit simulé Tout comme le modèle multi-agent, ce modèle est limité à l’affectation des occupations du sol aux régions du territoire. Pour ce problème, une fonction d’optimisation prend en compte à la fois les objectifs de production à atteindre et leur équilibre, ainsi que les contraintes locales à respecter. Pour un état donné de la résolution, cette fonction s’exprime comme le minimum des satisfactions des différentes occupations auquel on soustrait une valeur proportionnelle au nombre de contraintes violées. Les voisinages d’une configuration s sont atteints par réaffectation d’une région ou par échange d’affectation entre deux ou trois régions. Contrairement au système multi-agent, ce modèle exploite des objectifs et des contraintes globales via la fonction d’optimisation. D’autre part, il explore pas à pas un voisinage plus vaste que celui du multi-agent en s’autorisant de violer des contraintes. Il peut donc proposer plus de solutions mais avec des performances moindres. CHAPITRE 6. ÉTAT DE L’ART DE L’ORGANISATION SPATIALE D’UN ESPACE URBAIN 48 6.4.4 Comparaison En terme de performance, le modèle multi-agent est plus rapide que le recuit simulé car il explore moins d’états mais en contre partie, propose moins de bonnes solutions. De son côté, le recuit simulé peut être facilement adapté à un autre modèle que le modèle de production (e.g. économique) en adaptant simplement sa fonction de coût. Quant au système expert, il peut se révéler être un outil complémentaire précieux pour tester et valider les connaissances de terrain. 6.5 Vers un modèle mixte (comportemental et géométrique) [VANEG-09b]Les recherches précédentes concernant la modélisation urbaine peuvent être divisées en deux grandes parties : – la modélisation géométrique, – la modélisation comportementale. La première est purement orientée infographie et permet de générer des représentations 2D ou des modèles 3D alors que les résultats de la seconde sont destinés à l’aide à la décision au regard des politiques urbaines actuelles et futures. Les modèles de simulation comportemental font un usage limité de caractéristiques géométriques 2D fixes (grille de cellules ou de parcelles) et demandent trop de ressources informatiques pour fonctionner dans un mode interactif. [WEBER-09] Même les systèmes de micro-simulation à la pointe comme UrbanSim ne simulent pas les aspects géométriques dans le détail. A la place, ils utilisent des grilles régulières comme des structures de données spatiales : chaque cellule de la grille représentant une collection de ménages et d’entreprises, mais la géométrie n’est pas simulée. Certaines recherches ont été menées pour exploiter la sortie d’une modélisation comportementale afin d’alimenter un système de modélisation géométrique produisant des sorties 2D ou des modèles 3D qui changent au fil du temps. Cependant, l’objectif de ces recherches porte généralement sur le calcul des changements (développement urbain) dans le temps pour un modèle fourni, sans prévoir d’interactivité. Lorsque ces deux modèles sont appliqués sur un même espace urbain mais de façon séparée, cela provoque une déconnexion entre les deux modèles existants. Cette séparation est particulièrement désavantageuse pendant la phase de conception graphique et le processus de modification des modèles géométriques urbains. Néanmoins, les systèmes actuels de modélisation géométrique peuvent être utilisés pour effectuer les changements sur les modèles 3D provoqués par la modification de ces variables, mais le concepteur doit dans ce cas être conscient des interdépendances subtiles qui existent entre ces variables. En effet, les changements sur une variable peuvent avoir des implications locales ou globales comme le montrent les exemples suivants : – un concepteur augmente la taille d’immeubles situés au centre ville : le nombre d’emplois et la population augmente ; ceci doit se traduire par plus de rues locales et l’apparition de constructions résidentielles à d’autres endroits de la ville facilement accessibles depuis le centre ville nouvellement modifié. – un concepteur introduit une route dans le modèle : l’accessibilité entre différentes parties de l’espace urbain peut changer, donc la localisation des emplois, des maisons et les constructions peuvent être profondément modifiés. – un concepteur modifie la pente du terrain ou augmente la population locale : la configuration géométrique du voisinage local des rues, des îlots, des parcelles et des bâtiments doivent être actualisés pour prendre en compte les nouvelles pentes du terrain ou l’augmentation de la population. Les espaces urbains réels entretiennent des relations étroites entre le terrain, les réseaux routiers, la forme des constructions, la répartition de la population, les emplois ou encore les voies de transport. Ignorer ces dépendances peut donc engendrer des modèles qui ne correspondent pas à cette réalité urbaine. Pour toutes ces raisons, les chercheurs impliqués dans [VANEG-09b] militent clairement vers une intégration de ces deux modèles (Figure 6.2). CHAPITRE 6. ÉTAT DE L’ART DE L’ORGANISATION SPATIALE D’UN ESPACE URBAIN 49 Figure 6.2: Intégration du modèle comportemental et du modèle géométrique. Figure extraite de [VANEG-09b] On peut ainsi réduire le temps de conception et de modification des modèles tout en produisant des villes plausibles. Reposant sur un système dynamique, les modifications interactives sont continuellement prises en compte pour faire correspondre les comportements urbains plausibles à la géométrie urbaine correspondante, permettant ainsi la production des gros modèles en seulement quelques secondes. 6.5.1 Modélisation comportementale Wadell and Ulfarsson [WADDEL-04] définissent comme principaux composants d’une simulation urbaine un ensemble d’algorithmes qui sont appliqués à un ensemble de variables spatialement distribuées représentant la population et les emplois. Basé sur ces travaux, ils ont défini un ensemble minimal de variables de conception : – nombre d’habitants : correspondant au nombre de personnes qui vivent dans la cellule, – nombre d’emplois : faisant référence au nombre d’emplois dans la cellule En complément, ils ont également utilisés pour chaque cellule de la grille les éléments suivants : – l’accessibilité, – la valeur du terrain. Les composants de Wadell and Ulfarsson (transition, mobility, location choice, real-estate developments) ont été mis en correspondance à leur système dynamique et implémentés comme de nouveaux algorithmes tenant compte de la mise à jour interactive. 6.5.2 Modélisation géométrique En complément, ils ont défini un ensemble de variables géométriques pour lesquelles une relation avec les variables de comportement peut être établie. Bien que les variables soient stockées dans les cellules de la grille, les structures géométriques sont positionnées librement et peuvent dépasser les limites des cellules. Pour une cellule (i, j), ils ont définis : – roads length r(i,j) : longueur totale des routes dans la cellule – average tortuosity t(i,j) : ratio entre la longueur du segment de la route et la distance entre les terminaisons du segment de la route à l’intérieur de la cellule, – building volume m(i,j) : le volume total de l’espace intérieur parmi les structures construites dans la cellule, – terrain elevation h(i,j) : l’élévation moyenne du terrain dans la cellule. Cette variable est uniquement sous le contrôle de l’utilisateur. De plus, la taille de la parcelle (parcel size) et sa forme urbaine (land use) sont d’autres variables de conception qui sont calculées algorithmiquement. 6.5.3 Résultats Quelque soit la taille de la grille déterminée par le concepteur, les temps de calcul restent uniforme pour les cellules de la grille. CHAPITRE 6. ÉTAT DE L’ART DE L’ORGANISATION SPATIALE D’UN ESPACE URBAIN 50 Le temps de modification pendant l’édition interactive varie d’une fraction de seconde à quelques secondes pour une grille importante (15 km x 15 km). Pour un terrain donné, le temps total de conception du processus pour chacun des exemples prend 5 minutes ou moins. Leur système permet de réaliser un modèle urbain à partir d’une solution partielle spécifiée par le concepteur, ce qui permet une création rapide, en se limitant par exemple à l’identification des critères suivants : – identification de l’emplacement du centre ville – esquisse du terrain, des autoroutes, et des parcs. Les informations saisies peuvent également concerner la population totale ou le nombre d’emplois. Leur méthode supporte l’introduction de contraintes pour générer des modèles urbains complexes. L’utilisation de contraintes permet en effet de contrôler de manière fine le processus de modélisation et bénéficie toujours aux automatismes pour produire des modèles urbains plausibles. Toutefois, sur contraint, leur système peut conduire à un modèle urbain irréalisable. 6.6 Conclusion Ces travaux démontrent qu’il est possible pour des personnes non expertes du domaine de générer des villes réalistes de façon interactive en introduisant un minimum d’informations. Pour cela, il faut disposer dans un premier temps des caractéristiques du terrain qui sont le point de départ avec la répartition des rivières et routes principales. Ensuite, différentes techniques sont envisageables. Une façon de faire consiste à positionner les différentes formes urbaines qui constituent la ville sur une carte en fonction d’un modèle d’aménagement adapté, ce modèle d’aménagement pouvant correspondre aux attractions et répulsions définies par exemple dans [GROEN-09]. Troisième partie Modèle et prototypes proposés 51 Chapitre 7 Modèle proposé 7.1 Introduction Le modèle comportemental proposé reste volontairement très simple (Figure 7.1) et permet de positionner automatiquement sur chaque cellule d’une grille régulière, représentant la ville, une forme urbaine "dominante" représentant le type d’utilisation principal de l’espace et du bâti sur une cellule. On ne précise pas pour le moment si la cellule représente un quartier ou un îlot. Figure 7.1: Modèle : Principe général de ventilation des formes urbaines sur la grille en fonction des éléments représentant le territoire (nature du terrain, routes, rivières, centralités) et des attractions-répulsions associées à chaque forme urbaine. Initialement, on dispose d’un espace vierge quadrillé en (NxN) cellules de taille régulière. Un premier travail consiste à identifier sur ce territoire la nature du terrain. Cette tâche est réalisée par un expert qui, au travers d’une IHM, va colorier chaque case de la grille avec une couleur représentant soit l’océan, soit une prairie, soit une colline ou encore une dune, etc. Chaque cellule est donc associée à une et une seule nature de terrain. Lorsque toute la grille est complétée, l’expert doit superposer sur le terrain les routes principales et les rivières. Les centralités quant à elles sont positionnées par les décideurs. Graphiquement, les 52 CHAPITRE 7. MODÈLE PROPOSÉ 53 routes et les rivières sont représentées par des traits de couleurs différentes alors qu’une centralité est identifiée par un point central entouré d’une série de cercles concentriques plus ou moins grands. Lorsqu’une cellule est traversée par une route, cette cellule est marquée comme étant "OnRoad" alors que ses cellules voisines (attenantes) sont marquées "Close". Les autres cellules restent marquées "FarAway". On applique le même principe pour le marquage des rivières. Concernant les centralités, chaque cercle concentrique autour du point central représente un espace différent dans la ville. En partant du point central et en s’éloignant on va trouver successivement différentes régions identifiées par "Core", "Fringe", "Suburb" et "Exurb" qui vont à leur tour être projetées sur la grille pour marquer les cellules présentes dans chaque cercle. Afin de représenter ces différentes informations dans le modèle, on les regroupe par catégorie pour former ce qu’on appelle des "layers". Un "layer" n’est rien d’autre qu’un simple tableau à deux dimensions (une grille de même dimension que le territoire) où chaque cellule contient un marqueur particulier. Nous disposons d’un layer pour la nature du terrain, d’un layer pour la distance aux routes, d’un autre pour la distance aux rivières et d’un dernier pour représenter l’emplacement des cellules dans la ville. On est alors prêt à disposer les formes urbaines sur le territoire en associant une forme urbaine à chaque cellule. Pour savoir quelle forme urbaine va correspondre le mieux à une cellule donnée, nous faisons intervenir des tables d’attraction-répulsion permanentes constituées par des experts du domaine. Ces tables indiquent, pour chaque forme urbaine, quel est son niveau d’attirance (ou inversement de répulsion) par rapport à la nature du terrain, à la proximité d’une route ou d’une rivière, à une région dans la ville. Chaque cellule étant marquée par ces différentes propriétés, nous pouvons savoir quelle forme urbaine est la plus appropriée (la plus attirée) pour une cellule. Mais ce n’est pas tout, nous disposons d’une dernière table d’attraction-répulsion qui opère entre formes urbaines voisines. Par exemple, nous pouvons savoir, grâce à cette table, si une forme urbaine du type "classe résidentielle" préfère être positionnée à côté d’une autre "classe résidentielle" ou si elle préfère être voisine d’une "industrie lourde". On détermine ainsi un score lié à l’occupation de chaque cellule et composé : – de l’attraction de sa forme urbaine par rapport aux propriétés de la cellule (disponibles dans les différents layers) – de l’attraction de sa forme urbaine par rapport aux formes urbaines qui occupent ses cellules voisines Le but étant de trouver la meilleure configuration possible au niveau de la grille entière, ce qui revient à maximiser le score de toutes les cellules réunies. 7.2 Formes urbaines à positionner Les formes urbaines, une fois positionnées dans les cellules de la grille, vont représenter la ville. Encore faut-il disposer d’une liste de formes urbaines à positionner. Nous avons fait l’hypothèse que cette liste est fournie par une procédure en amont qui reste à définir. En effet, ces informations pourront être calculées automatiquement en fonction du modèle de préprogrammation urbaine lorsqu’il aura été présenté dans le détail par les praticiens de l’aménagement urbain (EPAMARNE). Nous considérons donc, pour nos travaux relatifs à ce stage, qu’une liste avec le nombre de chaque forme urbaine est disponible pour la ville à créer, le nombre de ces formes urbaines correspondant au nombre de cellules de la grille. Par exemple, cette liste peut être représentée sous la forme d’un nombre arbitraire de cellules fixé par type de forme urbaine (type, nombre) et imposée au moteur de placement : CHAPITRE 7. MODÈLE PROPOSÉ 54 Nombre de formes urbaine par type Correspondance du type avec la description TypeUseQuantity(0 , 50) ; TypeUseQuantity(1 , 10) ; TypeUseQuantity(2 , 20) ; TypeUseQuantity(3 , 10) ; TypeUseQuantity(4 , 40) ; TypeUseQuantity(5 , 60) ; TypeUseQuantity(6 , 4) ; TypeUseQuantity(7 , 6) ; TypeUseQuantity(8 , 8) ; TypeUseQuantity(9 , 8) ; TypeUseQuantity(10, 10) ; TypeUseQuantity(11, 12) ; TypeUseQuantity(12, 8) ; TypeUseQuantity(13, 6) ; TypeUseQuantity(14, 1) ; TypeUseQuantity(15, 1) ; TypeUseQuantity(16, 1) ; TypeUseQuantity(17, 1) ; 0 : Libre ou Non constructible 1 : HeavyIndustry 2 : Industry 3 : HighclassResidential 4 : MiddleclassResidential 5 : WorkingclassResidential 6 : TransportationNodeGoods 7 : TransportationNodeHumans 8 : Commercial1 9 : Commercial2 10 : Market 11 : Church 12 : Civic 13 : Palace 14 : RoyalPalace 15 : CBDInnerCore 16 : CBDOuterCore 17 : CBDFrame Figure 7.2: Formes urbaines imposées au moteur de résolution Ces types correspondent à ceux définis dans [GROEN-09b] pour lesquels nous disposons de tables d’attraction-répulsion cohérentes (voir la section 7.3). Dans notre cas, le type de forme urbaine "0" est spécial dans le sens où il correspond à aucune forme urbaine particulière : les cellules de la grille qui restent libres (les moins convoitées) ou qui ne sont tout simplement pas constructibles (océan). On parle de forme urbaine "dominante" lorsqu’il s’agit d’une forme urbaine affectée à un quartier, à un îlot ou à une parcelle, car dans la réalité, la mixité fera que ces éléments seront composés de différentes formes urbaines au niveau le plus fin (bâtiments). 7.3 Tables d’attraction-répulsion Pour la répartition des formes urbaines dans la ville, nous disposons de tables d’attraction et de répulsion également inspirées de [GROEN-09b]. Ces tables peuvent être complètement génériques ou facilement adaptées à chaque continent ou pays. Elles indiquent des préférences entre différentes composantes de la ville et peuvent être facilement étendues à d’autres notions que celles supportées actuellement (e.g. nature du sous-sol, pente, voies ferrées, forêt, ...). Elles représentent un moyen souple et efficace pour organiser l’espace urbain en requérant très peu d’informations additionnelles, contrairement à UrbanSim ou GeOpenSim qui nécessitent l’introduction de nombreuses données ou encore la mise au point de règles complexes énoncées par des experts. Dans le cadre d’une pré-programmation, ces tables sont particulièrement bien adaptées puisqu’elles permettent de simuler un résultat réaliste et facilement compréhensible, ce dernier critère étant important pour que les décideurs aient confiance dans le système et puissent ainsi se l’approprier. De plus, elles sont toujours en mesure de fournir une solution, même dans le pire cas. En effet, la réalité nous fournit malheureusement beaucoup de situations qui ne sont pas idéales et parfois contraires aux bonnes pratiques. Elles sont donc capables d’intégrer des décisions contradictoires aux règles habituelles issues d’un arbitrage nécessaire. Elles peuvent également représenter des situations réelles, ce qui permettrait non plus de créer une ville en partant de rien, mais d’aménager la totalité ou une partie d’un espace urbain existant. A contrario, un système basé sur la formalisation de contraintes "dures" exprimées sur des notions aussi compliquées aurait probablement été ardu à imaginer, à mettre en oeuvre et à maintenir, sujet à de nombreuses situations de blocage et au final incapable de proposer une solution réaliste (dans le sens évoqué ci-dessus). Les attractions-répulsions sont représentées par un nombre qui varie entre -999 et +999 et elles s’appliquent à chaque forme urbaine. Le nombre -999 représente une répulsion maximale tandis que CHAPITRE 7. MODÈLE PROPOSÉ 55 +999 représente la plus grande attraction. Ces attractions-répulsions s’appliquent à chaque forme urbaine par rapport : – aux autres formes urbaines déjà en place sur la grille – au type de terrain (colline, océan, montagne, ...) – à la zone dans la ville (centre, banlieue, . . . ) – à la proximité d’une rivière – à la proximité d’un axe routier important De plus, un coefficient multiplicateur (poids) peut-être appliqué à chaque niveau pour prendre en compte les spécificités relatives aux différents continents ou pays. Figure 7.3: Exemple de table d’attraction-répulsion entre les formes urbaines et le type de terrain 7.4 Layers Le système fonctionne avec différents "layers" générés par une modélisation graphique (Figure 7.4) que l’on abordera en détail un peu plus loin dans ce document. CHAPITRE 7. MODÈLE PROPOSÉ 56 Figure 7.4: Procédure de génération des layers Ces "layers" permettent d’associer différentes propriétés statiques à chaque cellule de la grille. On récupère les layers suivants correspondant au quadrillage du territoire : – "Landscape" : identifie la nature du terrain pour chaque cellule (1 : Dune, 2 : Ocean, 3 : Desert, 4 : Hill, 5 : Alpes, 6 : Dirt, 7 : Grass, 8 : HighMountain, 9 : MediumMountain, 10 : lowMountain) – "Area" : identifie la position de la cellule par rapport à une centralité (1 : Core, 2 : Fringe, 3 : Suburb, 4 : Exurb) – "Highway" : indique la présence d’une autoroute dans la cellule ou sa proximité (1 : OnRoad, 2 : Close, 3 : FarAway) – "River" : indique la présence d’une rivière dans la cellule ou sa proximité (1 : FarAway, 2 : InRiver, 3 : Riverbank) Sur la Figure 7.4, la cellule marquée (par un carré noir) dans la modélisation graphique dispose des propriétés suivantes : – il s’agit d’une dune (landscape=1), – située aux extrémités de la ville (area=4), – et éloignée des autoroutes (highway=3) et des rivières (river=1). 7.5 Procédure de placement En combinant les "layers" aux différentes tables d’attraction-répulsion (Figure 7.5), il est possible de calculer un score lié à chaque type de forme urbaine pour une cellule donnée. CHAPITRE 7. MODÈLE PROPOSÉ 57 Figure 7.5: Correspondance entre le layer "Landscape" (grille 16x16) et la table d’attraction-répulsion associée Seule l’attraction-répulsion entre les formes urbaines elles-mêmes ne repose pas sur les layers et reste complètement dynamique. Elle s’exprime par rapport aux formes urbaines voisines déjà positionnées sur la grille. Pour la génération de la ville (affectation d’une forme urbaine "dominante" à chaque cellule de la grille), on cherche à déterminer les formes urbaines Fij , en maximisant la formule générale de la Figure 7.6. CHAPITRE 7. MODÈLE PROPOSÉ C = nbl−1 X nbc−1 X i=0 PVij wf k=1 j=0 58 Af (Fij , Fk ) +wl Al (Fij , Lij )+wa Aa (Fij , Zij )+wr Ar (Fij , Rij )+wh Ah (Fij , Hij ) |Vij | avec : – – – – – – – – – – – – – – – nbl = Nombre de lignes de la grille nbc = Nombre de colonnes de la grille wf = Pondération associée à la forme urbaine Af = Attraction entre formes urbaines wl = Pondération associée au landscape Al = Attraction entre forme urbaine et landscape wa = Pondération associée à la zone dans la ville Aa = Attraction entre forme urbaine et zone dans la ville wr = Pondération associée à la distance aux rivières Ar = Attraction entre forme urbaine et distance aux rivières wh = Pondération associée à la distance aux axes routiers Ah = Attraction entre forme urbaine et distance aux axes routiers Vij = Ensemble de voisins de la cellule (i,j) Fij = Forme urbaine associée à la cellule (i,j) Lij , Zij , Rij , Hij = Layers landscape, zone, river et highway pour la cellule (i,j) Figure 7.6: Formule de placement des formes urbaine à maximiser 7.6 Représentation de la ville par un quadrillage régulier Pour représenter une zone urbaine, on utilise un quadrillage régulier de cellules. Il s’agit d’une représentation symbolique de la ville permettant de situer les grands ensembles sans avoir à descendre à un niveau de détail géométrique. En effet, la pré-programmation se situe en amont des applications de construction et s’en distingue dans le sens où elle doit permettre aux décideurs de comprendre les conséquences et les enjeux de leurs décisions pour les améliorer ou les corriger avant d’engager l’étape de construction elle-même. De plus, la partie du projet relative aux interactions (au sens IHM 1 ) et aux représentations graphiques étant sous la responsabilité de la société Artefacto et du LIMSI, nous n’aborderons pas cet aspect dans notre étude. On se limitera à une représentation simple de la grille de cellules en spécifiant pour chaque cellule la forme urbaine sélectionnée par le moteur de placement. Par exemple, nous obtenons pour une ville constituée de 16x16 cellules, une représentation en Figure 7.7. 1. Interface Homme Machine CHAPITRE 7. MODÈLE PROPOSÉ 0 5 5 5 5 5 5 5 9 8 8 8 0 0 0 0 0 5 5 5 5 5 5 13 7 8 7 7 5 0 0 0 0 4 4 5 5 5 7 8 8 8 8 4 4 4 0 0 0 4 4 4 5 13 9 9 9 7 4 4 4 4 5 5 0 4 4 4 11 17 11 12 11 4 4 4 4 4 5 5 0 4 4 4 10 10 12 10 0 4 4 4 4 4 5 5 59 0 4 4 11 12 11 15 11 4 4 4 4 4 5 5 5 0 0 4 12 10 12 10 10 10 3 3 4 5 5 5 0 0 4 0 0 0 11 12 11 11 13 3 13 5 5 5 0 0 3 0 3 0 12 10 16 10 3 3 4 5 5 5 0 0 3 14 3 0 0 10 11 12 11 13 4 5 5 5 5 0 3 0 0 0 11 0 9 9 9 0 5 5 5 5 5 0 13 0 6 2 6 6 0 9 6 2 2 0 5 5 5 0 5 1 1 1 2 2 5 0 2 1 1 2 2 5 5 Figure 7.7: Représentation du placement des formes urbaines 0 1 2 2 2 2 5 5 5 0 2 1 1 2 0 5 0 1 2 2 2 2 5 5 5 5 0 2 2 1 0 7 Chapitre 8 Résolutions et expérimentations Compte tenu des objectifs fixés pour le stage, notre premier prototype logiciel permettant de résoudre le modèle proposé est réalisé sur les bases de la PPC en utilisant le solveur CHOCO. De plus, ce solveur étant développé en Java, nos développements sont basés sur ce langage objet largement répandu et très riche (nombreuses bibliothèques disponibles, documentations, ...). Au vu des médiocres résultats obtenus lors de nos premiers tests pour la résolution de notre problème, nous proposons par la suite un second prototype basé sur des techniques de Recherche Locale avant d’aborder la phase d’optimisation nécessaire pour un passage à l’échelle. Programmation Par Contraintes avec CHOCO 8.1 Nous choisissons de présenter ce prototype en s’inspirant du tutoriel de CHOCO qui décompose un problème en différentes séquences. Cela nous parait plus didactique dans ce contexte. On pourra de cette manière faire le lien entre les principes de la Programmation Par Contraintes avec la définition de variables, de domaines et de contraintes d’une part et l’utilisation du solver CHOCO d’autre part avec la découverte de son Api 1 , le but étant de bien comprendre la démarche et les objectifs de mise en oeuvre. Cependant, nous ne rentrerons pas dans le détail de l’Api CHOCO. 8.1.1 Formalisation textuelle du problème Une forme urbaine est définie par une valeur numérique entière allant de 0 à 17. La ville est représentée par une grille composée de (n x n) cellules. On cherche à positionner dans chaque cellule de la grille une forme urbaine de sorte à maximiser la fonction globale fij (Cf. le chapitre relatif à la description du modèle). Le nombre de chaque forme urbaine remplissant la totalité de la grille est fixé par une procédure en amont. De la même manière, une forme urbaine peut être "imposée" sur certaines cellules. 8.1.2 8.1.2.1 Description technique Une variable par cellule contenant la forme urbaine Une variable différente est définie pour chaque cellule de la grille (n x n) et chacune de ces variables contient la forme urbaine associée à la cellule : une valeur numérique entière comprise entre 0 et 17. 1 2 3 4 5 6 Integer V ar ia bl e [][] var = new I nt eg er V ar ia bl e [ n ][ n ]; for ( int row = 0; row < n ; row ++) { for ( int col = 0; col < n ; col ++) { var [ row ][ col ] = makeIntVar ( " var - " + row + " -" + col , 0 , 17) ; } } 1. Application Programming Interface ou Interface de programmation 60 CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 8.1.2.2 61 Une contrainte pour fixer le nombre de chaque forme urbaine sur le territoire On a fait l’hypothèse que le nombre de chaque forme urbaine remplissant la grille est fixé par une procédure en amont (représentée par le composant mtu 2 ). On peut traduire cela par la définition d’une contrainte globale devant être respectée. CHOCO propose la contrainte globalCardinality(IntegerVariable[] vars, int[] low, int[] up, int offset) qui fixe une borne mini (low) et maxi (up) pour le nombre d’occurrence de certaines valeurs présentent dans une collection de variables (vars). Pour utiliser cette méthode, nous devons mettre "à plat" le tableau des variables à deux dimensions (var[][]) dans un tableau à une seule dimension (varAll[]) et fixer une borne minimale identique à la borne maximale correspondant au nombre d’occurrence de chaque forme urbaine. La valeur des formes urbaines correspond à l’indice des tableaux low & up. 1 2 3 4 5 6 7 8 9 10 11 varAll [( row * n ) + col ] = var [ row ][ col ]; ... int [] LB2 = new int [ mtu . g e t T y p e U s e Q u a n t i t y () . size () ]; int [] UB2 = new int [ mtu . g e t T y p e U s e Q u a n t i t y () . size () ]; for ( int i = 0; i < mtu . g e t T y p e U s e Q u a n t i t y () . size () ; i ++) { Typ eU se Q ua nt it y tuq = mtu . g e t T y p e U s e Q u a n t i t y () . get ( i ) ; LB2 [ i ] = tuq . getMin () ; UB2 [ i ] = tuq . getMax () ; } model . addConstraint ( Options . C_GCC_BC , g l o b a l C a r d i n a l i t y ( varAll , LB2 , UB2 , 0) ) ; 8.1.2.3 Des contraintes pour écarter les zones non constructibles On veut interdire l’implantation d’une forme urbaine sur une cellule de la grille, si pour cette cellule et cette forme urbaine, on trouve une répulsion maximale correspondant à la valeur "-999". Pour ce faire, on utilise la contrainte neq(IntegerExpressionVariable x, int c) qui interdit une valeur particulière (c) pour une variable (x). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 for ( int rowCell = 0; rowCell < n ; rowCell ++) { for ( int colCell = 0; colCell < n ; colCell ++) { /* On r é c u p è r e le type de terrain associé à la cellule */ int typeLandscape = ml . g e t L a y e r L a n d s c a p e ( rowCell , colCell ) ; for ( int cptTypeUse = 0; cptTypeUse < 17; cptTypeUse ++) { int attract = ma . g e t A t t r a c t L a n d s c a p e ( cptTypeUse , typeLandscape - 1) ; /* Si la forme urbaine est i n c o m p a t i b l e avec le type de terrain * associé à la cellule = > P o s i t i o n n e m e n t c o n t r a i n t e */ if ( attract == -999) { Constraint c = neq ( var [ rowCell ][ colCell ] , ( cptTypeUse + 1) ) ; model . addConstraint ( c ) ; } } } } 8.1.2.4 Des contraintes pour forcer une forme urbaine particulière sur une cellule Si une forme urbaine est imposée par l’utilisateur sur une cellule précise, il faut être en mesure de respecter cette contrainte. De plus, si on fixe en amont une forme urbaine pour chaque cellule, le système est "contraint" de telle manière qu’il ne peut y avoir qu’une seule solution au problème (celle imposée). Cela peut être très utile pour vérifier le score global correspondant à cette situation afin de tester ou comparer le comportement de différents algorithmes. C’est le rôle du composant "mtu" qui contient les formes urbaines éventuelles à imposer aux différentes cellules. Dans ce cas, on met en oeuvre la contrainte eq(IntegerExpressionVariable x, int c) qui impose une valeur particulière (c) à une variable (x). 2. Model Type Use CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 1 2 3 4 5 6 7 62 /* * Prise en compte des types d ’ u t i l i s a t i o n imposés pour une p o s i t i o n précise */ for ( TypeUseForce ftu : mtu . g e tT yp eU s eF or ce () ) { Constraint c = eq ( var [ ftu . getRow () ][ ftu . getCol () ] , ftu . getTypeUse () ) ; model . addConstraint ( c ) ; } 8.1.2.5 Définition de la variable de score global à maximiser On définit une variable correspondant au score global (varGlobalScore) que l’on cherche à maximiser. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 /* Score global sur l ’ e n s e m b l e de la zone urbaine r e s u l t a n t du cumul des scores statics pour chaque zone et * du score d y n a m i q u e de chaque zone par rapport à ses voisins directs . * On cherche a o p t i m i s e r cette valeur ( MAXIMUM ) pour obtenir la m e i l l e u r e u r b a n i s a t i o n */ varGlobalSco re = makeIntVar ( " var - global - score " , 0 , 300000) ; model . addVariable ( v arGlobal Score ) ; ... Solver solver = new CPSolver () ; solver . read ( model ) ; ... solver . maximize ( solver . getVar ( co n st ra in t Sc or e . g e t V a r G l o b a l S c o r e () ) , true ) ; if ( solver . existsS olution () ) { // a f f i c h a g e de la s o l u t i o n ... return new R e s u l t P o s i t i o n D i s t r i c t ( result , score ) ; } else { if ( isTrace () ) { System . out . println ( " Pas de solution " ) ; } return null ; } 8.1.2.6 Contraintes sur la variable de score global Le score global correspond au cumul, pour chaque cellule de la grille, du score réalisé par la forme urbaine associée à cette cellule. Le score lié à chaque cellule pour le type de forme urbaine qui lui est associé peut se décomposer en deux parties complémentaires : – le score "statique" provenant des attractions entre la forme urbaine associée à la cellule et les propriétés relatives à cette cellule représentées par le type de terrain, la position dans la ville, la proximité d’une route ou d’une rivière (éléments dépendants de la cellule et invariables) – le score "dynamique" provenant des attractions entre la forme urbaine de la cellule et chaque forme urbaine des cellules voisines Cette traduction dans CHOCO n’est pas simple. De plus, il faut tenir compte du nombre variable de voisins associé à chaque cellule (celles situées aux bords de la grille ont moins de voisins) et ne pas tenir compte des cellules voisines sans affectation (forme urbaine à zéro). Pour cela, on fera un cumul de l’attraction de chaque voisin que l’on divisera par le nombre de voisins disposant d’une forme urbaine. Mise en relation de la variable de score global avec le cumul des scores réalisés sur chaque cellule On définit deux variables complémentaires pour chaque cellule de la grille. Ces variables vont correspondre au score "statique" (varScoreLandscape) d’une part et au score "dynamique" (varScoreVoisinage) d’autre part de chaque cellule. On prévoit une combinaison de contraintes qui établissent la relation mathématique entre le score global d’une part et le cumul des scores "statiques" et "dynamiques" de chacune des cellules. L’opérateur plus(IntegerExpressionVariable t1, IntegerExpressionVariable t2) retourne une "expression variable" correspondant à la somme des deux arguments transmis. L’opérateur sum(IntegerExpressionVariable... lv) retourne une "expression entière" correspondant à la somme des variables transmises en argument. CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 1 2 3 4 5 6 7 8 9 63 private I nt eg er V ar ia bl e [] v a r S c o r e L a n d s c a p e ; private I nt eg er V ar ia bl e [] v a r S c o r e V o i s i n a g e ; ... va rSc o r e L a n d s c a p e = new I nt eg er V ar ia bl e [ n * n ]; va rSc o r e V o i s i n a g e = new I nt eg er V ar ia bl e [ n * n ]; ... /* Calcul du score global */ Constraint globalScore = eq ( plus ( sum ( v a r S c o r e L a n d s c a p e ) , sum ( v a r S c o r e V o i s i n a g e ) ) , v arGlobal Score ) ; model . addConstraint ( globalScore ) ; Calcul du score "statique" d’une cellule Ce traitement est réalisé pour chaque cellule de la grille (boucles sur chaque row & col). On définit la variable contenant le score "statique" de la cellule (row, col). 1 2 3 /* Score de la cellule relatif aux layers */ va rSc o r e L a n d s c a p e [( row * n ) + col ] = makeIntVar ( " varScoreLandscape - " + row + " -" + col , -3497 , 3497) ; model . addVariable ( v a r S c o r e L a n d s c a p e [( row * n ) + col ]) ; Le domaine de cette variable est borné de (-3497) à (+3497) correspondant aux valeurs extrêmes pouvant être atteintes pour ce score en fonction de la formule suivante : 1 2 3 4 5 6 int attract = ( int ) ( v a l A t t r a c t L a n d s c a p e * ma . getWeights (1) ) + ( int ) ( valAttra ctArea * ma . getWeights (2) ) + ( int ) ( va l At tr ac t Ri ve r * ma . getWeights (3) ) + ( int ) ( v a l A t t r a c t H i g h w a y * ma . getWeights (4) ) ; /* * avec : * weights = new float [] {2 , 1 , 1 , 0 ,5 , 1}; * soit en valeur absolue : (999 * 3 ,5) = 3496.5 */ Une nouvelle contrainte peut alors être intégrée au modèle. De façon générale, nth(IntegerVariable index, int[] values, IntegerVariable val) garantit que la variable val contiendra la valeur de values[index]. Dans notre cas, le score "statique" correspondant à la cellule (row, col) et représenté par la variable varScoreLandscape[(row*n)+col] doit correspondre à globalAttract[row][col][var[row][col]] : un tableau de constantes pré-calculées qui contient pour une cellule (row, col) une liste de scores "statiques", chacun de ces scores étant lié à une forme urbaine. 1 2 Constraint c o n s t r a i n S c o r e L a n d s c a p e = nth ( var [ row ][ col ] , globalAttract [ row ][ col ] , v a r S c o r e L a n dsc ape [( row * n ) + col ]) ; model . addConstraint ( c o n s t r a i n S c o r e L a n d s c a p e ) ; Calcul du score dynamique d’une cellule Pour le calcul du score "dynamique" d’une cellule, les choses sont un peu plus complexes. Trois structures de données pour identifier le voisinage Par arriver à modéliser cette partie du problème, nous avons utilisé trois structures des données complémentaires définies pour chaque voisin de la cellule concernée (avec une correspondance entre les indices de chaque structure pour le même voisin) : 1 2 3 4 5 6 7 8 9 10 Integer V ar ia bl e [] voisins = Tools . getVoisins ( row , col , var ) ; Integer V ar ia bl e [] v a r S c o r e L o c a l V o i s i n a g e = new I nt eg er V ar ia bl e [ voisins . length ]; Integer V ar ia bl e [] v a r C o u n t e r S c o r e L o c a l V o i s i n a g e = new I nt eg er V ar ia bl e [ voisins . length ]; ... for ( int cptVoisin = 0; cptVoisin < voisins . length ; cptVoisin ++) { Int eg er V ar ia bl e voisin = voisins [ cptVoisin ]; v a r S c o r e L o c a l V o i s i n a g e [ cptVoisin ] = makeIntVar ( " varScoreLocalVoisinage - " + row + " -" + col + " -" + cptVoisin , -1998 , 1998) ; v a r C o u n t e r S c o r e L o c a l V o i s i n a g e [ cptVoisin ] = makeIntVar ( " va rCo unt erS co reL oca lVo isi na ge - " + row + " -" + col + " -" + cptVoisin , 0 , 1) ; ... } – voisins contient la liste des variables qui mémorisent la forme urbaine de chaque cellule voisine . On "pointe" vers les variables d’origine var[row][col]. CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 64 – varScoreLocalVoisinage contient le score d’attraction-répulsion entre la forme urbaine courante et la forme urbaine associée au voisin – varCounterScoreLocalVoisinage contient un indicateur (0 ou 1) pour spécifier, en correspondance avec chaque voisin, si ce dernier contribue au score : "0" indique que le voisin ne dispose pas de forme urbaine, sinon "1". Une contrainte pour définir varScoreLocalVoisinage Nous avons déjà utilisé la contrainte nth(...) précédemment. Nous utilisons ici une variante de cette méthode permettant d’accéder à une structure à deux dimensions : varScoreLocalVoisinage[cptVoisin] = globalScoreVoisinage[voisin, var[row][col]] ; Sachant que globalScoreVoisinage est une structure de données intermédiaires pré-calculée contenant les scores entre formes urbaines deux à deux : int[][] globalScoreVoisinage = Tools.getGlobalScoreVoisinage(ma) ; Le composant ma représente le modèle d’attraction à utiliser. 1 2 Constraint c o n s t r a i n t S c o r e L o c a l V o i s i n a g e = nth ( voisin , var [ row ][ col ] , globalScoreVoisinage , v a r S c o r e L o c a l V o i s i n a g e [ cptVoisin ]) ; model . addConstraint ( c o n s t r a i n t S c o r e L o c a l V o i s i n a g e ) ; Une contrainte pour définir varCounterScoreLocalVoisinage On utilise le même principe pour savoir si le voisin courant est pris en compte dans le calcul du score : varCounterScoreLocalVoisinage[cptVoisin] = counterScore[voisin] ; Pour cela, on passe par une structure de données intermédiaire "counterScore" qui indique pour chaque forme urbaine (de 0 à 17) si on doit prendre en compte (1) ou non (0) cette forme urbaine dans les calculs : private static int[] counterScore = new int[] {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} ; 1 2 Constraint c o n s t r a i n t N b r e V o i s i n W i t h S c o r e = nth ( voisin , counterScore , v a r C o u n t e r S c o r e L o c a l V o i s i n a g e [ cptVoisin ]) ; model . addConstraint ( c o n s t r a i n t N b r e V o i s i n W i t h S c o r e ) ; Dernière étape pour définir le score dynamique Une cellule dispose de 8 voisins au maximum. On prévoit une structure de données pour mettre en correspondance le nombre de voisins pris en compte dans le calcul (de 0 à 8) et le dénominateur à utiliser (gymnastique nécessaire pour éviter une division par zéro : si aucun voisin, on prévoit une division par 1 correspondant au premier indice de la structure) : private static int[] divBy = new int[] {1, 1, 2, 3, 4, 5, 6, 7, 8} ; varScoreVoisinageTmp correspond au cumul réalisé avec tous les voisins. varScoreVoisinageDiv1 correspond au nombre de voisins impliqués dans le cumul (de 0 à 8) varScoreVoisinageDiv2 correspond au dénominateur à utiliser en correspondance avec varScoreVoisinageDiv1 (de 1 à 8) A partir de ces différents éléments, on est en mesure de déterminer le score "dynamique" varScoreVoisinage[(row*n)+col] relatif à la cellule en cours par rapport à son voisinage : la division de varScoreVoisinageTmp par varScoreVoisinageDiv2. Cette division est représentée par la contrainte intDiv(IntegerVariable x, IntegerVariable y, IntegerVariable z) qui impose z = x / y. CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 1 2 3 4 5 6 7 8 9 10 11 12 65 Integer V ar ia bl e v a r S c o r e V o i s i n a g e T m p = makeIntVar ( " varScoreVoisinageTmp - " + row + " -" + col , ( -1998 * voisins . length ) , (1998 * voisins . length ) ) ; va rSc o r e V o i s i n a g e [( row * n ) + col ] = makeIntVar ( " varScoreVoisinage - " + row + " -" + col , -1998 , 1998) ; Integer V ar ia bl e v a r S c o r e V o i s i n a g e D i v 1 = makeIntVar ( " varScoreVoisinageDiv - " + row + " -" + col , 0 , 8) ; Integer V ar ia bl e v a r S c o r e V o i s i n a g e D i v 2 = makeIntVar ( " varScoreVoisinageDiv - " + row + " -" + col , 1 , 8) ; Constraint c o n s t r a i n t S c o r e V o i s i n a g e T m p = eq ( varScoreVoisinageTmp , sum ( v a r S c o r e L o c a l V o i s i n a g e ) ) ; model . addConstraint ( c o n s t r a i n t S c o r e V o i s i n a g e T m p ) ; Constraint c o n s t r a i n t S c o r e V o i s i n a g e D i v 1 = eq ( varScoreVoisinageDiv1 , sum ( varCounterScoreLocalVoisinage )); model . addConstraint ( c o n s t r a i n t S c o r e V o i s i n a g e D i v 1 ) ; Constraint c o n s t r a i n t S c o r e V o i s i n a g e D i v 2 = nth ( varScoreVoisinageDiv1 , divBy , v a r S c o r e V o i s i n a g e D i v 2 ) ; model . addConstraint ( c o n s t r a i n t S c o r e V o i s i n a g e D i v 2 ) ; Constraint c o n s t r a i n t V o i s i n a g e = intDiv ( varScoreVoisinageTmp , varScoreVoisinageDiv2 , v a r S c o r e V o i s i n a g e [( row * n ) + col ]) ; model . addConstraint ( c o n s t r a i n t V o i s i n a g e ) ; 8.1.3 8.1.3.1 Évaluation et résultats Évaluation Nous avons présenté ce prototype à Charles Prud’homme, Ingénieur de recherche EMN 3 en charge de l’administration et du développement de la plateforme CHOCO. Cet expert du domaine nous a permis de valider notre démarche tout en indiquant certaines pistes pour optimiser notre application (éviter les divisions, limiter les ifThenElse, réduire le domaine des variables, paramétrage du moteur CHOCO, ...). D’autre part, pour vérifier la cohérence de certains résultats obtenus par ce prototype, nous avons développé en parallèle certaines procédures (manuelles) pour nous permettre de comparer le score d’une grille déjà renseignée. 8.1.3.2 Résultats et optimisations Malgré la mise en place des optimisations préconisées, cette application n’est pas en mesure de fournir une réponse dans un temps raisonnable pour un positionnement global 4 , même sur une grille (4x4). Nous l’avons néanmoins lancée sur un serveur de test puissant du Lina pour obtenir un résultat optimal (positionnement et score) qui devait nous servir de référence pour la mise au point de futurs prototypes sur une grille 16x16 particulière. Cette procédure a été lancée le 13 mai 2011 mais elle a dû être interrompue volontairement 12 jours plus tard faute de résultat. Parallèlement, nous avons mis en place une méthode de placement par "raffinements successifs" au lieu d’une méthode de placement globale, tout en utilisant le même moteur de base. Le principe consiste à positionner une première forme urbaine sur une grille vierge, puis une seconde forme urbaine en tenant compte du placement précédent, etc. Cette façon de procéder permet d’obtenir des résultats partiels en quelques secondes, chaque placement de forme urbaine prenant entre 6 et 8 secondes au début et 1 à 2 secondes à la fin du processus. Pour renseigner une grille complète (16x16), correspondant à 206 formes urbaines dans notre exemple (déduction faite des formes urbaines à 0), il faut compter une vingtaine de minutes au total avec un score global atteignant "93 038" à chaque test (résultat constant). Dans ce cas, le choix précédent n’est jamais remis en cause. De ce fait, la séquence de proposition des formes urbaines a une influence importante sur le résultat final. Dans nos tests, nous nous sommes limités à proposer les formes urbaines par ordre croissant de numérotation (de 1 à 17) sachant que la grille est initialement renseignée avec toutes ses formes urbaines à zéro. Par la suite, une évolution du prototype a consisté à découper la grille (16x16) en quatre parties équivalentes de (4x4) cellules, permettant ainsi de décomposer le problème et de réduire l’espace de recherche aux différents fragments. A chaque itération, on demande le placement d’une forme urbaine sur une partie de la grille en figeant les trois autres parties. On répète cette opération (scénarios de la Figure 8.1) pour chaque partie et on compare les quatre scores obtenus en conservant uniquement le meilleur résultat. 3. École de Mines de Nantes 4. positionnement de toutes les formes urbaines sur la grille en une seule opération CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 66 Figure 8.1: 4 estimations sont réalisées avant de placer réellement une forme urbaine. Pour les zones interdites, on force le type des formes urbaines. Seule la partie active (avec un engrenage) permet de positionner une nouvelle forme urbaine. Le moteur fait quatres tentatives pour la même forme urbaine (scénarios) et conserve celle qui génére le meilleur score. On répète cette opération jusqu’au placement final de toutes les formes urbaines. Lorsqu’une partie est pleine, elle est ignorée du processus de placement. Dans ce schéma, il arrive que l’on ait des scores identiques pour un placement sur différentes parties de la grille ; un choix aléatoire parmi les scénarios équivalents est alors réalisé pour le placement définitif. Compte tenu de l’introduction de ce paramètre aléatoire, le résultat final obtenu peut varier d’un test à l’autre. La parallélisation de la recherche (scénarios) sur les quatre parties dans des threads différents aurait dû permettre une amélioration sensible des temps de réponse. Ceci n’a pas pu être réalisé avec succès car la bibliothèque CHOCO utilise des éléments "static" (de type Iterator) qui n’autorisent pas son exploitation en multi-thread (dans la même JVM 5 ). En lançant la recherche de façon séquentielle sur chaque partie, le processus de placement met vingt-sept minutes pour se finaliser avec un score variable proche du résultat précédent (≈ 92 861). 8.1.4 Conclusion Il existe différentes façons de modéliser un problème en PPC et la manière de le représenter peut fortement influencer les performances du système. L’intervention d’un expert de ce domaine a permis d’améliorer notre implémentation et de réduire les temps de traitement, mais ces derniers restent trop importants sur une grille de taille réduite (16x16) pour pouvoir exploiter ce prototype dans un contexte interactif et sur des espaces urbains importants. Rendre l’Api CHOCO multi-thread permettrait une décomposition des problèmes en fragments avec des temps de calculs plus intéressants. Néanmoins, le fait de placer une forme urbaine sans pouvoir remettre en cause ce choix n’est pas plus satisfaisant. En fait, la PPC n’est pas adaptée à notre modèle basé sur l’attraction-répulsion car il autorise beaucoup de solutions (sous-contraint) rendant inopérant les techniques de filtrage : quelque soit le solver utilisé, il ne sera pas en mesure de proposer une solution optimale en un temps raisonnable compte tenu du nombre de solutions à évaluer. Résolu à trouvé la solution optimale garantie, nous avons lancé une résolution qui a duré plusieurs jours avec d’être interrompue. Ceci confirme l’échec de la PPC dans ce contexte précis. 5. Java Virtual Machine CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 8.2 67 Recherche locale Comme cela est mentionné à la fin du paragraphe 5.3, les techniques de RL sont souvent utilisées quand les autres méthodes échouent à cause de la trop grande taille ou du manque de structure d’un problème. Compte tenu des résultats médiocres liés au premier prototype, nous avons envisagé un second prototype pour mettre en oeuvre les techniques de RL en utilisant le même modèle (Cf. chapitre 7) et en appliquant quelques adaptations au niveau de l’interface graphique pour qu’elle puisse transmettre différents paramètres de configuration. 8.2.1 Sélection des techniques principales de RL Les techniques relatives à la Recherche Locale sont nombreuses. Il faut donc se poser la question des techniques les plus appropriées pour résoudre efficacement notre problème. Les auteurs de [HAO-99] pensent que la recherche tabou, qui se caractérise par sa stratégie agressive de recherche (choix d’un des meilleurs mouvements à chaque itération) combinée avec différentes possibilités permettant de s’adapter au problème et d’intégrer des connaissances spécifiques, fait partie des meilleures métaheuristiques pour les problèmes d’affectation sous contraintes. Notre prototype de base s’articule donc autour de deux techniques principales et complémentaires : – la méthode de plus forte descente très populaire qui choisit à chaque étape la meilleure configuration voisine parmi celles qui améliorent la solution courante, – la méthode tabou introduite par [GLOVER-86] et [HANSEN-86] qui construit un voisinage excluant un certain nombre de configurations récemment visitées ou de mouvements récemment utilisés. La première méthode se caractérise par sa simplicité et sa rapidité. Elle est donc une bonne candidate pour une première implémentation du modèle et pourra servir de référence. Cependant, elle n’est pas en mesure de progresser au-delà du premier maximum local. La seconde méthode pourra s’appuyer en partie sur la précédente méthode et mettre en oeuvre des mécanismes de diversification pour s’échapper des maximums locaux. 8.2.2 Principe général lié aux permutations Considérons le fonctionnement classique suivant : 1. Première génération aléatoire (en respectant le nombre de chaque forme urbaine) 2. Recherche d’une permutation optimale pour chaque itération 3. Perturbations éventuelles et retour en (2) Par rapport à une solution courante (grille avec une forme urbaine positionnée sur chaque cellule), le voisinage correspond à l’ensemble des permutations immédiates réalisables entre deux cellules (échange des formes urbaines entre les deux cellules). Un voisin lié à la solution courante correspond donc à une seule permutation (Figure 8.2). CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 68 Figure 8.2: Permutation des formes urbaines entre deux cellules Lors d’une permutation, il est possible d’actualiser le score "global" sans avoir à recalculer le score obtenu pour chaque cellule de la grille. Il suffit pour cela d’appliquer sur le précédent score "global" l’écart entre : – le score "local" des cellules liées à la permutation avant permutation – le score "local" des cellules liées à la permutation après permutation Dans notre cas, le score "local" d’une cellule correspond au score de la cellule et au cumul des scores réalisés par chacune de ses voisines. Cela s’explique par le fait qu’il existe une attraction-répulsion "dynamique" entre chaque forme urbaine "non réciproque". Prenons pas exemple le cas des classes résidentielles privilégiées et moyennes : les classes résidentielles privilégiées veulent habiter à proximité d’autres classes résidentielles privilégiées en priorité puis éventuellement à proximité de classes moyennes. Par contre, les classes résidentielles moyennes souhaitent vivre en priorité auprès des classes privilégiées et ensuite seulement, à proximité des classes moyennes. Donc si on change la forme urbaine d’une cellule, le score lié à cette cellule risque de changer, mais celui de ses voisines également. A noter que les modes de calcul varient légèrement en fonction de la distance entre les cellules impliquées dans la permutation (voisines, proches, distantes) mais le principe reste le même. 8.2.3 Fonctionnement général Le fonctionnement général de la RL peut être synthétisé par la Figure 8.3. CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 69 Figure 8.3: RL - fonctionnement général Nous reprenons ci-dessous le détail de chaque action en correspondance avec sa numérotation. 8.2.3.1 Initialiser les paramètres de configuration On récupère le composant de configuration que l’on prend en compte pour initialiser les comportements de la simulation. A partir des éléments courants, on calcule le score global courant qu’on utilise pour initialiser le meilleur score global. On fait de même pour initialiser le score relatif au contrôle de convergence locale. 8.2.3.2 Déterminer si les conditions de fin sont remplies On stoppe la simulation si : – aucune alternative n’est autorisée (pas de permutation trouvée) – le nombre d’itérations maximum est atteint – le temps maximum de simulation est atteint – le meilleur score réalisé >= score minimum à atteindre 8.2.3.3 Construction du résultat On construit le composant représentant le résultat de la simulation avec : CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 70 – l’emplacement des formes urbaines sur chaque cellule de la grille – le score global réalisé par la simulation 8.2.3.4 Récupérer la liste des candidats Il s’agit de récupérer la liste des cellules qui doivent être comparées aux autres cellules de la grille pour déterminer la meilleure permutation possible. Si un nombre maximum de candidats ’m’ est spécifié dans la configuration, on retourne les ’m’ cellules dont les scores sont les moins bons sinon on retourne l’ensemble des cellules de la grille. 8.2.3.5 Rechercher la meilleure permutation possible Cette recherche se décompose en plusieurs étapes (Figure 8.4). Figure 8.4: RL : Rechercher la meilleure permutation possible Dans un premier temps (20), il s’agit de rechercher la permutation qui, en fonction du contexte courant, procure la meilleure amélioration du score global. Ensuite (21), on se demande si il faut réaliser une nouvelle recherche avec des paramètres moins contraignants (mustRetry ?). Cela dépend des conditions suivantes : – la recherche a retourné une permutation → (mustRetry = false) – le contexte courant n’autorise pas toutes les distances entre cellules mais une seule distance → (mustRetry = true) CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 71 – il n’y a ni liste tabou ni de limitation pour le nombre de candidats → (mustRetry = false) – dans tous les autres cas → (mustRetry = true) Si on doit refaire une tentative de recherche avec des critères moins restrictifs (mustRetry == true) : – on supprime temporairement (dans le contexte) les restrictions suivantes : – on ne limite plus le nombre de candidats (pour prendre en compte toutes les cellules de la grille) (22) – on autorise toutes les distances entre candidats (voisines, proches ou distantes) (23) – on actualise la liste des candidats avec les nouveaux critères (24) – on relance la recherche d’une permutation (25) Concernant la procédure de recherche d’une permutation (20 & 25), elle peut retourner plusieurs scénarios 6 si ils améliorent tous le score de la même manière. 8.2.3.6 Effectuer une éventuelle perturbation Si le résultat courant est supérieur au meilleur résultat obtenu alors on remplace le meilleur résultat obtenu par le résultat courant. Ensuite, si il reste des perturbations à effectuer par rapport à la configuration, on repart du meilleur résultat et on lui applique le nombre de mouvements prévus dans la configuration en choisissant les cellules de façon aléatoire, sachant que pour valider un mouvement, les formes urbaines doivent être différentes. De plus, si une liste tabou est disponible, chaque mouvement est intégré à la liste. A la fin de la perturbation, il est nécessaire de recalculer le score global courant. Par contre, dans le cas où le nombre total de perturbations prévues a été atteint, on considère qu’il n’y a plus d’alternative possible (ce qui provoquera la fin de la simulation). 8.2.3.7 Permuter la valeur des cellules Si la permutation trouvée contient plusieurs scénarios, on choisit un scénario de façon aléatoire dans la liste. On procède alors à la permutation des formes urbaines entre les deux cellules concernées. On actualise enfin le score global courant à partir de l’écart associé à la permutation (score local). 8.2.3.8 Mémoriser le meilleur score Dans la mesure où l’on autorise des dégradations du score, on mémorise la solution courante comme étant la meilleure solution globale uniquement si le score courant est supérieur au meilleur score rencontré. 8.2.3.9 Actualiser la liste tabou Le scénario sélectionné pour la permutation concerne deux cellules représentées par (A , B). Si la liste tabou est active, on mémorise dans cette liste le couple de cellules (A, B) pour interdire une future permutation de A → B ou de B → A. 8.2.3.10 Vérifier si maximum local Dans le cas où cette détection est active, le système vérifie toutes les ’i’ itérations si le meilleur score global trouvé a pu être élevé d’un certain seuil ’s’ par rapport au meilleur score de convergence local mémorisé depuis le dernier contrôle. Si ce n’est pas le cas, il considère qu’il y a enfermement dans un maximum local et il réalise une perturbation sur le meilleur résultat connu en réalisant ’m’ mouvements aléatoires, en actualisant la liste tabou avec chaque mouvement si elle est active et en recalculant le score global : ce qui constitue le nouvelle configuration courante. Dans les deux cas, on initialise le meilleur score de convergence local à partir du meilleur score global connu. 6. On considère ici qu’un scénario spécifie deux cellules de la grille dont les formes urbaines doivent être échangées permettant d’améliorer le score global CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 8.2.3.11 72 Actualiser les statistiques Si l’option est active, on fait appel au composant histogramme (JFreeChart) en lui transmettant le score global courant et le numéro d’itération correspondant. 8.2.4 Contribution relative aux techniques de RL En plus des techniques générales de RL évoquées au amont, nous abordons ci-dessous un ensemble de techniques plus originales implémentées dans notre prototype. Ces techniques résultent de nos différents tests et observations. Elles ont pour objectif d’améliorer soit les performances de résolution, soit les scores obtenus. 8.2.4.1 Réduction du voisinage en fonction de la distance entre deux cellules et utilisation d’un cache de données On définit quatre types de distance à respecter entre cellules : – voisines : les deux cellules se touchent – proches : les deux cellules ne se touchent pas mais elles ont des cellules voisines en commun – distantes : les deux cellules ne se touchent pas et elles n’ont pas de cellules voisines en commun – pas de restriction : la notion de distance n’intervient pas dans le choix du voisinage A chaque itération, on choisit une distance parmi les quatre possibles en respectant les proportions de tirage définies pour chaque distance. La succession de cellules évaluées (en binôme) pour rechercher la meilleure permutation doit alors respecter la distance sélectionnée. La proportion liée à la sélection des distances peut évoluer pendant le processus. Couplé à cette technique, nous avons intégré un cache de score "local" pour chaque cellule et pour chaque forme urbaine. Le principe de calcul de ce cache est le suivant pour chaque cellule : 1 2 3 4 5 6 7 Mémoriser le type de forme urbaine d ’ origine de la cellule Pour chaque type de forme urbaine F possible : Associer à la cellule la forme urbaine F Calculer le score " local " lié à la cellule ( score de la cellule + score de ses voisines ) Mémoriser en cache le score " local " pour la cellule et le type de forme urbaine F Fin pour Restaurer le type de forme urbaine d ’ origine à la cellule De cette manière, on connait à l’avance pour une cellule donnée son score "local" pour sa forme urbaine courante et pour chaque changement potentiel de forme urbaine. Ainsi, au lieu de refaire le calcul de ce score "local" à chaque fois que l’on veut évaluer le gain d’une permutation entre une cellule A (candidate) avec une cellule B (de la grille), on peut récupérer du cache le score pour la forme urbaine courante (score local avant) puis pour la forme urbaine de la cellule opposée (score local après). Ce principe procure un gain de temps conséquent pour les grilles importantes. Il y a tout de même une restriction à l’utilisation de cette technique : il faut que les cellules soient "distantes". Dans le cas contraire, on calcule le score avant et après modification. En contrepartie, ce procédé nécessite une actualisation du cache "local" pour chaque permutation effective : le cache lié aux cellules concernées et à leur voisinage réciproque. 8.2.4.2 Élimination des mauvais candidats : la "liste des bannis" Lorsque l’on construit la liste des plus mauvais candidats, on imagine que ce sont eux qui ont le plus de chance de générer un profit important pour améliorer le score global. Et effectivement, l’activation de cette option permet d’améliorer sensiblement les temps d’une simulation pour de grandes grilles. Néanmoins, nos observations à travers un outil de "profiling" d’applications (jvisualvm 7 ) ont démontré que certains de ces candidats n’étaient pas pertinents. Nous fournissons donc un mécanisme complémentaire qui permet d’éliminer de cette recherche les mauvais candidats incapables de générer du profit. 7. Disponible dans le kit de développement Sun (JDK) CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 73 Pour l’implémentation de cette fonctionnalité, nous nous sommes inspirés du principe de la liste tabou, mais cette liste intervient en amont du processus de recherche. Alimentation de la liste Dès qu’un mauvais candidat (sélectionné parmi les plus mauvais) est incapable de générer de profit sur l’ensemble des permutations potentielles avec les autres cellules de la grille, on considère qu’il s’agit d’un candidat à bannir et on l’inscrit dans une liste pour ne plus l’intégrer dans notre processus de recherche des plus mauvais candidats : on parlera de la "liste des bannis". De cette manière, on évite de rechercher un profit potentiel pour cette cellule avec l’ensemble des autres cellules de la grille. Taille dynamique de la liste Ces candidats bannis sont mémorisés dans une liste FIFO 8 qui maintient chaque élément un certain temps. Lorsque la liste est pleine, l’élément le plus ancien est retiré. Mais il est intéressant d’augmenter la taille de cette liste au fur et à mesure du processus. En effet, après une recherche infructueuse de la meilleure permutation possible (Figure 8.4 - n° 20), on constate que tous les candidats qui ont pu être évalués dans le processus de recherche, bien qu’ils ne soient pas présents dans la liste des bannis, n’ont pas permis d’améliorer le score. Il est donc utile à ce moment d’augmenter la taille de la liste des bannis (Figure 8.4 - juste après le n° 25). On dispose pour cela d’un coefficient applicable à la taille courante de la liste pour augmenter sa capacité (tout en restant < au nombre de cellules de la grille). Comme on pourra le constater dans la section "Résultats", l’activation conjointe de ces deux options permet d’améliorer très nettement les temps d’une simulation sans contrepartie sur la qualité des recherches. 8.2.4.3 Résultats Prenons à présent un moment pour évoquer les résultats obtenus par les différentes techniques de RL décrites précédemment et utilisées dans les contextes suivants : – exploitées dans la méthode de plus forte descente – exploitées par la méthode tabou Les résultats ont été obtenus en exécutant les simulations sur deux grilles (32x32 ; 64x64) afin de mettre en évidence les écarts entre les temps de résolution et la qualité des résultats (score). A ce niveau, le nombre de simulations n’est pas essentiel dès lors où les résultats sont relativement stables et les écarts entre techniques suffisamment importants. Contexte de plus forte descente En comparant les résultats pour les jeux de paramètres A et B de la Figure 8.5, on constate que les mécanismes liés à la sélection de cellules distantes permettent d’améliorer les temps de recherche sans dégrader le résultat obtenu. D’autre part, il apparait également au vu des résultats obtenus sur la grille 64x64 de cette même figure, que l’activation d’une liste dynamique de candidats bannis permet de diviser le temps d’une simulation par un facteur ≈7 en obtenant un bon score final (relatif au jeux de paramètres H et M). 8. First In, First Out CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 74 Jeu param. Distance Perturbation Mouvement Candidat Bannis % Augm. bannis Nbre simulation A 100 % distant 3 10 0 0 0 10 B 100 % indifférent 3 10 0 0 0 2 C 100 % indifférent 3 10 20 0 0 5 D 100 % indifférent 3 10 20 100 0 5 E 100 % indifférent 3 10 20 100 10 5 F 100 % distant 3 10 20 100 10 5 G 100 % distant 10 20 50 200 10 10 H 100% indifférent 0 0 100 0 0 1 I 100 % distant 0 0 100 0 0 1 J 100% indifférent 0 0 100 400 0 1 K 100 % distant 0 0 100 400 0 1 L 100% indifférent 0 0 100 400 10 1 M 100 % distant 0 0 100 400 10 2 Figure 8.5: Méthode de plus forte descente - Score réalisé et temps de traitement correspondant pour une grille 32x32 (à gauche) et une grille 64x64 (à droite) en fonction des différents jeux de paramètres (A, ..., M). CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS Jeu param. A Distance 100 % distant 75 Temps max. Tabou Candidat Bannis 30 s 200 0 0 Max. local Nbre simulation 2 B 100 % distant 30 s 200 20 100 C 100 % indifférent 60 s 200 50 200 10-5-20 5 2 D 100 % indifférent 60 s 200 50 200 10-50-10 2 E 100 % indifférent 240 s 200 50 200 10-50-10 1 F 100 % indifférent 240 s 200 0 0 10-50-10 1 G 100 % indifférent 480 s 200 50 200 10-50-10 1 H 100 % distant 600 s 600 100 400 10-50-40 1 I 100 % distant 999 s 600 100 400 10-50-40 1 Figure 8.6: Méthode Tabou - Score réalisé en fonction du temps de résolution fixé pour une grille 32x32 (à gauche) et une grille 64x64 (à droite) en fonction des différents jeux de paramètres (A, ..., I). Contexte relatif à la méthode tabou Pour le jeu de paramètres A (Figure 8.6), la recherche est en pleine progression et n’a pas encore atteint un palier convenable comme on peut le constater sur la courbe d’évolution de la Figure 8.7. Figure 8.7: Méthode Tabou - Jeu de paramètres A. Score global obtenu à chaque itération. Figure 8.8: Méthode Tabou - Jeu de paramètres B. Score global obtenu à chaque itération. En revanche, l’introduction d’un nombre limité de candidats avec une liste de bannis améliore considérablement les performances de la recherche (Figure 8.8) pour le jeu de paramètres B, qui, pour le même temps de traitement, est en mesure de proposer un bien meilleur score. D’ailleurs, en comparant les résultats des deux jeux, on constate que le nombre d’itérations passe de 65 pour la première à plus de 1500 pour la seconde. D’autre part, lorsqu’on donne plus de temps à la recherche en activant le mécanisme de détection des maximum locaux avec des paramètres adaptés, on contribue à améliorer le score final. Le paramétrage de cette détection est trop sensible pour le jeu de paramètres C et provoque une trop grande CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 76 diversification (Figure 8.9) alors que celui du jeu de paramètres E apparait comme mieux adapté (Figure 8.10). Figure 8.9: Méthode Tabou - Jeu de paramètres C. Score global obtenu à chaque itération. 8.2.4.4 Figure 8.10: Méthode Tabou - Jeu de paramètres E. Score global obtenu à chaque itération. Discussion Nous souhaitons comparer à la fois les scores obtenus et les temps de traitements en fonction des techniques d’optimisation proposées. Pour ce faire, nous allons exploiter le résultat des tests obtenus dans le contexte de la plus forte descente car, dans ce cas, le traitement s’arrête de lui même lorsque plus aucune amélioration n’est trouvée contrairement au contexte de la recherche tabou qui s’arrête au bout d’un laps de temps fixé à l’avance. D’autre part, dans le cas de la liste tabou (pour notre version du prototype logiciel), la liste de bannis reste fixe (car il y a toujours un solution trouvée dans la mesure où l’on accepte la dégradation du score), ce qui empêche de tester le mode dynamique. Tests associés au contexte de plus forte descente (32x32) Comparatif entre jeux B & A Comparatif entre jeux C & D Comparatif entre jeux C & E Comparatif entre jeux C & F Optimisations activées distantes bannis (1) bannis (2) " " " " " " " Gains score temps + 625 ÷ 4.24 - 824 ÷ 1.90 -257 ÷ 3.68 +714 ÷ 4.52 Figure 8.11: RL - Gains obtenus par les techniques de distances et la liste des bannis. Concernant les optimisations activées, "distante" indique qu’on réduit les permutations potentielles aux cellules distantes (sans voisin commun). "bannis (1)" correspond à l’activation d’une liste de candidats bannis de taille fixe. "bannis (2)" correspondant à "bannis (1)" mais avec une liste de taille dynamique (voir Figure 8.5 pour la description des jeux de paramétres) A ce niveau, la comparaison sur les scores est hasardeuse car les écarts sont faibles entre solutions par rapport au score global, ces scores proviennent des maximums locaux (et nous ne connaissons pas la solution optimale) et le nombre de tests est restreint. Néanmoins, on constate sur nos jeux de paramètres que l’optimisation sur les distances parvient à améliorer à la fois le score et les temps. On divise même par 4 les temps de résolution. L’optimisation liée à la liste des bannis (1) détériore légèrement le score tout en divisant presque par deux les temps de traitements. Concernant l’activation de la liste dynamique des bannis, on réduit le score mais de façon moins importante et les temps de traitement sont divisés par plus de 3. L’activation conjuguée de l’optimisation sur les distances et de la liste dynamique des bannis obtient les meilleurs résultats à la fois en terme d’amélioration du score et de temps de traitement. Ceci étant, cette activation conjuguée dilue les gains sur les temps de traitement (4.24 + 3.68 → 4.52 !). Cela CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 77 s’explique par l’utilisation d’une liste restreinte de candidats dès lors où l’on utilise une liste de bannis. De ce fait, il y a une réduction importante des recherches dans le voisinage limitée aux nombre de candidats, ce qui limite la portée de l’optimisation sur les distances. La Figure 8.12 confirme ces résultats. Sur une grille de cette dimension, il est nécessaire de limiter le nombre de candidats pour avoir des temps de réponse raisonnables, ce qui dilue à nouveau l’efficacité sur les distances. On notera qu’avec cette grille plus importante, l’action de l’optimisation bannis (2) est encore meilleure en termes de gain de temps. Tests associés au contexte de plus forte descente (64x64) Comparatif entre jeux H & I Comparatif entre jeux H & J Comparatif entre jeux H & K Comparatif entre jeux H & L Comparatif entre jeux H & M Optimisations activées distantes bannis (1) bannis (2) " " " " " " " " " Gains score temps - 5 039 ÷ 1.06 + 2 819 ÷ 1.84 + 11 408 ÷ 1.98 +6 405 ÷ 5.90 + 6040 ÷ 7.36 Figure 8.12: RL - Gains obtenus par les techniques de distances et la liste des bannis. Concernant les optimisations activées, "distante" indique qu’on réduit les permutations potentielles aux cellules distantes (sans voisin commun). "bannis (1)" correspond à l’activation d’une liste de candidats bannis de taille fixe. "bannis (2)" correspondant à "bannis (1)" mais avec une liste de taille dynamique (voir Figure 8.5 pour la description des jeux de paramétres) 8.2.5 Contribution liée à la parallélisation des traitements Une voie importante à privilégier pour résoudre des instances de taille et de difficulté croissantes consiste à mettre en oeuvre la parallélisation [HAO-99]. En partant des travaux de [DURY-98], nous proposons une évolution de notre modèle structuré de telle manière qu’il puisse fonctionner efficacement avec des traitements parallélisés. Nous nous sommes limités à l’implémentation d’une méthode de plus forte descente classique dans un contexte multi-thread à l’intérieur d’une même JVM. Les contributions précédentes (relatives aux techniques de RL) ne sont pas exploitées dans ce contexte. 8.2.5.1 Description Notre environnement est constitué de zones (cellules) et d’agents (forme urbaine) et chaque agent appartient à un groupe. Un groupe rassemble un nombre d’agents d’une même forme urbaine à placer. Par exemple, 50 résidences de classe moyenne. Dans ce cas, le groupe possède 50 agents qui vont rechercher à tour de rôle une zone libre ou occupée permettant d’améliorer le score. Chaque groupe (forme urbaine) est associé à un thread (17 threads au total) et ce groupe dispose d’autant d’agents qu’il y a d’éléments à placer pour la forme urbaine en question. A chaque instant, il active l’un de ses agents pour qu’il se place (ou déplace) : – soit sur une zone libre – soit sur une zone déjà occupée en échangeant sa zone avec un agent d’un autre groupe (autre forme urbaine). Ces placements ou permutations doivent offrir la meilleure amélioration possible du score "local" : on retient la meilleure solution en utilisant en priorité un placement sur une zone libre pour éviter les conflits (si un placement sur une zone libre offre une amélioration du score, on retient cette solution). Les agents opèrent sur le même territoire. Dans ce contexte, la synchronisation entre threads est essentielle. Les différents threads se synchronisent pas l’intermédiaire d’un manager de locks. Pendant l’évaluation d’une zone, la zone et son voisinage sont réservés par l’agent. Si la zone étudiée ou l’une des zones de son voisinage est réservée par un autre agent, la zone concernée est ignorée du processus de recherche et l’agent passe à l’évaluation de la zone suivante. Un agent peut accéder aux zones qu’il a déjà verrouillées (on incrémente ou décrémente le nombre de verrous détenus par l’agent). Ce cas peut se produire lorsqu’on évalue une permutation entre zones CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 78 proches (ayant des cellules voisines en commun). Une file d’attente possède toutes les actions à réaliser (placements sur zone libre et permutations) et un thread exploite cette file pour réaliser chaque action de façon séquentielle en fonction de l’ordre d’arrivée de l’action dans la file. A la fin de son parcours, si l’agent a trouvé une zone libre ou occupée qui améliore son score, il crée une action correspondante qu’il intègre dans la file d’attente des actions à traiter. Le thread global en charge de traiter les actions est en attente d’une action dans la file. Dès qu’une action est disponible, il l’exécute. L’action intègre le placement (ou la permutation) ainsi que la libération des verrous sur les agents et les zones concernées. 8.2.5.2 Résultats Dans ce contexte, nous sommes dans une technique de plus forte descente où toutes les configurations sont identiques pour les différentes simulations. Figure 8.13: Multit-threads - Résultats obtenus sur une grille 32x32 (à gauche) et sur une grille 64x64 (à droite) pour différentes simulations (1, ..., 7) avec des jeux de paramètres identiques. On constate que certaines simulations s’arrêtent de progresser plus vite que d’autres dès que le maximum local est atteint. Bien que l’on ne dispose pas ici de techniques raffinées permettant d’optimiser la recherche, on atteint un bon score en moins de 30 s pour une grille 32x32 et en moins de 5 mn pour une grille 64x64. 8.2.5.3 Discussion Pour ce comparatif (Figure 8.14) qui fait intervenir les techniques majeures de notre étude, nous avons retenu certaines simulations précédentes relatives à chaque technique avec des configurations "optimales" et des temps de calcul présentant le même ordre de grandeur. CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 79 Figure 8.14: Comparatif entre les différentes techniques de RL sur une grille 32x32 (à gauche) et sur une grille 64x64 (à droite) avec les meilleures configurations pour chaque technique (appliquées sur des données identiques). La recherche tabou n’apparait pas meilleure que les autres techniques dans notre contexte. A temps équivalent, elle propose même des résultats inférieurs. Sur une grille 32x32, la méthode de descente est la meilleure. Mais dès que l’on passe sur une grille de taille supérieure (64x64), c’est le prototype doté du multi-thread qui s’impose à la fois sur les temps et les scores obtenus. Maintenant, comparons au travers de la Figure 8.15 les performances entre la mise en oeuvre de nos techniques d’optimisation en RL ayant obtenu les meilleurs résultats d’une part (contexte de "plus forte descente") et une mise en oeuvre multi-thread d’autre part sur une grille 128x128. Figure 8.15: Comparatif "plus forte descente" (rl) et "multi-thread" (mt) sur une grille 128x128 avec une échelle de temps allant de 1 mn à 300 mn. Sur une grille de cette taille, le prototype multi-thread s’impose largement en partant d’un score à zéro car les agents commencent par se positionner sur des zones libres (en priorité). En terme de score, il va également au délà de celui trouvé avec nos techniques de RL. En moins de dix minutes, le prototype multi-thread atteint un bon niveau de score que nos meilleures techniques de RL intégrées dans une plus forte descente n’atteindront qu’au bout de deux heures (soit 12 fois plus de temps). CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 80 Il est raisonnable de penser que des tests sur une machine adaptée (nombreux processeurs) devraient encore augmenter cet écart. De plus, ce prototype qui exploite les traitements parallèles améliore son scrore sur une plus longue durée pour atteindre "5 028 911", alors qu’avec le moteur d’intégration, la RL s’arrête à "4 957 230". Cet écart de "71 681" est le plus difficile à obtenir en fin de processus (petits gains) et explique la durée supplémentaire nécessaire au prototype multi-thread. La progression en RL est plus lente et plus régulière, donc plus longue. Pour le multi-thread, il semblerait qu’on s’oriente dès le départ vers de très bonnes régions avec une progression du score impressionnante pour arriver rapidement à un palier avec une série d’améliorations mineures, constantes et prolongées jusqu’à atteindre une stabilisation complète du système. Dans cette phase de démarrage, il faudrait identifier la place occupée par les placements sur zones libres. 8.2.6 Implémentation des prototypes de RL & IHM L’implémentation des techniques de RL peut être réalisée dans différents environnements. Il existe notamment la plate-forme Comet (décrite au paragraphe 5.5.7) qui semble très intéressante. Toutefois, il s’agit d’un environnement particulier avec son propre langage, il faut donc un certain temps d’adaptation et de découverte avant d’être opérationnel avec cette plate-forme. De plus, nous avons développé pour le prototype PPC-CHOCO des composants Java que nous souhaitons réutiliser, notamment des composants relatifs à l’attraction-répulsion. L’ensemble de nos développements est donc réalisé avec le langage Java (Sun Standard Edition 1.6). On exploite l’Api Swing pour développer les composants graphiques. 8.2.6.1 Un moteur d’intégration configurable Pour capitaliser nos développements et pouvoir configurer facilement différentes techniques de RL afin de les comparer, nous faisons le choix d’intégrer ces différents éléments dans un moteur configurable (Figure 8.16). La recherche de la meilleure permutation possible est définie dans le composant ’UrbanizationWithLocalSearchLocalScore’. Le système permet ainsi de proposer des implémentations différentes pour cette fonction centrale. Figure 8.16: RL : Moteur d’intégration. Configuration générique du moteur Un composant transmis au moteur général d’urbanisation (Urbanization) lui indique comment il doit se comporter. Cette classe (ConfigLocalSearch) contient toutes les informations génériques de configuration : – activation ou non du mode trace et niveau de trace (détail, global, à chaque perturbation, ...) – modèle d’attraction-répulsion (tables) – layers décrivant la nature du terrain, les routes principales, les rivières et les différentes zones de la ville – nombre de chaque forme urbaine à positionner (dans le cas d’un positionnement de départ aléatoire pour chaque forme urbaine dans la grille) ou bien positions initiales des formes urbaines dans la grille (dans l’autre cas) pour repartir d’une solution imposée (Technique de relance de la recherche à partir d’une bonne solution, lié à la notion d’intensification) CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 81 – nombre de simulations successives à lancer avant de retourner le résultat de la meilleure simulation (Multi-start) – nombre d’itérations et/ou temps maximum d’une simulation – score minimum global à atteindre pour terminer la simulation – activation ou non des statistiques pour la génération d’un graphique (évolution du score global à chaque itération) – composant de calcul du score global (utilisé pour calculer le score initial, les scores intermédiaires ou le score final : relancé après chaque perturbation pour synchroniser le score calculé par écart local, permet également de vérifier la cohérence de ce score calculé par écarts successifs) – proportion des échanges "par distance" entre cellule : voisines, proches (avec au moins un voisin commun), distantes (aucun voisin commun) ou indéterminé (pas de contrôle des distances pour réaliser les échanges) et évolution éventuelle de ces proportions dans le temps (incrémentation et décrémentation paramétrable de chaque proportion toutes les ’i’ itérations) – prise en compte de tous les candidats ou bien limitation à un nombre de candidats correspondant à ceux qui ont le moins bon score. Dans le premier cas, chaque cellule de la grille peut être comparée aux autres cellules pour déterminer l’échange qui autorise le meilleur gain, dans l’autre cas, seules les ’n’ moins bonnes cellules (c-à-d celles dont la position est la moins favorable) sont comparées aux autres cellules de la grille pour déterminer le meilleur échange possible. En effet, suivant la taille de la structure du voisinage, la recherche de la meilleure solution voisine peut devenir aussi difficile que le problème initial. Cette technique permet donc de limiter la taille du voisinage. Configuration du moteur liée à chaque technique de recherche configuration relative à chaque technique de recherche. On trouve également la Sélection de la technique de recherche : – autorisation ou non de dégrader le score global : revient à sélectionner soit une méthode d’itération continue (comme la recherche tabou) dans le premier cas, soit une méthode d’amélioration continue (comme la méthode de plus forte descente) dans l’autre cas. Amélioration continue : – nombre de perturbations sur la meilleure solution trouvée et nombre de mouvements aléatoires à réaliser à chaque perturbation (Technique de perturbation aléatoire pour assurer la diversification) : réalisé avec une méthode d’amélioration continue avant l’arrêt complet de la simulation. Si on ne trouve pas de meilleure solution, on réalise une perturbation et on reprend le processus jusqu’au nombre total de perturbations. Itération continue : – taille de la liste tabou (liste tabou) : la liste contient les ’n’ dernières permutations et interdit toute permutation équivalente (cellule A ↔ cellule B). A chaque itération, une nouvelle permutation est ajoutée dans la liste FIFO 9 . Si le nombre d’éléments dans la liste dépasse sa taille limite, la permutation la plus ancienne est retirée de la liste. – doit-on autoriser la technique d’aspiration (liste tabou) : si oui, on autorise un mouvement tabou si il améliore la meilleure configuration rencontrée. – activation ou non de la détection d’enfermement dans un maximum local : dans le cas où l’on active cette détection, le système vérifie toutes les ’i’ itérations si le meilleur score trouvé a pu être élevé d’un certain seuil ’s’ depuis le dernier contrôle. Si ce n’est pas le cas, il considère qu’il y a enfermement dans un maximum local et il réalise une perturbation en réalisant ’m’ mouvements aléatoires. 9. First In First Out CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 8.2.6.2 82 Parallélisation des traitements de RL Figure 8.17: Multi-thread - Diagramme de classes lié à la parallélisation des traitements de RL 8.2.6.3 Interface graphique Une interface graphique très simple a été conçue pour permettre à l’utilisateur d’identifier la nature du terrain pour chaque cellule de la grille (représentant le territoire). Cette interface permet également de positionner les voies ferrées, les forêts, les cours d’eau, les routes principales et les différentes centralités sur le territoire. Lorsque cette opération est réalisée, les informations qui en découle peuvent être soumises au moteur de résolution qui se charge d’organiser une ville en affectant à chaque cellule de la grille un type dominant de forme urbaine. A ce niveau, le nombre de cellules associé à chaque type de forme urbaine est fixé à l’avance (de façon arbitraire). Pour finir le processus, on affiche le résultat de cette organisation sous la forme d’une grille avec le type de forme urbaine retenu pour chaque cellule. Cette application est essentiellement réalisée pour nous permettre de tester facilement nos prototypes et algorithmes de placement des formes urbaines. Elle dispose pour cela d’un écran de paramétrage complet permettant de sélectionner les différentes options possibles. Généralités On met à disposition de l’utilisateur une IHM pour qu’il puisse indiquer la taille du territoire, la nature du terrain et les éléments particuliers qui le compose : voie ferrée, forêt, cours d’eau, routes principales et centralités. Pour ce faire, l’opérateur renseigne dans un premier temps les propriétés du projet (nom du projet et nombre de cellules qui compose la grille) et utilise ensuite le menu situé sur la gauche de l’écran (Figure 8.18). CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 83 Figure 8.18: Interface graphique UrbanEngine. Les différentes entrées de ce menu correspondent aux actions suivantes : 1. Activation - désactivation du mode dessin de la nature du terrain 2. Choix de la nature du terrain parmi un ensemble pré-défini 3. Activation – désactivation des déplacements de formes 4. Ajout d’une voie ferrée 5. Ajout d’une forêt 6. Ajout d’un cours d’eau 7. Ajout d’une route principale 8. Ajout d’une centralité Mise en oeuvre Lorsque l’utilisateur sélectionne un type de terrain à dessiner (Figure 8.19), il a la possibilité de sélectionner une nature parmi les choix indiqués ci-contre. Ces natures sont normalement liées au continent ou au pays sur lequel la ville prend place. Ces éléments ne sont pas paramétrables dans cette version du logiciel. Après avoir sélectionné via le menu une nature de terrain, l’utilisateur n’a plus qu’à déplacer la souris sur les cellules de la grille en maintenant le bouton droit de la souris enfoncé pour affecter aux cellules concernées la dernière nature sélectionnée. CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 84 Figure 8.19: IHM - Choix du type de terrain à appliquer à chaque cellule. En complément à la nature du terrain, il est possible d’y superposer des objets de différentes natures pour venir compléter le modèle. Le principe d’intégration d’un objet est toujours le même. Il suffit de sélectionner à partir du menu le type de l’objet à insérer (voie ferrée, forêt, cours d’eau, route principale ou centralité). On trouve sur la maquette proposée (Figure 8.20) un cours d’eau repéré par un trait bleu et une route modélisée par un trait jaune qui se sépare en deux parties. La centralité est positionnée au centre de la grille par une série de cercles concentriques. L’utilisateur peut positionner autant d’objets que nécessaire. La taille de la centralité peut être réglée en utilisant la molette de la souris lorsque le pointeur est positionné sur son point central. Elle peut être repositionnée en maintenant le bouton droit de la souris enfoncé et en déplaçant en même temps le pointeur de la souris. Ce principe de déplacement s’applique à chaque objet à partir de chaque point de repérage qui le compose. CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 85 Figure 8.20: IHM - Représentation complète d’un territoire (grille) à aménager. Chaque cellule est affectée à une couleur représentant la nature du terrain (e.g. bleu pour l’océan, vert pour prairie, ...), le trait bleu représente une rivière et les traits jaunes les routes principales. Le territoire est composé d’une seule centralité représentée par un point central entouré de cercles concentriques permettant d’identifier les diffèrents zones de la ville (core, fringe, ...). Configuration de la RL Compte tenu du nombre important de paramètres de configuration relatifs à la RL, nous avons prévu un écran de saisie complet permettant à un utilisateur expert de positionner chacun de ces paramètres à partir de l’application UrbanEngine (Figure 8.21). CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 86 Figure 8.21: Ecran de configuration applicable au moteur de Recherche Locale. Diagramme UML Nous exploitons les possibilités proposées dans la bibliothèque Swing pour interagir avec l’utilisateur. Les actions sur les différents layers sont filtrés par le composant GlassPane. CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS 87 Figure 8.22: Package ui 8.2.7 Conclusion Pour valider nos résulats, il faudrait bien évidemment faire des mesures à une plus grande échelle, notamment avec un nombre de simulations supérieur en testant différentes configurations possibles, mais elles sont très nombreuses compte tenu de la variété des paramètres disponibles. Néanmoins, ces premiers éléments confirment nos nombreux tests réalisés pendant la phase de mise au point de notre prototype et permettent des dégager les grandes lignes suivantes : – la Recherche Locale est efficace pour trouver une bonne solution à notre modèle – pour une résolution de l’ordre de quelques secondes, il faut se limiter à une grille dont la taille avoisine (32x32). – nos techniques de recherche basées à la fois sur les distances et sur la liste dynamique de candidats bannis améliorent très sensiblement les performances du système sans dégrader les résultats, et elles peuvent cohabiter partiellement (pas d’augmentation dynamique de la liste des bannis dans cette version du prototype pour la recherche tabou). – Même si elle est ardue à mettre au point, la synchronisation entre threads inhérente aux traitements parallèles (verrous sur les zones, agents, ...) apporte une certaine forme de diversification qui semble relativement efficace dans le parcours de l’espace des solutions. De plus, le multi-thread couplé aux techniques de RL apparaissent comme une bonne voie pour attaquer des grilles plus CHAPITRE 8. RÉSOLUTIONS ET EXPÉRIMENTATIONS importantes sur des machines puissantes et adaptées (quantité importante de processeurs). 88 Chapitre 9 Évolutions : vers la mixité et le passage à l’échelle Il est difficile de conclure ce rapport sans aborder auparavant la mixité et le passage à l’échelle qui sont deux critères essentiels dans la réussite du projet SUSTAINS. 9.1 Mixité Au début de ce document, nous avons souvent employé ce terme de mixité. Il en est également question dans [SUEUR-11] qui fait état de différents constats et propose différentes orientations relatives à la mixité, notamment : – Il est important de développer la polycentralité et l’orientation vers des villes multipolaires. – La mixité sociale est partout souhaitable. C’est elle qui constitue la ville comme partage, brassage : la ville comme lieu de l’urbanité. – La mixité sociale doit aller de pair avec la mixité fonctionnelle et inversement. – La question des transitions entre ville et non ville est un enjeu considérable. Seules des logiques de mixité fonctionnelle peuvent permettre de reconquérir les espaces voués à une seule fonction (habitat, commerce, activité). – les zonages produisent très souvent des effets ségrégatifs. A notre niveau, la mixité consiste à respecter un mélange de certaines formes urbaines réparties sur le territoire urbain selon des proportions précises et définies dans le modèle pour chaque quartier et îlot. Notre modèle actuel basé sur les attraction-répulsion ne prend pas en compte cette contrainte de façon formelle. 9.2 Passage à l’échelle Notre application doit permettre la création de villes complètes de toutes tailles. Dans nos régions, ce phénomène est rare et réservé à la création de villes nouvelles ou bien à l’aménagement de nouveaux quartiers. Ce n’est pas le cas dans les pays en fort développement où l’on voit des villes "pousser" de nulle part et devenir gigantesques en quelques années seulement, notamment en Chine. Faisons maintenant les hypothèses suivantes : – chaque cellule de la grille correspond soit à un quartier, soit à un îlot, – un îlot représente une zone de (100x100) mètres, – un quartier théorique est composé de (10x10) îlots. A l’échelle d’une ville comme Paris qui dispose d’une aire urbaine de 14 549 Km2 , nous aurions une grille constituée : – soit de (121x121) quartiers – soit de (1207x1207) îlots A l’échelle de Tokyo (2190 Km2 ) beaucoup plus dense, nous aurions une grille composée de (47x47) quartiers et de (468x468) îlots. Pour la ville de Chongquing située en Chine (82300 Km2 ) et beaucoup plus étendue, nous aurions une grille composée de (287x287) quartiers et de (2869x2869) îlots, ce dernier exemple étant néanmoins 89 CHAPITRE 9. ÉVOLUTIONS : VERS LA MIXITÉ ET LE PASSAGE À L’ÉCHELLE 90 un cas extrême ! Compte tenu de ces exemples et en considérant nos hypothèses de départ, nous devons admettre que notre modèle n’est pas en mesure de passer à l’échelle d’une ville importante lorsqu’on associe une cellule à chaque îlot. Si on reste à la représentation d’un quartier théorique, on peut toutefois envisager des solutions raisonnables. 9.3 Vers un modèle hiérarchique Nous proposons une évolution de notre modèle de base, sans pour autant le remettre en cause. L’idée consiste à organiser le territoire sous une forme hiérarchique et constituée des éléments suivants : – le territoire est composé de quartiers (calculé en fonction de la taille de la ville) – le quartier est composé de (10x10) îlots, – l’îlot est composé de (4x4) parcelles, – la parcelle est composée de (7x7) cellules de base, – la cellule de base est la plus petite unité et correspond à (3.464x3.464) mètres (soit ≈12 m2 ). Sa largeur est suffisante pour représenter une route ou une rivière [LECHNER-06] (patches). En fontion du point de vue, la grille peut alors s’appliquer : – soit à un ensemble de quartiers – soit à un ensemble d’îlots – soit à un ensemble de parcelles – soit à un ensemble de cellules de base (patch) La résolution du problème revient à positionner les éléments de chaque niveau (quartier, îlot, parcelle, cellule) de la meilleure façon possible dans leur grille respective (parent hiérarchique) en se basant sur les tables d’attraction-répulsion décrites précédemment et appliquées à chaque ensemble. Pour ce faire, les données de base doivent être agrégées et remontées à chaque niveau de la hiérarchie (une parcelle est constituée des différents éléments 1 provenant de ses cellules (patch), un îlot est constitué des différents éléments provenant de ses parcelles, etc.). On décompose ainsi le problème de base en sous-problèmes de plus petites tailles, réduisant par la même occasion la combinatoire. Modélisée sous cette forme, la ville de Paris serait représentée par : – une grille de 124 x 124 quartiers théoriques à positionner. – 15 376 grilles distinctes composées chacune de 10x10 îlots à positionner de façon séparée (en tenant compte des voisinages entre quartiers voisins). Ce procédé impose toutefois qu’un traitement en amont prenne en charge la ventilation des différentes formes urbaines par quartier et îlot, mais c’est exactement ce dont nous avons besoins pour gérer la mixité. 1. formes urbaines, natures de terrain, proximité des routes et rivières, ... Chapitre 10 Conclusion et perspectives 10.1 Conclusion Dans ce rapport, nous avons identifié les difficultés et les enjeux liés à la pré-programmation urbaine. En fonction de nos objectifs et hypothèses de départ, nous proposons d’utiliser un modèle adapté et inspiré de [GROEN-09] qui repose sur l’attraction-répulsion appliquées aux différentes formes urbaines, l’objectif étant de placer au mieux les différentes formes urbaines qui constituent la ville sur une grille de cellules représentant le territoire. Ce modèle permet de générer des villes réalistes à partir d’un nombre limité d’informations de haut niveau. Compte tenu de la nature du problème (sous-contraint), nous avons constaté en utilisant le solver CHOCO que la Programmation Par Contraintes n’est pas en mesure de donner une solution optimale dans un temps raisonnable pour notre modèle. Le second prototype logiciel mettant en oeuvre différentes techniques générales de Recherche Locale permet d’obtenir de bonnes solutions dans un temps compatible avec une interaction utilisateur. Ces différentes techniques ont été intégrées dans un moteur de résolution configurable. Dès lors, nous avons cherché à utiliser ce moteur sur des grilles de plus grande taille pour connaitre ses limites et des techniques originales de RL ont été proposées pour optimiser la résolution : – Réduction du voisinage en fonction de la distance entre deux cellules et utilisation d’un cache de données – Élimination des mauvais candidats grâce à une liste de "bannis" de taille dynamique Pour atteindre un niveau de performance encore supérieur et exploiter la puissance des machines modernes qui disposent de multiples processeurs, nous avons aménagé notre modèle afin qu’il puisse être exploité par des traitements parallèles qui positionnent des groupes d’agents (liés à une forme urbaine) sur des zones (cellules). Nos expérimentations montrent que la méthode de plus forte descente exploitant nos techniques d’optimisation de RL obtient les meilleurs résultats sur une grille 32x32. Mais au delà de cette taille, le prototype basé sur le multi-thread s’impose nettement à la fois sur les temps de résolution et sur le score global obtenu. Néanmoins, pour gérer la mixité et le passage à l’échelle sur des villes importes, il est nécessaire de faire évoluer notre modèle de base vers une structure hiérarchique permettant à la fois de diminuer la combinatoire et de gérer une répartition nécessaire des formes urbaines sur le territoire. 10.2 Perspectives Les axes de recherche complémentaires dans notre contexte sont variés. Les limitations rencontrées et les solutions proposées dans nos différents développements permettent d’envisager les travaux suivants : – Faire des tests complémentaires à plus grande échelle du moteur de RL pour déterminer les meilleurs réglages possibles. – Intégrer le prototype de RL et le prototype multi-thread dans un moteur de résolution unique pour que l’on puisse bénéficier des avantages de chaque formule – Tester ce moteur de résolution multi-thread sur un serveur disposant de multiples processeurs pour évaluer ses performances et ses limites sur des grilles de plus grande taille (128x128, ...). 91 CHAPITRE 10. CONCLUSION ET PERSPECTIVES 92 – Compléter le prototype basé sur le modèle hiérarchique pour prendre en compte : – le moteur de résolution multi-thread. – le voisinage des îlots de quartiers différents – paralléliser les différents placements (placement des îlots appartenant à différents quartiers) en fonction des possibilités – Déterminer le nombre de chaque forme urbaine et les répartir au niveau du modèle hiérarchique dès que le modèle théorique de développement sera disponible (EPAMARNE). – Mettre en oeuvre des contraintes complémentaires (distance minimale entre deux formes urbaines, distance maximale en tout point pour l’accès à une forme urbaine, ...) en fonction des besoins exprimés par les urbanistes. – Prendre en compte les propriétés du modèle géométrique (en lien avec la société Artefacto et le laboratoire LIMSI 1 ). – Gérer les interactions avec l’utilisateur de façon à prendre en compte ses modifications sans trop s’éloigner de la solution précédente. 1. Laboratoire d’Informatique pour la Mécanique et les Sciences de l’Ingénieur Quatrième partie Annexes 93 Chapitre 11 Notions avancées d’urbanisme [DEHAN] 11.1 L’urbanisme De la planification des villes à l’urbanisme Françoise Choay, historienne des théories et des formes urbaines et architecturales, explique dans [CHOAY-65] que les doctrines de l’urbanisme se fondent sur une analyse formalisée des besoins et des conditions de la réalisation urbaine. Ce serait donc le caractère analytique des contraintes et des besoins qui distinguerait l’urbanisme des pratiques antérieures de planification des villes. Planification Urbanisme Figure 11.1: Figures extraites de [DEHAN] Les principales différences entre la planification des villes et l’urbanisme est la disparition des rites de création et l’introduction de deux phases majeures préalable au projet proprement dit : l’analyse de la situation existante qui doit conduire à un diagnostic et une phase de programmation urbaine qui peut être sommaire ou très élaborée. De plus, il y a désormais itération lorsque la croissance est continue : une fois un morceau de ville produit, le site urbain est modifié et il faut reprendre le processus au stade de l’analyse et du diagnostic. La ville idéale comme modèle La transformation de la société passe par l’invention de formes urbaines nouvelles. 94 CHAPITRE 11. NOTIONS AVANCÉES D’URBANISME 95 Jean-Baptiste Godin, fabricant de poêles et fouriériste, dessine les plans d’un Familistère qu’il construit à proximité de son usine. Il s’agit d’un « palais social » dans lequel les ouvriers disposent d’un confort étonnant pour l’époque : "un allègement aux souffrances des classes ouvrières". Des cités ouvrières aux lotissements populaires Pour éviter les problèmes d’éloignement à une époque où le transport individuel et collectif sont inexistants, quelques patrons pragmatiques construisent à proximité de leurs sites industriels des logements pour leurs employés les plus méritants qui visent aussi à assurer le développement moral de l’ouvrier et de sa famille. Ce modèle est rapidement critiqué car, en concentrant les ouvriers, le logement collectif devient "foyer d’immoralité" ou "phalanstère de la misère et du crime", selon certains contemporains. La maison individuelle parait alors être la solution car elle permet d’éviter une trop grande concentration de familles ouvrières, politiquement et moralement dangereuse : – elle permet à l’ouvrier d’améliorer son ordinaire grâce au jardin, – d’occuper ses heures de loisir de manière à éviter qu’il ne fréquente les cabarets, – de stabiliser la famille en le rendant propriétaire, donc responsable. C’est ainsi que naquirent les premiers lotissements populaires. Émergence du logement social C’est au cours du 20e siècle que le logement social va se développer, avec l’apparition d’une exigence nouvelle qui va profondément modifier la ville et l’urbanisme : l’idée qu’il faut loger tout le monde dans des logements décents. La responsabilité de la création de ce logement va devenir, à partir des années 50 et leur transformation en HLM, une prérogative de l’état qui mettra en oeuvre la construction de logement à grande échelle avec les grands ensembles. 11.2 Développement des théories de l’urbanisme et applications pratiques Concernant l’invention de modèles pour une ville adaptée au monde moderne, deux visions principales s’opposent : – D’un côté il y ceux qui, pour palier aux maux de la ville industrielle, prônent la création d’une ville verte, plus proche de la nature : faire la ville à la campagne. – De l’autre, il y a ceux qui, fascinés par Manhattan, voient la métropole verticale comme un modèle qu’il s’agit de rationaliser et d’ordonner. Cette vision privilégie la ville en tant que creuset du développement économique au détriment de l’amélioration des conditions de vie de la population. Faire évoluer la ville traditionnelle A côté de ces visions opposées, quelques architectes cherchent à marier densité, formes de la ville traditionnelle et conceptions hygiénistes. C’est le propos d’Henri Sauvage, considéré comme l’un des principaux architectes français du premier tiers du XXe siècle, qui propose de créer un nouveau type urbain : l’immeuble à Gradin. A la place des jardins, les appartements sont dotés de vastes terrasses pouvant être plantées. L’îlot entier est pensé comme une vaste pyramide. Même si Le Corbusier, architecte urbaniste, conçoit lui aussi un projet d’immeubles à gradins, ce type sera un peu oublié après guerre, mais va réapparaître à la fin des années 60 et dans les années 70 avec les recherches innovantes pour un habitat intermédiaire. Pendant la guerre, Le Corbusier va poursuivre ses réflexions en élaborant une doctrine nouvelle qu’il publie sous le nom de la Charte d’Athènes en 1941. Il s’agit d’une théorie sans modèle qui propose des concepts simples, voire simplistes : "le soleil, la verdure et l’espace sont les trois premiers matériaux de l’urbanisme". Pas de modèle formel, mais des préceptes doctrinaires facilement applicables et facilement interprétables. La Charte d’Athènes prescrit un zoning strict, c’est-à-dire un classement des grandes fonctions urbaines par catégories. Seules les fonctions quotidiennes, liées à l’habitation, sont intégrées aux unités d’habitation. Ce document aura une très grande influence sur tout l’urbanisme d’après la seconde guerre. Même s’ils n’appliquent pas à la lettre ses préceptes, les grands ensembles en sont les fils directs, un peu déshérités, car bien souvent ils n’intègrent pas les équipements prévus, et la qualité des espaces verts, fondateurs du nouvel urbanisme, laisse à désirer. CHAPITRE 11. NOTIONS AVANCÉES D’URBANISME 96 Urbanisme moderne : analyse scientifique ou doctrine idéologique Dans la pratique, la plupart des projets d’urbanisme ne s’appuient pas sur une connaissance approfondie des sites et des environnements sociaux sur lesquels ils vont agir. Ils substituent la phase d’analyse de l’existant et du diagnostic à des doctrines, qui tiennent lieu de théorie scientifique. Les fonctions urbaines sont réduites à quatre grandes catégories : circuler, habiter, travailler, se récréer. Science Idéologie Figure 11.2: Figures extraites de [DEHAN] Les schémas de la Figure 11.2 montrent comment l’idéologique moderniste s’est substituée à la phase d’analyse du réel. Plus besoin d’analyse approfondie de la réalité puisqu’il fallait raser l’existant, faire table rase pour reconstruire une ville nouvelle idéale. La réalité de l’évolution sociale des grands ensembles français a rappelé qu’on ne pouvait omettre les dimensions anthropologiques et sociologiques de la ville et de l’habitat et qu’au-delà de la satisfaction de ses besoins de bases (manger, s’abriter), l’homme est un être social dont les besoins varient en fonction des cultures et des organisations sociales. 11.3 Conséquences des politiques successives L’urbanisme moderne L’urbanisme moderne largement influencée par la "Charte d’Athènes" est conçu comme le moyen de faire une ville saine. Du point de vue de la composition urbaine, les réalisations s’appuient sur quelques principes majeurs : – la volonté de créer un espace vert majeur au coeur de l’opération – l’orientation des édifices en fonction de l’ensoleillement – la ségrégation des circulations – l’autonomie d’implantation des bâtiments par rapport à la voirie – la volonté d’intégrer les équipements nécessaires à la vie quotidienne au parc ou au bâtiment. A ces objectifs, directement liés à la doctrine de l’urbanisme moderne, l’état français en surimpose deux autres : – résoudre la crise du logement – créer une industrie du bâtiment digne de ce nom. L’urbanisme moderne cherche à disposer d’un "sol libre" où l’on peut bâtir sans contrainte : l’immeuble est déterritorialisé et le sol n’appartient plus à ses habitants, mais seulement au gestionnaire, impersonnel ou collectif. Ce qui limite les possibilités d’évolution de la ville. Les formes urbaines de l’urbanisme moderne pose deux autres problèmes. Le premier est celui d’une extension extraordinaire des surfaces collectives qu’il faut aménager puis entretenir. Le second est celui d’une diminution des traitements minéraux au profit des espaces végétaux. Or un espace vert est beaucoup plus fragile qu’un espace urbain minéral et doit régulièrement être entretenu. CHAPITRE 11. NOTIONS AVANCÉES D’URBANISME 97 Lorsque les réalisations sont de qualité, que les espaces verts sont entretenus, qu’il n’y a pas de problèmes sociaux, l’urbanisme moderne produit des résidences agréables où l’on habite dans la verdure. Sans doute l’urbanisme moderne, coûteux dans sa structure comme dans son entretien, aurait-il du être réservé aux riches. La maison de rêve C’est à partir du milieu des années 60, que les gouvernements, très critiques vis-àvis de la production des grands ensembles, décident de mettre en place une politique plus favorable aux maisons individuelles. Ce retournement politique, conjugués à l’enrichissement global de la population au cours des « trente glorieuses » (50-70) vont permettre aux classes moyennes de réaliser leur rêve : habiter une maison individuelle. Sous couvert de mieux répondre aux aspirations des familles françaises, cette nouvelle politique répond à plusieurs objectifs : – mieux mobiliser les ressources financières des ménages, ce qui permet un certain désengagement de l’Etat à l’égard du financement du logement, – élargir le champ d’intervention et de profit des banques, – offrir de nouveaux débouchés aux grandes entreprises de construction, par le lancement de nouveaux produits leur permettant de rentabiliser leurs investissements dans l’industrialisation du bâtiment. Ainsi, au lieu de se concentrer, les nouvelles extensions urbaines sont éclatées, augmentant considérablement les surfaces urbanisées. Les modes de vie changent avec comme caractéristique, celui d’un accroissement de la mobilité. On se déplace en permanence, et pas seulement pour le travail, mais aussi et de plus en plus pour le loisir. Le naufrage des grands ensembles Au début des années 60, les conditions matérielles de vie dans les grands ensembles sont plutôt mauvaises dès qu’on sort de son logement bien équipé mais le climat social est bon. La dégradation du climat social des grands ensembles commence dans les années 70 et s’étend au début des années 80, à cause de trois principaux facteurs : – la libéralisation de la construction de la maison individuelle qui conduit les classes moyennes à partir pour réaliser leur rêve – la politique de regroupement familial qui conduit les familles des migrants à remplacer les classes moyennes dans les grands ensembles, alors que ce type de logement est totalement inadapté aux modes de vie d’étrangers qui sont des ruraux déracinés. – le chômage qui, à partir de la crise pétrolière de 1973, touche beaucoup les habitants des grands ensembles, en particulier les travailleurs immigrés, ce qui déstabilise leurs structures familiales. Ceux qui restent sont ceux qui ne peuvent pas partir. Dès lors, on assiste à une concentration des problèmes. On constate une augmentation des loyers impayés qui conduit alors certains organismes HLM à minimiser l’entretien de leur patrimoine, ce qui induit une spirale de dégradation matérielle et symbolique du lieu. La construction des grands ensembles engendre un étalement urbain relativement limité, mais une forte fragmentation : les zones bâties sont rarement reliées à l’existant et constitue des enclaves séparées de la ville proprement dite. C’est d’ailleurs l’un de leurs problèmes majeurs. "L’urbanisme moderne n’est pas un urbanisme durable car il crée des situations figées, non évolutives". Changement de politique : la rurbanisation, étalement urbain à grande échelle Dans une circulaire de 1973, Olivier Guichard alors en charge du ministère de l’Urbanisme, arrête la construction des grands ensembles. La nouvelle politique va engendrer un étalement urbain encore plus significatif avec une troisième poussée pavillonnaire prenant la forme de ce que Bauer et Roux ont appelé justement la rurbanisation [BAUER-76]. L’automobile diminue les distances, et désormais, une partie croissante de l’espace rural est utilisé par les urbains. La rurbanisation modifie profondément la structure de la ville et la vie des citadins qui, bien qu’ils soient urbains dans leur mode de vie, peuvent vivre à la campagne. C’est une nouvelle phase de transformation de la ville. Le parc d’habitat se modifie en profondeur et dans les années 90, avec 54% de maisons individuelles contre 46% de collectifs. CHAPITRE 11. NOTIONS AVANCÉES D’URBANISME 11.4 98 Théories urbaines après l’urbanisme moderne Bilan critique de l’urbanisme moderne La volonté de rendre la ville claire et fonctionnelle conduit le modèle de l’urbanisme fonctionnaliste à supprimer la mixité fonctionnelle des quartiers alors que, lorsqu’on regarde l’histoire de la ville, tout laisse penser que c’était un fondement essentiel de la dynamique économique du fait urbain. Par ailleurs, elle conduit aussi à supprimer le découpage foncier qui est un autre élément fondateur matériel de la ville. La ville moderne se réduit à la production d’un espace figé, sans réalité sociale et ne répondant pas aux aspirations évolutives des habitants. De tous côtés vont apparaître des propositions réhabilitant la ville traditionnelle qui cherchent à revenir à des formes urbaines plus classiques. La redécouverte de la valeur de la ville ancienne et la réhabilitation Les italiens ont toujours préservés les centres anciens alors que les français les éventraient pour remplacer les îlots par des tours et des barres. Ce seront les premiers à proposer de réhabiliter les villes pour améliorer les logements anciens plutôt que de les raser et reconstruire. Un certain nombre d’architectes-enseignants vont mettre au point des méthodes d’analyse du bâti existant dites "typo-morphologiques" qui consistent à regarder l’existant dans le détail soit pour le réhabiliter soit pour proposer des projets s’en inspirant. Il s’agit d’un urbanisme scientifique qui s’appuie sur les études, sur la connaissance du bâti mais aussi sur la connaissance des populations. La défense de la ville européenne Dans les années 70-80, une proposition de retour à la ville classique européenne va se mettre en place. Avant, la diversité urbaine résultait de son évolution, de l’empilement progressif de ses couches. Aujourd’hui, il faut de la diversité esthétique instantanée. Cet urbanisme nous propose une vision de la ville ancienne avec des décors pittoresques mais une fonctionnalité contemporaine, une ville idéale et humaine, comme elle n’a jamais existé. Aujourd’hui, beaucoup de promoteurs et certains élus ont adopté cette vision avec plus ou moins de talent et plus ou moins de cohérence. Modernité et urbanité Dans les années 80, les jeunes architectes sont presque unanimes à critiquer les projets prolongeant l’urbanisme moderne. De ces recherches ressort la volonté de réinventer un nouvel îlot qui s’inspire des expériences du début du siècle, avant l’urbanisme moderne : un îlot ouvert dans lequel le centre est occupé par un vaste jardin. Ce retour à l’architecture urbaine est largement répandu en Europe. Cela ne veut pas dire que les préceptes modernistes soient totalement abandonnés. En d’autres lieux, comme en Asie, en Chine, à Honk-Kong, à Singapour par exemple, on construit encore des grands ensembles, et des tours gigantesques qui empilent les fonctions et qui semblent bien fonctionner socialement. La congestion urbaine et le troisième âge de la ville Parallèlement à ce qui est devenu l’urbanisme officiel en Europe, réalisé avec plus ou moins de brio, deux doctrines se sont affirmées. D’un côté, il y a des architectes dans la mouvance du hollandais Rem Koolhass qui milite pour développer la congestion urbaine. C’est lui qui a ainsi conçu le plan d’Euralille qui cherche à renforcer la mixité, la superposition des fonctions, même lorsque ce n’est pas « naturel ». De l’autre coté, il y a Portzamparc qui prétend inventer le troisième âge de la ville, représentant une synthèse entre l’urbanisme moderne, aéré et vert et l’urbanisme traditionnel d’îlot. Il essaye de mettre en place des règles complexes permettant de concilier densité et végétal en évitant la monotonie de l’îlot Haussmannien. Urbanisme durable et éco-quartiers Depuis quelques années, se développe ce qu’on appelle les "éco-quartiers" qui sont des projets urbains globaux à vocation écologique. Ce mouvement en plein développement est né en Allemagne et en Hollande avec quelques exemples pionniers en Autriche, en Grande Bretagne et dans les pays scandinaves, et il a fini avec quelques décennies de retard par atteindre la France. CHAPITRE 11. NOTIONS AVANCÉES D’URBANISME 99 Il n’y a pas de norme ni de recette d’éco-quartier. Leur forme et contenu varie en fonction des lieux et des enjeux. Tous les éco-quartiers n’ont pas les mêmes ambitions en terme d’économie énergétique, d’énergies renouvelables ou en terme de déplacements. Dans cette évolution, l’enjeu sera double : – pousser le curseur écologique le plus loin possible – Faire en sorte que ce type d’approche ne soit pas réservé aux grands opérations, mais imprègne toutes les opérations, même les plus petits lotissements. Urbanisme règlementaire et écologie Officiellement les PLU 1 devraient être attentifs à l’environnement. Dans les faits, l’interprétation de ce que doit être la protection de l’environnement varie et fait que les PLU ne sont pas toujours réellement écologiques. Par exemple, certains articles du règlement imposent des règles sur la hauteur ou l’aspect du bâtiment qui peuvent aller à l’encontre de la pose de panneaux solaires, de toiture végétalisées, etc. 11.5 Formes et structures de la ville contemporaine Nous sommes aujourd’hui dans une civilisation urbaine : une très forte majorité de la population vit dans des villes. 50% à l’échelle mondiale, mais ce taux est beaucoup plus fort en Europe ou en Amérique du nord où il atteignait en 2000 respectivement 79 et 78 %. Désormais, dans les pays industrialisés, presque 80 % de la population sont urbains. Le modèle de croissance radioconcentrique reste le modèle de croissance dominant (le modèle « naturel »). Les rocades contribuent à une croissance radioconcentrique de la ville, tout en créant de nouveaux pôles de croissances péri-urbains. Les nouveaux lotissements cherchent avant tout une proximité avec les noeuds d’échanges du réseau. Les rocades génèrent ainsi des situations de périphérie en rupture avec une croissance continue de l’agglomération. C’est aux noeuds de ces voies (croisements, sorties) que s’implantent les nouvelles « centralités périphériques » que sont les zones d’activités, les centres commerciaux du grand commerce qui, audelà de leur fonction de base intègrent de nouvelles fonctions comme le travail tertiaire (bureaux) ou le loisir (multiplexes, centre de fitness, hôtels restaurants). Ce phénomène peut être redoublé par la création de plusieurs anneaux de rocades, comme c’est le cas à Rennes ou Paris. C’est le modèle français dominant. Multiplication des types de tissus Avec l’éclatement urbain des années 1980-90, les formes urbaines se multiplient : nouveaux villages, lotissements périurbain, lotissements rurbain, pavillonnaire diffus, villages ruraux, etc, ainsi que les nouvelles « centralités périphériques » : zones d’activités, zones artisanales, zones commerciales. Ces dernières sont, désormais, les principaux acteurs de l’économie commerçante en France : elles représentent 70% des chiffres d’affaires contre 20 % dans les centre ville et 10 % dans les quartiers. La mutation touche aussi le centre ville qui d’un côté s’embourgeoise, et de l’autre voit leur structure commerciale se transformer. Les commerces se spécialisent (prêt-à-porter) et il devient le lieu du développement d’annexes au grand commerce à travers le développement d’enseignes franchisées. Sectorisation de la ville Le fonctionnement de ces fragments urbains diffère grandement de celui des tissus antérieurs : la plupart sont conçus comme des secteurs autonomes, desservis uniquement par l’automobile et dont les accès sont limités en nombre. On ne traverse pas ces secteurs comme on le faisait dans les tissus urbains traditionnels et leur dimension est généralement très supérieure à celle des îlots antérieurs. Pour ceux qui peuvent choisir leur mode de vie, cette sectorisation peut paraître positive. On peut vivre entre soi dans un nouveau village, disposant à la fois du bien être de la campagne et grâce à deux ou trois voitures, des services urbains. Mais pour les moins favorisés, ceux qui abandonnent le centre ville parce qu’il est trop cher, les choses sont moins positives. 1. Plan local d’urbanisme CHAPITRE 11. NOTIONS AVANCÉES D’URBANISME 100 Déjà soumis aux nuisances induites par la voie rapide, ceux-ci se voient par surcroît, écartés du centre-ville et de ses services par des infrastructures rendues quasi infranchissables. Ils sont situés en marge des voies de passage principales. Ces nouveaux types, sont peu reliés aux autres secteurs et très figés dans leurs formes comme dans leurs programmes. C’est ce que David Mangin [MANGIN-04] appelle la sectorisation de la forme urbaine. C’est ainsi que les règlements des lotissements interdisent toute activité (autre que les professions libérales), limitent fortement les extensions et interdisent les divisions parcellaire ou la construction en hauteur. Ces tissus urbains sont figés, à l’exception de petits ajouts. De la même manière, bien qu’elles soient en permanente transformations, les zones d’activités et les zones commerciales n’admettent pas de mixité : on ne peut y implanter de logements. Dédensification La dédensification de l’agglomération est d’abord liée à l’intégration de territoires périphériques et rurbains dans l’aire urbaine. L’extension de la zone urbaine, fait que désormais de nombreux secteurs, très peu denses sont intégrés. La dédensification touche aussi tous les tissus de centre ville. La qualité de vie exige plus d’espaces verts, des cours ou jardins plus grands, des logements plus grands. Pour le public, la densité à mauvaise presse. Les électeurs font pression sur les élus pour que les règlements urbains minimise les autorisations de construire. Toutes ces évolutions contribuent à faire baisser la densité des centres urbains. Les seuls secteurs où la densité augmente sont ceux en mutations, banlieue ou friches urbaines, qui lors du réaménagement sont construits alors qu’ils étaient souvent occupés par de grands bâtiments de faible densité. Cependant, l’un des enjeux majeurs d’un urbanisme durable est de redonner une certaine compacité à l’agglomération, donc à augmenter la densité des secteurs périphériques. Il faut sans doute changer les réglementations urbaines en imposant des densités minimales pour limiter la croissance urbaine et permettre de doter l’agglomération de services performants et plus économiques. Entrées de ville et ville franchisée En France, première nation touristique au monde, l’apparence et l’image de la ville ont une importance économique considérable. Toutefois, l’avènement du grand commerce, en deux décennies, va conduire à une homogénéisation globale des parcours d’entrée de ville, qui constitue une bien piètre vitrine pour la cité. L’entrée de ville franchisée est en effet marquée par trois phénomènes : – celui d’une logique d’investissement à court terme : les bâtiments sont en perpétuelle évolution et sont amortis en quelques années). Nous sommes dans la ville jetable. – celui d’une visibilité commerciale de la marque : logo, couleurs ou formes de bâtiment doivent être les mêmes sur tout le territoire, voire dans le monde entier (Auchan, Carrefour, Leclerc, Mc Donald, Ikéa, . . . ), les particularités locales doivent être gommées. – celui d’une visibilité locale du parking démontrant qu’il est simple de se garer. Pour qualifier les bâtiments, L’architecte Robert Venturi [VENTURI-71] distingue deux types architecturaux : – le hangar décoré, bâtiment économique dont la façade est utilisée comme grand panneau d’affichage pour l’activité commerciale ; – le canard, édifice ou enseigne géante, qui épouse généralement la forme du produit vendu. Les entrées de ville françaises sont largement composées de hangars décorés, parallélépipèdes en bardage colorés, sur lesquels s’accrochent des enseignes omniprésentes. Les canards quant à eux sont plus rares. De manière plus classique et plus conforme à la tradition urbaine européenne, les urbanistes français requalifient les entrées de villes, en cherchant à domestiquer et à rendre plus urbaines ces entrées de ville. Plusieurs voies ont été ouvertes pour cela : – Améliorations des aménagements urbains – Améliorations architecturales – Meilleure intégration du commerce d’entrée de ville dans la structure urbaine globale – Mutation du cadre législatif Ville passante et ville durable L’enjeu de l’urbanisme en Europe aujourd’hui est celui de créer une ville durable. Pour cela, il est nécessaire de rendre plus dense et plus compacte la ville lors des mutations. C’est pourquoi on parle aujourd’hui de « reconstruire la ville sur la ville » et que toutes les friches sont des enjeux majeurs. CHAPITRE 11. NOTIONS AVANCÉES D’URBANISME 101 Il faut donc veiller à ce que les projets soient denses, mais que cette densité soit acceptable pour le public. Il faut donc chercher à densifier le plus possible la ville en fonction du contexte et à recréer des liens entre les secteurs. Il faut redévelopper ce que David Mangin appelle la « ville passante ». Mais, parallèlement, il faut transformer les règlements urbains qui, bien souvent interdisent la densité et les mutations urbaines, cherchant à préserver chaque fragment en l’état. 11.6 Renouvellement des grands ensembles Les pratiques actuelles en urbanisme de renouvellement des grands ensembles en France se concentrent autour du principe d’une recomposition urbaine visant à : – désenclaver les sites par la recomposition des rues, des parkings, la création de moyens de transports collectifs, l’introduction d’équipements publics – permettre une certaine mixité par la démolition des bâtiments posant le plus de problèmes (généralement les immeubles les plus hauts, en particulier les tours) et la création de nouveaux bâtiments valorisant le foncier, généralement des logements en accession pour les classes un peu moins pauvres et des immeubles locatifs proposant un type de logement spécifique améliorant l’offre – améliorer la qualité des lieux et les possibilités d’appropriation par les habitants grâce à la transformation des espaces de proximité des immeubles. Deux instruments majeurs sont aujourd’hui utilisés : – La démolition- reconstruction – La résidentialisation. La démolition - reconstruction Pendant longtemps, l’état est resté réticent à l’idée de démolir des bâtiments qui n’étaient pas toujours amortis. Ce n’est qu’à partir du milieu des années 90, que l’idée de démolition va s’imposer avec, pour objectif, de modifier l’image des quartiers et d’inverser les processus de dévalorisation. L’idée globale est que, pour modifier en profondeur ces quartiers, il faut recréer de la mixité sociale et que, pour cela, il faut favoriser l’intervention d’opérateurs privés dont la production s’adresse aux classes moyennes. On démolit donc beaucoup aujourd’hui et l’on reconstruit, soit sur place, soit en lisière des zones, soit parfois un peu plus loin, des logements selon des formes urbaines plus traditionnelles : des rues, des places, de petits immeubles avec un nombre limité de cages d’escalier et, généralement, des hauteurs limitées. La résidentialisation L’action sur le bâti ne répond pas à tous les problèmes, mais elle est utile. C’est un des moyens de participer à une transformation positive du lieu. La résidentialisation est une forme particulière d’action qui s’oppose dans son concept à la démolition / reconstruction : on requalifie les espaces collectifs et les espaces publics, afin de transformer les formes urbaines issues des théories de l’urbanisme moderne. La résidentialisation vise à "configurer un ou plusieurs immeubles et leurs abords en une unité résidentielle clairement identifiée, matérialisée par un marquage plus ou moins symbolique de ses limites". Cette requalification des espaces de proximité, publics et privés des grands ensembles, permet de gérer le problème des poubelles, du nettoyage des espaces publics et privés. Mais aussi d’améliorer le confort du logement : on peut ajouter des balcons, créer des jardinets pour les logements du rez-dechaussée. En modifiant le statut du sol et les formes urbaines, la résidentialisation répond aux besoins des habitants en créant des lieux bien différenciés et supprime l’indétermination des espaces du quotidien au-delà du logement. Chapitre 12 Diagrammes UML 12.1 Cas d’utilisation général Figure 12.1: Cas d’utilisation général 102 CHAPITRE 12. DIAGRAMMES UML 12.2 Moteur de placement hiérarchique Figure 12.2: Package engine.agent 103 CHAPITRE 12. DIAGRAMMES UML Figure 12.3: Package engine.core 104 CHAPITRE 12. DIAGRAMMES UML Figure 12.4: Package engine.localsearch 105 CHAPITRE 12. DIAGRAMMES UML Figure 12.5: Package engine.localsearch 106 CHAPITRE 12. DIAGRAMMES UML Figure 12.6: Package engine.site Figure 12.7: Package engine.xml 107 Chapitre 13 Logiciels et Matériels utilisés 13.1 – – – – – – – – 13.2 Outils logiciels mis en oeuvre Partage documentaire : Alfresco IDE : Eclipse Control version : GIT Langage de développement : Java 1.6 Api : Swing, JFreeChart, Stax Éditeurs : LYX, Open office Diagrammes : MicroSoft Visio UML : Visual Paradigm for UML Matériel utilisé pour le développement et les tests – Portable sous Ubuntu 64 bits - version 10.04 – 3.8 Gio de mémoire vive – 2 processeurs Duo AMD 2.00 GHz 108 Bibliographie [NATION-07] Nations Unies, Urban and Rural Areas 2007, WORLD URBANIZATION PROSPECTS : THE 2007 REVISION [DEHAN] Philippe Dehan, Enseignant-Chercheur au département Génie des systèmes urbains de l’université technologique de Compiègne, Cours Ingénieur - Modes opératoires de l’urbanisme contemporain, 2011. [HUOT-98] Jean-Louis Huot, Professeur d’archéologie, Livre "La ville neuve, une idée de l’antiquité", 1998. [PIRENNE-98] Henri Pirenne, Historien Belge, L’origine des constitutions urbaines, dans Revue historique, Tome LVII, p. 70, 1898. [LAVEDAN-36] Pierre Lavedan, Historien urbaniste français, "Géographie des villes", Gallimard, 1936. [RIBOUL-98] Pierre Riboulet, "Onze leçons sur la composition urbaine", Presses des Ponts et Chaussées, Paris 1998. [MERLIN-07] Pierre MERLIN, Livre "L’Urbanisme", Collection PUF, Que Sais-Je ?, Paris, 2007. [JACOBS-69] Jane Jacobs, "The economy of cities", Penguin books, 1969. [DONZEL-03] Jacques Donzelot, "Faire société, politique de la ville USA-France", seuil, 2003. [CHOAY-65] Françoise Choay, "L’urbanisme, utopies et réalités : Une anthologie", Paris, Seuil, coll. « Points », 1965. [BAUER-76] Gérard Bauer et Jean-Michel Roux, "La rurbanisation", Ed. du Seuil, 1976. [MANGIN-04] David Mangin, Livre "La ville franchisée. Formes et structures de la ville contemporaine", Éd. La Villette, 2004. [VENTURI-71] Robert Venturi, Denise Scott Brown, Steven Izenour, "L’enseignement de Las Vegas ou le symbolisme oublié de la forme architecturale", MIT, 1971. [SUEUR-11] Rapport d’information de M. Jean-Pierre SUEUR, sénateur - VILLES DU FUTUR, FUTUR DES VILLES - QUEL AVENIR POUR LES VILLES DU MONDE ? , 9 juin 2011 [WADDEL-02] Paul Waddell, UrbanSim : Modeling Urban Development for Land Use, Transportation and Environmental Planning, Journal of the American Planning Association, Vol. 68 No. 3, Summer 2002, pages 297-314. (preprint) [SIMAUR-04] Projet de recherche SIMAURIF, rapport n°1, Modèle dynamique de simulation de l’interaction Urbanisation-Transports en Région Ile-de-France, Septembre 2004 [SIMAUR-05] Projet de recherche SIMAURIF, rapport n°2, Modèle dynamique de simulation de l’interaction Urbanisation-Transports en Région Ile-de-France, Octobre 2005 [SIMAUR-07] Projet de recherche SIMAURIF, rapport n°3, Modèle dynamique de simulation de l’interaction Urbanisation-Transports en Région Ile-de-France, Novembre 2007 [PERRET-10] J. Perret, F. Curie, J. Gaffuri, A. Ruas, GeOpenSim : Un système multi-agent pour la simulation des dynamiques urbaines, in actes des 18èmes Journées Francophones sur les Systèmes Multi-Agents (JFSMA’10), Mahdia, Tunisie, 2010. 109 BIBLIOGRAPHIE 110 [ROQUET-06] Véronique ROQUET, Agence de développement et d’urbanisme de Lille Métropole, Guide de programmation urbaine, Les cahiers de l’atelier des espaces publics de Lille Métropole, 2006 [PUMAIN] Denise Pumain, site Hypergéo, Définition, Centralité [LEVY-05] Albert Lévy, Espaces et sociétés, Formes urbaines et significations : revisiter la morphologie urbaine, Avril 2005 (no 122), p. 25-48. [BARTAK-99] Roman Barták, Constraint Programming : In Pursuit of the Holy Grail, dans Proceedings of Week of Doctoral Students WDS99 (1999) , p. 555-564. [SOLNON-03] Christine Solnon, Cours de programmation par contraintes, Université de Lyon I, 2003. [REGIN-04] Jean-Charles Régin, Rapport d’Habilitation à diriger des recherches, Modélisation et Contraintes Globales en Programmation par Contraintes, Novembre 2004. [BARNIER-02] Nicolas BARNIER, Thèse, Application de la programmation par contraintes à des problèmes de gestion du trafic aérien, Décembre 2002. [DIB-10] Mohammad DIB, Thèse, Tabu-NG : hybridation de programmation par contraintes et recherche locale pour la résolution de CSP, Décembre 2010. [BLUM-03] Christian BLUM et Andrea ROLI, Metaheuristics in combinatorial optimization : Overview and conceptual comparison, ACM Comput. Surv. 35(3) :268-308 (2003). [CODOG-01] Philippe Codognet et Daniel Diaz,Yet Another Local Search Method for Constraint Solving, SAGA, volume 2264 of Lecture Notes in Computer Science, page 73-90. Springer, (2001). [GLOVER-99] Fred Glover et Manuel Laguna, Tabu Search, Kluwer (1999) , p. I-XIX, 1-382. [CHOCO-11] Choco Solver, Présentation - Tutorial et Documentation, 2011. [U-BOUL] Université de Boulogne, Cours de programmation par contraintes, Master-II BD-IA & Image-IA. [DEVAR-06] Isabelle Devarenne, Hakim Mabed, and Alexandre Caminada, Intelligent neighborhood exploration in local search heuristics, CTAI, page 144-150. IEEE Computer Society, (2006). [DEVAR-05] I. Devarenne, A. Caminada, H. Mabed, Analysis of Adaptive Local Search for the Graph Coloring Problem, 6th Metaheuristics International Conference – MIC 2005, Vienne Autriche, 2005. [WIDMER-01] Marino WIDMER, Les métaheuiristiques : des outils performants pour les problèmes industriels, 3e Conférence Francophone de MOdélisation et SIMulation "Conception, Analyse et Gestion des Systèmes Industriels" MOSIM’01 – du 25 au 27 avril 2001 Troyes (France). [HANSEN-99] Pierre Hansen et Nanad Mladenovic, Variable neighborhood search : Principes and applications, European Journal of Operational Research, 1999. [YAGIURA-01] Mutsunori YAGIURA et Toshihide IBARAKI. On metaheuristic algorithms for Combinatorial Optimization Problems, Systems and Computers in Japan, Vol. 32, Nr. 3 (2001) , p. 33-55. [TAILLAR-00] E.D. TAILLARD, L.-M. GAMBARDELLA, M. GENDREAU et J.-Y. POTVIN. Adaptive Memory Programming : A Unified View of Meta-Heuristics, European Journal of Operational Research, 2000 [MICHEL-97] L. MICHEL et P. VAN HENTENRYCK. Localizer : A modeling language for local search. Proceedings of the Third Conference on Principes and Practice of Constraint Programming. 1997 [SCHAERF-00] Andrea SCHAERF, Marco CADOLI et Maurizio LENZERINI. LOCAL++ : A C++ framework for local search algorithms, Softw., Pract. Exper., Vol. 30, Nr. 3 (2000) , p. 233-257. BIBLIOGRAPHIE 111 [FINK-98] Andreas Fink, Building Reusable Software Components for Heuristic Search, Extended Abstract of a talk given at OR98, Zurich, 1998. [NILSEN-98] P.K Nilsen and N. Prcovic, Parallel Optimisation in the SCOOP Library, IPPS/SPDP Workshops, page 452-463. (1998). [HENTEN-05] Pascal Van Hentenryck et Laurent Michel, MIT Press (2005) , p. I-XIX, 1-422. [TALBI-00] EL-ghazali TALBI. Métaheuristiques pour l’optimisation combinatoire multi-objectif : Etat de l’art. Rapport technique, Rapport CNET (France Télécom), 2000. [TSANG-99] E.P.K. TSANG, C.J. WANG, A. DAVENPORT, C. VOUDOURIS et T.L. LAU. A family of stochastic methods for constraint satisfaction and optimization. The First Internationel Conference on The Practical Application of Constraint Technologies and Logic Programming (PACLP). London, UK, avril 1999. [HAO-99] Jin-Kao Hao, Philippe Galinier, Michel Habib, Métaheuristiques pour l’optimisation combinatoire et l’affectation sous contraintes, Revue d’Intelligence Artificielle, Vol : No. 1999 [BITNER-75] J.R. BITNER, E.M. REINGOLD, Backtracking programming techniques. Communications of the ACM 18 : 651-656, 1975. [MACKW-87] A.K. MACKWORTH, Constraint satisfaction, Dans S.C. Shapiro (Ed.) Encyclopedia on Artificial Intelligence, John Wiley & Sons, NY, 1987. [MARTIN-10] Julien Pierre Martin, Thèse, Un Langage de Modélisation à base de Règles pour la Programmation Par Contraintes, 2010. [PAPADIM-82] C.H. PAPADIMITRIOU, K. STEIGLITZ, Combinatorial optimization - algorithms and complexity. Prentice Hall, 1982. [MINTON-90] S. MINTON, M.D. JOHNSTON, P. LAIRD, Solving large scale constraint satisfaction and scheduling problems using a heuristic repair method. Proc. of AAAI’90, Boston, MA, 1990. [MINTON-92] S. MINTON, M.D. JOHNSTON, P. LAIRD, Minimizing conflicts : A heuristic repair method for constraint satisfaction and scheduling problems. Artificial Intelligence 58(13) : 161-206, 1992. [GOLDB-89] David GOLDBERG. Genetic Algorithms. Addison Wesley, 1989. [EIBEN-95] A. E. EIBEN et P. E. RAU. Improving the perfomance of GAs on a GA-hard CSP. Proceedings of the Workshop on Studying and Solvin Really Hard Problems - CP’95.Cassis, France, 1995. [KIRKPAT-83] S. KIRKPATRICK, C.D. GELATT, P.M. VECCHI, Optimization by simulated annealing. Science 220 : 671-680, 1983. [CERNY-85] V. CERNY, A thermodynamical approach to the travelling salesman problem : an efficient simulated annealing algorithm. Journal of Optimization Theory and Applications 45 : 41-51, 1985. [GLOVER-86] F. GLOVER, Future paths for integer programming and links to artificial intelligence. Computers and Operations Research 13 : 533-549, 1986. [HANSEN-86] P. HANSEN, The steepest ascent mildest descent heuristic for combinatorial programming. Congress on Numerical Methods in Combinatorial Optimization, Capri, Italie, 1986. [VANEG-09] C. A. VANEGAS et al., Modeling the Appearance and Behavior of Urban Spaces, Volume 28 (2009), Number 2 pp. 1–18, COMPUTER GRAPHICS forum [VANEG-09b] C. A. VANEGAS, Daniel G. Aliaga, Bedřich Beneš, Paul A. Waddell, Interactive Design of Urban Spaces using Geometrical and Behavioral Modeling, ACM SIGGRAPH Asia 2009 papers. BIBLIOGRAPHIE 112 [WADDEL-04] P. WADDELL, F. ULFARSSON, 2004. Introduction to Urban Simulation : Design and Development of Operational Models. Handbook in Transport, Volume 5 : Transport Geography and Spatial Systems, Pergamon Press, 203-236. [WEBER-09] Basil Weber, Pascal Müller, Peter Wonka, and Markus Gross Comput. Graph., Interactive Geometric Simulation of 4D Cities, Forum 28(2) :481-492 (2009). [LEBER-99] F. LE BER et al., Simuler l’organisation spatiale d’un territoire agricole : différentes approches, Actes du colloque SMAGET, pp.239-254, Cemagref Editions, 1999 [BOUSQ-96] F. Bousquet, O. Barreteau, C. Mullon et J. Weber, 1996. Modélisation d’accompagnement : systèmes multi– agents et gestion des ressources renouvelables. Dans : Quel avenir pour la planète. Colloque de Fontevraud. [DURY-98] A. Dury, F. Le Ber et V. Chevrier, 1998. A reactive approach for solving constraint satisfaction problems : assigning land use to farming territories. In Workshop Pre–Proceedings ATAL’98, pages 289–303. LIP6, Paris. [GROEN-09] S. A. Groenewegen, R. M. Smelik, K. J. de Kraker and R. Bidarra, Procedural City Layout based on Urban Land Use Models, EUROGRAPHICS 2009. [GROEN-09b] S. A. Groenewegen, Thesis for the degree of Master of Science, Procedural City Layout based on Urban Land Use Models, 2009. [LECHNER-06] T. Lechner, B. Watson, P. Ren, U. Wilensky, S. Tisue, & M. Felsen, Procedural Modeling of Urban Land Use, ACM SIGGRAPH 2006 conference. [KABANZ-11] Froduald Kabanza, Département d’informatique, Université de Sherbrooke, Recherche Heuristique Locale. Cours d’intelligence artificielle. Janvier 2011. [BESSIER-03] Christian Bessière et Pascal Van Hentenryck,To be or not to be...a global constraint. Dans Francesca Rossi, éditeur : Proceedings of the 9th International Conference on Principles and Practice of Constraint Programming (CP-03), pages 789794, Kinsale, County Cork, Ireland, septembre 2003. Springer.