GOOGLE ADS

Freitag, 22. April 2022

Variablenindizierung in gekko

Wie kann ich Variablen indizieren, um ein nichtlineares Optimierungsproblem im Python-Gekko-Paket zu lösen? Wie kann ich zum Beispiel die folgende Zielfunktion in eine einzelne Gleichung schreiben, die die Variable x indiziert?

Zum Beispiel:


Lösung des Problems

Verwenden Sie die m.Array()Funktion, um ein Variablen- (oder Parameter-) Array zu erstellen. Die Funktionen np.prod()und m.sum()werden verwendet, um die Zielfunktion m.Maximize()und die Gleichung zu definieren m.Equation().

import numpy as np
from gekko import GEKKO
n = 5
m = GEKKO(remote=False)
x = m.Array(m.Var,n,value=1)
m.Maximize(np.prod([m.sqrt(xi) for xi in x]))
m.Equation(m.sum(x)==100)
m.solve(disp=False)
print(x)

Lösung:

[[20.0] [20.0] [20.0] [20.0] [20.0]]

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...