2016-04-26 19 views
1

具体的な質問がありますので、何か助けてくれれば幸いです。AMPLとの相関係数

私はAMPL(A Mathematical Programming language)に関する特定のプロジェクトに取り組んでいます: パラメータとしてのコストと相関係数を変数として持つコストのリスクを最小限に抑える目的関数を実装する必要があります。よく

リスクはコストの分散を使用して推定され、相関行列データがあります。
石炭蒸気タービンガス燃焼タービン風中央PVハイドロ以外は
1 0.47 0 0 0 0.12 0.12 1石炭核GenIII核GenIV石炭蒸気タービンCCSを励起 相関係数(%): マイ相関行列は次のようになり蒸気タービン
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ハイドロ非ポンプ輸送
0.12 0.06 0 0 1 1 0.12原子力GenIII
0.12 0.06 0 0 0 1 1 0.12原子力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; 

私は相関係数を追加するためにそれを変更する必要があります。 IN "の入力/ generator_info.tab" generator_info テーブル::私は使用しています

# 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; 

技術は以下のようにテーブルから抽出され
TECHNOLOGIES < - [技術]、technology_id、燃料; read table 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、=州、T =テクノロジー、P = PERIODS、投資期間の開始だけでなく、発電所が稼働して開始した日付、 h =学習時間 - 考慮する一意の時間点、およびp =投資期間。

{PROJECTで(PID、T、P)}和ジェン[PID、T、P、H] * fuel_cost [PID、T、P]))

誰も持っていそれについてのヒント、またはMPTを使用するプロジェクト、および相関変数?ここで

答えて

0

hereから取られた2次元のパラメータamt読み取るためのテーブル宣言の例です:あなたのケースでは

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

を、あなたは、キー部に二度同じセットを持っているだろう、[ENERGY_SOURCE, ENERGY_SOURCE]のようなものここで、ENERGY_SOURCEは、Coal蒸気タービンなどのエネルギー源のセットです。マトリックスが対称であるため、その半分を保存するだけです。

関連する問題