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

고객지원

기술문의

경희대학교 산업공학과 MIP 질문입니다.

  • 홍성철
  • 2002.02.06
  • 조회수 2,428
소경철 님께 보냅니다.

예제파일

\\Problem name: vblpex1.lp

Maximize
obj: x1 + 2 x2 + 3 x3 + x4
Subject To
c1: - x1 + x2 + x3 + 10 x4 <= 20
c2: x1 - 3 x2 + x3 <= 30
c3: x1 - 3.5 x4 = 0
Bounds
0 <= x1 <= 40
0 <= x2 <= 1
0 <= x3 <= 1
2 <= x4 <= 3
Binaries
x2 x3
Generals
x4
End

<Interactive 명령>
read test.lp
mipopt
write
....
solution
txt
....ERRor



댓글 1

  • 소경철2002-02-07
    현재, CPLEX를 Interactive 상태로 사용하시거나 Callable Library로 사용하는 경우, MIP문제를 푼 다음에 Solution을 파일로 저장하기 위해서는 LP의 경우와 다른 방법을 사용해야 합니다.

    먼저, Callable Library를 사용하시는 경우에는 LP Solution을 가져오는 CPXsolution() 대신에 CPXgetmx() 함수를 사용하시면 정수해를 가져오실 수 있습니다.

    두번째로, Interactive 상태로 사용하시는 경우, MIP 문제에 대해서는 write 명령을 사용해서 해를 파일로 저장하실 수는 없습니다.
    일단 MIP 문제를 푼 다음에, write 명령을 사용하시지 말고, 문제를 LP로 바꾸셔야 합니다.
    즉, \"change problem lp\"를 하신 다음에 다시 optimize를 하시면, 이 때 얻어지는 해는 LP로 변형하기 전에 최종적으로 구했던 최적의 정수해가 됩니다.
    이제 문제가 LP 형태로 변형되었기 때문에 write 명령을 사용하실 수가 있게 됩니다.
    즉, \"write solution filename.txt\"를 하시면 최적의 정수해를 파일로 저장하실 수 있게 됩니다.

    감사합니다.



    :홍성철님의 글입니다.

    :소경철 님께 보냅니다.
    :
    :예제파일
    :
    :\\Problem name: vblpex1.lp
    :
    :Maximize
    : obj: x1 + 2 x2 + 3 x3 + x4
    :Subject To
    : c1: - x1 + x2 + x3 + 10 x4 <= 20
    : c2: x1 - 3 x2 + x3 <= 30
    : c3: x1 - 3.5 x4 = 0
    :Bounds
    : 0 <= x1 <= 40
    : 0 <= x2 <= 1
    : 0 <= x3 <= 1
    : 2 <= x4 <= 3
    :Binaries
    : x2 x3
    :Generals
    : x4
    :End
    :
    :<Interactive 명령>
    :read test.lp
    :mipopt
    :write
    :....
    :solution
    :txt
    :....ERRor
    :
    :
    :
    :
    아이콘삭제

댓글 입력