Optimisation linéaire

La structure conditionnelle « if… else… » et le minimum

Pour trouver le coût de production minimum, on aura besoin d’une stratégie pour trouver un minimum. La voici :

Si on voulait calculer un maximum, alors il faudrait initialiser le maximum actuel à float(« -inf »), puis le modifier lorsque le calcul donnerait une valeur supérieure à celle enregistrée.

6.1a) Exercice

Consignes : Prenons une pause des bibliothèques et des tables pour apprendre à trouver un coût minimum associé à la production de chaises.

La formule du coût de production de x chaises est donnée par
C = 0.1x2 – x + 20.
On peut produire soit 2, 4 ou 9 chaises. Combien devrait-on en produire pour avoir un coût de production minimal ?

Inspire-toi du bloc ci-dessus pour répondre à la question.

Solution

On parcourt les 3 valeurs de x, on calcule le coût associé à chacune, et on remplace le minimum quand c’est pertinent.

6.1b) Exercice

Consignes : Modifie ton code pour faire aussi imprimer, à la fin, le nombre de chaises optimal (qui minimisait le coût de production).

Indice : comment ajouter l’information du nombre de chaises optimal ?

  • Il faut procéder d’une façon similaire au minimum actuel, c’est-à-dire en définissant une variable meilleur_x = float(« +inf »)
  • Cette valeur sera modifiée lorsque le minimum actuel sera modifié (à l’intérieur de la boucle) en la remplaçant par la valeur de x actuelle

Solution partielle

6.1c) Exercice

Consignes : Modifie ton code pour demander à l'utilisateur un nombre de chaises à évaluer. Pose-lui la question 3 fois et fais imprimer, à la toute fin, le nombre de chaises optimal et son coût de production (minimal).

Indice : comment demander le nombre de chaises à l’utilisateur ?

  • Au lieu d’itérer directement sur les x, il faudra utiliser for i in range(3) : pour demander 3 fois un nombre de chaises à évaluer (à l’intérieur de la boucle)
  • Tu peux demander les x à l’aide de l’instruction « input » et enregistrer l’information dans une variable nommée x.
  • N’oublie pas d’utiliser float(input(« …..ta question….. »)) afin de transformer la réponse obtenue en chiffre!

Solution partielle