Optimization of inputs to produce an optimized ouput

2 views (last 30 days)
The user inputs 10 length values (1-10) and inputs another value length A which is a total length. Values 1-10 can range from 0 to infinity which are the quantities of lengths and input A is the maximum length which is larger then the largest length from value 1-10.
The optimization comes in where I need to figure how many values of A are need to cover all the lengths but keeping the scrap value of A to a minimum. Example A=25 and value 2= 3(qty) and value 5 = 3(qty) the sum of values 2 and 5 = 21 so the left over of A is 4.
I could have time were only two inputs of values 1-10 being used up to having all ten values being used.
I can't add the left overs of A together to eliminate more values. I need to output the combinations of values 1-10, the number of Value A and the total left overs of A added together. The combinations of values 1-10 can be placed into an array and the number of rows will tell me how many Values of A will be needed.
I've started to use a while loop with a counter to keep track of the numbers of A's required but I'm not sure how to write the proper code to make the proper optimization of the values into A keep A and the left over a minimum.
Any help would be greatly appreciated and if any clarification is need just ask.
Thank you very much.
  2 Comments
Walter Roberson
Walter Roberson on 12 Dec 2012
This is a "knapsack with repeated elements" problem. It is known to be non-polynomial to solve.
Peter
Peter on 12 Dec 2012
Is there any prebuilt functions in Matlab that deal with something like this?

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 12 Dec 2012
A small number of people have asked about the same kind of problem in the past. I am not sure how they solved it. I think some of them used a PSO (particle swarm) approach.
There is a MATLAB routine in the optimization toolbox that could in theory be used. See Binary Integer Programming
To get an idea of how to implement this using bintprog(), see http://www.mathworks.com/help/optim/ug/binary-integer-programming-example.html

More Answers (0)

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!