- Accueil
- EXAMEN PANDACODEUR
- Examen Recherche Opérationnelle
- IAR427 (IN4) 2024-2025
Examen Recherche Opérationnelle et CSP : IAR427 (IN4) 2024-2025
Classe : IN4 · Cours : IAR427 : Recherche opérationnelle et Problèmes de Satisfaction de Contraintes · Durée : 3 h · Année : 2024-2025 · Examinateur : Pr SOH Mathurin
Calculatrices, téléphones et documents de cours interdits.
- Notions :
- Problèmes NP-complets
- Heuristiques
- Métaheuristiques
- CSP booléen
- Programmation linéaire
- Simplexe
- Dualité
- Analyse de sensibilité
- Coût réduit
- Corrigé disponible
SUJET
Exercice 1 : Notions sur les problèmes NP-complets, les heuristiques et métaheuristiques (1+1+1+1) pts
- Expliquez ce qu'est un problème NP-complet.
- Donnez un exemple de problème NP-complet dans le domaine de la recherche opérationnelle et expliquez brièvement pourquoi il est NP-complet.
- Définissez les termes suivants : Heuristique, Métaheuristique, Solution optimale et solution approximative.
- Expliquez en quoi une métaheuristique diffère d'une heuristique classique et dans quel cas on utilise principalement les métaheuristiques.
Exercice 2 Bonus : Satisfaction des contraintes booléennes 3 points
Vous devez résoudre le problème suivant de satisfaction de contraintes booléennes (CSP). On vous donne les variables suivantes :
- X1, X2, X3, X4, où chaque Xi peut être soit 0, soit 1.
Les contraintes sont :
- X1 ∧ X2 = 1 (X1 et X2 doivent être tous deux à 1)
- X3 ∨ X4 = 1 (soit X3, soit X4 doit être égal à 1)
- X1 → X3 (si X1 est vrai, alors X3 doit être vrai)
Résoudre ce problème en déterminant les valeurs possibles pour X1, X2, X3 et X4.
Problème 13 points (3+2+3+2+2+1)
Partie 1
Une entreprise veut déménager son matériel composé de 450 machines de trois types : M1, M2, M3. Elle décide de louer des camions. La société de location dispose de trois sortes de véhicules : V1, V2, V3 dont les tarifs sont respectivement de 500, 800 et 1200 Dirhams pour un voyage. Les camions V1 peuvent chacun transporter une machine M1, 4 machines M2 et 10 machines M3. Pour des raisons techniques la place d'une machine d'un type donné ne peut être utilisée pour une machine d'un autre type. Chaque camion V2 peut transporter 2 machines M1, 6 machines M2 et 20 machines M3. Alors que les véhicules V3 ont pour capacité maximum : 4 machines M1, 20 machines M2 et 24 machines M3. On veut transporter en un seul convoi 30 machines M1, 120 machines M2 et 300 machines M3. L'entreprise veut déterminer le nombre de véhicules à louer pour minimiser le coût total de transport. Donner le modèle linéaire de ce problème sans le résoudre.
Partie 2
La société JET produit deux types de peintures A et B, à partir de trois matières premières M1, M2 et M3. La peinture type A nécessite 10 kg de M1, 2 kg de M2 et 1 kg de M3 ; son prix de vente est 1200 F. La peinture type B nécessite 5 kg de M1 et 3 kg de M2 ; son prix de vente est 1000 F. La société dispose de 200 kg de M1, 60 kg de M2 et 34 kg de M3.
- Écrire le programme linéaire qui permet de maximiser le bénéfice de la société.
- Résoudre le problème par la méthode du simplexe, interpréter les résultats obtenus.
- Écrire le programme dual et déduire sa solution.
- Effectuer une analyse de sensibilité pour le prix de vente de la peinture type B.
- Une entreprise concurrente demande à la société JET de lui vendre 50 % de la matière M1 (et ce, bien entendu, avant que la fabrication ne soit lancée). À quel prix minimum la société JET devra-t-elle vendre cette quantité ? Expliquer clairement votre raisonnement.
- Supposons qu'un troisième type C est proposé par le département de production, qui nécessite 2 kg de M1 et 3 kg de M2, et dont le prix de vente est 650 F. Tenant compte de la valeur marginale de M1 et M2, est-ce que la société JET doit produire ce type ? Expliquer clairement votre raisonnement.
CORRECTION
Tout ce qui suit est le corrigé détaillé de l'épreuve ci-dessus. Corrigé proposé par Yankam Ngueguim Joël Stéphane : Groupe Genius Répétition.
Exercice 1 : Problèmes NP-complets, heuristiques et métaheuristiques
1. Qu'est-ce qu'un problème NP-complet ?
Rappel des classes. P = problèmes de décision résolubles en temps polynomial par un algorithme déterministe. NP = problèmes de décision dont une solution proposée (un certificat) peut être vérifiée en temps polynomial.
Un problème de décision est NP-complet s'il vérifie deux conditions :
- il appartient à NP (on vérifie une solution en temps polynomial) ;
- il est NP-difficile : tout problème de NP se ramène à lui par une réduction polynomiale. En pratique, il suffit de montrer qu'un problème NP-complet connu (par exemple SAT) se réduit polynomialement à lui.
Conséquences. Les problèmes NP-complets sont les plus difficiles de NP. Aucun algorithme polynomial n'est connu pour eux : le temps de résolution exacte croît de façon exponentielle avec la taille des données. Si l'un d'eux était résolu en temps polynomial, tous le seraient et on aurait P = NP (question ouverte). On les traite donc en pratique par des méthodes approchées, heuristiques, métaheuristiques, dès que l'instance est grande.
2. Exemple en recherche opérationnelle : le voyageur de commerce (TSP)
Énoncé (version décision). Étant donné n villes, les distances entre elles et un entier k, existe-t-il une tournée passant exactement une fois par chaque ville et revenant au départ, de longueur ≤ k ?
Pourquoi est-il NP-complet ?
- TSP ∈ NP : étant donnée une tournée, on vérifie en O(n) qu'elle visite chaque ville une fois et on calcule sa longueur pour la comparer à k.
- TSP est NP-difficile : on réduit en temps polynomial le problème du cycle hamiltonien (NP-complet) au TSP. À partir d'un graphe G à n sommets, on crée n villes avec une distance 1 si l'arête existe dans G et 2 sinon, et on pose k = n. G possède un cycle hamiltonien si et seulement s'il existe une tournée de longueur ≤ n.
- Explosion combinatoire : il y a (n−1)!/2 tournées possibles, soit environ 6×1016 pour n = 20. L'énumération est impraticable.
Autres exemples : sac à dos, coloration de graphe, affectation de tâches avec contraintes, tournées de véhicules, ordonnancement.
3. Définitions
| Terme | Définition |
|---|---|
| Heuristique | Méthode de résolution approchée, fondée sur l'expérience ou le bon sens et spécifique à un problème, qui fournit rapidement une solution acceptable sans garantir l'optimalité. Exemples : algorithme glouton (plus proche voisin pour le TSP), descente de gradient. |
| Métaheuristique | Algorithme d'optimisation générique, de plus haut niveau, applicable à de nombreux problèmes difficiles, qui guide et pilote des heuristiques en combinant exploration et exploitation de l'espace de recherche. Exemples : recuit simulé, recherche tabou, algorithmes génétiques, colonies de fourmis. |
| Solution optimale | Solution réalisable (qui respecte toutes les contraintes) donnant la meilleure valeur possible de la fonction objectif, parmi toutes les solutions réalisables. |
| Solution approximative | Solution réalisable de bonne qualité, mais sans garantie d'être optimale : sa valeur est proche de l'optimum. On peut parfois garantir un rapport d'approximation (valeur ≤ ρ × optimum). |
4. Métaheuristique et heuristique classique
| Critère | Heuristique classique | Métaheuristique |
|---|---|---|
| Portée | Conçue pour un problème précis | Générique, adaptable à plusieurs problèmes |
| Optima locaux | Reste souvent piégée dans le premier optimum local (descente, glouton) | Contient des mécanismes pour en sortir : acceptation probabiliste, liste tabou, mutation, phéromones |
| Stratégie | Règle simple, un seul passage de construction ou d'amélioration | Équilibre diversification et intensification ; utilise souvent mémoire, hasard et apprentissage |
| Qualité / coût | Très rapide, qualité moyenne | Plus de temps de calcul, meilleure qualité de solution |
| Paramétrage | Peu ou pas de paramètres | Nombreux paramètres à régler (température, taille de population, taille de la liste tabou…) |
Quand utilise-t-on principalement les métaheuristiques ? Pour les problèmes d'optimisation difficiles (NP-difficiles, combinatoires) de grande taille pour lesquels les méthodes exactes (simplexe, branch and bound, programmation dynamique) deviennent trop coûteuses en temps ou en mémoire ; lorsqu'une solution de bonne qualité en temps raisonnable suffit ; lorsque la fonction objectif est complexe (non linéaire, non dérivable, boîte noire) ; ou quand l'espace de recherche présente de nombreux optima locaux.
Exercice 2 Bonus : satisfaction de contraintes booléennes
Modélisation
- Variables : X = {X1, X2, X3, X4}.
- Domaines : D(Xi) = {0, 1} pour i = 1,…,4.
- Contraintes : C1 : X1 ∧ X2 = 1 ; C2 : X3 ∨ X4 = 1 ; C3 : X1 → X3 (équivalente à ¬X1 ∨ X3).
Résolution par propagation de contraintes
- C1 : X1 ∧ X2 = 1 n'est vrai que si X1 = 1 et X2 = 1. D'où X1 = 1 et X2 = 1.
- C3 : X1 → X3. Comme X1 = 1, l'implication n'est vraie que si X3 = 1 (si X3 = 0 on aurait 1 → 0 = faux). D'où X3 = 1.
- C2 : X3 ∨ X4 = 1. Comme X3 = 1, la contrainte est satisfaite quelle que soit la valeur de X4. X4 reste libre : X4 ∈ {0, 1}.
Vérification
| X1 | X2 | X3 | X4 | C1 : X1∧X2 | C2 : X3∨X4 | C3 : X1→X3 | Solution ? |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 0 | 1 | 1 | 1 | OUI |
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | OUI |
| 1 | 1 | 0 | 0 | 1 | 0 | 0 | non |
| 1 | 1 | 0 | 1 | 1 | 1 | 0 | non |
| 0 | * | * | * | 0 | – | – | non (C1 violée) |
| 1 | 0 | * | * | 0 | – | – | non (C1 violée) |
Solutions : (X1, X2, X3, X4) = (1, 1, 1, 0) et (1, 1, 1, 1). Le problème est consistant avec 2 solutions ; X1 = X2 = X3 = 1 est imposé, seule la valeur de X4 est libre.
Problème
Partie 1 : modèle linéaire de location de camions
Variables de décision (nombres entiers de camions loués) : x1 = nombre de camions V1 ; x2 = nombre de camions V2 ; x3 = nombre de camions V3.
| Capacité V1 | Capacité V2 | Capacité V3 | À transporter | |
|---|---|---|---|---|
| Machines M1 | 1 | 2 | 4 | 30 |
| Machines M2 | 4 | 6 | 20 | 120 |
| Machines M3 | 10 | 20 | 24 | 300 |
| Tarif (Dirhams / voyage) | 500 | 800 | 1200 | – |
Fonction objectif (minimiser le coût total de transport, en Dirhams) :
Min Z = 500 x1 + 800 x2 + 1200 x3
Contraintes. Le convoi doit contenir toutes les machines ; la place d'un type de machine n'étant pas utilisable pour un autre type, on écrit une contrainte par type :
M1 : 1 x1 + 2 x2 + 4 x3 >= 30
M2 : 4 x1 + 6 x2 + 20 x3 >= 120
M3 : 10 x1 + 20 x2 + 24 x3 >= 300
x1, x2, x3 >= 0 et entiers
Les variables sont entières : on ne loue pas une fraction de camion.
Remarque de cohérence : 30 + 120 + 300 = 450, ce qui correspond bien aux 450 machines de l'énoncé.
Partie 2.1 : programme linéaire de la société JET
xA = quantité de peinture A produite ; xB = quantité de peinture B produite.
Max Z = 1200 xA + 1000 xB
| Matière première | Contrainte | Disponible |
|---|---|---|
| M1 | 10 xA + 5 xB ≤ 200 | 200 kg |
| M2 | 2 xA + 3 xB ≤ 60 | 60 kg |
| M3 | 1 xA ≤ 34 | 34 kg |
Avec xA ≥ 0 et xB ≥ 0. La peinture B ne consomme pas de M3 : la troisième contrainte ne porte que sur A.
Partie 2.2 : résolution par le simplexe
Forme standard. On ajoute une variable d'écart par contrainte (s1, s2, s3 = kilos inutilisés de M1, M2, M3) :
10 xA + 5 xB + s1 = 200
2 xA + 3 xB + s2 = 60
xA + s3 = 34
Itération 1
| Base | xA | xB | s1 | s2 | s3 | Solution | Rapport |
|---|---|---|---|---|---|---|---|
| Z | 1200 | 1000 | 0 | 0 | 0 | 0 | |
| s1 | 10 | 5 | 1 | 0 | 0 | 200 | 20 |
| s2 | 2 | 3 | 0 | 1 | 0 | 60 | 30 |
| s3 | 1 | 0 | 0 | 0 | 1 | 34 | 34 |
Colonne pivot : xA (plus grand coefficient de la ligne Z : 1200). Ligne pivot : s1 (plus petit rapport : 20). Pivot : 10. xA entre en base, s1 sort.
Itération 2
| Base | xA | xB | s1 | s2 | s3 | Solution | Rapport |
|---|---|---|---|---|---|---|---|
| Z | 0 | 400 | −120 | 0 | 0 | −24000 | |
| xA | 1 | 1/2 | 1/10 | 0 | 0 | 20 | 40 |
| s2 | 0 | 2 | −1/5 | 1 | 0 | 20 | 10 |
| s3 | 0 | −1/2 | −1/10 | 0 | 1 | 14 | – |
Colonne pivot : xB (coefficient 400). Ligne pivot : s2 (rapport 10). Pivot : 2. xB entre en base, s2 sort.
Itération 3 : tableau final, optimalité
| Base | xA | xB | s1 | s2 | s3 | Solution |
|---|---|---|---|---|---|---|
| Z | 0 | 0 | −80 | −200 | 0 | −28000 |
| xA | 1 | 0 | 3/20 | −1/4 | 0 | 15 |
| xB | 0 | 1 | −1/10 | 1/2 | 0 | 10 |
| s3 | 0 | 0 | −3/20 | 1/4 | 1 | 19 |
Tous les coefficients de la ligne Z sont ≤ 0 : la solution est optimale. La colonne « Solution » de la ligne Z contient −Z, d'où Z = 28 000.
Solution optimale : xA = 15 ; xB = 10 ; s1 = 0 ; s2 = 0 ; s3 = 19. Bénéfice maximal Z* = 1200×15 + 1000×10 = 28 000 F.
Interprétation.
- La société doit produire 15 unités de A et 10 unités de B, pour un bénéfice de 28 000 F.
- M1 et M2 sont saturées (s1 = s2 = 0) : 10×15 + 5×10 = 200 kg de M1 et 2×15 + 3×10 = 60 kg de M2. Ce sont les ressources rares, les goulots d'étranglement.
- M3 n'est pas saturée : 15 kg utilisés sur 34, il reste 19 kg (s3 = 19). M3 a donc une valeur marginale nulle.
Partie 2.3 : programme dual et sa solution
À chaque contrainte du primal correspond une variable duale : y1 (M1), y2 (M2), y3 (M3), qui sont les valeurs marginales ou prix d'ombre des matières premières.
Min W = 200 y1 + 60 y2 + 34 y3
s.c. 10 y1 + 2 y2 + y3 >= 1200 (peinture A)
5 y1 + 3 y2 >= 1000 (peinture B)
y1, y2, y3 >= 0
Solution lue dans le tableau final (ligne Z, sous les variables d'écart, en valeur absolue) : y1 = 80, y2 = 200, y3 = 0.
Vérification par les écarts complémentaires. xA > 0 et xB > 0, donc les deux contraintes duales sont saturées. Comme s3 > 0, on a y3 = 0, d'où le système 10y1 + 2y2 = 1200 et 5y1 + 3y2 = 1000, qui donne y1 = 80 et y2 = 200. On vérifie : 10×80 + 2×200 = 1200 ✓ et 5×80 + 3×200 = 1000 ✓.
Solution duale : y1 = 80 F/kg, y2 = 200 F/kg, y3 = 0. W* = 200×80 + 60×200 + 34×0 = 16 000 + 12 000 = 28 000 F = Z* : le théorème de la dualité forte est vérifié.
Partie 2.4 : analyse de sensibilité sur le prix de vente de B
Soit cB le prix de vente de B, cA = 1200 restant fixé. La base optimale (xA, xB, s3) reste optimale tant que les coefficients de la ligne Z des variables hors base (s1, s2) restent ≤ 0. À partir du tableau final :
- Pour s1 : 180 − cB/10 ≥ 0 ⇔ cB ≤ 1800.
- Pour s2 : cB/2 − 300 ≥ 0 ⇔ cB ≥ 600.
600 ≤ cB ≤ 1800 F. Tant que le prix de vente de B reste dans cet intervalle, le programme optimal (15 A et 10 B) ne change pas ; seul le bénéfice varie, selon Z = 18 000 + 10 cB. Le prix actuel de 1000 F est bien dans l'intervalle, avec une marge de −400 F et +800 F.
Hors de l'intervalle : si cB < 600, la société ne produit plus que A (xA = 20, xB = 0) ; si cB > 1800, elle produit uniquement B (xA = 0, xB = 20).
Partie 2.5 : vente de 50 % de la matière M1
50 % de M1 représente 100 kg. Il resterait donc 100 kg de M1 pour JET.
Raisonnement. La valeur marginale d'un kilo de M1 est y1 = 80 F : chaque kilo de M1 vendu fait varier le bénéfice de 80 F, tant que la base optimale reste valide. L'intervalle de validité du second membre b1 de M1 se trouve en résolvant 10xA + 5xB = b1 et 2xA + 3xB = 60, ce qui donne xA = (3b1 − 300)/20 ≥ 0 et xB = (600 − 2b1)/20 ≥ 0, soit 100 ≤ b1 ≤ 300. Avec b1 = 100 on est exactement à la limite de l'intervalle : la valeur marginale de 80 F/kg reste valable.
Si JET vend ces 100 kg, la production devient xA = 0, xB = 20 et le bénéfice tombe à 1000 × 20 = 20 000 F, soit une perte de 28 000 − 20 000 = 8 000 F, c'est-à-dire exactement 100 kg × 80 F/kg.
Prix minimum de cession : 80 F par kilo, soit 8 000 F pour les 100 kg. En dessous, JET perd de l'argent ; à ce prix elle est indifférente ; au-delà elle gagne.
Partie 2.6 : faut-il produire la peinture C ?
C nécessite 2 kg de M1 et 3 kg de M2, et se vend 650 F. On compare son prix de vente au coût d'opportunité des ressources qu'elle consomme, évalué aux valeurs marginales y1 = 80 et y2 = 200 :
Coût d'opportunité de C = 2 × 80 + 3 × 200 = 160 + 600 = 760 F
Coût réduit de C = 650 − 760 = −110 F < 0
Produire une unité de C ferait donc perdre 110 F par rapport au programme actuel. Autrement dit, la contrainte duale 2y1 + 3y2 ≥ 650 est déjà satisfaite (760 ≥ 650) : le plan optimal n'est pas améliorable par C.
Conclusion : non, la société JET ne doit pas produire le type C. Son prix de vente (650 F) est inférieur à la valeur des ressources rares qu'il consomme (760 F). Il deviendrait rentable si son prix dépassait 760 F. En ajoutant C au modèle, le programme optimal reste bien 15 A, 10 B, 0 C avec Z = 28 000 F.
« La persévérance, c'est ce qui rend l'impossible possible, le possible probable et le probable réalisé. »
Bonne chance pour la suite !
Corrigé réalisé par Yankam Ngueguim Joël
Stéphane : Groupe Genius Répétition.
Questions / Réponses
Ajouter un commentaire