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

고객지원

기술문의

에러 관련문의드립니다.

  • 최용훈
  • 2024.01.08
  • 조회수 128
cplex 구동 중
'oplrun 프로세스가 응답하지 않습니다' 라는 에러가 계속해서 나오고 있습니다.
변수 개수는 대략 12만개 정도되며 binary가 포함된 MIP입니다.

에러메세지가 어떤 의미입니까? 다운로드아이콘optimization.zip

댓글 6

  • 김반2024-01-10
    안녕하세요.

    보내주신 모델 입력데이터 중에 엑셀파일을 사용하지만, 첨부파일에는 미포함이어서 정확히 재연을 할 수 없으나,
    모델의 목적식의 구문에 오류가 있는것으로 보입니다.

    "sgg" --> 참조하는 변수가 미존재.

    minimize
    sum(i in sgg)sum(h in hos)(2*(u[i][h] + v[i][h])*(tau*Time[i][h] + epsilon*Length[i][h]) + c*s[i][h])*365 + sum(h in hos)10000*cost[h]*r[h];
    아이콘삭제
  • 비회원2024-01-10
    1. 추가적으로 CPLEX 설치 경로에 한글 디렉토리나 파일명을 사용하는 경우에도 CPLEX 버전에 따라 같은 에러가 발생합니다.
    2. CPLEX Optimization Studio의 에러 메시지 한글 깨짐 해결은 =>
    메뉴 : Run (실행) > Run Configurations (실행구성) 에서 "OPL 실행구성 (OPL Run Configuration)"을 하나씩 선택해서 "Arguments (인수)" 탭에 아래와 같이 입력하면 모든 에러 메시지가 영어로 출력됩니다.
    -DOPL_NATIVE_LOCALE=en-US
    아이콘삭제
  • 최용훈2024-01-10
    답변 정말 감사드립니다. 첨부파일에 데이터 추가해서 수정하였습니다.
    문제는 실행구성을 실행하였을 때 문제가 풀리는 도중에 (엔진로그에 Gap이 점점 감소하는 과정에서) oplrun 프로세스가 응답하지 않습니다 라는 에러 메시지가 나오고 있습니다.
    아이콘삭제
  • 비회원2024-01-11
    1. oplide 메모리 고갈이 발생하지 않았나 의심됩니다.
    <cplex설치 폴더>/opl/oplide/oplide.ini 파일에 Java VM 메모리 할당량 정보를 PC 메모리 크기를 고려해서 조정해 보세요.
    2. oplide 자체가 다양한 정보를 제공하기 위해서 많은 메모리를 요구합니다.
    ide 하단에 표시되는 충돌, 완화, 통계, 프로파일러 창은 닫아 보세요. 메모리 사용이 감소합니다.
    3. 모델 자체가 매우 많은 메모리를 요구하는 경우에는 oplrun 외부 도구 실행이 효과적 입니다.
    이 때는 oplide 기능을 사용하지 않고 엔진으로 실행을 전달하는 역할만 하므로 메모리 사용량이 최소화 됩니다.

    추신: 데이터 파일을 추가로 올리셨으니 테스트 해서 답변을 달도록 하겠습니다.
    아이콘삭제
  • 김반2024-01-11
    안녕하세요. KSTEC 입니다.

    보내주신 입력 파일을 포함하여 실행을 하였으며, 정상 실행 되는 것은 확인 하였으나,
    first-solution 을 찾은 후, 계속 진전이 없는 상태로, 메모리 또는 시스템 문제가 발생한 것을 추정됩니다.

    저는 일단 thread 수를 4개, time_limit 을 600 초로 설정한 후, 정상 적으로 결과 수행이 완료된 것을 확인하였습니다.
    기본적으로 문제사이즈가 큰 것으로 보이며, 문제 분할 등의 방법으로 접근 하시는 것을 추천 드립니다.

    설정 변경 부분.
    optimization_ex.ops
    ------------------------------------
    <?xml version="1.0" encoding="UTF-8"?>

    <settings version="2">
    <category name="cplex">
    <setting name="tilim" value="600.0"/>
    <setting name="threads" value="4"/>
    </category>
    <category name="run">
    <setting name="run_engineexportextension" value="lp"/>
    </category>
    </settings>

    수행로그:

    Nodes Cuts/
    Node Left Objective IInf Best Integer Best Bound ItCnt Gap

    * 0+ 0 773520.4249 0.0000 100.00%
    0 0 -0.0000 8021 773520.4249 0.0000 42 100.00%
    0 0 -0.0000 7367 773520.4249 Cuts: 4987 15307 100.00%
    0 0 -0.0000 8665 773520.4249 Cuts: 6097 30795 100.00%
    0 0 -0.0000 8887 773520.4249 Cuts: 5050 42467 100.00%
    Heuristic still looking.
    Advanced basis not built.

    Clique cuts applied: 316
    Implied bound cuts applied: 351
    Flow cuts applied: 64
    Mixed integer rounding cuts applied: 6441
    Zero-half cuts applied: 526
    Gomory fractional cuts applied: 21

    Root node processing (before b&c):
    Real time = 600.19 sec. (198214.96 ticks)
    Parallel b&c, 4 threads:
    Real time = 0.00 sec. (0.00 ticks)
    Sync time (average) = 0.00 sec.
    Wait time (average) = 0.00 sec.
    ------------
    Total (root+branch&cut) = 600.19 sec. (198214.96 ticks)

    아이콘삭제
  • 비회원2024-01-11
    답변 감사합니다. 참고 잘 해서 진행하겠습니다
    아이콘삭제

댓글 입력