PREV INDEX NEXT

Author: Stan Eisenstat
Subject: Why Binpack does twice as many backtracks
Date: Thursday, 13 Feb 2020, 14:41:38


I added some print statements to your bp() and ran a
very simple example:

  % ./Binpack 13 9 5 5 3 2 2 -opt
  Add item[0] = 9 to bin #0             1
  Add item[1] = 5 to bin #1             2
  Add item[2] = 5 to bin #1             3
  Add item[3] = 3 to bin #0             4
  Add item[4] = 2 to bin #1             5
  Add item[5] = 2 to bin #2             6
  Remove item[5] = 2 from bin #2        7
  Remove item[4] = 2 from bin #1        8
  Add item[4] = 2 to bin #2             9
  Remove item[4] = 2 from bin #2       10
  Remove item[3] = 3 from bin #0       11
  Add item[3] = 3 to bin #1            12
  Add item[4] = 2 to bin #0            13
  Add item[5] = 2 to bin #0            14

(the line numbers were added later for reference).

Note that bp() finds a complete assignment using 3 bins
after Line #6.  But in Line #9 it assigns Item #4 to
Bin #2 (a third bin), which Heuristic C should prevent.

This may explain why bp() does twice as many backtracks
as Hwk2/Binpack.

--Stan-
PREV INDEX NEXT