• 締切済み

線形計画問題をGLPKのですが・・・

現在研究で線形計画・整数計画を扱っており, フリーソフトのGLPKを使っています. GLPKのモデルファイルに制約条件を書く際, 変数の取る範囲を両側から指定したい場合(○<x<◎など), どのように表わせばよいのでしょうか. 何分英語が苦手で公式マニュアルが理解できないので, どなたかお解りでしたら教えてください. ちなみに実際に書こうとしている制約条件は↓です. s.t. sample{i in part , j in lap : j > t[i] - s , j <= t[i]} : j-c[i]-d[j]*w[i]>= 0; t[i],w[i],j,sは定数でc[i],d[j]です.

みんなの回答

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

範囲指定って片側ならできる? できるなら、条件をandか&&でつなぐだけでできると思うけど。 # s.t. sample{i in part , j in lap : j > t[i] - s && j <= t[i]} : j-c[i]-d[j]*w[i]>= 0; マニュアルを見ても、そもそも制約式のドメイン指定で単純な集合指定でない範囲指定ができるかどうか確認できない。 質問の例だとjの範囲がiに依存しているから、iをパラメータとするlapの部分集合sublap{i in part}を別途定義して、jの範囲をsublap[i]に取れば良いかも。 # Set sublap{i in part} := {j in lap:j > t[i] - s , j <= t[i]}; # s.t. sample{i in part, j in sublap[i]}:j-c[i]-d[j]*w[i]>= 0;

naostar
質問者

お礼

回答ありがとうございます。 &&ですが^^そういえば試してなかったです。 ずっとセミコロン、ドット、カンマなどで試したんですが 上手くいかなかったのです。 片側の範囲指定はできそうなのです。 なぜならこの制約式の前に片側の範囲指定を入れた行があるのですが、 そこまでは正常に読み込んでいますので。 もしできなければ、sublapを定義してみます。 ありがとうございました。

関連するQ&A