1 / 8

AMPL について

AMPL について. 2011 年 12 月 2 日(金) 経営システム工学科 森戸 晋. 直感的なモデル記述. minimize TOTAL_COST: sum{i in 1..N, j in 1..M}C[i,j]*x[i,j] +sum{j in 1..M}F[j]*y[j]; subject to DEMAND{i in 1..N}: sum{j in 1..M}x[i, j ]>=D[i]; subject to CAPACITY{j in 1..M}: sum{i in 1..N}x[i,j]<=L[j];

lisbet
Download Presentation

AMPL について

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AMPLについて 2011年12月2日(金) 経営システム工学科 森戸 晋

  2. 直感的なモデル記述 minimize TOTAL_COST: sum{i in 1..N,j in 1..M}C[i,j]*x[i,j] +sum{j in 1..M}F[j]*y[j]; subject to DEMAND{i in 1..N}: sum{j in 1..M}x[i,j]>=D[i]; subject to CAPACITY{j in 1..M}: sum{i in 1..N}x[i,j]<=L[j]; subject to LOGIC{i in 1..N,j in 1..M}: x[i,j]<=M*y[j];

  3. AMPLのファイル構成 • 施設候補地は2 • 需要地は7 • 施設の容量は… • 各顧客の需要は.. SAMPLE.MOD SAMPLE.RUN SAMPLE.DAT • 定式化を記述するファイル • 必要な目的関数,制約,記号の定義を列挙する • アルゴリズムを記述するファイル • どの問題をいつ何回解くのか? • どのデータを使うのかを指定する • 実験のデータを記述するファイル • 各種インスタンス • (集合,定数)を列挙

  4. 実際に問題を解く • 施設配置問題 • 施設を開設する場所と,輸送量を決定したい 施設を建てる建てないを Yj={0,1}で表現 輸送量はxij 各需要地の需要Diは満たさねばならない 各施設には生産上限Ljがある

  5. モデルファイル(FLP.mod)を読む param N; param M; param C{i in 1..N, j in 1..M}; param F{j in 1..M}; param D{i in 1..N}; param L{j in 1..M}; var x{i in 1..N, j in 1..M} >= 0; var y{j in 1..M} integer in 0..1; パラメータ(定数)を指定 決定変数を指定 (xは非負,yはバイナリ) 記号の定義 minimize TOTAL_COST: Sum{i in 1..N,j in 1..M}C[i,j]*x[i,j]+sum{j in 1..M}F[j]*y[j]; subject to DEMAND{i in 1..M}: Sum{j in 1..N}x[i,j]>=D[i]; subject to CAPACITY{j in 1..M}: Sum{i in 1..N}x[i,j]<=L[j]; subject to LOGIC{i in 1..N,j in 1..M}: x[i,j]<=M*y[j]; モデルの記述

  6. スクリプトファイル(FLP.run)を読む model FLP.mod; data FLP.dat; option solver CPLEX; problem FLP: x, y, TOTAL_COST, DEMAND, CAPACITY, LOGIC; solve FLP; 変数はxとy 目的関数は「TOTAL」 制約式は「DEMAND…」 display FLP; display x; display y; display FLP > FLP.sol; display x > FLP.sol; display y > FLP.sol; 解の表示,書き込み

  7. コマンドプロンプト上から実行 ⇒コマンドプロンプトから当該フォルダに移動し, 「ampl FLP.run」で実行される • 結果は? • modelの後のCAPACITYを削除してもう一度実行すると答えはどうなる? • WorkspaceフォルダにFLP.solというファイルができてるはずなので,テキストエディタで開いてみましょう

  8. 【課題1】 ErrorDebugging 【課題1】 TASK.run,TASK.modにはエラーがあります。TASK.runを実行してエラーメッセージを確認し,デバッグしてみてください

More Related