このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1339338438/89
#  質問テンプレ】  
#  [1] 授業単元:組合せ最適化  
#  [2] 問題文(含コード&リンク):  
#   
#  以下のアルゴリズムを実装せよ。 
#  Find(j) 
#  if j=0 何もしない 
#  else 
#  ・e[i][j]+C+OPT(i-1)を最小にするiを計算する 
#  ・{p[i],p[i+1],・・・・,p[j]}を出力し、Find(i-1)を実行。 
#   
#  なおFind()は関数とし、変数はすべて計算済みとする。 
#  
#  iの範囲-> 1<=i<=j を満たす。 
#  e[i][j]+C+OPT(i-1)の型 →型の意味がわからなくて説明の仕方がわかりません。
#  pの型 →同上
#  出力形式 →printfで表示してください。
#  OPT()も計算済みです。
#  OPT(j)=e[i][j]+C+OPT(i-1)になります。
#  e[i][j]=Σ(k=i〜j) (y[k]-a*x[k]-b)^2
#  このy[k],x[k]は入力で与えられてます。
#  a,bは最小二乗法で求めてあります。
#  

'Find'(0).
'Find'(_j) :-
        findmin([X,_i],(
                    between(1,_j,_i),
                    'e[i][j]+C+OPT(i-1)'(_i,_j,X)),
                [_,_i]),
        '{p[i],p[i+1],・・・・,p[j]}を出力し'(_i,_j),
        _j_1 is _i - 1,
        'Find'(_j_1).