2016-04-26 11 views
1

У меня есть конкретный вопрос, и я буду глубоко признателен за любую помощь, пожалуйста.коэффициенты корреляции на AMPL

Я работаю над конкретным проектом AMPL (Математический язык программирования): Мне нужно реализовать целевую функцию, которая минимизирует риск для стоимости переменной, которая имеет стоимость в качестве параметра и коэффициентов корреляции как Что ж.

Риск оценивается с использованием дисперсии по стоимости, и у меня есть данные корреляционной матрицы. Моя корреляционная матрица выглядит следующим образом: коэффициентов корреляции (%)
угля паровой турбины турбина внутреннего сгорания газа Ветер Центральный П.В. Гидро, не накачкой ядерной GenIII ядерной 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 Центральный П.В.
0 0 0 0 1 0 0 0 Гидро без перекачивается
0.12 0.06 0 0 0 1 1 0.12 Ядерный генIII
0,12 0,06 0 0 0 1 1 0,12 Ядерная GenIV
1 0,47 0 0 0 0,12 0,12 1 Coal паровой турбины 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; 

Технологии Я использую извлекаются из таблиц в виде следующей таблицы: generator_info "Входы/generator_info.tab" IN:
TECHNOLOGIES < - [технологии], technology_id, топливо; читать таблицу 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 = конкретный проект идентификатор, а = область, т = технология, р = ПЕРИОДЫ, начало инвестиционного периода, а также дата, когда электростанция начинает работать, h = час обучения - уникальная точка отсчета, а p = период инвестиций.

сумма {(ИДП, а, т, р) в PROJECT} Gen [PID, а, т, р, ч] * fuel_cost [PID, а, т, р]))

Кто-нибудь есть намек на это, или проект, который использует MPT, и коррелированные переменные?

ответ

0

Вот пример объявления таблицы для чтения двумерную параметра amt взятых из here:

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

В вашем случае, вы будете иметь тот же набор дважды в ключевом разделе, что-то вроде [ENERGY_SOURCE, ENERGY_SOURCE] , где ENERGY_SOURCE представляет собой набор источников энергии, таких как угольная паровая турбина и т. д. Поскольку матрица симметрична, вам нужно только сохранить ее половину.