[PYTHON] Lösen Sie multivariate Optimierungsprobleme mit sagemath

Sie können das Problem leicht lösen, indem Sie eine mathematische Verarbeitungssoftware wie Mathematica oder sagemath verwenden. Hier wird das multivariate Optimierungsproblem am Beispiel des TV-Herstellungsproblems gelöst.

Problem

Der Hersteller plant zwei Arten von Produkten.

Der vom Hersteller empfohlene Verkaufspreis für Produkt A beträgt 339 USD und die Kosten 195 USD pro Einheit. Der vom Hersteller empfohlene Verkaufspreis für Produkt B beträgt 399 USD und die Kosten 225 USD pro Einheit.

Es kostet auch eine feste Gebühr von 400.000 US-Dollar.

Aus dem Verhältnis von Angebot und Nachfrage geht hervor, dass die Anzahl der verkauften Einheiten den Preis beeinflusst. In beiden Fällen wird geschätzt, dass der durchschnittliche Verkaufspreis für jede weitere verkaufte Einheit um 1 Cent sinkt. Außerdem sinkt der durchschnittliche Verkaufspreis von Produkt A für jedes weitere verkaufte Produkt B um 0,3 Cent. Für jedes weitere verkaufte Produkt A sinkt der durchschnittliche Verkaufspreis von Produkt B um 0,4 Cent.

Wie viel sollten Sie für maximalen Gewinn verkaufen?

Installieren und ausführen

# 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: 


Lösung durch Sagemath

s:Produkt A Verkaufsvolumen
t:Produkt B Verkaufsvolumen
p:Verkaufspreis von Produkt A.
q:Verkaufspreis von Produkt B.
C:Kosten
R:Einnahmen aus Produktverkäufen($/year)
P:Profitieren Sie vom Produktverkauf($/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

Interpretation der Lösung

Was zum Lösen erforderlich ist, ist, dass der Gewinn P einen Extremwert annimmt. Die dadurch erhaltenen Werte s und t sind die Anzahl der verkauften Einheiten, die den maximalen Gewinn erzielen können. Indem die hier erhaltenen Werte von s und t der Funktion P (s, t) gegeben werden, kann der maximale Gewinn erhalten werden. Mit anderen Worten, wenn Sie ungefähr 4735 Einheiten von Produkt A und ungefähr 7043 Einheiten von Produkt B verkaufen, erhalten Sie einen maximalen Gewinn von 553641 USD.

Recommended Posts

Lösen Sie multivariate Optimierungsprobleme mit sagemath
Lösen Sie Optimierungsprobleme mit Python
Versuchen Sie die Funktionsoptimierung mit Hyperopt
Hinweise zur Optimierung mit Pytorch
Versuchen Sie, das Problem der Funktionsminimierung mithilfe der Partikelgruppenoptimierung zu lösen