3
は、私は後で指定のデフォルト値
from numpy import random
from scipy import sparse
from amplpy import AMPL, Environment, dataframe
B = random.randint(0, 2, (3, 3))
BSparse = sparse.lil_matrix(B)
dfB = dataframe.DataFrame(('RnRow', 'RnCol'), 'val')
dfB.setValues({
(i+1, j+1): BSparse.data[i][jPos]
for i, row in enumerate(BSparse.rows)
for jPos, j in enumerate(row)
})
として非スパース値を定義するため
param B {Rn,Rn};
、ときに私を、モデルファイルに定義されたマトリックス形式のパラメータB
を、持っています私のモデルを解きたいと思っていますが、ソルバーは文句を言っています。
Error executing "solve" command:
error processing constraint f[1]:
no value for B[1,1]
明らかに欠損値はありません。値は0
です。これをデフォルト値に設定するにはどうすればよいですか?
は、あなたがそれかどうかを確認するために、マトリックスの非スパースバージョンを使用してみましたがモデルファイルでそれらを指定することができます作品ですか?おそらくおもちゃの例 – ShreyasG
@ShreyasG非スパース版が動作します(基本的にはすべての値を反復処理し、ゼロを明示的に設定しています)。私は、大きな効率向上のために疎フォーマットのデフォルトを設定することに特に関心があります。 – FooBar
右。おそらくあなたの 'ソルバー'モジュール内でこれを微調整する方法がありますか? NaN以外の値だけをループするように指示できます。 – ShreyasG