Bonjour je bloque... Je dois modifier l'algo de Gale-Shapley pour calculer un mariage stable avec une paire que l'on force.

En pseudo-code, voilà l'algo pour calculer un mariage stable qui est optimal pour les hommes !

Et j'aimerai justement calculer le mariage avantageant les hommes et contenant une paire (m-w) que l'on force.

Mon problème c'est de définir cette condition tout en préservant la stabilité du mariage.

Il ne doit pas y avoir pour une paire (m-w) de paire bloquante cad un couple (m'-w) tq w préfère m' à m ou encore un couple (m-w') tq m préfére w' à w.

J'essaie de modifier l'algo JAVA de cette page. Je détaille mes tentatives en dessous

Code:
Entrée : Deux ensembles finis M (d’hommes) et W (de femmes) de cardinal n ;
         Une famille L de relations de préférences ;
Sortie : Un ensemble S de couples engagés (homme ; femme) ;
fonction mariageStable {
    Initialiser tous les m ∈ M et w ∈ W à célibataire
    tant que ∃ homme célibataire m qui peut se proposer à une femme w {
       w = femme préférée de m parmi celles à qui il ne s'est pas déjà proposé
       si w est célibataire
         (m, w) forment un couple
       sinon un couple (m', w) existe
         si w préfère m à m'
           (m, w) forment un couple
            m' devient célibataire
         sinon
           (m', w) restent en couple
    }
    Retourner l’ensemble S des couples engagés
}

J'arrive sans problème à créer des mariages contenant une paire forcée mais ils ne sont pas stables (ils contiennent une paire bloquante).

Je force le couple avec m et w. Je fais refuser toute proposition demandant à se marier soit avec m soit avec w.

J'insère la condition que w' accepte de se marier si ce partenaire est meilleur que son partenaire actuel et aussi m (qui appartient à la paire forcée).

Comment savoir s'il existe un mariage contenant une paire (m-w) cad que l'algo s'arrête et qui ne boucle pas indéfiniment ?