Projet ensierb en Recherche opérationnelle

Transcription

Projet ensierb en Recherche opérationnelle
Projet ensierb en Recherche opérationnelle
1° année info 2008/2009
présenté par Paul MOREL
Le problème à traiter est celui du calcul d'un plan de feux tricolore sur un carrefour
isolé. C'est-à-dire que pour un temps de cycle donné, des débits donnés sur chaque
arrivée, on veut calculer s'il est possible de faire passer tout le trafic et si la réponse
est positive on souhaite calculer les durées de vert à accorder pour chaque flux et les
instants d'allumage. Dans un second temps on souhaite pouvoir modifier les temps
d’allumage au vert sans changer l’ordonnancement des éclairages.
On donne:
•
•
•
•
•
•
La topographie du carrefour et les sens de parcours des voies. On a
Nfeux, qui se répartissent en feu trafic, flèches, feu piéton,…
Le temps de cycle: Temps_cycle, est commun à tous les feux. Ce
temps de cycle comprend le temps de rouge, le temps de vert, et du
temps perdu ; le temps d'orange est de fait inclus dans le temps de
rouge
les flux Q(i) en véhicules par heure, des véhicules qui arrivent sur le
carrefour ainsi que leur trajectoires
les débits de saturation de chaque voie en véhicules par heure, c'est-àdire le nombre maximal de véhicules pouvant physiquement être
accepté: s(i)
Pour chaque feu on fixe un temps légal de vert minimal :vermin(i).
Les ingénieurs du trafic dressent une matrice des conflits: SEC de taille
Nfeux.*Nfeux telle que
SEC(i,j) =0 si le feu i et compatible avec le feu j , SEC(i,j) =1 si le feu i
et incompatible avec le feu j
Dans un premier temps on recherche l'ordre optimal des allumages des divers
feux ainsi que les temps d'allumage:Vert(i),des divers feux pour assurer le
fonctionnement optimal du carrefour.
Il est clair que tous les feux ne doivent pas être allumés en même temps (!!) et que
des contraintes vont intervenir
On a des contraintes sur la demande et l'offre de trafic.. Si on note Q(i) le débit
demandé et S(i) le débit de saturation : l'offre du flux entrant n° i géré par le feu F( i),
on doit avoir pour que ce feu arrive à écouler la demande la contrainte:
Q(i ).
Cycle≤S(i). Vert(i)
Si on note Mu(i) le plus grand coefficient par lequel on peut multiplier la demande
sans dépasser l'offre on a :
Mu(i). Q(i) Temps_Cycle = S(i ). Vert(i).
Une contrainte importante sera de s'assurer que le plan de feux peut écouler
l'ensemble du trafic. On note que la réserve de capacité du carrefour est le plus
petit des Mu(i), et qu'il sera intéressant de la maximiser
Les Ingénieurs sont amenés à définir entre certains feux des "décalages", par
exemple une ouverture anticipée d' un départ de bus". Pour un décalage à
l'ouverture on imposera que le feu F(i) s'allume deo(i,j) secondes avant l'allumage du
feu F( j). Pour un décalage à la fermeture que le feu F( i) se termine def(i,j)
secondes avant la fin du feu F( j). Pour un décalage entre ouverture et fermeture que
le feu F( i) débute deof(i,j) secondes avant la fin du feu F( j),
La matrice de sécurité sert aussi à déterminer de telles contraintes: SEC(i,j) =d(i,j)>o
si le feu j doit attendre d(i,j) secondes après la fin du feu i pour s'allumer.
Notons que cette matrice n'est pas forcément symétrique. Ce sont les temps de
dégagement ou de sécurité.
Cas d'un carrefour en T
5
6
1
2
3
4
Matrice des conflits des flux
1
1
2
3
4
5
6
1
1
1
2
1
3
1
1
1
4
1
5
1
1
1
Matrice des temps de sécurité
6
1
1
1
2
3
4
5
6
2
3
4
2
2
3
4
4
4
5
4
2
1
6
3
1
2
L'ordre d'allumage des feux n'est pas fixé à priori on a donc des contraintes
disjonctives à écrire pour savoir qui du feu F( i) ou du feu F(j) s'allumera en premier;
par ailleurs chaque feu doit s'allumer au moins une fois par cycle
Travail 1
On travaille sur le problème (simple ) du carrefour en T
On considère dans un premier temps que le temps de cycle est donné, ainsi que les
débits de saturation, les demandes de trafic, les décalages, les temps de sécurité,
les temps de vert minimaux..
Introduire comme inconnues : les dates d’ouverture au vert de chaque feu,les durées
de vert de chaque feu, des variables booléennes permettant de gérer l’ordre
d’allumage, les réserves de capacité Mu(i),…
Traduire les contraintes de trafic en (in)égalités linéaires liant les données et les
inconnues, mettre au point un critère d’optimalité ; en d’autres mots : écrire un
problème d’optimisation linéaire.
Donnez une variante du problème précédent si on prend comme inconnue le temps
de cycle.
Résoudre avec le logiciel lp_solve
Travail 2
On veut traiter de manière automatique un carrefour quelconque. On doit donc
générer de manière automatique les contraintes, la fonction économique,résoudre et
concevoir un journal très lisible des résultats. La résolution aura lieu avec lp_solve.
Obtenir la matrice des phases, c'est-à-dire le regroupement des feux pouvant être
allumés en même temps. On peut montrer que c’est de fait un problème de
recouvrement minimal par des regroupements maximaux de feux
compatibles( cliques maximales du graphe des compatibilités) Ci-dessous on traite le
cas ducarrefour en T(le plus simple!!).
Graphes des compatibilités et décomposition en cliques recouvrantes qui donne les
phases
3
3
4
2
4
2
2
4
2
1
4
5
6
6
1
5
6
6
Matrice des phases
flux
1
phaseA
1
Phase B
0
Phase C
0
2
1
1
0
3
4
5
1
0
1
1
0
1
6
1
0
1
Travail 3
Après avoir résolu le carrefour, on veut avoir la possibilité en conservant l’ordre
d’allumage des feux ( ce que l’on appelle le phasage), de modifier les temps de
sécurité.
Donnez le programme correspondant
Résoudre avec lp_solve
Mettre en évidence dans le journal des résultats les défauts par rapport à l’optimalité
obtenu lors de la résolution du travail2