J'ai un modèle Pyomo qui a la forme:Pyomo: Comment utiliser le point de données final dans l'objectif d'un modèle abstrait?
from pyomo.environ import *
from pyomo.dae import *
m = AbstractModel()
m.t = ContinuousSet(bounds=(0,120))
m.T = Param(default=120)
m.S = Var(m.t, bounds=(0,None))
m.Sdot = DerivativeVar(m.S)
m.obj = Objective(expr=m.S[120],sense=maximize)
Notez que le m.obj
objectif repose sur le paramètre m.T
. Tenter d'exécuter ce qui donne l'erreur:
TypeError: unhashable type: 'SimpleParam'
En utilisant une valeur, comme expr=m.S[120]
donne l'erreur:
ValueError: Error retrieving component S[120]: The component has not been constructed.
Dans les deux cas, mon objectif est le même: optimiser pour la plus grande valeur possible de S
à l'horizon.
Comment puis-je créer un modèle abstrait qui exprime cela?