掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Delphiで簡単な線形計画を解きたいです (ID:150504)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
HFUKUSHI様 想定していることはHFUKUSHI 様の仰る通りです。 線形計画を解けるか確認したいだけなので、この際ボタンを使用しなくても構わないのです。解けるかの結果だけでも知りたいのですが、可能でしょうか。 上記のコードはコピペしたものになりますが、一応現在のコードを再度下記に記します。 procedure TForm2.Button1Click(Sender: TObject); var i:integer; s:String; nvars:integer; colData:PFloatArray ; lp:THandle ; begin with Memo1 do begin for i:=lines.count-1 downto 0 do begin if (length(lines[i])>=2) and (copy(lines[i],1,2)= '--') then break else lines.delete(i); end; end; begin lp := make_lp(0,2); set_col_name(lp, 1, 'x'); set_col_name(lp, 2, 'y'); colData:=AllocMem(SizeOf(Double)*2) ; if (lp <> 0) then begin s:= '120' + ' ' + '210'; str_add_constraint(lp,PChar(s),1,15000); s:= '110' + ' ' + '30'; str_add_constraint(lp,PChar(s),1,4000); s:= '1' + ' ' + '1'; str_add_constraint(lp,PChar(s),1,75); s:= '143' + ' ' + '60'; if str_set_obj_fn(lp, PChar(s)) then begin set_maxim(lp); if solve(lp)=0 then with memo1, lines do begin add(''); add('Solved'); add('Optimum variable values are:'); nvars:=get_nColumns(lp); get_variables(lp,@colData); add(format('%s: %d', [get_col_name(lp, 1), colData^[i]])); add(format('%s: %d', [get_col_name(lp, 2), colData^[1]])); add(format('Objective value: %d', [get_objective(lp)])); for I:=0 to Nvars - 1 do begin add(format('%s = %.3f',[get_col_name(lp,i+1),colData[i]])); add(format('Objective value: %f', [get_objective(lp)])); end; end; end; end; end; delete_lp(lp); end; end.
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.