[Osi] Several integers solutions

Robert Schwarz mail at rschwarz.net
Fri Jul 31 09:07:46 EDT 2009



Goossens Jan-Willem wrote:
> [...]
> 
> What you can do to get multiple solutions is add constraints that cut
> off all previous solutions.
> 
> The particular kind of constraint that you need to add to cut off a
> solution depends on your problem.
> 
> Let’s use what you describe. Say in the first solve you find the
> solution x0, with S = {i | x0_i = 1}. Then you could add a constraint 
> (again, depending on your problem)
> 
> Sum_{i  in S}  x_i  <= |S| - 1
> 
> And solve this new problem from scratch. You can continue this, adding
> another constraint each time, as long as you want.
> 
> For example, you can continue this until the objective value is too far
> from the original obj val, or something.
> 

The approach to get more optimal solutions by cutting off known ones
works in principle, but I think the kind of constraint you propose
doesn't work in general (for you don't allow keeping all those variables
1 and then switch some more to 1).

Assuming you use only binary variables and have a point x, with sets
  S = {i | x_i = 1} and
  T = {i, x_i = 0}.
Then there is the following similar, yet weaker constraint that cuts off
 this point x (but no other binary point):
  sum_{i in S} x_i - sum_{i in T} x_i <= |S| - 1
Please correct me, if I'm mistaken here.

-- 
Robert Schwarz <mail at rschwarz.net>

Get my public key at http://rschwarz.net/key.asc




More information about the Osi mailing list