Inscription / Connexion Nouveau Sujet
Niveau Licence-pas de math
Partager :

Modélisation en Programmation Linéaire

Posté par
Edison
21-04-20 à 14:51

Bonjour,

j'aurais besoin d'aide pour un exercice de modélisation en programmation linéaire.

Nous jouons depuis plusieurs semaines à un jeu vidéo où nous incarnons un chevalier. Ce chevalier peut porter des équipements afin d'optimiser ses performances.

Les équipements sont :

- Un heaume (une sorte de casque de chevalier)
- Un plastron (une armure de chevalier qui se situe au niveau du torse)
- Un brassards (des sortes de coudières pour chevalier)
- Une lame (partie tranchante de l'épée)
- Une poignée (la partie que l'on tient quand on manipule une épée)
- Un garde (ça ressemble à deux quillons perpendiculaires au corps de l'épée et ça lui donne la forme d'une croix)

Chaque équipement est disponible en plusieurs exemplaires et présente des aptitudes différentes.
Les aptitudes sont grosso modo les caractéristiques que gagne notre personnage.
Toutes les aptitudes des différents équipements sont résumées dans le tableau présent en pièce jointe.

Par exemple le Heaume n°3 possède les aptitudes suivantes :

Force : 160
Agilité : 0
Soin : 0
Endurance : 0

Pour activer une aptitude, il faut prendre un équipement de chaque type et que la somme des valeurs des aptitudes des différents équipements choisis soient strictement supérieur à 600, par exemple :

Si je prends le Heaume 5, le Plastron 8, le Brassards 11, la Lame 10, la Poignée 11 et le Garde 8 et que je fais la somme des différentes aptitudes, j'obtiens :

Force : 660
Agilité : 80
Soin : 160
Endurance : 0

Donc seulement l'aptitude Force peut être activé avec les différents équipements choisis.

Maintenant la consigne est :

1) Pour chaque aptitude fournir une solution d'équipement qui puisse l'activer.

2) Modéliser le problème comme un programme linéaire afin de maximiser le total d'une aptitude k.

Ce que j'ai fait :

1) J'ai déjà répondu

2) C'est cette question qui me pose problème.

On a l'habitude de modéliser les problèmes en précisant :

- Les données du problèmes
- Les variables du problèmes
- Les contraintes
- L'objectif

J'ai modélisé les données du problèmes de la manière suivante :

E=\left \{ H,PL,B,L,P,G \right \} l'ensemble des équipements où H = Heaume, PL = Plastron, B = Brassards, L = Lame, P = Poignet, G = Garde

A=\left \{ F,A,S,E \right \} l'ensemble des aptitudes où F = Force, A = Agilité, S = Soin et E = Endurance

Chaque équipement est présent en plusieurs exemplaires et possède des valeurs différentes au niveau de ses aptitudes, j'ai donc noté :

H_{a,i} le heaume d'aptitude a  n°ia\in A et i\in\left \{ 1,2,3,4,5 \right \}
PL_{a,j} le plastron d'aptitude a  n°ja\in A et j\in\left \{ 1,2,3,4,5,6,7,8 \right \}
B_{a,k} le brassards d'aptitude a  n°ka\in A et k\in\left \{ 1,2,3,4,5,6,7,8,9,10,11 \right \}
L_{a,l} la lame d'aptitude a  n°la\in A et l\in\left \{ 1,2,3,4,5,6,7,8,9,10 \right \}
P_{a,m} la poignée d'aptitude a  n°ma\in A et m\in\left \{ 1,2,3,4,5,6,7,8,9,10,11 \right \}
G_{a,n} la garde d'aptitude a  n°na\in A et n\in\left \{ 1,2,3,4,5,6,7,8 \right \}

Il me reste donc à modéliser les variables puis les contraintes ainsi que l'objectif.

J'aimerais votre aide pour dans un premier temps déterminer la ou les variable(s) du problème. Pour ma part je n'en vois qu'une seule et c'est le fait que pour un équipement donné (Heaume + Plastron + Brassards + Lame + Poignée + Garde), une aptitude est activé ou pas.

Je me trompe ?

Si je ne me trompe pas, j'ai du mal à le modéliser...

J'avais pensé à définir une variable associé à une aptitude et à une suite d'équipement, qui vaut 0 si la suite d'équipement n'active pas l'aptitude en question et 1 sinon mais même là je ne sais pas comment formellement le modéliser...

Du coup j'aimerais savoir comment auriez-vous fait ?

Je vous remercie d'avance !

Modélisation en Programmation Linéaire

Posté par
kongzi
re : Modélisation en Programmation Linéaire 21-04-20 à 15:26

Bonjour

Je ne suis pas familier avec ce genre de problèmes. Donc je ne suis pas sur de la pertinence de ma reponse.

Je ne vois en variable que l'aptitude k. Mais auparavant il convient de bien identifier l'objectif. Il est dit de maximiser le total d'une aptitude k. Il convient de bien préciser ca.

Posté par
Edison
re : Modélisation en Programmation Linéaire 21-04-20 à 15:40

Bonjour kongzi, merci pour votre réponse.

Oui bien-sûr, mais avant de formaliser l'objectif je dois impérativement définir la ou les variable(s) du problème ainsi que les différentes contraintes (car l'objectif est réalisable sous ces différentes contraintes).  

Posté par
kongzi
re : Modélisation en Programmation Linéaire 21-04-20 à 15:58

Contraintes et Objectifs : releve du Quoi faire
Choix de variables : releve du Comment faire

Peut-on etablir  comment faire sans savoir d'abord ce qu on veut faire?

Posté par
Edison
re : Modélisation en Programmation Linéaire 21-04-20 à 16:29

Après formaliser l'objectif c'est pas le plus compliqué, ici on sait que ça sera : un choix d'équipement de telle sorte à obtenir la plus grande valeur possible pour une aptitude donnée.

Par exemple si  k = Force, pour obtenir le MAX(k) je dois constituer l'équipement : Heaume 3 + Plastron 6 + Brassards 8 + Lame 10 + Poignée 11 + Garde 8 et j'obtiens : 980 en Force. Il n'existe pas un autre équipement que celui-ci qui puisse engendrer plus de Force.

Néanmoins j'ai besoin de définir la ou les variable(s) du problème et c'est là où j'ai du mal...

Posté par
kongzi
re : Modélisation en Programmation Linéaire 21-04-20 à 17:29

Les variables n'ont pas a etre inventees. On les definit en fonction des besoins

Je ne vois ici de besoin de variable que k qui correspond a l aptitude pour laquelle on veut trouver les equipements qui permettent de la maximaliser.



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !