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

고객지원

기술문의

Cplex에서

  • 권성화
  • 2002.08.03
  • 조회수 1,949

cplex.solve()를 호출할 때,
runtime error가 나는 이유에는 어떤 것이 있나요?

댓글 7

  • 소경철2002-08-05
    좀더 구체적으로 질문을 해주시기 바랍니다.
    이 내용만 가지고는 어떤 상황인지 알 수가 없네요....^^


    :권성화님의 글입니다.

    :
    :cplex.solve()를 호출할 때,
    :runtime error가 나는 이유에는 어떤 것이 있나요?
    :
    :
    아이콘삭제
  • 권성화2002-08-06
    concert technology를 사용해서, VC++6.0에서
    optimization application을 만들었습니다.

    그런데, 입력데이터에 따라서
    run time error가 발생하네요.

    run time error가 발생하는 위치는,
    cplex.solve() 함수에서 입니다.

    console 창에,
    iteration 하는 상황이 보여지다가 도중에 run time error가
    나면서 application이 멈춰버립니다.
    error내용은 memory access violation에 관한 것입니다.

    자체 application에 문제가 있는 것이 아닐까 뒤져보았는데,
    현재로써는 별다른 이상을 찾지 못하였기에 질문을 드렸습니다.

    이상한 일은,
    입력데이터 중에는, IloRange 객체의 upper bound와 lower bound를 설정하는 내용이 있는데
    다른 부분을 바꾸지 않은 상태에서
    그 중 하나의 값만을 적절히 변경하면 run time error가 없이 제대로 동작합니다.

    참고로,
    run time error가 나기 전에, 파일로 export하여 interactive mode에서 풀어보면 문제 없이 최적화 값을 찾아냅니다.

    하도 이상해서,
    cplex.solve() 함수 내에서 어떤 경우에
    run time error가 나는 것인지, 조금은 무식한 질문을 하게 되었습니다.
    아이콘삭제
  • 소경철2002-08-06

    입력 데이터에 따라 에러가 발생한다면, 입력 데이터를 처리하는 부분에서 문제가 있을 가능성이 있구요, Concert 상에서 제약이나 목적함수를 부과하는 부분에서 오류가 발생했을 수도 있습니다.

    에러 내용이 memory access violation이라고 하셨는데, 이 메시지는 배열을 이용하실 때 잘못된 번지를 참조하는 경우에 많이 발생합니다. 그 부분을 다시한번 확인해보시는 것도 좋겠네요.

    만약 현재 코드를 보내주실 수 있다면, 저희가 검토해서 정확한 원인을 알려드릴 수 있습니다.
    아이콘삭제
  • 권성화2002-08-07

    현재의 코드를 메일로 보내드렸습니다.

    메일 확인 부탁 드립니다.

    감사합니다.


    :소경철님의 글입니다.

    :
    :입력 데이터에 따라 에러가 발생한다면, 입력 데이터를 처리하는 부분에서 문제가 있을 가능성이 있구요, Concert 상에서 제약이나 목적함수를 부과하는 부분에서 오류가 발생했을 수도 있습니다.
    :
    :에러 내용이 memory access violation이라고 하셨는데, 이 메시지는 배열을 이용하실 때 잘못된 번지를 참조하는 경우에 많이 발생합니다. 그 부분을 다시한번 확인해보시는 것도 좋겠네요.
    :
    :만약 현재 코드를 보내주실 수 있다면, 저희가 검토해서 정확한 원인을 알려드릴 수 있습니다.
    아이콘삭제
  • 소경철2002-08-08

    메일이 계속 되돌아오는군요..^^
    코드를 보낼 때 사용하신 이메일과 이곳에 질문을 올리실 때 사용하신 이메일 모두 안됩니다.
    일단 이곳에 답변을 적겠습니다.

    =============================================================

    알려주신대로 데이터를 N-1-2로 수정해서 실행시켜 보았는데, 말씀하신 에러는 발생하지 않네요...^^

    소스는 문제가 없는 것 같고, 환경설정에서 문제가 있을 가능성이 큰 것 같네요.

    저는 현재 msvc 6과 CPLEX 7.5를 사용하면서, ILOG Library는 stat_mta를 이용하고 있습니다.

    물론, msvc 에서도 Multithreaded로 세팅해주어야 하구요...^^

    이런 환경으로 변경하신 뒤 다시한번 해보시기 바랍니다..^^
    (CPLEX 버전은 사용하고 계신 것으로 설정을 해주시면 됩니다.)


    :권성화님의 글입니다.

    :
    :현재의 코드를 메일로 보내드렸습니다.
    :
    :메일 확인 부탁 드립니다.
    :
    :감사합니다.
    :
    :
    ::소경철님의 글입니다.
    :
    ::
    ::입력 데이터에 따라 에러가 발생한다면, 입력 데이터를 처리하는 부분에서 문제가 있을 가능성이 있구요, Concert 상에서 제약이나 목적함수를 부과하는 부분에서 오류가 발생했을 수도 있습니다.
    ::
    ::에러 내용이 memory access violation이라고 하셨는데, 이 메시지는 배열을 이용하실 때 잘못된 번지를 참조하는 경우에 많이 발생합니다. 그 부분을 다시한번 확인해보시는 것도 좋겠네요.
    ::
    ::만약 현재 코드를 보내주실 수 있다면, 저희가 검토해서 정확한 원인을 알려드릴 수 있습니다.
    아이콘삭제
  • 권성화2002-08-08
    현재 저는 cplex7.0을 사용하고 있습니다.
    cplex library는 STAT_STA를 사용했구요.

    이 때문에 생긴 에러인 듯 싶어, 말씀하신대로
    cplex library는 STAT_MTA로 변경했습니다.

    그리고, msvc의 project setting - C/C++ - Code Generation의
    Use run-time library 항목을 Debug Single Threaded에서
    Debug Multithreaded로 바꾸었습니다.

    그런데도 이상하게 계속 같은 에러가 발생하는군요.

    설정 항목 중 잘못된 것이 있으면 알려주시면 고맙겠습니다.

    그리고, 가능하시다면 에러가 나지 않는다는 프로젝트를 제게
    보내 주시면 감사하겠습니다.

    감사합니다.

    :소경철님의 글입니다.

    :
    :알려주신대로 데이터를 N-1-2로 수정해서 실행시켜 보았는데, 말씀하신 에러는 발생하지 않네요...^^
    :
    :소스는 문제가 없는 것 같고, 환경설정에서 문제가 있을 가능성이 큰 것 같네요.
    :
    :저는 현재 msvc 6과 CPLEX 7.5를 사용하면서, ILOG Library는 stat_mta를 이용하고 있습니다.
    :
    :물론, msvc 에서도 Multithreaded로 세팅해주어야 하구요...^^
    :
    :이런 환경으로 변경하신 뒤 다시한번 해보시기 바랍니다..^^
    :(CPLEX 버전은 사용하고 계신 것으로 설정을 해주시면 됩니다.)
    아이콘삭제
  • 소경철2002-08-09
    역시 이번에도 메일이 되돌아오는군요..

    메일주소를 한번 확인해주시기 바랍니다...

    리턴 메시지는 다음과 같습니다...

    Your mail has been returned by the reason as follows:
    Reason: We had tried, but exceeded the maximum try count
    From : kcso@kstec.co.kr
    To : shkwon@math.snu.ac.kr



    :권성화님의 글입니다.

    :현재 저는 cplex7.0을 사용하고 있습니다.
    :cplex library는 STAT_STA를 사용했구요.
    :
    :이 때문에 생긴 에러인 듯 싶어, 말씀하신대로
    :cplex library는 STAT_MTA로 변경했습니다.
    :
    :그리고, msvc의 project setting - C/C++ - Code Generation의
    :Use run-time library 항목을 Debug Single Threaded에서
    :Debug Multithreaded로 바꾸었습니다.
    :
    :그런데도 이상하게 계속 같은 에러가 발생하는군요.
    :
    :설정 항목 중 잘못된 것이 있으면 알려주시면 고맙겠습니다.
    :
    :그리고, 가능하시다면 에러가 나지 않는다는 프로젝트를 제게
    :보내 주시면 감사하겠습니다.
    :
    :감사합니다.
    아이콘삭제

댓글 입력