For an assignment I have been given the bin packing problem and asked to show how you can solve the decision version of the problem from the optimization version and vice versa. I understand that to solve the decision version you simply take the number of bins used in the optimization version and compare it to the max number of bins specified but how can I use the decision version to solve the optimization version?
Bin packing, Decision vs Optimization
2.8k Views Asked by David Carpenter At
1
There are 1 best solutions below
Related Questions in ALGORITHM
- MCNP 6 - Doubts about cells
- Given partially sorted array of type x<y => first apperance of x comes before first of y, sort in average O(n)
- What is the algorithm behind math.gcd and why it is faster Euclidean algorithm?
- Purpose of last 2 while loops in the merge algorithm of merge sort sorting technique
- Dots and Boxes with apha-beta pruning
- What is the average and worst-case time complexity of my string searching algorithm?
- Building a School Schedule Generator
- TC problem 5-2:how to calculate the probability of the indicator random variable?
- LCA of a binary tree implemented in Python
- Identify the checksum algorithm
- Algorithm for finding a subset of nodes in a weighted connected graph such that the distance between any pair nodes are under a postive number?
- Creating an efficent and time-saving algorithm to find difference between greater than and lesser than combination
- Algorithm to find neighbours of point by distance with no repeats
- Asking code suggestions about data structure and algorithm
- Heap sort with multithreading
Related Questions in OPTIMIZATION
- Optimize LCP ReactJs
- Efficiently processing many small elements of a collection concurrently in Java
- How to convert the size of the HTML document from 68 Kb to the average of 33 Kb?
- Optimizing Memory-Bound Loop with Indirect Prefetching
- Google or-tools soft constraint issue
- How to find function G(x), and make for every x, G(x) always returns fixed point for another function F(G(x))
- Trying to sort a set of words with the information theory to solve Worlde in Python but my program is way to slow
- Do conditional checks cause bottlenecks in Javascript?
- Hourly and annual optimization problem over matrix
- Sending asynchronous requests without a pre-defined task list
- DBT - Using SELECT * in the staging layer
- Using `static` on a AVX2 counter function increases performance ~10x in MT environment without any change in Compiler optimizations
- Is this a GCC optimiser bug or a feature?
- Performance difference between two JavaScript code snippets for comparing arrays of strings
- Distribute a list of positive numbers into a desired number of sets, aiming to have sums as close as possible between them
Related Questions in BIN-PACKING
- One-dimensional binpacking algorithm with relative costs
- A new Bin-packing?
- Bin packing - variants and quantities across a known number of unique boxes
- How do you print out objects of a list within a list?
- Best approach to fit numbers
- Bin packing, Decision vs Optimization
- Calculating where to place one arbitrary 2d shape in another?
- Bin Packing: Set amount on bins, want to minimize the max bin weight
- Looking for suggestions on understanding a particular combinatorial optimization problem
- Packing rectangles without rotation?
- Finding multiple solutions to bin packing
- How to divide a set of instruction blocks into sequences that fit certain sized contiguous arrays in JavaScript?
- Is there a c++ source/lib to solve 2D Bin Packing with a rectangular bin (not square) and rotation?
- Distributing stones into buckets (not trivial) / Integer Bin Packing Upper bound
- Algorithm for rectangles position
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
You can use the decision version to solve the optimization version by observing that if
Nbins is sufficient, thenK > Nbins will also be sufficient.Start with a single bin, and run the decision version on it. If the answer is
true, you are done; otherwise, keep doubling the number of bins until you hit atrue. Let's say that you get an answer oftruewhen you tryN = 2 ^ k. Then you can run a binary search betweenM = 2^(k-1)andN, inclusive, to find the exact solution to the optimization problem (bothNandkcome from the previous step).Consider this example: let's say the optimal solution is 14. You could then try the following sequence of decision problem to find the answer:
falsefalse(doubled 1)false(doubled 2)false(doubled 4)true(doubled 8; we've got atrue, so proceed to the binary search)false(midpoint between 8 and 16)true(midpoint between 12 and 16)false(midpoint between 12 and 14)In general, the answer can be found in logarithmic time (i.e. in Log2(Answer)).
Once you know the number of bins
Nrequired to packageXobjects, run a bipartite matching algorithm between the items on one side and theNbins on the other side. Assuming that the decision problem is solved correctly, such bipartite matching must exist, and can be found in polynomial time.