Skip to content
Snippets Groups Projects
Commit d1ce1f69 authored by Christian Doh Dinga's avatar Christian Doh Dinga
Browse files

define paramters common to all agents

parent 62ab06f7
No related branches found
No related tags found
No related merge requests found
import numpy as np
import pyomo.environ as pyo
from typing import Dict
def define_common_parameters(agent: str, data: Dict) -> pyo.AbstractModel:
"""Define common parameters to all optimization problems."""
model = pyo.AbstractModel(name=f'Optimization-problem-of-agent-###{agent}###') # Use Abstract instead of Concrete model
# Declare and set (but do not construct yet)
number_of_timesteps = data["General"]["nTimesteps"]
model.time = pyo.Set(initialize=list(range(number_of_timesteps)), name='timesteps')
# print(model.time.is_constructed())
# Declare common optimization parameters related to the EOM (but do not construct yet)
λ_EOM_initial = dict(enumerate(np.zeros(number_of_timesteps)))
g_bar_initial = dict(enumerate(np.zeros(number_of_timesteps)))
ρ_EOM_initial = data["ADMM"]["rho_EOM"]
model.λ_EOM = pyo.Param(model.time, name='λ_EOM', initialize=λ_EOM_initial, mutable=True)
model.g_bar = pyo.Param(model.time, name='g_bar', initialize=g_bar_initial, mutable=True)
model.ρ_EOM = pyo.Param(name='ρ_EOM', initialize=ρ_EOM_initial, mutable=True)
return model
# # Example usage
# import yaml
# def read_config(config_file):
# with open(config_file, 'r') as file:
# config = yaml.safe_load(file)
# return config
# data = read_config('config.yaml')
# agents = [id for id in data['Consumers'].keys()]
# mdict = {m: define_common_parameters(m, data) for m in agents}
# for agent, model in mdict.items():
# print(model.name)
# model.time.pprint()
# print()
# model.λ_EOM.display()
# print()
# model.g_bar.display()
# print()
# model.ρ_EOM.display()
# print()
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment