0

私はcplexを使って学生割り当ての問題をモデル化しようとしています。 アクセスデータベースに学生の詳細があります(例:学生IDとマーク) タプルを使用してdbから.modファイルにこれらの値を取得できました。IBM Cplexを使用した混合整数プログラミングにおける目的関数のデータベース値のマッピング方法

tuple stuType{ 
    int id; 
    int mark; 
} 

stuType m[id][mark]=...; 

ここでは、これらの値を目的関数に使用します。

maximize sum(a in id, b in id, k in mark) m [a] [k] * m [b] [k]; 

しかし、この表記は目的関数に誤りを与えます。 この問題の解決方法については、何か助けてください。

+0

必要な情報をすべて表示してください。どのようなエラーが出されますか? –

+0

エラーは "オペレータは * には使用できませんでした。 – Ann

+0

タプルのペアを掛け合わせるとどうなりましたか? – TimChippingtonDerrick

答えて

0

ああ。 OK。素晴らしい最適化の世界へようこそ。どのような形式でプログラミングするのが初めてであれば、これはややこしいかもしれません。基本的なアイデアがいくつか整理されていれば、それほど複雑ではありません。私たちはちょっと違ったことを説明しなければなりません。私は何もしませんが、少なくともあなたのデータを見ることができる、本当に簡単なモデルから始めます。

あなたのデータは以下のようなものを読んだ後、本当にシンプルなものを使用してみてください:

dvar float+ x; 
maximize x; 
subject to 
{ 
    x <= 10; 
}; 

モデルが本当にあなたのデータやあなたの問題とは何の関係もありませんが、少なくとも実行しなければならないこととCPLEXのスタジオ環境は、少なくともべきあなたが読んだデータを見てみましょう。あなたのデータが実際にどのように見えるかを知ったら、何か役に立つモデルを手に入れるより良い機会になります。

関連する問題