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.