/** This class tests the Knapsack class by asking it for solutions to various versions of the knapsack problem */ import java.util.ArrayList; public class A2 { /** This method tests several algorithms for the fractional and zero-one knapsack problems for a given Knapsack @param knap the Knapsack */ public static void testAll(Knapsack knap) { System.out.println(knap); Packing result = knap.solveFractional(); System.out.println(result); if (result != null) System.out.println(result.getTotalBenefit()); result = knap.solveDynamically(); System.out.println(result); if (result != null) System.out.println(result.getTotalBenefit()); result = knap.solveExhaustively(); System.out.println(result); if (result != null) System.out.println(result.getTotalBenefit()); result = knap.solveGreedily(); System.out.println(result); if (result != null) System.out.println(result.getTotalBenefit()); System.out.println(); } /** Constructs two knapsacks and tests various packing algorithms on them. */ public static void main(String args[]) { ArrayList input = new ArrayList(); input.add(new Item(6,18)); input.add(new Item(5,14)); input.add(new Item(3,10)); input.add(new Item(4,13)); input.add(new Item(7,17)); Knapsack knap = new Knapsack(9, input); testAll(knap); knap = new Knapsack(10, knap); testAll(knap); knap = new Knapsack(11, knap); testAll(knap); knap = new Knapsack(12, knap); testAll(knap); knap = new Knapsack(25, knap); testAll(knap); input = new ArrayList(); input.add(new Item(6,22)); input.add(new Item(5,15)); input.add(new Item(13,51)); input.add(new Item(14,55)); input.add(new Item(11,42)); input.add(new Item(10,35)); input.add(new Item(3,11)); input.add(new Item(4,15)); input.add(new Item(12,42)); input.add(new Item(9,35)); input.add(new Item(7,31)); input.add(new Item(8,35)); knap = new Knapsack(80, input); testAll(knap); knap = new Knapsack(85, knap); testAll(knap); knap = new Knapsack(90, knap); testAll(knap); knap = new Knapsack(95, knap); testAll(knap); } }