2014-10-30 5 views
1

У меня есть проблема с AMPL сделать стохастическое программирование,Как улучшить мою модель AMPL SP с большим количеством измерений

В настоящее время у меня есть три сценария и назначить вероятности перед каждым решением.

for { t in 1..SIZE-1 by 2} { 

    let Demand := DemandSeq[t]; 
    let Resources := ResourcesSeq[t]; 

    # change probability of each stage 
    if StateSequence[t] = 1 # N 
     then { 
      let P[1]:= 0.7; 
      let P[2]:= 0.2; 
      let P[3]:= 0.1; 
     } 
    else if StateSequence[t] = 2 # A 
     then { 
      let P[1]:= 0.6; 
      let P[2]:= 0.3; 
      let P[3]:= 0.1; 
     } 
    else if StateSequence[t] = 3 # M 
     then { 
      let P[1]:= 0.5; 
      let P[2]:= 0.4; 
      let P[3]:= 0.1; 
     }; 
    solve; 
    ... 
} 

Теперь, если я изменю эту проблему с тремя сценариями в проблему с 10 сценариями. У меня уже есть 10 * 10 вероятностная матрица, но я не знаю, как назначить prob.

ответ

1

Как я ответил на AMPL Google Group, вы можете определить двумерный параметр для сохранения вероятностей:

param Probs{1..10, 1..10}; 

определить его в данных в компактной форме (или читать из базы данных или таблицы), например:

data; 
param Probs : 
    1 2 3 ... 10 := 
1 0.1 0.2 0.05 ... 0.1 
... 

и использовать итерированную форму let, чтобы присвоить данные P:

let {i in 1..10} P[i] := Prob[StateSequence[t], i]; 
Смежные вопросы