Opened 18 months ago

Last modified 18 months ago

#79 new defect

Infeasibility Ray not found

Reported by: blegat Owned by: somebody
Priority: major Milestone:
Component: component1 Version:
Keywords: Cc:

Description

Dear Clp maintainers,

I am using Clp v1.16.1 through the Julia wrapper for doing SDDP (https://github.com/blegat/StochasticDualDynamicProgramming.jl). For that algorithm, when a problem is infeasible, it important to retrieve an infeasibility ray. When I use Clp, it often happens that no infeasibility ray are returned by Clp.

I have tried to create the simplest possible example of problem for which Clp detects the infeasibility of the problem but does not find infeasibility ray and I have attached it to this ticket. I hope that this example will help you detect the issue in Clp and fix it !

The example is the following: Minimize 0 Subject To

x0 + x3 + x6 == 2 x1 + x4 + x7 == 2 x2 + x5 + x8 == 2 x0 + x1 + x2 <= 1 x3 + x4 + x5 <= 1 x6 + x7 + x8 <= 1 xi >= 0

Bounds

xi free

End As you can see, there are 6 + 9 constraints but no bounds on the variables. If the last 9 constraints are used as bounds or are removed, the infeasibility ray is found by Clp. The Infeasibility Ray is [1,1,1,-1,-1,-1,0,0,0,0,0,0,0,0,0]. Indeed, the sum of the 3 first constraints give "sum xi = 6" while the sum of the 3 following constraints give "sum xi <= 3".

Thanks in advance for your time !

Attachments (2)

clpfail.mps (1.3 KB) - added by blegat 18 months ago.
Example in MPS format
clpfail.lp (371 bytes) - added by blegat 18 months ago.
Example in LP format

Download all attachments as: .zip

Change History (3)

Changed 18 months ago by blegat

Example in MPS format

Changed 18 months ago by blegat

Example in LP format

comment:1 Changed 18 months ago by blegat

The example is not formatted properly in the previous message and I can't find how to modify it so I have reformatted it below:

Minimize 0

Subject To

x0 + x3 + x6 == 2
x1 + x4 + x7 == 2
x2 + x5 + x8 == 2
x0 + x1 + x2 <= 1
x3 + x4 + x5 <= 1
x6 + x7 + x8 <= 1
xi >= 0

Bounds

xi free

End
Note: See TracTickets for help on using tickets.