SESSION 2017 PSIIN07 !
!
!
!
EPREUVE SPECIFIQUE - FILIERE PSI!
!!!!!!!!!!!!!!!!!!!!"
!
INFORMATIQUE
Vendredi 5 mai : 8 h - 11 h!
!!!!!!!!!!!!!!!!!!!!"
N.B. : le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la
!"#$%&'()*+,'+-)+%$)#'#$&+./&+$0.)"+1+!.2"!.!+%.+3-'+2.-&+4-'+/.054.!+6&!.+-).+.!!.-!+#7")()%"8+'4+4.+
/'9)$4.!$+/-!+/$+%(2'.+.&+#.:!$+2(-!/-':!.+/$+%(02(/'&'()+.)+.;24'3-$)&+4./+!$'/()/+#./+')'&'$&':./+3-7'4+
a été amené à prendre.!
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
! .
Les calculatrices sont interdites
Le sujet comporte 15 pages dont :
– 13 pages de texte de pr´esentation et ´enonc´e du sujet ; – 2 pages d’annexes.
Toute documentation autre que celle fournie est interdite.
REMARQUES PRELIMINAIRES
L’´epreuve doit ˆetre trait´ee en langage Python. Les syntaxes sont rappel´ees en
annexe 2.Les di
ff´erents algorithmes doivent ˆetre rendus dans leur forme d´efinitive sur la copie `a rendre (les brouillons ne seront pas accept´es).
Il est demand´e au candidat de bien vouloir r´ediger ses r´eponses en
pr´ecisant bien le num´ero de la question trait´ee et, si possible, dans l’ordre des questions. La r´eponse ne doit pas se cantonner `a lar´edaction de l’algorithme sans explication ; les programmes doivent ˆetre expliqu´es et comment´es.
Etude de la capacit´e et de la congestion de l’autoroute A7 ´
I Objectifs et d´emarche d’´etude
Il existe plusieurs formes de congestions routi`eres, selon leur cause : la congestion r´ecurrente, la congestion
✭✭pr´evisible
✮✮(travaux, manifestations, m´et´eo) et la congestion due aux incidents et accidents, par d´efinition impr´evisibles. On s’int´eresse ici au niveau de congestion r´ecurrente qui peut ˆetre d´efini comme le surplus de demande qui am`ene la congestion.
Cette ´etude se focalise sur la congestion routi`ere de l’auto- route A7 en France. La section ´etudi´ee ne comporte ni entr´ee ni sortie. La longueur de l’axe est de 8,5 km et comporte 3 voies sauf au niveau de la derni`ere station (non ´etudi´ee ici).
Un seul sens de circulation est ´etudi´e.
La cartographie pr´esent´ee sur la
figure 1donne l’implanta- tion des di
ff´erentes stations de mesure, de la station M8A `a M8P, et des contrˆoles de sanction automatique (CSA). Ces stations de mesure font partie du syst`eme de recueil automa- tique des donn´ees (RAD) pr´esent sur les autoroutes.
Figure 1 –
Cartographie de la zone d’´etude
Pour r´ealiser les mesures, la chauss´ee est ´equip´ee de boucles ´electromagn´etiques connect´ees aux stations qui remontent l’information vers un syst`eme central. Ces boucles permettent de compter le nombre de v´ehicules qui passent sur les routes et, dans le cadre de cette ´etude, il s’agit de boucles doubles qui permettent aussi d’estimer les vitesses.
La connaissance et le suivi du niveau de congestion r´ecurrente permettent ensuite d’envisager des actions de r´egulation et d’am´enagement de voirie. La simulation num´erique est alors employ´ee pour
´etudier di
ff´erentes solutions d’am´enagement ou proposer des solutions de r´egulation dynamique du trafic.
Objectifs
Le premier objectif est d’´etablir le diagramme fondamental (trac´e du d´ebit en fonction de la concen- tration) caract´eristique du tron¸con ´etudi´e `a partir de l’historique de donn´ees de comptage.
Le deuxi`eme objectif est de mettre en place une simulation num´erique adapt´ee au tron¸con ´etudi´e `a partir de deux mod`eles afin de tester deux approches num´eriques diff´erentes.
II Traitement des donn´ees exp´erimentales
La m´ethodologie choisie ici pour estimer la capacit´e d’une route est celle utilis´ee notamment par les
centres d’´etudes techniques de l’´equipement. Elle consiste `a repr´esenter un diagramme fondamental,
c’est-`a-dire le d´ebit q, nombre de v´ehicules par unit´e de temps, en fonction de la concentration c,
nombre de v´ehicules par unit´e de longueur. Ce diagramme permet alors de d´eterminer les param`etres
caract´eristiques de la route.
II.1 Exploitation des donn´ees de mesure
II.1.1 S´election des mesures
L’ensemble des donn´ees produites par le r´eseau est archiv´e dans une base de donn´ees. Les va- riables d’int´erˆet moyenn´ees par tranche de temps de 6 min pour chaque point de mesure sont le d´ebit q exp, repr´esentatif du nombre de v´ehicules par unit´e de temps et la vitesse moyenne v exp des v´ehicules en ce point. On peut ´egalement acc´eder `a la concentration, c exp, par calcul ´etant donn´e que c exp
=q exp/v exp.
Une version simplifi´ee de cette base de donn´ees est r´eduite `a deux tables.
La table STATIONS r´epertorie les stations de mesures ; elle contient les attributs :
– id station (cl´e primaire), entier identifiant chaque sta- tion ;
– nom, chaˆıne de caract`eres d´esignant le nom de la sta- tion ;
– nombre voies, entier donnant le nombre de voies de la section d’autoroute.
COMPTAGES STATIONS
id_station nom nombre_voies
id_comptage id_station date voie q_exp v_exp
La table COMPTAGES r´epertorie les di
ff´erents enregistrements de donn´ees r´ealis´es au cours du temps par les stations de comptage. Elle contient les attributs :
– id comptage, entier identifiant chaque comptage ; – id station, entier identifiant la station concern´ee ; – date, entier datant la mesure ;
– voie, entier num´erotant la voie sur laquelle a ´et´e e
ffectu´ee la mesure ; – q exp, flottant donnant le d´ebit mesur´e pendant 6 minutes ;
– v exp, flottant donnant la vitesse moyenne mesur´ee pendant 6 minutes.
Q1. L’´etude se focalise uniquement sur les mesures de l’une des stations, la M8B. ´ Ecrire une requˆete SQL qui renvoie les donn´ees de comptage (id comptage, date, voie, q exp, v exp) mesur´ees `a la station de comptage de nom M8B.
Le r´esultat de la requˆete pr´ec´edente est stock´e dans une nouvelle table COMPTAGES M8B `a cinq colonnes (id comptage, date, voie, q exp, v exp).
On fait l’hypoth`ese que les mesures sur les di
ff´erentes voies d’une mˆeme station sont enregistr´ees de fac¸on synchronis´ee. Lors d’un enregistrement pour une station `a trois voies, on ´ecrit donc trois lignes dans la table COMPTAGES avec trois dates identiques. Pour chacun des enregistrements de la station M8B, trois lignes avec trois dates identiques sont donc pr´esentes dans la nouvelle table COMPTAGES M8B. Pour la suite de l’´etude, les r´esultats exp´erimentaux de chacune des trois voies doivent ˆetre agr´eg´es pour se ramener `a une voie unique.
Q2. Ecrire une requˆete SQL qui renvoie, pour chaque date des donn´ees de ´ COMPTAGES M8B, le d´ebit correspondant `a la somme des d´ebits de chaque voie.
De la mˆeme fac¸on, une requˆete SQL permet d’obtenir la moyenne des vitesses sur l’ensemble des
trois voies pour chaque date des donn´ees de COMPTAGES M8B. Il n’est pas demand´e d’´ecrire
cette requˆete. Ainsi, dans la suite de l’´etude, la portion d’autoroute sera simplifi´ee en ne consid´erant
qu’une seule voie.
II.1.2 Diagramme fondamental
On veut tracer le diagramme fondamental du tronc¸on d’autoroute ´etudi´e (figure 2). Suite au traitement de la base de donn´ees, on dispose `a pr´esent du tableau `a une dimension (aussi appel´e vecteur) des d´ebits q exp (en v´ehicules par heure) et du vecteur des vitesses v exp (en kilom`etres par heure). Ces deux vecteurs poss`edent nb
mesurescomposantes avec nb
mesuresle nombre de points de mesure `a tracer. Pour chaque composante i, la relation c exp[i]
=q exp[i]/v exp[i] permet d’obtenir la concentra- tion. L’utilisation des tableaux `a une dimension (ou vecteurs) est rappel´ee en annexe 2.
!"#$%#&'(&)"#*+,-.)$/0%*1*234
5-6)&*+,-.)$/0%*1*.4
7 87 977 987 :77
7***************:777*************;777*************<777**************=777*
Figure 2 – Points de mesure M8B : diagramme fondamental (c exp,q exp)
Q3. Ecrire une fonction ´ trace(q exp
,v exp) qui prend en arguments q exp et v exp et qui permet d’a
fficher le nuage de points du diagramme fondamental. On consid`erera que les biblioth`eques sont import´ees et on pourra utiliser la fonction
✭✭plot
✮✮donn´ee en annexe 2.
II.2 Estimation de l’´etat de congestion
Au niveau d’une station de mesure, la situation est dite congestionn´ee lorsque les vitesses prises par les v´ehicules restent inf´erieures `a 40 km/h et la situation est dite fluide lorsque les vitesses restent sup´erieures `a 80 km/h.
Q4. La fonction congestion(v exp), qui prend en argument v exp et renvoie la valeur m´ediane du tableau de valeurs v exp est d´efinie ci-dessous. La recherche de la m´ediane est bas´ee sur un al- gorithme de tri. Choisir une des 4 propositions donn´ees pour compl´eter les 2 lignes manquantes (indiqu´ees par
✭✭ligne `a compl´eter
✮✮). Donner le nom, puis la complexit´e de l’algorithme de tri employ´e, dans le meilleur et le pire des cas. Analyser la pertinence de ce choix.
def congestion(v_exp):
nbmesures=len(v_exp) for i in range(nbmesures):
v=v_exp[i]
j = i
while 0 < j and v < v_exp[j-1]:
ligne `a compl´eter ligne `a compl´eter v_exp[j] = v
return v_exp[nbmesures//2]
Propositions pour les lignes manquantes : 1. v_exp[j-1] = v_exp[j]
j = j-1
2. v_exp[j] = v_exp[j-1]
j = j-1
3. v_exp[j+1] = v_exp[j]
j = j+1
4. v_exp[j] = v_exp[j+1]
j = j+1
Q5. A partir de la base de donn´ees de la station ` M8B, on obtient le vecteur v exp. On ex´ecute
la fonction congestion(v exp), la valeur retourn´ee par la fonction ´etant 30, quelle conclusion
peut-on tirer de ce r´esultat?
III Elaboration d’une premi`ere simulation du trafic routier par ´ la m´ecanique des fluides
Il est rappel´e ici que dans toute la suite de l’´etude, l’autoroute est assimil´ee `a une seule voie. Le mod`ele continu revient `a n´egliger le caract`ere discret de la mati`ere. Pour le mod`ele routier, cela revient donc
`a regarder l’´evolution du trafic sur des distances grandes devant la taille des v´ehicules, not´ee L0. On appelle c(t
,x), en v´ehicules par m`etre, la concentration de v´ehicules par unit´e de longueur de route `a l’instant t et `a la position x. Sur une longeur L0, il y a, au plus, un seul v´ehicule, soit c
≤c max
=1
L0 . On appelle q(t,x), en v´ehicules par seconde, le d´ebit de v´ehicules, c’est-`a-dire le nombre de v´ehicules par unit´e de temps traversant la section de la route situ´ee `a la position x. La vitesse v(t,x), en m`etres par seconde, ne repr´esente pas la vitesse de chacun des v´ehicules mais la vitesse moyenne du trafic `a la position x. On consid`ere que les v´ehicules se d´eplacent selon l’axe x dans le sens des x croissants.
On rappelle la relation q(t,x)
=c(t,x)
×v(t,x). D´esormais, q, v et c repr´esentent les grandeurs si- mul´ees et non plus des donn´ees exp´erimentales. On travaille dans la suite avec les unit´es du syst`eme international.
En consid´erant une portion d’autoroute dx pendant une dur´ee dt et en supposant qu’il n’y a ni perte, ni cr´eation de v´ehicule, il est possible de montrer que q(t,x) et c(t,x) verifient l’´equation aux d´eriv´ees partielles suivante :
∂
q(t
,x)
∂x +
∂
c(t
,x)
∂t =
0. (1)
Pour comprendre comment ´evoluent la concentration, la vitesse moyenne ou le d´ebit de v´ehicules au cours du temps le long de l’autoroute, il convient donc de r´esoudre cette ´equation aux d´eriv´ees partielles `a partir de la situation initiale.
III.1 Discr´etisation
Afin de r´esoudre num´eriquement cette
´equation aux d´eriv´ees partielles, nous avons besoin de la discr´etiser. On choisit les param`etres suivants :
– longueur de l’autoroute : La – dur´ee de simulation : T emps – pas d’espace (en m`etres) : dx – pas de temps (en secondes) : dt
Discrétisation en espace (indice j)
Discrétisation en temps (indice i) Sens des temps croissants
Sens des positions croissantes
!"#$,%#$ !"#$,% !"#$,%&$
!",%#$ !",% !",%&$
!"&$,%#$ !"&$,% !"&$,%&$
Figure 3 –
Repr´esentation de la discr´etisation
Q6.Soit C le tableau de valeurs contenant les concentrations en tous les points x et `a tous les ins-
tants t discr´etis´es, comme repr´esent´e sur la
figure 3. L’approximation num´erique de la concen-tration au temps t
iet `a la position x
jsera not´ee C
i,javec i d´esignant l’indice de temps et j
d´esignant l’indice d’espace. Quelles sont les dimensions de C ?
III.2 Un mod`ele de diagramme fondamental
L’´equation (1) poss`ede deux inconnues. Il faut donc ajouter une deuxi`eme ´equation pour pouvoir la r´esoudre. On propose tout d’abord de relier la vitesse et la concentration par le mod`ele de Greenshield
´etabli `a partir des analyses suivantes :
– lorsque la concentration en v´ehicules tend vers 0, les conducteurs peuvent rouler `a la vitesse maximale autoris´ee, v max en m`etres par seconde ;
– lorsque les v´ehicules sont pare-choc contre pare-choc, la concentration est ´egale `a c max en v´ehicules par m`etre : ils n’avancent plus.
Une relation lin´eaire entre vitesse et concentration est choisie dans le mod`ele de Greenshield, qui est ainsi d´efini par la relation suivante :
v(t,x)
=v max(1
−c(t,x)/c max). (2)
On souhaite concevoir une fonction diagramme permettant de r´ealiser le trac´e du diagramme fonda- mental pour un instant donn´e t
i(soit pour une ligne de C). Cette fonction fait appel `a une fonction debit permettant de calculer les valeurs de d´ebit `a un instant t
ien utilisant la relation de Greenshield (2). Ces valeurs sont stock´ees dans un vecteur Q. Le trac´e du diagramme fondamental est r´ealis´e et le tableau Q est retourn´e.
Q7. Ecrire une fonction ´ debit(v max
,c max
,C ligne) qui prend en arguments la vitesse maximale (v max), la concentration maximale (c max) et un tableau contenant les concentrations `a un instant donn´e (soit les ´el´ements d’une ligne du tableau C) nomm´e ici C ligne et qui renvoie un tableau de valeurs contenant les d´ebits (en v´ehicules par seconde) aux di
ff´erentes positions `a ce mˆeme instant.
Q8. Sp´ecifier les arguments d’entr´ee (et leur type) de la fonction diagramme. L’´ecriture du code de la fonction n’est pas demand´ee. Pr´eciser les unit´es des di
ff´erents termes. Tracer l’allure du diagramme fondamental obtenu. L’allure du diagramme d´epend-elle du temps t
iauquel on se place (soit du choix de la ligne de C)?
III.3 R´esolution de l’´equation
III.3.1 Situation initiale
On consid`ere une situation de d´epart (t
=0), comme indiqu´e sur la figure 4. On se place dans une configuration o`u l’on a un profil de concentration dont on veut ´etudier l’´evolution.
La concentration c1 la plus faible passe `a c2, plus forte, `a la distance d1 et revient `a c1 en d2.
Chacune des distances sera discr´etis´ee.
L’approximation num´erique d’une distance correspondra `a la division enti`ere de la distance par le pas.
!"#$%$"&'#()'*+,(%")"(%-
Concentration
d1 d2 La
0 c1 c2
Figure 4 – Configuration initiale Q9. Concevoir une fonction C depart qui permet d’initialiser la premi`ere ligne du tableau C (cor-
respondant `a t
=0). L’´ecriture du code correspondant n’est pas demand´ee ; en revanche, on
pr´ecisera toutes les valeurs de j pour lesquelles C
0,jsera ´egale `a c1 et toutes les valeurs pour
lesquelles C
0,jsera ´egale `a c2. L’en-tˆete ou sp´ecification de la fonction devra ˆetre pr´ecis´e(e) (et
comporter les arguments d’entr´ee et leur type), ainsi que le r´esultat renvoy´e par la fonction.
III.3.2 R´esolution
Le tableau C contient des z´eros, except´ee la premi`ere ligne qui a ´et´e remplie de valeurs grˆace `a la mise en œuvre de la fonction C depart. On souhaite `a pr´esent ´ecrire la fonction resolution(C
,dt
,dx
,c max
,v max) permettant de r´esoudre l’´equation et de remplir compl`etement le tableau C.
Connaissant pour tout indice j les valeurs de C
i,j, on cherche `a d´eterminer C
i+1,j.
Dans le sch´ema d’Euler
✭✭avant
✮✮, la d´eriv´ee d’une fonction f par rapport `a la variable x, au point x
j, d f
dx (x
j), est approxim´ee (en utilisant ce point et le point situ´e
✭✭devant
✮✮lui) par f
j+1−f
jdx .
Q est un vecteur contenant les valeurs de d´ebits Q
jaux di
ff´erentes positions x
jet `a l’instant t
i(l’ap- proximation du d´ebit au temps t
iet `a la position x
jsera donc not´ee Q
j.). ` A chaque instant t
i, Q devra ˆetre recalcul´e.
Q10.
A partir de l’´equation (1) et en utilisant des sch´emas d’Euler `
✭✭avant
✮✮pour l’´ecriture des d´eriv´ees, montrer que la relation de r´ecurrence donnant C
i+1,jen fonction de C
i,j, Q
j+1, Q
j, dx et dt est donn´ee par l’une des propositions ci-dessous. Le num´ero de la r´eponse correcte sera clairement indiqu´e sur la copie.
1. C
i+1,j=C
i,j−Q
j−Q
j+1dx
.dt2. C
i+1,j=C
i,j−Q
j+1−Q
jdx
.dt3. C
i+1,j=C
i,j−Q
j+1−Q
jdt
.dx4. C
i+1,j=C
i,j−Q
j−Q
j−1dx
.dtPour que le nombre de voitures soit constant sur la longueur de la route, il faut se fixer des conditions aux limites p´eriodiques. Ainsi, quand un v´ehicule arrive en bout d’autoroute, il est replac´e au d´ebut de celle-ci. On consid`ere donc que le v´ehicule situ´e en x
=La, se d´eplac¸ant vers la droite, a pour voisin de droite le v´ehicule situ´e en x
=0.
Q11.
L’initialisation a ´et´e e
ffectu´ee avec la fonction C depart(dx
,d1
,d2
,c1
,c2
,C). ´ Ecrire une fonction resolution(C
,dt
,dx
,c max
,v max) qui prend en arguments le tableau C, les pas dt et dx, la concentration maximale c max et la valeur de la vitesse maximale v max et qui renvoie le tableau C rempli au cours de la r´esolution. On pourra faire appel `a la fonction debit(v max
,c max
,C ligne) d´efinie `a la question
Q7.III.4 Etude des solutions trouv´ees et modification du sch´ema ´
On ´etudie deux situations de d´epart bas´ees sur le mˆeme profil que celui propos´e `a la situation initiale (figure 4). Dans le cas 1, on choisit c1 et c2, respectivement not´ees c1b et c2b, correspondant `a des concentrations faibles. On peut montrer que, pour ces concentrations, le cr´eneau se d´eplace vers la droite (dans le sens des x croissants) au cours du temps. Cette d´emonstration n’est pas demand´ee.
Dans le cas 2, on choisit c1 et c2, respectivement not´ees c1h et c2h, correspondant `a des concentrations
fortes. On peut montrer que, pour ces concentrations, le cr´eneau se d´eplace vers la gauche (dans le
sens des x d´ecroissants) au cours du temps. Cette d´emonstration n’est pas demand´ee.
On applique la fonction
resolution`a ces deux situations de d´epart et on repr´esente la concentration en fonction de la position `a di
ff´erents instants (figure 5). La situation initiale est en traits interrompus (- -), les situations interm´ediaires en traits continus (-) et la situation finale en pointill´es (:).
!
!
"" #$
#
!$%
!"%
"$
%&'()'&*+,&+&'&)-.
%&'()'&*+,/&+)-.
+*+,0.1023.+'2.
4)0,-),3*-('&*+, 5&6.07.
8)3,$
!
!
"" #$
#
!$&
!"&
"$
%&'()'&*+
&+&'&)-.
%&'()'&*+,/&+)-.
8)3,"
Figure 5 –
R´esultats pour le cas 1 et pour le cas 2 avec Euler
✭✭avant
✮✮pour l’espace et
✭✭avant
✮✮pour le temps
On remarque qu’avec la situation de d´epart du cas 1, la solution diverge. Avec la situation de d´epart du cas 2, le cr´eneau initial semble se d´eplacer vers la gauche.
Une modification est alors apport´ee `a la fonction
resolution. Dans la discr´etisation en espace (c’est-`a-dire lors de l’´ecriture des d´eriv´ees par rapport `a la variable d’espace), le sch´ema d’Euler
✭✭avant
✮✮en espace est remplac´e par un sch´ema d’Euler
✭✭arri`ere
✮✮en espace. Dans ce sch´ema, la d´eriv´ee d’une fonction
fpar rapport `a la variable
xau point
xj,
d fdx
(x
j) est approxim´ee (en utilisant ce point et le point situ´e
✭✭derri`ere
✮✮lui) par
fj−fj−1dx
. On obtient alors les r´esultats pr´esent´es
figure 6.!
!
"" #$
#
!$&
!"&
"$
%&'()'&*+
&+&'&)-.
8)3,"
!
!
"" #$
#
!$%
!"%
"$
%&'()'&*+,&+&'&)-.
%&'()'&*+,/&+)-.
8)3,$
%&'()'&*+, /&+)-.
+*+, 0.1023.+'2.
4)0,-),3*-('&*+, 5&6.07.
Figure 6 –
R´esultats pour le cas 1 et pour le cas 2 avec Euler
✭✭arri`ere
✮✮pour l’espace et
✭✭avant
✮✮pour le temps
Cette fois-ci, avec la situation de d´epart du cas 1, le cr´eneau initial se d´eplace vers la droite et avec la situation de d´epart du cas 2, la solution diverge.
Q12.
On se place `a l’it´eration
i+1 ; les calculs des it´erations pr´ec´edentes ont d´ej`a ´et´e r´ealis´es.
Le calcul des termes de
Q(vecteur des d´ebits `a l’instant
ti) est fait par la fonction
debit,Qj´etant d´etermin´e `a partir de la valeur de
Ci,j. Sur la grille de discr´etisation donn´ee
figure 3(qui
sera reproduite sur la copie), tracer des fl`eches partant des points d´ej`a calcul´es aux it´erations
pr´ec´edentes et allant vers le point `a calculer
Ci+1,j(au pas d’espace
jet `a l’it´eration
i+1) dans
le cas du sch´ema d’Euler
✭✭avant
✮✮pour la discr´etisation en espace. Proc´eder de mˆeme dans le
cas du sch´ema d’Euler
✭✭arri`ere
✮✮pour la discr´etisation en espace.
Q13.
En d´eduire un argument permettant de choisir le sch´ema d’Euler adapt´e `a la situation de d´epart.
On cherche maintenant un sch´ema fonctionnel pour les deux situations. On propose celui de Lax- Friedriechs qui :
– utilise un sch´ema centr´e pour l’approximation des d´eriv´ees par rapport `a la variable d’espace.
Dans ce sch´ema, la d´eriv´ee d’une fonction
fpar rapport `a la variable
xau point
xj,
d f dx(x
j) est approxim´ee (`a partir du point pr´ec´edent et du point suivant) par
fj+1−fj−12dx ;
– approxime les d´eriv´ees par rapport `a la variable de temps en remplac¸ant la valeur
Ci,jpar la moyenne de la valeur prise au point pr´ec´edent
Ci,j−1et de la valeur prise au point suivant
Ci,j+1.
Q14.Proposer les modifications de la fonction
resolution(d´efinie `a la question
Q11) n´ecessairespour utiliser le sch´ema de Lax-Friedriechs.
La mise en œuvre de la fonction
resolutionpermet, ensuite, d’e
ffectuer le trac´e des solutions obtenues dont le r´esultat est donn´e
figure 7. Les instructions permet-tant de r´ealiser le trac´e ne
sont pas demand´ees.
Figure 7 –Les deux situations de d´epart r´esolues avec le sch´ema de Lax-Friedriechs
III.5 Am´elioration du programme : retour sur le choix du diagramme fonda- mental
Afin de s’assurer de la stabilit´e de la solution trouv´ee, il convient, une fois le sch´ema d’approximation d´etermin´e, de d´efinir les valeurs des param`etres tels que les pas de temps et d’espace. On suppose ici que ce travail a ´et´e r´ealis´e. Cependant, cela ne signifie pas que l’on peut simuler fid`element des ph´enom`enes r´eels. En e
ffet, le diagramme fondamental utilis´e et trac´e `a la question
Q8est assez di
ff´erent du nuage de points exp´erimentaux repr´esent´e
figure 2.La nouvelle approximation choisie pour obtenir les param`etres caract´eristiques du diagramme fonda- mental
qen fonction de
cest une r´egression d’ordre 3 :
q=a3∗c3+a2∗c2+a1∗c+a0,
ai´etant les constantes d’ajustement de la courbe sur le nuage de
npoints. La fonction
regression(q exp,c exp),qui prend en arguments les vecteurs
q expet
c expobtenus exp´erimentalement (ayant servi `a tracer le nuage de points de la
figure 2) et qui renvoie les coefficients
a0,a1,a2,a3, a ´et´e r´ealis´ee (on ne demande pas d’´ecrire cette fonction).
Q15.
Expliquer en quelques phrases ce qu’il faut modifier dans la fonction
resolutiond´efinie `a la question
Q11pour r´esoudre l’´equation (1) en prenant en compte ce nouveau diagramme fondamental bas´e sur l’exp´erimentation.
La simulation que nous avons mise en place permet ainsi de d´eterminer les caract´eristiques d’´evolution
d’un embouteillage. On peut notamment en d´eduire la vitesse de propagation de l’embouteillage, ou
sa vitesse de r´esorption. Cependant, on aimerait `a pr´esent mettre en place une simulation permettant
de mod´eliser les comportements individuels des conducteurs.
IV Deuxi`eme simulation du trafic routier :
simulation de Nagel et Schreckenberg (NaSch)
L’objectif est de simuler la formation d’embouteillages dits
✭✭embouteillages fantˆomes
✮✮. Ils sont le r´esultat d’une perturbation qui apparaˆ ıt localement sur la voie et s’amplifie peu `a peu jusqu’`a former un embouteillage.
IV.1 Initialisation
Afin de mod´eliser le comportement de chacun des v´ehicules, l’espace, le temps ainsi que la vitesse des v´ehicules sont discr´etis´es. La dynamique de chaque ´el´ement est mod´elis´ee de fac¸on tr`es simple, l’objectif ´etant d’obtenir un bon comportement `a l’´echelle macroscopique. On ´etudie, comme dans les parties pr´ec´edentes, une autoroute de longueur La
=8 500 (en m`etres) pour laquelle on ne consid`ere qu’un seul sens et qu’une seule voie. La vitesse est limit´ee `a 130 km/h et on consid`ere une dur´ee totale d’´etude T emps.
Soit X
nla position du v´ehicule n, v
n ∈[[0,1,...,v max]] sa vitesse enti`ere et d
nla distance inter- v´ehiculaire (par rapport au v´ehicule pr´ec´edent). On choisit de d´ecouper la route en nb cellules cellules de tailles identiques valant pas x
=7,5 (en m`etres). La dur´ee d’´etude est d´ecoup´ee en nb temps pas de temps valant pas t
=1,2 (en secondes) qui peut s’interpr´eter comme le temps de r´eaction du conducteur. Une probabilit´e donn´ee par le flottant p est utilis´ee dans l’algorithme.
Q16. Justifier le choix de la valeur du pas d’espace. En d´eduire ce que vaut la vitesse v max impos´ee de 130 km/h en cellules par pas de temps. On arrondira au nombre entier sup´erieur.
Comme pr´ec´edemment, la portion d’autoroute consid´er´ee est sans entr´ee ni sortie. Les conditions li- mites seront p´eriodiques, c’est-`a-dire qu’un v´ehicule sortant de l’autoroute se retrouve instantan´ement
`a l’entr´ee de celle-ci (avec la mˆeme vitesse).
On consid`ere que les donn´ees du probl`eme pas x, pas t, T emps, La, v max, p sont, `a pr´esent, ren- seign´ees dans le programme. On cherche, pour une densit´e donn´ee, `a d´eterminer les vitesses `a chaque position au cours du temps, ainsi que l’occupation ou non de chacune des cellules. On met en place une structure de stockage constitu´ee :
– d’un tableau Route de dimension nb temps
×nb cellules qui contient des nombres binaires. Si, au pas de temps 10, la cellule 23 est occup´ee par un v´ehicule, alors Route[10,23]
=1, sinon Route[10,23]
=0 ;
– d’un tableau Vitesses de dimension nb temps
×nb cellules qui contient des entiers. Si, au pas de temps 10, la cellule 23 est occup´ee par un v´ehicule et que sa vitesse est de 3 cellules par pas de temps, alors Vitesses[10,23]
=3. Si la cellule n’est pas occup´ee, alors Vitesses[10,23]
=0 ; – d’un tableau Vitesses suivantes de dimension 1
×nb cellules qui contient des entiers. Il per-
mettra de stocker les vitesses au temps i
+1 avant de d´eplacer les v´ehicules.
On peut d´esormais d´efinir la situation initiale. On consid`ere une route o`u les ´ecarts entre tous les
v´ehicules sont identiques. On cr´ee ainsi une route avec une r´epartition homog`ene des v´ehicules. La
route a ´et´e initialis´ee en plac¸ant des 1 dans les cellules poss´edant un v´ehicule dans la premi`ere ligne
de Route pour une concentration fix´ee c0 en v´ehicules par kilom`etre. Toutes les autres cellules de
Route sont initialis´ees avec la valeur 0. Les cellules de Vitesses sont ´egalement initialis´ees avec des
z´eros. Cette ´etape d’initialisation est consid´er´ee comme d´ej`a r´ealis´ee dans la suite.
IV.2 Mise en œuvre de l’algorithme
Le mod`ele NaSch, dont le pseudo-code est donn´e en annexe 1, est le pionnier des mod`eles cellulaires permettant de simuler un trafic routier. L’algorithme est constitu´e de quatre ´etapes qui sont toutes r´ealis´ees l’une apr`es l’autre `a chaque pas de temps.
Les ´etapes 1, 2 et 3 correspondent au calcul des futures vitesses. L’´etape 4 permet d’inscrire chaque vitesse au lieu o`u se trouve le v´ehicule au pas suivant. Le comportement correspondant est illustr´e figure 8. Dans cet algorithme, on e
ffectue la mise `a jour des positions de tous les v´ehicules de fac¸on simultan´ee.
Au niveau des ´etapes 2 et 4, des comparaisons et calculs sont e
ffectu´es entre d
net v
nou entre X
net v
n. En e
ffet, les vitesses sont exprim´ees en cellules par pas de temps. Sur un pas de temps, v
ncorrespond donc `a une distance parcourue en nombre de cellules.
On cherche `a ´ecrire la fonction ma j qui permet d’appliquer les ´etapes 1, 2 et 3 de l’algorithme de NaSch pour toutes les valeurs de Vitesses[i, :]. On utilisera la fonction distance(Route
,i
,j) qui prend en arguments le tableau Route, l’indice de temps i et l’indice de position j du v´ehicule n et qui renvoie la distance d
nentre les v´ehicules n
+1 et n, `a l’instant i. Seules les cellules comprenant un v´ehicule doivent ˆetre trait´ees ; les autres auront une vitesse nulle.
Configuration à linstant t
Etape 1 : Accélération
!"# !"$ !"$ !"%
Etape 2 : Décélération
!"% !"$ !"& !"%
Sens de parcours
Etape 3 : Facteur aléatoire
!"& !"$ !"& !"%
Etape 4 : Déplacement (Configuration à linstant t+1)
Mise à jour des vitesses
!"$ !"% !"% !"&
!"& !"$ !"& !"%
Figure 8 – Illustration du sch´ema sur un exemple
Q17. En utilisant l’annexe 1, ´ecrire une fonction ma j(Route
,Vitesses
,p
,vmax
,i) qui prend en
arguments les tableaux Route et Vitesses, le param`etre al´eatoire p, la vitesse maximale
v max (en cellules par pas de temps) et l’indice de temps i et qui renvoie le tableau
Vitesses suivantes.
Q18. Ecrire une fonction ´ deplacement(Vitesses
,Route
,Vitesses suivantes
,i) qui permet de d´eterminer les valeurs de Vitesses[i
+1, :] et de Route[i
+1, :]. La fonction deplacement renvoie les tableaux Route et Vitesses mis `a jour avec la ligne i
+1 compl´et´ee. Les vitesses calcul´ees doivent ˆetre plac´ees dans les cellules o`u se trouvent les voitures correspondantes une fois d´eplac´ees. Penser `a int´egrer la prise en compte des conditions aux limites.
IV.3 Simulation et analyse des r´esultats
Apr`es nb temps it´erations sur le temps, on obtient l’´evolution de l’´etat de Route au cours du temps repr´esent´ee figure 9. Les points noirs correspondent aux valeurs 1 du tableau (le reste ´etant `a 0).
Figure 9 – A
ffichage de Route (indice i de temps en ordonn´ee, indice j des positions en abscisse)
Un zoom est r´ealis´e
figure 10sur les premi`eres valeurs en temps et en espace pour mieux visualiser la formation d’embouteillages.
Figure 10 –
Zoom sur l’a
ffichage de Route (indice i des temps en ordonn´ee, indice j des positions en abscisse)
Q19.
Expliquer en quelques phrases en quoi les figures pr´esent´ees montrent que la formation d’un
embouteillage a ´et´e simul´ee. Sur quels param`etres peut-on agir pour que le r´esultat de la simu-
lation se rapproche des r´esultats exp´erimentaux?
Annexes
Annexe 1 - Algorithme de NaSch
Les op´erations suivantes sont r´ealis´ees `a chaque pas de temps.
– Etape 1 - Acc´el´eration ´
Le v´ehicule n acc´el`ere d’une unit´e s’il n’a pas encore atteint la vitesse maximum.
v
n(t
+1)
→min (v
n(t)
+1,v max) – Etape 2 - D´ec´el´eration ´
Le v´ehicule n d´ec´el`ere si la distance d
n=X
n+1−X
npar rapport au v´ehicule pr´ec´edent ne permet pas de maintenir la vitesse v
n.
v
n(t
+1)
→min (v
n(t
+1),d
n−1) – Etape 3 - Facteur al´eatoire ´
Pour caract´eriser le comportement al´eatoire de chacun des conducteurs, le v´ehicule n d´ec´el`ere avec une probabilit´e p, mais la vitesse n’est pas modifi´ee si v
n(t
+1)
=0 (pas de marche arri`ere).
On utilise pour cela la fonction rand() qui renvoit une valeur al´eatoire
∈[0..1].
Si rand()
<p alors v
n(t
+1)
→max (v
n(t
+1)
−1,0) – Etape 4 - D´eplacement ´
Une fois les vitesses d´etermin´ees, les positions des v´ehicules au pas de temps suivant sont d´etermin´ees de fac¸on simultan´ee.
X
n(t
+1)
→X
n(t)
+v
n(t
+1)
Annexe 2 - Rappels des syntaxes en Python
Remarque : sous Python, l’import du module numpy permet de r´ealiser des op´erations pratiques sur les tableaux : from numpy import *. Les indices de ces tableaux commencent `a 0.
Python
tableau `a une dimension L=[1,2,3](liste)
v=array([1,2,3])(vecteur)
acc´eder `a un ´el´ement v[0]renvoie 1
ajouter un ´el´ement L.append(5)uniquement sur les listes
tableau `a deux dimensions (matrice) M=array(([1,2,3],[3,4,5]))
acc´eder `a un ´el´ement M[1,2]ouM[1][2]donne 5
extraire une portion de tableau
(2 premi`eres colonnes) M[:,0:2]
tableau de 0 ( 2 lignes, 3 colonnes) zeros((2,3)) dimension d’un tableau T de taille (i,j) T.shape donne [i,j]
s´equence ´equir´epartie quelconque de 0 `a 10.1
(exclus) par pas de 0.1 arange(0,10.1,0.1)
d´efinir une chaˆıne de caract`eres mot="Python"
taille d’une chaˆıne len(mot)
extraire des caract`eres mot[2:7]
boucleFor
for i in range(10):
print ( i )
conditionIf
if (i>3):
print (i) else:
print("hello")
d´efinir une fonction qui poss`ede un argument et renvoie 2 r´esultats
def fonction(param):
res1=param res2=param*param return res1,res2
trac´e de points (o) de coordonn´ees (x,y) plot(x,y,"o")