GAMS: Ich denke, ich habe eine ziemlich einfache Frage, aber ich stecke fest und fragte mich, ob jemand hier helfen könnte.GAMS: Informationen aus der Lösung abrufen
Eine vereinfachte Version meines Modells wie folgt aussieht:
set(i,t) ;
parameter price
D;
variable p(i,t)
e(i,t);
equations
Equation1
obj.. C=sum((i,t), p(i,t)*price);
Model file /all/ ;
Solve file minimizing C using MIP ;
Display C.l;
p (i, t) und e (i, t) bezogen werden:
Equation1 .. e(i,t)=e=e(i,t-1)+p(i,t)*D
Jetzt möchte ich Informationen abrufen aus der Lösung: Nehmen wir an, ich möchte wissen, wo te (i, t) einen bestimmten Wert hat -> e (i, t) = x (i) oder anders formuliert e (i, t = TD) = x (i) finde TD, wobei x (i) somit von i abhängt. Weiß jemand, wie ich das in mein GAMs-Modell schreiben kann? Um klar zu sein, ich möchte nichts über meine Lösung und das Modell, das ich ausgeführt habe, ändern; Ich möchte nur diese Informationen aus der gegebenen Lösung abrufen.
Bis jetzt habe ich versucht ein paar Dinge und nichts hat funktioniert. Ich denke, das muss einfach sein, kann jemand helfen? Vielen Dank!
Vielen Dank für die schnelle Antwort und dieses arbeitete hilft! Ich habe es bereits ein paar Mal versucht, um dies mit geordneten Sets zu erreichen, aber Ihre Antwort zeigte schließlich einen richtigen Weg! – ima
Nur eine letzte Frage: In der GDX-Datei erscheint die Nummer von t direkt neben der Antwort. Aber wenn ich es zeige oder entlade, lande ich mit dem ganzen Graphen mit Ja und leeren Zellen. Gibt es eine Möglichkeit, nur den Wert von T anstelle des gesamten Graphen zu exportieren? – ima
T ist ein Set in meinem Beispiel, also hat es eigentlich keinen Wert. Ich bin mir also nicht ganz sicher, was Sie meinen "in der GDX-Datei erscheint die Zahl von t gleich neben der Antwort". Wenn Sie jedoch nur ein Element in einem Satz haben und eine Zahl daraus erhalten möchten, sollten Sie den ord-Operator wie folgt überprüfen: set tt/t1 * t10/ t (tt)/t5 /; Skalar ausgewähltT; selectedT = Summe (t (tt), ord (tt)); Anzeige ausgewähltT; – Lutz