AMPL上的相关系数

时间:2016-04-26 22:24:42

标签: postgresql correlation psql minimization ampl

我有一个具体的问题,我将非常感谢任何帮助。

我正在研究AMPL(数学编程语言)的特定项目: 我需要实现一个目标函数,它可以最大限度地降低变量成本的风险,它还具有成本作为参数和相关系数。

使用成本差异估算风险,我有相关矩阵数据。 我的相关矩阵如下所示: 相关系数(%)
2015年
煤汽轮机燃气轮机Wind Central PV Hydro non pumped Nuclear GenIII Nuclear GenIV煤汽轮机CCS
1 0.47 0 0 0 0.12 0.12 1煤汽轮机
0.47 1 0 0 0 0.06 0.06 0.47燃气轮机
0 0 1 0 0 0 0 0风
0 0 0 1 0 0 0 0中央PV
0 0 0 0 1 0 0 0 Hydro non pumped
0.12 0.06 0 0 0 1 1 0.12 Nuclear GenIII
0.12 0.06 0 0 0 1 1 0.12 Nuclear GenIV
1 0.47 0 0 0 0.12 0.12 1煤汽轮机CCS

就我而言,我想要最小化的成本风险取决于燃料价格(燃料类型是相关的,相关系数每年变化,燃料价格取决于技术类型,省份和年份)。

我需要找到一种方法来找到一种有效的方法来输入表中的相关矩阵(psgAdmin(psql)上的数据库),然后使用适当的参数来读取它们,并在我的目标函数上实现它们。

到目前为止,我的表格如下:

table fuel_prices "inputs/fuel_prices.tab" IN:
[province, fuel, year], fuel_price, cv_fuel_price;
read table fuel_prices;

我需要修改它以添加相关系数。

# Table for the correlation coefficients
# table fuel_prices_corr "inputs/fuel_prices_corr.tab"  and IN:
#  [province, year], fuel, correl_coeff1, correl_coeff2;
# read table fuel_prices_corr;

我正在使用的技术从表中提取如下:     table generator_info" inputs / generator_info.tab" IN:
    技术< - [技术],技术,燃料;     读表generator_info;

table gen_cap_cost "inputs/gen_cap_cost.tab" IN:
[technology, year], overnight_cost_yearly ~ overnight_cost, fixed_o_m_yearly ~    fixed_o_m, variable_o_m_yearly ~ variable_o_m;
read table gen_cap_cost;

table existing_plants "inputs/existing_plants.tab" IN: 
EXISTING_PLANTS <- [project_id, province, technology], 
ep_plant_name ~ plant_name, ep_carma_plant_id ~ carma_plant_id,
ep_capacity_mw ~ capacity_mw, ep_heat_rate ~ heat_rate,   ep_cogen_thermal_demand ~ cogen_thermal_demand_mmbtus_per_mwh,
ep_vintage ~ start_year,  
ep_overnight_cost ~ overnight_cost, ep_connect_cost_per_mw ~ connect_cost_per_mw, ep_fixed_o_m ~ fixed_o_m, ep_variable_o_m ~ variable_o_m,
ep_location_id;
read table existing_plants;


table new_projects "inputs/new_projects.tab" IN: 
PROJECTS <- [project_id, province, technology], location_id,   ep_project_replacement_id,
capacity_limit, capacity_limit_conversion, heat_rate, cogen_thermal_demand, connect_cost_per_mw;
read table new_projects;

我的目标函数如下所示:pid =项目特定id,a =省,t =技术,p = PERIODS,投资期的开始以及发电厂开始运行的日期,h =学习时间 - 考虑了唯一的时间点,p =投资期。

项目中的{(pid,a,t,p)} Gen [pid,a,t,p,h] * fuel_cost [pid,a,t,p]))

有没有人对此提示,或使用MPT的项目和相关变量?

1 个答案:

答案 0 :(得分:0)

以下是用于读取取自here的二维参数amt的表声明的示例:

table dietAmts IN "ODBC" (ConnectionStr) "Amounts":
  [NUTR, FOOD], amt;

在您的情况下,您将在关键部分中设置两次相同的设置,例如[ENERGY_SOURCE, ENERGY_SOURCE],其中ENERGY_SOURCE是一组能源,例如煤汽轮机等。矩阵是对称的,你只需要存储一半。