Skip to content

Commit

Permalink
Added a section on lower bounds to tutorial
Browse files Browse the repository at this point in the history
  • Loading branch information
cicirello committed Jul 6, 2020
1 parent bd8c7f8 commit 050ea6e
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 7 deletions.
Binary file modified dist/interactive-bin-packing-3.0.jar
Binary file not shown.
47 changes: 40 additions & 7 deletions src/res/html/tutorial.html
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,14 @@ <h2>Introduction</h2>
<h2><a name="ToC"></a>Table of Contents</h2>
The remainder of this tutorial is organized as follows:
<ul>
<li><a href="#copt">Combinatorial optimization</a></li>
<li><a href="#bin">Bin packing</a></li>
<li><a href="#heur">Constructive heuristics</a></li>
<li><a href="#ff">First-fit</a></li>
<li><a href="#ffd">First-fit decreasing</a></li>
<li><a href="#bf">Best-fit</a></li>
<li><a href="#bfd">Best-fit decreasing</a></li>
<li><a href="#copt">Combinatorial Optimization</a></li>
<li><a href="#bin">Bin Packing</a></li>
<li><a href="#bound">Lower Bounds</a></li>
<li><a href="#heur">Constructive Heuristics</a></li>
<li><a href="#ff">First-Fit</a></li>
<li><a href="#ffd">First-Fit Decreasing</a></li>
<li><a href="#bf">Best-Fit</a></li>
<li><a href="#bfd">Best-Fit Decreasing</a></li>
</ul>

<hr>
Expand Down Expand Up @@ -170,6 +171,38 @@ <h2><a name="bin"></a>Bin Packing</h2>

<hr>

<h2><a name="bound"></a>Lower Bounds</h2>

When solving a combinatorial optimization problem, it is sometimes useful
to compute a lower bound for the objective function if the problem is a
minimization problem, and similarly an upper bound if the problem is a
maximization problem. Since Bin Packing is a minimization problem, we will
explain the concept with a lower bound. A lower bound is a value that is
definitely less than or equal to the optimal value. It is often possible to
compute a lower bound much easier than it is to compute the actual optimal
solution. Although there is no guarantee that a solution exists whose value
is that of the lower bound, if you are able to find a solution whose value is
the lower bound, then you know there is no reason to search any further
for a better solution.

<p>There is a very easy way to compute a lower bound for a Bin Packing instance.
Simply sum the sizes of the items. And then compute the ceiling of that sum
divided by the bin capacity. This lower bound makes the very naive assumption
that it is possible to pack the items in bins so that there is no wasted space.
You clearly can't do any better than this, although it is rarely possible to
actually pack the bins in this way.</p>

<p>In the Operations Menu of the application, there is a command "Compute
Lower Bound" that computes a lower bound for the current instance. Use that
command to compute the lower bound for the current Bin Packing instance.
If you are still on the default instance, you will find that the lower
bound is 5 bins. In this case, it turns out that the optimal solution is
also 5 bins, but you have no way of knowing for sure at this point.</p>

<p>Return to <a href="#TOP">Top</a> or <a href="#ToC">Table of Contents</a>.</p>

<hr>

<h2><a name="heur"></a>Constructive Heuristics</h2>

Recall that the Bin Packing problem, as well as many other combinatorial optimization
Expand Down

0 comments on commit 050ea6e

Please sign in to comment.