diff --git a/docs/T4_Bases_de_donnees/4.2_Langage_SQL/02_exercices_inter.md b/docs/T4_Bases_de_donnees/4.2_Langage_SQL/02_exercices_inter.md index bd4d6d15b..7e059c3a2 100644 --- a/docs/T4_Bases_de_donnees/4.2_Langage_SQL/02_exercices_inter.md +++ b/docs/T4_Bases_de_donnees/4.2_Langage_SQL/02_exercices_inter.md @@ -666,7 +666,7 @@ **Q1**. Combien d'équipes ont participé à ce championnat ? {{ - correction(False, + correction(True, """ ??? success \"Correction\" ```sql @@ -681,7 +681,7 @@ **Q2**. Listez les noms des clubs ainsi que leur date de création dans l'ordre chronologique de leur création. {{ - correction(False, + correction(True, """ ??? success \"Correction\" ```sql @@ -698,7 +698,7 @@ {{ - correction(False, + correction(True, """ ??? success \"Correction\" ```sql @@ -716,7 +716,7 @@ {{ - correction(False, + correction(True, """ ??? success \"Correction\" ```sql @@ -732,7 +732,7 @@ **Q5**. Combien de cartons ont été distribués ? {{ - correction(False, + correction(True, """ ??? success \"Correction\" ```sql @@ -748,7 +748,7 @@ **Q6**. Combien de buts ont été marqués ? {{ - correction(False, + correction(True, """ ??? success \"Correction\" ```sql @@ -765,7 +765,7 @@ **Q7**. Affichez tous les renseignements sur les 10 cartons rouges obtenus le plus rapidement pendant un match. {{ - correction(False, + correction(True, """ ??? success \"Correction\" ```sql @@ -781,7 +781,7 @@ **Q8**. Donnez le nom du joueur qui a obtenu le carton rouge le plus rapidement. {{ - correction(False, + correction(True, """ ??? success \"Correction\" ```sql diff --git a/docs/T7_Divers/11_parcoursup/cours.md b/docs/T7_Divers/11_parcoursup/cours.md index fac7421db..8f2e84a42 100644 --- a/docs/T7_Divers/11_parcoursup/cours.md +++ b/docs/T7_Divers/11_parcoursup/cours.md @@ -1,26 +1,96 @@ -# Les algorithmes d'appariement +# Gale-Shapley et l'algorithme de Parcoursup -!!! quote "Appariement" - *Action d'apparier, d'unir par couple, d'assortir par paire.* L'affectation des élèves dans l'enseignement supérieur (par l'algorithme APB jusqu'en 2020, par l'algorithme Parcoursup depuis) fait intervenir un algorithme *d'appariement*. Il s'agit d'associer, de la meilleure manière possible, les élèves à leur formation préférée. +!!! quote "Appariement" + *Action d'apparier, d'unir par couple, d'assortir par paire.* + + Considérons que les élèves aient fait un classement de leurs formations préférées (**ce n'est pas le cas dans Parcoursup**, nous y reviendrons). Considérons aussi que ces formations aient classé ces élèves au vu de leur dossier. L'algorithme d'appariement va avoir pour but d'associer chaque élève à une formation, sans qu'un élève ait pris la place d'un autre tout en étant moins bien classé que lui. -L'algorithme de Gale-Shapley permet de résoudre ce problème. -## L'algorithme de Gale-Shapley -La présentation classique de cet algorithme fait intervenir non pas des élèves et des formations, mais des couples garçons-filles à associer. +## 1. Algorithmes d'appariement + +*TODO* + + +### 1.1 Notion de mariages instables + +!!! tip "Mariages instables" + Deux mariages sont dits **instables** si, dans chacun des deux couples, il existe la possibilité de quitter son conjoint actuel pour quelqu'un mieux classé dans ses préférences. + + +!!! note "Exemple de mariage instable" + Considérons 4 personnes : 2 hommes (Bryce, Gregory) et 2 femmes (Trinity et Riley). + + On leur a demandé de classer les deux personnes du sexe opposé par ordre de préférence. Voilà le résultat : + + ![image](data/class.png){: .center width=60%} + + Bryce préfère Riley à Trinity, Gregory préfère Riley à Trinity, Trinity préfère Bryce à Gregory, Riley préfère Bryce à Gregory. + + Considérons maintenant qu'un algorithme d'appariement a formé les couples suivants : Bryce-Trinity et Gregory-Riley. + + + ![image](data/unst1.png){: .center width=40%} + + Mais alors : + + - Bryce est avec Trinity alors qu'il préfère Riley. + - Riley est avec Gregory alors qu'elle préfère Byrce. + + :arrow_right: le couple Bryce-Riley crée donc deux mariages **instables**, car leur intérêt est de briser leur couple actuel et de partir ensemble. + + Par abus de langage, on pourra dire que le couple Bryce-Riley est un couple instable (car leurs mariages respectifs sont instables). + + ![image](data/cass.png){: .center width=40%} + +!!! abstract "Exercice 1" + La configuration ci-dessous contient-elle des mariages instables ? + + ![image](data/stable.png){: .center} + + {{ + correction(True, + """ + ??? success \"Correction\" + Le couple Christopher-Evelyn est un couple instable. + """ + ) + }} + +!!! abstract "Exercice 2" + À l'adresse [https://uw-cse442-wi20.github.io/FP-cs-algorithm/](https://uw-cse442-wi20.github.io/FP-cs-algorithm/){. target="_blank"}, allez jusqu'à la zone «Identify Unstable Pairs» et entraînez-vous à repérer les mariages instables. + + +1.2 Notion de mariage stable + + +!!! tip "Mariages stables" + Un ensemble de mariages sera dit **stable** s'il n'existe aucun couple instable parmi tous les mariages. + + ![image](data/stable4.png){: .center} + + La situation ci-dessus est stable, car aucun couple n'est instable. + + -Cet algorithme est appelé «algorithme des mariages stables». +Le travail des algorithmes d'appariement va être d'essayerd d'arriver à une situation stable. -Mais qu'est-ce qu'un mariage stable ? +L'algorithme le plus connu est l'algorithme de Gale-Shapley +## 2. Algorithme de Gale-Shapley -### Notion de «mariage stable» +![image](data/GS.png){: .center width=40%} -![image](data/stable.png){: .center} +David Gale (1921-2008) et Lloyd Shapley (1923-2016), deux universitaires américains, ont présenté en 1962 un algorithme d'appariement qui porte leur nom. ([lien vers la publication originale](https://www.eecs.harvard.edu/cs286r/courses/fall09/papers/galeshapley.pdf){. target="_blank"}) +!!! tip "Algorithme de Gale-Shapley :heart: :heart: :heart:" + - Tant qu'il existe un homme n'ayant pas trouvé de femme : + - chaque homme libre se propose à la femme de son classement la mieux classée parmi celles à qui il n'a pas encore proposé. + - si la femme est libre, elle accepte. + - si elle n'est pas libre mais que l'homme qui vient de lui faire une proposition est mieux classé que son mari actuel, elle brise son couple actuel et accepte la proposition qui vient de lui être faite. diff --git a/docs/T7_Divers/11_parcoursup/data/GS.png b/docs/T7_Divers/11_parcoursup/data/GS.png new file mode 100644 index 000000000..0c069c282 Binary files /dev/null and b/docs/T7_Divers/11_parcoursup/data/GS.png differ diff --git a/docs/T7_Divers/11_parcoursup/data/cass.png b/docs/T7_Divers/11_parcoursup/data/cass.png new file mode 100644 index 000000000..18e73d8c5 Binary files /dev/null and b/docs/T7_Divers/11_parcoursup/data/cass.png differ diff --git a/docs/T7_Divers/11_parcoursup/data/class.png b/docs/T7_Divers/11_parcoursup/data/class.png new file mode 100644 index 000000000..07c4e112a Binary files /dev/null and b/docs/T7_Divers/11_parcoursup/data/class.png differ diff --git a/docs/T7_Divers/11_parcoursup/data/dessin.svg b/docs/T7_Divers/11_parcoursup/data/dessin.svg new file mode 100644 index 000000000..11cb03e6b --- /dev/null +++ b/docs/T7_Divers/11_parcoursup/data/dessin.svg @@ -0,0 +1,1503 @@ + + + + + + + + + + + + + + + + + diff --git a/docs/T7_Divers/11_parcoursup/data/stable4.png b/docs/T7_Divers/11_parcoursup/data/stable4.png new file mode 100644 index 000000000..b696a8d81 Binary files /dev/null and b/docs/T7_Divers/11_parcoursup/data/stable4.png differ diff --git a/docs/T7_Divers/11_parcoursup/data/unst1.png b/docs/T7_Divers/11_parcoursup/data/unst1.png new file mode 100644 index 000000000..1e680985e Binary files /dev/null and b/docs/T7_Divers/11_parcoursup/data/unst1.png differ