주메뉴 바로가기 본문 바로가기 하단 바로가기

고객지원

기술문의

cplex에서 obj가 나오는데..

  • 이상진
  • 2006.03.02
  • 조회수 1,600
안녕하세요

많은 도움을 받고 있습니다

이번엔 cplex 모델식에 나온 제약식을 만족 시키지 못하면서
objective value가 나올 수 있나요?

c로 제약식을 생성해서 모델을 뽑고
풀어봤습니다
그런데 어떤 제약식을 만족 시키지 못하는데도
obj value가 나옵니다

id2229: Delta[1][7] + Delta[7][1] = 1
id2284: Delta[1][7] + Delta[7][1] >= 1
이런 제약식이 있습니다
(물론 delta는 0 또는 1입니다)

그런데 결과값을 보면
Delta[1][7] 0
Delta[7][1] 0
라고 나옵니다

이런 경우도 가능한가요?

댓글 7

  • 소경철2006-03-03
    이 정보만 가지고는 판단하기 어렵네요..

    혹시 생성된 LP 파일을 첨부해 주실 수 있을까요..

    LP 파일을 첨부해주시면 분석해서 답변 드리겠습니다..

    감사합니다..
    아이콘삭제
  • 이상진2006-03-03
    관심을 갖어 주어 대단히 감사합니다

    첨부 파일은 다음과 같습니다

    아이콘삭제
  • 소경철2006-03-04
    첨부한 LP 파일로 실행한 결과는 다음과 같습니다..

    Objective = 1.9607843137e-003

    Delta[1][7] = 0
    Delta[7][1] = 1

    이 결과에 따르면 말씀하신 제약 2개는 모두 만족하고 있습니다.

    결론적으로, 제약에 대해 Feasible 하지 않은 상황에서 목적함수를 구할 수는 없습니다..

    변수의 값을 출력하는 과정에서 실수가 있었을 것으로 생각되네요..^^
    아이콘삭제
  • 이상진2006-03-04
    답변 대단히 감사합니다

    그런데 제가 그 lp 파일을
    ilog 폴더의 cplex를 직접 실행시켜 읽으려 했더니

    CPLEX Error 1608: Expected '+','-' or sense, found '['.

    이같은 에러 메시지가 나오던데
    변수를 y[i][j]같은 형태로 선언하면 못 읽나요?
    아이콘삭제
  • 소경철2006-03-06
    네.. 변수명에 '['나 ']'가 있으면 인식을 하지 못합니다..

    '('나 ')'로 변환한 다음에 실행해보시면 정상적으로 실행 가능합니다..

    감사합니다.
    아이콘삭제
  • 이상진2006-03-06
    답변 매우 감사드립니다

    아무래도 제가 계산 결과에 대한 변수를 찾아내는 방법이 잘 못 되었나보네요 --;;
    (이건 또 어떻게 해결하나...--;;)


    기본적인 질문인데요..

    혹시 cplex.exe를 실행해서
    read -> optimize-> display에서
    모든 decision variable을 한 번에 출력되게 할 수는 없나요?

    dis sol var delta(1)(7) 이렇게 한 번에 한 변수만을 출력할 수 밖에 없나요?

    답변 부탁드립니다...
    아이콘삭제
  • 소경철2006-03-06
    Solve가 끝난 다음에 모든 변수의 값을 알고 싶을 때는 다음과 같이 하시면 됩니다..^^

    cplex> disp solu vari -

    감사합니다..
    아이콘삭제

댓글 입력