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

고객지원

기술문의

LP bound 오류 문의

  • 김희문
  • 2008.03.21
  • 조회수 2,177
지난번에 문의했던 문제는 데이터 파일의 문제로 인한 것으로 생각이 됩니다. 다만, CPLEX에서 해를 도출하는 과정에서 변수의 주어진 bound 내의 해가 존재하지 않으면 infeasible로 판정해야 하는 것 같은데, 다른 현상이 발생하는 것에 대해 문의드립니다.
아래에 그 결과를 나타냈습니다.
(참고로, 이것은 interactive optimizer 에서 푼 결과입니다.)
==========================================================
CPLEX> read test.lp
Problem 'test.lp' read.
Read time = 0.14 sec.
CPLEX> optimize
Tried aggregator 1 time.
LP Presolve eliminated 7 rows and 7 columns.
Reduced LP has 19 rows, 69 columns, and 261 nonzeros.
Presolve time = 0.00 sec.

Iteration log . . .
Iteration: 1 Dual objective = 741.818600

Dual simplex - Infeasible: Objective = 1.6251416000e+003
Solution time = 0.00 sec. Iterations = 12 (0)
Infeasible variable = slack c26

CPLEX> display solution variables -
Variable Name Solution Value
x0 1.000000
x1 1.000000
x4 1.000000
x32 1.000000
x39 -1.000000**
x41 1.000000
x43 1.000000
x63 1.000000
x65 1.000000
x66 1.000000
x72 1.000000
x75 1.000000
All other variables in the range 1-76 are 0.
CPLEX> display solution dual -
Constraint Name Dual Price
c3 183.693000
c4 179.833000
c6 178.317000
c7 163.163000
c8 178.317000
c9 183.693000
c11 183.693000
c14 12.422600
c16 178.317000
c19 183.693000
All other dual prices in the range 1-26 are 0.
CPLEX> display solution slacks -
Constraint Name Slack Value
slack c1 -3.000000
slack c2 1.000000**
slack c5 -2.000000
slack c10 -2.000000
slack c13 -2.000000
slack c17 1.000000**
slack c18 1.000000**
slack c21 1.000000**
slack c24 1.000000**
slack c25 1.000000**
slack c26 -3.000000**
All other slacks in the range 1-26 are 0.
==========================================================

결과 내용을 보면 분명 infeasible 입니다.
하지만 변수 중 bound를 벗어난 해를 제시합니다. 즉 음수의 해가 나오는데, infeasible 임에도 불구하고 이런 해를 제시해 주는 이유가 무엇일까요 ???

댓글 1

  • 소경철2008-03-24
    문의하신 문제의 결과는 Infeasible이며, CPLEX의 결과도 Infeasible을 나타내고 있습니다..

    다음은 문의하신 내용중에서 결과 부분입니다..

    CPLEX> optimize
    Tried aggregator 1 time.
    LP Presolve eliminated 7 rows and 7 columns.
    Reduced LP has 19 rows, 69 columns, and 261 nonzeros.
    Presolve time = 0.00 sec.

    Iteration log . . .
    Iteration: 1 Dual objective = 741.818600

    Dual simplex - Infeasible: Objective = 1.6251416000e+003
    Solution time = 0.00 sec. Iterations = 12 (0)
    Infeasible variable = slack c26


    위의 내용을 보면 slack c26에서 Infeasible이 발생했다고 되어있습니다..

    그리고, 출력되는 변수의 값은 Dual Simplex로 Solve를 했기 때문에 Infeasible 상태의 현재해를 보여주는 것이구요.. (Iteration: 1 Dual objective = 741.818600)

    그렇기 때문에 변수의 값이 (-) 상태가 존재하는 것입니다.
    아이콘삭제

댓글 입력