c#에서 코딩을 해서 solve() method를 이용할 때와 c#에서 lp파일을 export해서 직접 cplex를 이용해서 optimize하는 경우와 차이가 있나요? parameter는 c#에서 하나도 변경하지 않았는데 기본 defaul 세팅이 차이가 있나요?
c#에서 하면 solution을 찾지 못한다고 나오는데 그 lp파일을 직접 읽어서 풀면 solution을 찾거든요. 이런 경우 어떻게 해야 하나요?
댓글 1
김민규2012-02-06
안녕하세요. KSTEC의 김민규입니다.
모델의 LP파일이 C#에서 구현하여 export로 생성된 파일인가요? export하여 생성된 LP파일을 interactive optimizer에서 읽어서 구동하셨다는 말씀이시죠?
interactive optimizer와 concert liblary를 사용한 경우 모두 parameter를 설정하지 않았다면 default로 값으로 적용됩니다. 따라서 구현하고자 한 모델과 lp파일이 일치한다면 solution을 한쪽에서만 찾을 수는 없습니다. 물론 복잡한 모델일 경우 컴퓨터의 일시적인 메모리 가용상황에 따라 미세하게 해가 차이날 수는 있습니다.(이런 경우 보통 MIP, IP문제시 발생할 가능성이 있습니다.)
C#에서 구현하고자한 모델링에 맞게 lp파일이 원하는대로 생성되었는지 먼저 꼼꼼하게 체크해 보세요. lp파일의 변수명이나 부호등이 잘못 읽혀져 원하던 모델이 아닌 전혀다른 모델로 인식하는 경우가 발생하거든요.