Banque PT Modélisation PT 2025Sujet et rapport du jury
- Gravitation et lois de Kepler
- Théorème de Gauss pour la gravitation
- Rayonnement et polarisation d'une onde électromagnétique
- Statique des fluides et atmosphère isotherme
- Fonctions et listes en Python
- Complexité algorithmique
- Graphes et algorithme de Dijkstra
- Bases de données et requêtes SQL
Téléchargements
- Corrigé : pas encore disponible
Présentation du sujet
Difficulté moyenneGéolocalisation par satellites GPS : modélisation des satellites, décodage des signaux et recherche d'itinérairesAfficher ou masquer la section
Présentation du sujet
Difficulté moyenneLe sujet, centré sur les signaux GPS, associe une partie physique et une partie informatique en lien avec le programme d'ITC. Il comporte trois parties indépendantes : la modélisation du mouvement des satellites et de la propagation de leurs signaux, la simulation du décodage de ces signaux par le récepteur, et la simulation d'une recherche d'itinéraire s'appuyant sur un algorithme de plus court chemin et des requêtes de base de données.
- 1Modélisation des satellites (mécanique et électromagnétisme)Étude du mouvement circulaire d'un satellite GPS par la gravitation, puis de la propagation de son signal électromagnétique et de son atténuation dans l'atmosphère.
- 2Simulation du décodage des signaux (informatique)Traitement du signal reçu par le récepteur pour identifier les satellites émetteurs et calculer les distances, à l'aide de fonctions et de listes en Python.
- 3Simulation d'une recherche d'itinéraire (informatique)Recherche d'un plus court chemin avec l'algorithme de Dijkstra sur un graphe, puis exploitation de statistiques de trajet par des requêtes SQL.
Difficulté moyenne. Le rapport indique des copies globalement d'un niveau correct avec assez peu de copies très faibles, la partie informatique étant dans l'ensemble mieux réussie que la partie physique où la mécanique a posé le plus de difficultés.
Ce qu'a observé le jury
6 erreurs relevéesErreurs sur la force et le champ de gravitation · Théorème de Gauss pour la gravitation peu utilisé · Émission isotrope du satellite mal compriseAfficher ou masquer la section
Ce qu'a observé le jury
6 erreurs relevéesLe sujet contenait de nombreuses questions proches du cours, permettant aux candidats de niveau moyen de valoriser leurs connaissances, tandis que les questions plus délicates ont peu été abordées. En physique, la mécanique est la partie la moins bien réussie, l'électromagnétisme étant mieux traité. En informatique, les bases du code Python sont globalement maîtrisées, mais la partie sur l'algorithme de Dijkstra a été la moins bien réussie.
Les erreurs les plus sanctionnées
- 1Erreurs sur la force et le champ de gravitationQ1 et Q5
De nombreuses erreurs apparaissent dans les formules de force et de champ de gravitation, ainsi que dans les applications numériques associées.
- 2Théorème de Gauss pour la gravitation peu utiliséQ2
Cette question est assez peu traitée, beaucoup de candidats ne pensant pas à utiliser le théorème de Gauss pour la gravitation.
- 3Émission isotrope du satellite mal compriseQ14
Peu de candidats précisent clairement la surface à considérer pour la puissance surfacique, et très peu comprennent qu'il est préférable que le satellite n'émette pas de manière isotrope.
- 4Intégration et applications numériques de la partie atmosphèreQ17, Q18 et Q21
Le raisonnement sur la pression atmosphérique isotherme aboutit souvent au bon résultat mais est mal présenté, et de nombreux candidats ne pensent pas à intégrer l'expression précédente ; les applications numériques restent trop aléatoires.
- 5Algorithme de Dijkstra peu abordéQ44 à Q48
La partie sur l'algorithme de Dijkstra, décomposée en trois fonctions, a été peu abordée par les candidats, et le rôle de la fonction de hachage dans les performances des dictionnaires est rarement mentionné.
- 6Requête SQL avancée rarement réussieQ52
La dernière question de SQL, plus difficile que les précédentes, est rarement réussie complètement, la syntaxe SQL restant parfois confuse.
Ce qui a été bien réussi
- La troisième loi de Kepler est connue par la plupart des candidats.
- L'électromagnétisme est dans l'ensemble mieux traité que la mécanique, en général jusqu'à la question 12.
- Les candidats maîtrisent dans l'ensemble les bases du code Python, notamment les fonctions et les listes.
- Les questions de SQL les plus simples, dont celle nécessitant une jointure, sont maîtrisées par une bonne partie des candidats.
- Des progrès sont notés dans la présentation des copies, avec très peu de copies traitant les questions dans un désordre complet.
Conseils du jury
- Ne pas négliger les applications numériques et toujours critiquer l'ordre de grandeur obtenu.
- Privilégier la clarté et la simplicité du code plutôt que des programmes longs et compliqués.
- Bien lire l'énoncé avant de répondre, en particulier pour les questions de code reprenant de nombreux éléments du texte.
- Travailler sérieusement le programme d'algorithmique et de graphes, notamment l'algorithme de Dijkstra.
- Soigner la présentation de la copie et rayer proprement les parties supprimées.
Synthèse rédigée par WikiPrépa à partir du rapport officiel du jury (à télécharger en PDF). Les citations sont extraites du rapport.
Ces sujets peuvent vous intéresser
Pas encore de corrigé pour ce sujet : voici des sujets proches corrigés.
Lecture du sujet en ligne
L'énoncé complet, avec les formules et les figures, sans ouvrir le PDF.Afficher ou masquer la section
Lecture du sujet en ligne
Epreuve d'Informatique et Modélisation de Systèmes Physiques
L'usage de calculatrices est interdit.
AVERTISSEMENT
CONSIGNES:
- Composer lisiblement sur les copies avec un stylo à bille à encre foncée : bleue ou noire.
- L'usage de stylo à friction, stylo plume, stylo feutre, liquide de correction et dérouleur de ruban correcteur est strictement interdit. Les surveillants et surveillantes se réservent le droit de les confisquer.
- Remplir sur chaque copie en MAJUSCULES toutes vos informations d'identification : nom, prénom, numéro inscription, date de naissance, le libellé du concours, le libellé de l'épreuve et la session.
- Une feuille, dont l'entête n'a pas été intégralement renseigné, ne sera pas prise en compte.
- Il est interdit aux candidats de signer leur composition ou d'y mettre un signe quelconque pouvant indiquer sa provenance. La présence d'une information d'identification en dehors du cartouche donnera lieu à un point de pénalité et la page concernée pourra être soustraite de la correction.
" Les applications numériques sont attendues avec un (voire deux) chiffres significatifs. Le jury prendra pleinement en compte le fait que l'épreuve est sans calculatrice et de ce fait sera tout à fait tolérant sur la précision des résultats numériques, l'essentiel étant l'ordre de grandeur ".
Présentation de la problématique AUTOUR DE LA GÉOLOCALISATION PAR SATELLITES
1. Fonctionnement
- une constellation de satellites, suffisamment nombreux pour que plusieurs d'entre eux soient en permanence visibles en tout point de la surface de la Terre et qui émettent en permanence des signaux radio contenant des repères temporels et des informations sur leurs localisations;
- des stations de contrôle au sol, qui suivent les satellites, identifient les erreurs dans les messages qu'ils envoient (sur les positions, vitesses et temps), les corrigent et leur envoient des rectificatifs;
- un récepteur par utilisateur, qui capte les signaux des satellites et les utilise pour se localiser.


2. Travail demandé
- la modélisation des satellites : il s'agit de prévoir leurs mouvements et de modéliser la propagation des signaux en direction de la Terre;
- la simulation du décodage des signaux, qui présente une partie du traitement du signal effectué par le récepteur pour identifier les satellites émetteurs ainsi que la distance le séparant de chacun d'eux ;
- la simulation d'une recherche d'itinéraires qui est une application courante des GNSS, avec la recherche d'un plus court chemin et la mise en œuvre de statistiques sur des temps de trajet.
Première partie MODÉLISATION DES SATELLITES
A. Mouvements et trajectoires

- Sans démonstration, écrire l'expression de la force vectorielle subie par le satellite et calculer la valeur numérique de sa norme. Toujours sans démonstration, donner l'expression du champ de gravitation
g⃗(M) créé par la Terre au pointM en fonction dem, M_T, h, R_T etG . On pourra utiliser l'aide numérique suivante :2, 6^2 ≃ 6, 7 . - En considérant la Terre comme sphérique et de masse volumique uniforme, justifier le fait que son champ de gravitation en un point extérieur à la Terre est le même que celui d'un point matériel situé en son centre affecté de toute la masse de la Terre.
- En utilisant la deuxième loi de Newton, justifier :
- la relation
v^2 = (GM_T)/r , oùv est la vitesse du satellite; - que le mouvement circulaire est nécessairement uniforme.
- En utilisant la question précédente, retrouver la troisième loi de Kepler dans le cas circulaire.
- Calculer la période de révolution
T_(GPS) des satellites GPS en secondes (rappel :2, 6^2 ≃ 6, 7 ). Comparer cette valeur avec la période d'un satellite géostationnaire.
On donne ci-dessous la projection sur la surface terrestre de la trajectoire d'un satellite GPS ainsi que quelques valeurs de latitudes et longitudes.

| Lieu | Paris | Londres | Edimbourg | New York | Tokyo | Cap Horn |
| Latitude |
|
|
|
|
|
|
| Longitude |
|
|
|
|
|
|
- Evaluer approximativement, à
± 5^∘ près, l'inclinaisonα du plan de l'orbite de ce satellite par rapport au plan équatorial. - On admet que le sens de la révolution du satellite est le même que celui de la rotation propre de la Terre. Sur la figure 4, ce sens est-il vers la droite ou vers la gauche (une justification, même succinte, est attendue) ? Quelle est la période du phénomène «le satellite se retrouve à la verticale d'un même point de la Terre»?
B. Propagation du signal
8. En partant des équations de Maxwell, établir l'équation d'onde vérifiée par le champ électrique dans le vide, sans charges ni courants. Quelle est la relation entre
- Faire un schéma où figurent le satellite
S , le récepteurR ainsi que la base directe (e_x^(→−), e_y→, e_z→ ). Quels sont les direction, sens de propagation et la polarisation relativement à ce système d'axes? - Vérifier que cette onde est bien solution de l'équation de propagation à une condition près à préciser reliant
k, ω etc . Calculer numériquementk et la longueur d'ondeλ associés. - Exprimer le champ
B⃗ associé à la propagation de l'onde. - Exprimer le vecteur de Poynting
Π⃗ et en déduire l'expression de la puissance moyenneI par unité de surface associée à la propagation de l'onde. - Au niveau du récepteur, l'amplitude du champ électrique est
E_0 = 2, 5 ⋅ 10^(− 6) V ⋅ m^(− 1) . Calculer numériquement la puissance moyenne par unité de surface à cet endroit. On pourra utiliser l'aide numérique suivante:2, 5^2 ≃ 6, 3 . - On considère que le satellite émet de manière isotrope. Calculer la puissance
P émise par le satellite dans cette hypothèse (rappel: 2, 6^2 ≃ 6, 7 ). Peut-on supposer que la puissance réelle est supérieure ou inférieure à celle-ci?
C. Décalage dû à la traversée de la troposphère

- En considérant l'air comme un gaz parfait, donner l'expression de sa masse volumique
ρ en fonction deM_(air) (masse molaire de l'air),P (pression),R (constante des gaz parfaits) etT (température). On donneM_(air) = 29 g.mol^(− 1) etR = 8, 3SI . Calculer numériquement la masse volumique de l'air au niveau du sol où on prendraP = P_0 = 1 bar etT = T_0 = 270 K . - La loi de Gladstone donne une relation entre l'indice de réfraction
n d'un gaz et sa masse volumiqueρ, K étant une constante :n = 1 + Kρ
Montrer que, pour un gaz parfait, on peut écriren = 1 + K^′ P/T . On prendra dans la suiteK^′ = 7, 8.10^(− 7) SI. Quelle est l'unité deK^′ ? - Montrer que l'expression de la pression
P en fonction de l'altitudez dans le modèle de l'atmosphère isotherme s'écritP = P_0 exp(− z/H) et préciser l'expression deH . - On prendra
P(z = 0) = P_0 = 1bar, T = 270 K etg = 9, 8 m ⋅ s^(− 2) . Calculer numériquementH ainsi que la pression à l'altitude deH . Aide numérique :e^(− 1) ≃ 0, 37 - On s'intéresse à la variation de l'indice de réfraction
n de l'air en fonction de l'altitudez . Montrer que l'on peut écrire, à partir des résultats précédents :
20. Montrer que le temps
- En déduire l'expression littérale du temps
Δt nécessaire pour traverser verticalement lesL = 50 km de la troposphère en fonction dec, L, α, P_0 etH . - En déduire le temps de propagation supplémentaire
t_(sup) lors de la traversée de la troposphère par rapport à la même distance parcourue dans le vide. Faire l'application numérique. A quelle erreur sur l'estimation de la distance entre le satellite émetteur et le récepteur cela conduit-il? Aide numérique :e^(− 6, 25) ≃ 0, 002
D. Identification du satellite et estimation de la distance
- le message de navigation, transmis à 50 bit/s, qui donne notamment la position des satellites;
- le code
C/A , pour Coarse/Acquisition code («code grossier et d'acquisition» en français), transmis à 1,023 Mbit.s^(− 1) , qui permet d'identifier le satellite émetteur ainsi que la durée de propagation depuis celui-ci jusqu'au récepteur.
| Message de navigation 50 bit.s
|
0 | 1 | ||||||||||
| Code C/A 1023000 bit.s
|
1 | 0 | 0 |
|
|
1 | 1 | 0 | 0 |
|
... | 1 |
| Message transmis 1023000 bit.s
|
1 | 0 | 0 |
|
|
1 | 0 | 1 | 1 |
|
|
0 |
D.1. Les codes
C/A : définitions
23. Écrire une fonction corr qui prend pour arguments deux listes a et b de même longueur (on ne demande pas de le vérifier) représentant des codes
24. Écrire une fonction retarde qui prend pour arguments une liste a représentant un code
D.2. Trois propriétés des codes C/A
- l'autocorrélation d'un code, c'est-à-dire sa corrélation avec lui-même, vaut 1 ;
- la corrélation d'un code avec le même code retardé d'un nombre
k non nul est quasi-nulle; - la corrélation entre deux codes émis par deux satellites différents est quasi-nulle, et cela vaut aussi si l'un des deux codes (ou les deux) est retardé.
25. Montrer la première des trois propriétés ci-dessus (autocorrélation égale à 1).
26. Montrer plus généralement que la corrélation de deux codes est toujours comprise entre -1 et 1 . À quelle condition vaut-elle -1 ? On pourra donner un exemple.
27. Combien y a-t-il de codes C/A possibles? Donner un ordre de grandeur de ce nombre sous la forme
28. En utilisant les fonctions codeCA, retarde et corr (les deux dernières étant définies dans la partie précédente), écrire un bloc d'instructions qui :
- construit une liste code1 contenant le code
C/A correspondant àp = 1 etq = 5 ; - construit une liste code2 contenant le code
C/A correspondant àp = 2 etq = 6 ; - construit une liste de listes nommée codes1 telle que pour tout i allant de 0 à 1022, codes1 [i] corresponde à code1 retardé de i;
- construit une liste nommée correls11 telle que correls11[i] soit la corrélation de codes1[i] et de code1;
- construit une liste nommée correls12 telle que correls11[i] soit la corrélation de codes1[i] et de code2.
On pourra, sans obligation, utiliser des constructions de listes par compréhension.
Le tracé des listes correls11 et correls12 en fonction de l'indice est représenté figure 8.

D.3. L'acquisition
29. Écrire une fonction indmax prenant pour argument une liste de listes T et renvoyant le couple d'indices (
30. En supposant que le signal émis par les satellites se propage à la vitesse de la lumière dans le vide, donner une valeur approchée de la distance parcourue pendant la transmission d'un bit (qui est aussi la résolution de l'estimation de la distance par cette technique).
31. Écrire une fonction surech prenant pour arguments une liste a et un entier k et renvoyant la liste a suréchantillonnée d'un facteur k (par exemple, l'appel
demment. Malheureusement, le procédé possède lui aussi ses limites, cette fois en ce qui concerne le temps de calcul. Si l'on appelle
32. Donner et justifier la complexité asymptotique du calcul de ces
E. Affinage de la mesure : la boucle à verrouillage de retard
- de «suivre» le satellite émetteur, c'est-à-dire de décoder son signal sans interruption malgré les variations de la distance satellite-récepteur et donc du retard de propagation;
- de mesurer cette distance récepteur-satellite avec une précision permettant la localisation.
- estimer le décalage du signal reçu vis-à-vis du code
C/A local; - intégrer par rapport au temps, ou plus simplement sommer, les décalages estimés;
- retarder le code
C/A local d'un délai proportionnel à la sortie de l'intégrateur; le code retardé est renvoyé à l'estimateur de décalage, formant un système bouclé.

E.1. Modélisation S.L.C.I. rudimentaire
-
T_(ref)(p) représente le retard de propagation inconnu que l'on souhaite reproduire; -
T_e(p) représente le retard du code «d'entrée» obtenu lors de l'acquisition; -
T_s(p) représente le retard du code «de sortie» recalé par l'algorithme.

33. Exprimer les fonctions de transfert
34. À l'aide du théorème de la valeur finale, montrer que lorsque le temps
35. Le résultat précédent aurait-il été encore vrai si l'algorithme n'avait pas comporté d'intégration, c'est-à-dire si le bloc
E.2. Simulation du fonctionnement
-
r le code «de référence» reçu par le récepteur; -
s le code «de sortie» généré localement et retardé par l'algorithme.
-
retarde(a, k) : prend une liste a et un entier relatif k , et renvoie une liste correspondant à a retardé de k . Si k est négatif, cela revient à avancer a ; -
codeCA(p, q) : renvoie la liste de longueur 1023 contenant le code C/A (sans suréchantillonnage) généré à partir des entiers p et q ; -
surech(a, k) : prend une liste a et un entier positif k , et renvoie la liste «suréchantillonnée», c'est-à-dire constituée des éléments de a présents k fois consécutives.
- Proposer une fonction decal qui prend pour arguments deux listes
s etr de même longueur (on ne demande pas de le vérifier) contenant respectivement le code de sortie et le code de référence, et renvoyant un flottant égal à l'estimateur de décalage défini ci-dessus. On appellera les fonctions corr et retarde.
import matplotlib.pyplot as pp
c = codeCA(1,5) # correspond au satellite 1
cc = surech(c,100)
cr = list(retarde(cc,k) for k in range(-100,101))
d = list(-0.01*k for k in range(-100,101)) # signe moins pour avoir l'avance
e = list(decal(cr[i],cc) for i in range(len(cr)))
pp.plot(d,e)
pp.xlabel("Avance sortie sur ref (rapportée à la durée d'un bit)")
pp.ylabel("Sortie de l'estimateur de décalage")
- Pour chacune des variables cr, d et e, indiquer s'il s'agit d'une liste «simple» ou d'une liste de listes et préciser à quoi correspond son i-ème élément.
38. Indiquer, à l'aide de la figure 11, dans quelle plage de décalages cette hypothèse est cohérente vis-à-vis du comportement de l'estimateur.

- ref : liste contenant le code
C/A de référence (choisi constant tout au long de la simulation); - entree : liste contenant le code C/A d'entrée;
- imax : durée de la simulation exprimée en nombre de périodes du code
C/A (entier);
— K : « gain » de l'《intégrateur » (flottant).
def simu(ref, entree, imax, K):
retard= 0.0
sortie = entree[:]
sorties, retards = [sortie],[retard]
# boucle répétée à chaque période du codeC/A
for i in range(imax-1):
# 1. on estime le décalage
ecart= # LIGNE À COMPLÉTER NUMÉRO 1
# 2. on "intègre" (somme) les écarts avec un facteurK
retard = # LIGNE À COMPLÉTER NUMÉRO 2
# 3. on retarde l'entrée pour obtenir la sortie
sortie= # LIGNE À COMPLÉTER NUMÉRO 3
# écriture des résultats de la simulation
sorties.append(sortie)
retards.append(retard)
return sorties, retards
boucle for simule donc le fonctionnement de l'algorithme sur une période. On précise également que cette simulation ne tient pas compte des contraintes liées au fonctionnement en temps réel sur le récepteur GPS, mais vise uniquement à donner une première approximation du comportement de l'algorithme en régime transitoire.
39. En appelant les fonctions nécessaires, compléter les trois lignes indiquées de la fonction simu. Ne pas oublier que la sortie de l'estimateur de décalage est un flottant, tandis que le nombre d'échantillons dont on retarde un code est nécessairement un entier.
- à gauche, l'évolution du retard en sortie de l'intégrateur (qui doit tendre vers 20 pour aligner la sortie sur la référence),
- à droite, la corrélation de la sortie avec la référence (qui tend vers 1 si la sortie s'aligne parfaitement avec la référence).

40. Indiquer, en justifiant, si les oscillations (obtenues pour
Troisième partie EXPLOITATION DE LA LOCALISATION
F. Transmission de la localisation : les trames NMEA
$GPGGA,064036.289,4836.5375,N,00740.9373,E,1,04,3.2,200.2,M, , , ,0000*0E
- $GPGGA : type de trame ;
- 064036.289: heure d'envoi au format 'HHMMSS.SSS' (ici
06 h40 min36, 289 s ); - 4836.5375 : latitude en valeur absolue (ici 48 degrés 36,5375 minutes);
- N : sens de la latitude ( N pour Nord, S pour Sud);
- 00740 . 9373 : longitude en valeur absolue (ici 7 degrés 40,9373 minutes);
- E : sens de la longitude (E pour Est, W pour Ouest);
- 1 : type de positionnement (non abordé ici);
- 04 : nombre de satellites utilisés pour la localisation;
- 3.2 : indicateur de précision (non abordé ici);
- 200.2 : altitude (ici 200,2);
- M : unité de l'altitude (ici, des mètres) ;
- , , , , 0000: champs non utilisés (d'autres informations peuvent y être inscrites);
- *: séparateur entre les champs et la somme de contrôle;
- OE: somme de contrôle.
trame
alors l'appel trame.split(',') renvoie la liste de chaînes suivante:
['$GPGGA', '064036.289', '4836.5375', 'N', '00740.9373', 'E', '1', '04', '3.2', '200.2', 'M', ', ' , , '','00000E']
41. Écrire une fonction heure qui prend pour argument la chaîne trame au format ci-dessus et renvoie un tuple (
42. Écrire une fonction latitude qui prend pour argument la chaîne trame au format ci-dessus, et renvoie un flottant contenant la latitude signée exprimée en degrés.
- Les trois caractères situés entre le
$ et le∗ sont^′ 0 ', ', ' et ' 1 ';
- Leurs codes ASCII respectifs sont 48, 44 et 49 (en décimal);
- L'instruction 48^44~49 renvoie l'entier 45, dont l'écriture hexadécimale est '2D';
- Cela correspond bien aux deux caractères situés après le * : la trame est donc valide.
- si s est une chaîne, s.find('a') recherche la première apparition du caractère 'a' dans s et renvoie son indice (ou-1 s'il n'est pas trouvé) ;
- si c est un caractère (c'est-à-dire une chaîne de longueur 1), ord(c) renvoie le code ASCII de
c , qui est un entier compris entre 0 et 127 ; - le OU exclusif bit à bit est commutatif (
a^∧b = b^∧a ) et associatif (a^∧(b^∧c) = (a^∧b)^∧c ); - le calcul du OU exclusif bit à bit peut être initialisé à zéro car quel que soit l'entier i, 0^i est toujours égal à i;
- si s est une chaîne contenant la représentation hexadécimale d'un entier (dont les chiffres vont de 0 à F ), l'instruction int(
s, 16 ) permet d'obtenir l'entier correspondant.
- Écrire une fonction controle qui prend pour argument la chaîne trame et renvoie True si la somme de contrôle correspond bien au résultat du calcul précédent, et False sinon.
G. Calcul du plus court chemin

- Le graphe (exemple ci-dessus) sera codé par un dictionnaire d'adjacence dont on donne ci-dessous les 3 premières lignes :
{0 : [(1,5), (2,6)],
1:[(0,5),(3,8),(4,3)],
2:[(0,6),(4,1),(5,9)],
...
...
...
}
Description de l'algorithme :
- On utilise une liste de taille
n appelée distances dont les éléments représentent les distances entre le sommet de départ et chacun des sommets. Cette distance est initialisée à 0 pour le sommet de départ et à -1 (qui représente l'infini) pour les autres; - On va visiter les différents sommets du graphe, et il faut savoir lesquels ont déjà été visités ou non. On utilise une liste deja_visites de taille
n de booléens initialement tous à False; - On itère avec une boucle while, la condition d'arrêt étant le fait que la liste deja_visites ne contient que des True. Pour chaque itération :
- On cherche parmi les sommets pas encore visités celui qui est à la plus petite distance du sommet de départ. On l'appelle en_cours pour la suite;
- On visite ce sommet en_cours :
- On met ce sommet à True dans la liste deja_visites;
- On parcourt ses voisins et pour chacun d'entre eux qui n'a pas encore été visité (appelé voisin) on actualise dans la liste distance la valeur le concernant : on la remplace par le minimum entre l'ancienne distance et la distance entre le sommet de départ et en_cours à laquelle on ajoute la distance entre en_cours et voisin.
- Donner les états successifs de la liste distances au cours de l'exécution de l'algorithme sur l'exemple de la figure 13, le sommet de départ étant le sommet 0 .
- Écrire une fonction sommet_min(dist,deja_visites) qui prend en argument une liste dist d'entiers positifs ou égaux à -1 et une liste deja_visites de booléens et qui renvoie l'indice du minimum de dist parmi ceux dont la valeur dans la liste deja_visites correspond à False et qui n'ont pas pour valeur -1 . Si aucun indice dans la liste ne convient, cela signifie que l'algorithme est terminé, on renverra None.
- Écrire une fonction actualiser(k,dist,deja_visites,g) qui prend en entrée un graphe g sous forme d'un dictionnaire d'adjacence, deux listes dist et deja_visites de taille
n et un entier k compris entre 0 etn − 1 (oùn est la taille du graphe), et qui met à jour les listes dist et deja_visites. - En utilisant les fonctions précédentes, écrire une fonction dijkstra(g,depart) prenant en entrée un graphe g sous forme de dictionnaire d'adjacence et un sommet depart et renvoyant la liste des distances minimales au sommet depart.
H. Statistiques sur les durées des trajets
- noeuds, qui décrit chaque nœud (ou sommet) par les attributs suivants :
- id (entier) : identifiant du nœud (clé primaire) ;
- num (entier) : numéro de la voie de l'adresse;
- voie (chaîne) : type (rue, avenue...) et nom de la voie de l'adresse;
- code (entier) : code postal de l'adresse;
- ville (chaîne) : ville de l'adresse.
- trajets, qui décrit chaque trajet enregistré par les attributs suivants :
- id_from (entier) : identifiant du nœud de départ ;
- id_to (entier) : identifiant du nœud d'arrivée;
- date (chaîne) : date de départ du trajet au format "AAAA-MM-JJ";
- heure (chaîne) : heure de départ du trajet au format "HH:MM:SS" sur 24 heures;
- durée (entier) : durée du trajet en secondes.
- Écrire une requête renvoyant les heures de départ et les durées des trajets ayant débuté le
1^(er) avril 2025 et allant du nœud 123 au nœud 456 (les numéros sont les identifiants). - Écrire une requête renvoyant la date de départ, l'heure de départ et la durée des trois trajets les plus courts (c'est-à-dire dont les durées sont les plus petites) allant du nœud 123 au nœud 456, ordonnés par durées croissantes.
- Écrire une requête renvoyant le nombre de trajets enregistrés qui partent du numéro 7 de la voie nommée « rue des Plantes » située dans la ville de Paris.
- On considère les trajets vers la ville de Lyon ayant débuté le
1^(er) avril 2025. Écrire une requête renvoyant, pour chaque ville de départ pour laquelle au moins dix trajets de ce type existent, le nom de la ville suivi des durées minimale, moyenne et maximale des trajets.
Questions fréquentes
4 questionsSur quels chapitres porte l'épreuve physique-modélisation PT 2025 sur le GPS ?Afficher ou masquer la section
Questions fréquentes
4 questionsSur quels chapitres porte l'épreuve physique-modélisation PT 2025 sur le GPS ?
Le sujet couvre la gravitation et le mouvement d'un satellite, la propagation d'une onde électromagnétique dans l'atmosphère, puis en informatique le traitement de signal en Python, l'algorithme de Dijkstra sur un graphe et des requêtes SQL.
Vaut-il mieux être fort en physique ou en informatique pour cette épreuve ?
Le barème donne 40% à la physique et 60% à l'informatique. Le rapport indique que la partie informatique a été dans l'ensemble mieux réussie que la partie physique, où la mécanique a posé le plus de difficultés.
Quelle partie du sujet a été la moins bien réussie ?
En physique, c'est la mécanique (questions 1 à 7) qui est la moins bien réussie. En informatique, c'est la partie sur l'algorithme de Dijkstra qui a été la moins bien traitée par les candidats.
Faut-il bien maîtriser le SQL et les graphes pour ce sujet PT ?
Oui, la dernière partie du sujet porte sur la recherche d'un plus court chemin avec l'algorithme de Dijkstra puis sur des requêtes SQL, dont la dernière question est jugée plus difficile et rarement réussie complètement.
Pas de description pour le moment
