2017-01-25 4 views
0

ここに数学記号を挿入する方法がわかりません。とにかく、ここで簡単な例を使って私が達成したいことを説明するために最善を尽くします。だから私は、次の制約があります。たとえば行列の制約CPLEX Python API

For each k from 1 to 10 
Sum_{i=1 to 5} p_ik * A_ik = Q_i 

p_ikはスカラー決定変数であるとA_ik、Q_I両方が行列
p_11 * [[1,1],[0,0]] + p_21 * [[1,0],[0,1]] = [[0.1,0.1],[0,0]] 

。 制約は、以下の線形制約に変換することができる。実際に

p_11 + p_21 = 0.1, p_11 =0.1, p_21 = 0 

、A_ikは非常にまばらである0または1の行列です。私は行列A_ikをあらかじめ計算しており、上記の制約を追加しようとしています。またはSparseTripleクラスを使用することができますか?

+0

[二次制約](http://www.ibm.com/support/knowledgecenter/SSSA5P_12.7.0/ilog.odms.cplex.help/refpythoncplex/html/cplex._internal._subinterfaces)の使用方法を尋ねていますか。 QuadraticConstraintInterface-class.html)?あなたはすでにこれを知っているでしょうが、[ここ](http://www.ibm.com/support/knowledgecenter/SSSA5P_12.7.0/ilog.odms.cplex.help/CPLEX/GettingStarted/topics/preface/kindOfProblem.html)はCPLEXが解決できる問題の種類(その他[こちら](http://www.ibm.com/support/knowledgecenter/SSSA5P_12.7.0/ilog.odms.cplex.help/CPLEX/UsrMan/topics/preface/whatdoes) .html))。 – rkersh

+0

実際にはありません。これは線形制約でなければなりません。私の例では、それはに翻訳することができます。 'p_11 + p_21 = 0.1' ' p_11 = 0.1' 'p_21 = 0 ' さて、この例では、あまりにも、それは基本的に上記の式に変換されtrivial..but 。 –

+0

さて、おそらく、その翻訳された例を含めるために質問を編集する必要があります。線形制約を作成するだけの場合は、翻訳を自分で行い、 'Cplex.linear_constraints.add'メソッドを使用する必要があります。 'SparseTriple'クラスは、二次制約に対してのみ使用されます。 – rkersh

答えて

0

私は、あなたが毎kごとに異なるQを持っているので、Qのインデックスは私の代わりにkでなければならないと思いますか?