2017-10-01 18 views
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입니다. 어떻게 이것을 기본값으로 설정할 수 있습니까?

+0

은 당신이 있는지 확인하기 위해 행렬의 비 스파 스 버전을 사용 해봤 모델 파일에 지정할 수 있습니다 공장? 아마도 장난감 예제 – ShreyasG

+0

@ShreyasG 비 스파 스 버전이 작동합니다 (기본적으로 모든 값을 반복하고 0을 명시 적으로 설정합니다). 특히 효율성이 높기 때문에 스파 스 형식의 기본값을 설정하는 데 관심이 있습니다. – FooBar

+0

오른쪽. 아마 당신의 '솔버'모듈에서 이것을 조정할 수있는 방법이 있을까요? NaN이 아닌 값만 반복하도록 지시 할 수있는 곳입니다. – ShreyasG

답변

0

나는 아직도 amplpy 내에서이 일을 알고 아니지만, 적어도 하나는 직접

param B {Rn, Rn} default 0;