from pyomo.environ import *
from pyomo.opt import SolverFactory
import random
# Create model
mdl = ConcreteModel()
# Timesteps
timesteps_max = 24
timesteps = range(0, timesteps_max)
# Set for timesteps
mdl.T = Set(ordered=True, initialize=timesteps)
# Parameters
mdl.Parameter1 = Param(mdl.T, initialize=dict(zip(timesteps,
[random.randrange(0, 50, 1)
for _ in
range(timesteps_max)]))
mdl.Parameter2 = Param(mdl.T, initialize=dict(zip(timesteps,
[random.randrange(0, 50, 1)
for _ in
range(timesteps_max)]))
# Variables
mdl.Variable1 = Var(mdl.T, within=NonNegativeReals)
mdl.Variable2 = Var(mdl.T, within=NonNegativeReals)
mdl.Variable3 = Var(mdl.T, within=NonNegativeReals)
...
# Example constraint
def example_constr_rule(mdl, t):
return (mdl.Variable1[t] >= 0)
mdl.example_constr = Constraint(mdl.T, rule=example_constr_rule)
...
# Create instance
instance = mdl.create()
# Choose solver
opt = SolverFactory("gurobi")
# Warmstart heuristics
for i in timesteps:
# Initial value for Variable1
instance.Variable1[i] = 5
# Values for Param2
if (instance.Parameter1[i] > instance.Parameter2[i]):
instance.Variable2[i] = 5
else:
instance.Variable2[i] = 2
# Is it also possible to compare values of instance variables?
if (instance.Variable1[i-1] > instance.Variable2[i-1]):
instance.Variable3[i] = 5
else:
instance.Variable3[i] = 2
# Solve model
results = opt.solve(instance, tee=True, warmstart=True)
mdl.Variable3=Var(mdl.T,
within=NonNegativeReals)
...
# Example constraint
def example_constr_rule(mdl,
t):
return(mdl.Variable1[t]>=0)
mdl.example_constr
=Constraint(mdl.T,
rule=example_constr_rule)
...
# Create instance
instance = mdl.create()
# Choose solver
opt =SolverFactory("gurobi")
# Warmstart heuristics
for i
in timesteps:
# Initial value for Variable1
instance.Variable1[i]=5
# Values for positive tertiary reserve capacity and provision
if(instance.Parameter1[i]>
instance.Parameter2[i]):
instance.Variable2[i]=5
else:
instance.Variable2[i]=2
# Is it also possible to compare values of instance variables?
if(instance.Variable1[i-1]>
instance.Variable2[i-1]):
instance.Variable3[i]=5
else:
instance.Variable3[i]=2
# Solve model
results = opt.solve(instance,
tee=True, warmstart=True)