Thread Subject: bintprog, more than one optimal

Subject: bintprog, more than one optimal

From: George Athanasiou

Date: 23 Jun, 2009 16:11:02

Message: 1 of 3

Hello, I'm using bintprog() to solve an integer programming optimization problem and the problem that i have is that I'm expecting several optimal solutions but bintprog() returns just one. I can prove by hand that there are more than one solution for my example. Could you help me with this? Is there any way to get the set of all solutions?

Subject: bintprog, more than one optimal

From: Marcelo Marazzi

Date: 24 Jun, 2009 18:32:36

Message: 2 of 3

George,

bintprog returns only one solution - as soon as it finds one solution it will stop searching.

-Marcelo

George Athanasiou wrote:
> Hello, I'm using bintprog() to solve an integer programming optimization problem and the problem that i have is that I'm expecting
> several optimal solutions but bintprog() returns just one. I can prove by hand that there are more than one solution for my example.
>Could you help me with this? Is there any way to get the set of all solutions?

Subject: bintprog, more than one optimal

From: Bruno Luong

Date: 25 Jun, 2009 06:53:01

Message: 3 of 3

"George Athanasiou" <geo.athanasiou@gmail.com> wrote in message <h1quqm$fp0$1@fred.mathworks.com>...
> Hello, I'm using bintprog() to solve an integer programming optimization problem and the problem that i have is that I'm expecting several optimal solutions but bintprog() returns just one. I can prove by hand that there are more than one solution for my example. Could you help me with this? Is there any way to get the set of all solutions?

Without the inequality optimal solutions of bintprog is a solution of system of linear diophantine equations. Such system can be solved through the so called "Smith normal form" of the matrix, some sort of integer arithmethic Gaussian elimination (opearated in the "field" - without division - using GCD). This call for large integer operations, and better implemented in infinity integer arithmetic (such as symbolic toolbox). Just Google, you can find plenty of algorithm described somewhere else.

A single diophantine equation is discussed here: http://www.mathworks.com/matlabcentral/newsreader/view_thread/172882

In any case, there might be infinity number of solutions. List them all is impossible. Better way is code them by Smith normal form (two permutations matrix + diagonal matrix), and extract the solution(s) when they are needed later.

Bruno

Tags for this Thread

Everyone's Tags:

Add a New Tag:

Separated by commas
Ex.: root locus, bode

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Tag Activity for This Thread
Tag Applied By Date/Time
bintprrog Oscar Garcia 28 Sep, 2011 12:32:19
optimisation Sprinceana 23 Jun, 2009 12:30:51
bintprrog Sprinceana 23 Jun, 2009 12:30:51
rssFeed for this Thread

Contact us at files@mathworks.com