[PYTHON] Résolvez des problèmes d'optimisation multivariée à l'aide de sagemath

Vous pouvez facilement résoudre le problème en utilisant un logiciel de traitement mathématique tel que Mathematica ou sagemath. Ici, le problème d'optimisation multivariée est résolu en prenant comme exemple le problème de fabrication de téléviseurs.

problème

Le fabricant prévoit deux types de produits.

Le prix de détail suggéré par le fabricant pour le produit A est de 339 $ et le coût est de 195 $ par unité. Le prix de détail suggéré par le fabricant pour le produit B est de 399 $ et le coût est de 225 $ l'unité.

Il en coûte également un montant fixe de 400 000 $.

D'après la relation entre l'offre et la demande, le nombre d'unités vendues est considéré comme affectant le prix. Dans les deux cas, on estime que le prix de vente moyen baissera de 1 cent pour chaque unité supplémentaire vendue. De plus, le prix de vente moyen du produit A baisse de 0,3 centime pour chaque produit supplémentaire B vendu. Pour chaque produit A vendu de plus, le prix de vente moyen du produit B baisse de 0,4 cent.

Combien devriez-vous vendre pour un profit maximal?

Installer et exécuter

# pacman -S sagemath
$ sage

┌─────────────────────────────────────────┐
│ SageMath version 7.6, Release Date: 2017-03-25                     │
│ Type "notebook()" for the browser-based notebook interface.        │
│ Type "help()" for help.                                            │
└─────────────────────────────────────────┘
sage: 


Solution par Sagemath

s:Volume des ventes du produit A
t:Volume des ventes du produit B
p:Prix de vente du produit A
q:Prix de vente du produit B
C:Coût
R:Revenus des ventes de produits($/year)
P:Profitez des ventes de produits($/year)

sagemath.py


sage: var("s t")                                                  
sage: p = 339-0.01*s-0.003*t                                      
sage: q = 399-0.004*s-0.01*t                 
sage: R = p*s+q*t                                                 
sage: C = 400000+195*s+225*t                                        
sage: P(s,t)=R-C                                                  
sage: solve([diff(P,s)==0, diff(P,t)==0, s>=0, t>=0], s,t)
[[s == (554000/117), t == (824000/117)]]
sage: P(554000/117, 824000/117)
553641.025641025

Interprétation de la solution

Ce qui est requis par la résolution, c'est que le profit P prenne une valeur extrême. Les valeurs s et t obtenues par celui-ci sont le nombre d'unités vendues pouvant obtenir le profit maximum. En donnant les valeurs de s et t obtenues ici à la fonction P (s, t), le profit maximum peut être obtenu. En d'autres termes, si vous vendez environ 4735 unités du produit A et environ 7043 unités du produit B, vous obtiendrez un profit maximum de 553641 $.

Recommended Posts

Résolvez des problèmes d'optimisation multivariée à l'aide de sagemath
Résoudre les problèmes d'optimisation avec Python
Essayez l'optimisation des fonctions à l'aide d'Hyperopt
Remarques sur l'optimisation à l'aide de Pytorch
Essayez de résoudre le problème de minimisation des fonctions en utilisant l'optimisation des groupes de particules