--File: BinPackTest.cm
Last Edited by: CSChow, January 30, 1985 6:40:58 am PST
-- This is the Test log on the bin-packing
--NB: The opmtimum packing area of:
-- (1) BinPack1.desc = 16800 (140 X 120)
-- (2) BinPack2.desc = 38000 (190 X 200)
-- (3) BinPack3.desc = 70400 (200 X 320)
--TEST #1
-- INPUT: BinPack1.desc TEST: #1
-- PlaceCompsTest.F1:
--  (1) IPPlaceBinPack.OrderingFn1 simple ordering
--  (2) IPPlaceBinPack.PlaceCompTGen1: IPPlaceKit.CompCompact0:
--  (3) IPPlaceBinPack.PlaceEvaluator1: no prunning
← IPPlaceBinPackImpl.of1Depth ← 2;
← IPPlaceBinPackImpl.of1Breadth ← 25;
← IPPlaceBinPackImpl.of1EnumIncreasing ← TRUE;
← IPPlaceBinPackImpl.pctg1Keep ← 5;
← IPParams.ChMinWidth ← 0;
← IPParams.ChDefaultWidth ← 0;
← OrderedRefArray.PruneMethod ← lastValueIfFilled; --added: January 25, 1985 10:39:30 am PST
← IPMainViewer.GetInput["", "BinPack1.desc"]
← PlaceCompsTest.F1[100];
-- RESULTS:
--BEST VALUE: 19200
--DISTRIBUTION OF RESULTS: [1..100] have the same value of 19200!
--TIME TAKEN: ??
--COMMENT:
-- DATE&TIME:
-- STARTED: January 24, 1985 11:09:10 pm PST
-- FORCED STOPPED: January 24, 1985 11:35:14 pm PST
--TEST#2
-- INPUT: BinPack1.desc TEST: #2
--  (1) IPPlaceBinPack.OrderingFn1 simple ordering
--  (2) IPPlaceBinPack.PlaceCompTGen1: IPPlaceKit.CompCompact0:
← IPPlaceBinPackImpl.of1Depth ← 3;
← IPPlaceBinPackImpl.of1Breadth ← 8;
← IPPlaceBinPackImpl.of1EnumIncreasing ← FALSE;
← IPPlaceBinPackImpl.pctg1Keep ← 6;
← IPParams.ChMinWidth ← 0;
← IPParams.ChDefaultWidth ← 0;
← OrderedRefArray.PruneMethod ← lastValueIfFilled; --added: January 25, 1985 10:39:30 am PST
← IPMainViewer.GetInput["", "BinPack1.desc"]
← PlaceCompsTest.F2[50];
--  (3) IPPlaceBinPack.PlaceEvaluator2: => prunning
--BEST VALUE: 17600
--DISTRIBUTION OF RESULTS:
[1..2] -> 17600, [3..8] -> 18400111; [9..10] -> 19200
--TIME TAKEN:
--COMMENT: "This is less than 5% of optimum"
-- DATE&TIME:
-- STARTED: January 25, 1985 0:07:52 am PST
-- FORCED STOPPED: January 25, 1985 0:11:13 am PST
--TEST#3
-- INPUT: BinPack1.desc. TEST: #3
--  (1) IPPlaceBinPack.OrderingFn1 simple ordering
--  (2) IPPlaceBinPack.PlaceCompTGen1: IPPlaceKit.CompCompact0:
← IPPlaceBinPackImpl.of1Depth ← 3;
← IPPlaceBinPackImpl.of1Breadth ← 8;
← IPPlaceBinPackImpl.of1EnumIncreasing ← TRUE; -- This is in reverse order to #2
← IPPlaceBinPackImpl.pctg1Keep ← 6;
← IPParams.ChMinWidth ← 0;
← IPParams.ChDefaultWidth ← 0;
← OrderedRefArray.PruneMethod ← lastValueIfFilled; --added: January 25, 1985 10:39:30 am PST
← IPMainViewer.GetInput["", "BinPack1.desc"]
← PlaceCompsTest.F2[50];
--  (3) IPPlaceBinPack.PlaceEvaluator2: => prunning
--BEST VALUE: 18000 (150 X 120)
--DISTRIBUTION OF RESULTS:
[1..20] -> 18000; [21..50] -> 19200
--TIME TAKEN: {00:03:03.13 seconds, 1337119 words, 42 page faults}
--COMMENT:
-- DATE&TIME:
-- STARTED: January 25, 1985 0:25:10 am PST
-- FINISHED: ~January 25, 1985 0:30:14 am PST
--TEST#4
-- INPUT: BinPack2.desc.
--  (1) IPPlaceBinPack.OrderingFn1 simple ordering
--  (2) IPPlaceBinPack.PlaceCompTGen1: IPPlaceKit.CompCompact0:
← IPPlaceBinPackImpl.of1Depth ← 3;
← IPPlaceBinPackImpl.of1Breadth ← 8;
← IPPlaceBinPackImpl.of1EnumIncreasing ← TRUE; -- This is in reverse order to #2
← IPPlaceBinPackImpl.pctg1Keep ← 6;
← IPParams.ChMinWidth ← 0;
← IPParams.ChDefaultWidth ← 0;
← OrderedRefArray.PruneMethod ← lastValueIfFilled; --added: January 25, 1985 10:39:30 am PST
← IPMainViewer.GetInput["", "BinPack2.desc"]
← PlaceCompsTest.F2[50];
--  (3) IPPlaceBinPack.PlaceEvaluator2: => prunning
--BEST VALUE: 44000
--DISTRIBUTION OF RESULTS:
[1..16] -> 44000; [27..30] ->44100
--TIME TAKEN: {00:01:00.59 seconds, 427165 words, 28 page faults}
--COMMENT: < 12% from optimum
-- DATE&TIME:{00:01:00.59 seconds, 427165 words, 28 page faults}
-- STARTED: January 25, 1985 0:37:03 am PST
-- FINISHED: before January 25, 1985 0:39:27 am PST
--TEST#5
-- INPUT: BinPack2.desc.
--  (1) IPPlaceBinPack.OrderingFn1 simple ordering
--  (2) IPPlaceBinPack.PlaceCompTGen1: IPPlaceKit.CompCompact0:
← IPPlaceBinPackImpl.of1Depth ← 3;
← IPPlaceBinPackImpl.of1Breadth ← 8;
← IPPlaceBinPackImpl.of1EnumIncreasing ← TRUE; -- This is in reverse order to #2
← IPPlaceBinPackImpl.pctg1Keep ← 6;
← IPParams.ChMinWidth ← 0;
← IPParams.ChDefaultWidth ← 0;
← OrderedRefArray.PruneMethod ← lastValueIfFilled; --added: January 25, 1985 10:39:30 am PST
← IPMainViewer.GetInput["", "BinPack2.desc"]
← PlaceCompsTest.F1[50];
--  (3) IPPlaceBinPack.PlaceEvaluator1: => no prunning
--BEST VALUE: 40300 (130 X 310)
--DISTRIBUTION OF RESULTS:
[1..12] -> 40300; [13..50] -> 41800
--TIME TAKEN: {00:28:30.67 seconds, 409 page faults}
--COMMENT: Just to test how effective the prunning in IPPlaceBinPack.PlaceEvaluator2.
--NOTE: The prunning in IPPlaceBinPack.PlaceEvaluator2 prunes some good solns. Why?
-- DATE&TIME:
-- STARTED: January 25, 1985 1:22:29 am PST
-- FINISHED: before: January 25, 1985 2:02:05 am PST
--TEST#6
-- INPUT: BinPack2.desc.
--  (1) IPPlaceBinPack.OrderingFn1 simple ordering
--  (2) IPPlaceBinPack.PlaceCompTGen1: IPPlaceKit.CompCompact0:
← IPPlaceBinPackImpl.of1Depth ← 3;
← IPPlaceBinPackImpl.of1Breadth ← 8;
← IPPlaceBinPackImpl.of1EnumIncreasing ← FALSE; -- NB. order here
← IPPlaceBinPackImpl.pctg1Keep ← 6;
← IPParams.ChMinWidth ← 0;
← IPParams.ChDefaultWidth ← 0;
← OrderedRefArray.PruneMethod ← lastValueIfFilled; --added: January 25, 1985 10:39:30 am PST
← IPMainViewer.GetInput["", "BinPack2.desc"]
← PlaceCompsTest.F2[50];
--  (3) IPPlaceBinPack.PlaceEvaluator2: => prunning
--BEST VALUE: 49300
--DISTRIBUTION OF RESULTS:
[1..6] -> 49300; [7] -> 49400; [8..19] -> 50400
--TIME TAKEN: {00:58:58.62 seconds, 351 page faults}
--COMMENT: Compare with TEST#4
-- REMARK: This results is quite bad and the reasons is simply because the way the
  --blocks are put down doesnt much utilization of the bites
-- DATE&TIME:
-- STARTED: after January 25, 1985 2:02:05 am PST
-- FINISHED: before January 25, 1985 3:11:19 am PST
--INSIGHTS: Now I think I understand why the prunning in TEST#4 is so effective.
-- it is simply because I TEST#4 we place large components before small ones.
-- The prunning is especially effective because these large components also have large bites
-- in them => the prunning test in IPPlaceBinPack.PlaceEvaluator2 is especially effective.
--TEST#7
-- INPUT: BinPack1.desc TEST: #7
--  (1) IPPlaceBinPack.OrderingFn2 fine controll
--  (2) IPPlaceBinPack.PlaceCompTGen2: IPPlaceKit.CompCompact1:
← IPPlaceBinPackImpl.of1Depth ← 3;
← IPPlaceBinPackImpl.of1Breadth ← 8;
← IPPlaceBinPackImpl.of1EnumIncreasing ← FALSE;
← IPPlaceBinPackImpl.pctg2Keep ← 6;
← IPParams.ChMinWidth ← 0;
← IPParams.ChDefaultWidth ← 0;
← OrderedRefArray.PruneMethod ← lastValueIfFilled;
← IPMainViewer.GetInput["", "BinPack1.desc"];
← IPMainViewer.trialSolutions ← OrderedRefArray.Create[50];
← IPPlaceProcs.PlaceInit[IPMainViewer.mvTop, IPPlaceBinPack.OrderingFn1, IPPlaceBinPack.PlaceCompTGen2, IPPlaceBinPack.PlaceEvaluator2, IPMainViewer.trialSolutions]
--  (3) IPPlaceBinPack.PlaceEvaluator2: => prunning
--BEST VALUE: 19200
--DISTRIBUTION OF RESULTS:
[1] -> 19200; [2..43] -> 20000
--TIME TAKEN:
--COMMENT: IPPlaceBinPack.PlaceCompTGen2 gives worse results than Test#2,
-- (because of order of placement??)
-- DATE&TIME:
-- STARTED: January 25, 1985 12:59:14 pm PST
-- FORCED STOPPED: January 25, 1985 1:07:00 pm PST
--TEST #8
-- INPUT: BinPack1.desc TEST: #8
--  (1) IPPlaceBinPack.OrderingFn1 simple ordering
--  (2) IPPlaceBinPack.PlaceCompTGen2: IPPlaceKit.CompCompact1:
--  (3) IPPlaceBinPack.PlaceEvaluator1: no prunning
← IPPlaceBinPackImpl.of1Depth ← 3;
← IPPlaceBinPackImpl.of1Breadth ← 8;
← IPPlaceBinPackImpl.of1EnumIncreasing ← TRUE;
← IPPlaceBinPackImpl.pctg1Keep ← 6;
← IPParams.ChMinWidth ← 0;
← IPParams.ChDefaultWidth ← 0;
← OrderedRefArray.PruneMethod ← lastValueIfFilled;
← IPMainViewer.GetInput["", "BinPack1.desc"]
← IPMainViewer.trialSolutions ← OrderedRefArray.Create[50];
← IPPlaceProcs.PlaceInit[IPMainViewer.mvTop, IPPlaceBinPack.OrderingFn1, IPPlaceBinPack.PlaceCompTGen2, IPPlaceBinPack.PlaceEvaluator2, IPMainViewer.trialSolutions]
-- RESULTS:
--BEST VALUE: 18000
--DISTRIBUTION OF RESULTS:
[1..20] -> 18000; [21..50] -> 19200
--TIME TAKEN: {00:03:10.12 seconds, 1336126 words, 56 page faults}
--COMMENT: "Compare with TEST#7 and TEST #2 and TEST #3"
-- REMARK: IPPlaceKit.CompCompact1 doesnt seems to help much
-- STARTED: January 25, 1985 1:17:31 pm PST
-- FINISHED: before January 25, 1985 1:21:59 pm PST
--TEST#9
-- INPUT: BinPack1.desc TEST: #9
--  (1) IPPlaceBinPack.OrderingFn2 fine controll
--  (2) IPPlaceBinPack.PlaceCompTGen2: IPPlaceKit.CompCompact1:
← IPPlaceBinPackImpl.of2Depth1 ← 4;
← IPPlaceBinPackImpl.of2Depth2 ← 2;
← IPPlaceBinPackImpl.of2Depth3 ← 2;
← IPPlaceBinPackImpl.of2Breadth1 ← 30;
← IPPlaceBinPackImpl.of2Breadth2 ← 5;
← IPPlaceBinPackImpl.of2Breadth2 ← 4; --MISTAKE!! %1
← IPPlaceBinPackImpl.of1EnumIncreasing ← TRUE; --MISTAKE!! %2
← IPPlaceBinPackImpl.pctg2Keep ← 20;
← IPParams.ChMinWidth ← 0;
← IPParams.ChDefaultWidth ← 0;
← OrderedRefArray.PruneMethod ← firstValue;
← IPMainViewer.GetInput["", "BinPack1.desc"];
← IPMainViewer.trialSolutions ← OrderedRefArray.Create[50];
← IPPlaceProcs.PlaceInit[IPMainViewer.mvTop, IPPlaceBinPack.OrderingFn2, IPPlaceBinPack.PlaceCompTGen2, IPPlaceBinPack.PlaceEvaluator2, IPMainViewer.trialSolutions]
--  (3) IPPlaceBinPack.PlaceEvaluator2: => prunning
--BEST VALUE: 18000
--DISTRIBUTION OF RESULTS:
[1..2] -> 18000; [3..5] -> 19200; [6..18] -> 21000; 19 -> 23800; 20 -> 24000
--TIME TAKEN: {00:00:20.75 seconds, 192254 words, 42 page faults}
--COMMENT: "This prunning is extremely fast and results acceptable"
-- DATE&TIME:
-- STARTED: January 25, 1985 4:37:01 pm PST
-- FINISHED: before January 25, 1985 4:37:44 pm PST
--TEST#9 Corrected
-- INPUT: BinPack1.desc
--  (1) IPPlaceBinPack.OrderingFn2 fine controll
--  (2) IPPlaceBinPack.PlaceCompTGen2: IPPlaceKit.CompCompact1:
← IPPlaceBinPackImpl.of2Depth1 ← 4;
← IPPlaceBinPackImpl.of2Depth2 ← 2;
← IPPlaceBinPackImpl.of2Depth3 ← 2;
← IPPlaceBinPackImpl.of2Breadth1 ← 30;
← IPPlaceBinPackImpl.of2Breadth2 ← 5;
← IPPlaceBinPackImpl.of2Breadth3 ← 5;
← IPPlaceBinPackImpl.of1EnumIncreasing ← TRUE; --MISTAKE!! %2
← IPPlaceBinPackImpl.pctg2Keep ← 20;
← IPParams.ChMinWidth ← 0;
← IPParams.ChDefaultWidth ← 0;
← OrderedRefArray.PruneMethod ← firstValue;
← IPMainViewer.GetInput["", "BinPack1.desc"];
← IPMainViewer.trialSolutions ← OrderedRefArray.Create[50];
← IPPlaceProcs.PlaceInit[IPMainViewer.mvTop, IPPlaceBinPack.OrderingFn2, IPPlaceBinPack.PlaceCompTGen2, IPPlaceBinPack.PlaceEvaluator2, IPMainViewer.trialSolutions]
--  (3) IPPlaceBinPack.PlaceEvaluator2: => prunning
--BEST VALUE: 18000
--DISTRIBUTION OF RESULTS:
[1..2] -> 18000; [3..5] -> 19200; [6..16] -> 20400; [17.. 18] -> 21000; 19 -> 23800; 20 -> 24000
--TIME TAKEN: {00:00:21.56 seconds, 192622 words, 34 page faults}
--COMMENT: "This prunning is extremely fast and results acceptable"
-- DATE&TIME:
-- STARTED: January 25, 1985 5:01:36 pm PST
-- FINISHED: January 25, 1985 5:01:56 pm PST
--TEST#10
-- INPUT: BinPack3.desc
--  (1) IPPlaceBinPack.OrderingFn2 fine controll
--  (2) IPPlaceBinPack.PlaceCompTGen2: IPPlaceKit.CompCompact1:
← IPPlaceBinPackImpl.of2Depth1 ← 5;
← IPPlaceBinPackImpl.of2Depth2 ← 3;
← IPPlaceBinPackImpl.of2Depth3 ← 3;
← IPPlaceBinPackImpl.of2Depth4 ← 2;
← IPPlaceBinPackImpl.of2Breadth1 ← 30;
← IPPlaceBinPackImpl.of2Breadth2 ← 10;
← IPPlaceBinPackImpl.of2Breadth3 ← 10;
← IPPlaceBinPackImpl.of2Breadth4 ← 10;
← IPPlaceBinPackImpl.of1EnumIncreasing ← TRUE; --MISTAKE!! %2
← IPPlaceBinPackImpl.pctg2Keep ← 20;
← IPParams.ChMinWidth ← 0;
← IPParams.ChDefaultWidth ← 0;
← OrderedRefArray.PruneMethod ← firstValue;
← IPMainViewer.GetInput["", "BinPack3.desc"];
← IPMainViewer.trialSolutions ← OrderedRefArray.Create[50];
← IPPlaceProcs.PlaceInit[IPMainViewer.mvTop, IPPlaceBinPack.OrderingFn2, IPPlaceBinPack.PlaceCompTGen2, IPPlaceBinPack.PlaceEvaluator2, IPMainViewer.trialSolutions]
--  (3) IPPlaceBinPack.PlaceEvaluator2: => prunning
--BEST VALUE: 82500
--DISTRIBUTION OF RESULTS:
--[1..2] -> 82500 ; [3..4] -> 85000; [5..10] -> 87500
--TIME TAKEN: {00:00:47.81 seconds, 364338 words, 66 page faults}
--COMMENT:
-- DATE&TIME:
-- STARTED: January 25, 1985 5:06:48 pm PST
-- FINISHED: before January 25, 1985 5:07:51 pm PST
--TEST#11
-- INPUT: BinPack3.desc
--  (1) IPPlaceBinPack.OrderingFn2 fine controll
--  (2) IPPlaceBinPack.PlaceCompTGen1: IPPlaceKit.CompCompact0:
← IPPlaceBinPackImpl.of2Depth1 ← 5;
← IPPlaceBinPackImpl.of2Depth2 ← 3;
← IPPlaceBinPackImpl.of2Depth3 ← 3;
← IPPlaceBinPackImpl.of2Depth4 ← 2;
← IPPlaceBinPackImpl.of2Breadth1 ← 30;
← IPPlaceBinPackImpl.of2Breadth2 ← 10;
← IPPlaceBinPackImpl.of2Breadth3 ← 10;
← IPPlaceBinPackImpl.of2Breadth4 ← 10;
← IPPlaceBinPackImpl.of1EnumIncreasing ← TRUE; --MISTAKE!!%2
← IPPlaceBinPackImpl.pctg2Keep ← 20;
← IPParams.ChMinWidth ← 0;
← IPParams.ChDefaultWidth ← 0;
← OrderedRefArray.PruneMethod ← firstValue;
← IPMainViewer.GetInput["", "BinPack3.desc"];
← IPMainViewer.trialSolutions ← OrderedRefArray.Create[50];
← IPPlaceProcs.PlaceInit[IPMainViewer.mvTop, IPPlaceBinPack.OrderingFn2, IPPlaceBinPack.PlaceCompTGen1, IPPlaceBinPack.PlaceEvaluator2, IPMainViewer.trialSolutions]
--  (3) IPPlaceBinPack.PlaceEvaluator2: => prunning
--BEST VALUE: 82500
--DISTRIBUTION OF RESULTS:
--[1..2] -> 82500 [3..4] -> 85000; [5..10] ->87500
--TIME TAKEN:
--COMMENT: Results within 14%.
-- DATE&TIME: {00:00:37.22 seconds, 294701 words, 38 page faults}
-- STARTED: January 25, 1985 5:16:38 pm PST
-- FINISHED: January 25, 1985 5:17:22 pm PST
--TEST#12
-- INPUT: BinPack3.desc
--  (1) IPPlaceBinPack.OrderingFn2 fine controll
--  (2) IPPlaceBinPack.PlaceCompTGen1: IPPlaceKit.CompCompact0:
← IPPlaceBinPackImpl.of2Depth1 ← 5;
← IPPlaceBinPackImpl.of2Depth2 ← 3;
← IPPlaceBinPackImpl.of2Depth3 ← 3;
← IPPlaceBinPackImpl.of2Depth4 ← 2;
← IPPlaceBinPackImpl.of2Breadth1 ← 30;
← IPPlaceBinPackImpl.of2Breadth2 ← 10;
← IPPlaceBinPackImpl.of2Breadth3 ← 10;
← IPPlaceBinPackImpl.of2Breadth4 ← 10;
← IPPlaceBinPackImpl.of1EnumIncreasing ← TRUE; --MISTAKE! %2
← IPPlaceBinPackImpl.pctg2Keep ← 20;
← IPParams.ChMinWidth ← 0;
← IPParams.ChDefaultWidth ← 0;
← OrderedRefArray.PruneMethod ← firstValue;
← IPMainViewer.GetInput["", "BinPack3.desc"];
← IPMainViewer.trialSolutions ← OrderedRefArray.Create[20];
← IPPlaceProcs.PlaceInit[IPMainViewer.mvTop, IPPlaceBinPack.OrderingFn2, IPPlaceBinPack.PlaceCompTGen1, IPPlaceBinPack.PlaceEvaluator3, IPMainViewer.trialSolutions]
--  (3) IPPlaceBinPack.PlaceEvaluator3: => very fine prunning
--BEST VALUE: 78200
--DISTRIBUTION OF RESULTS:
-- [1..8] -> 78200; [9..20] -> 79200;
--TIME TAKEN:
--COMMENT: "The best value was reached within the 1st hour of this run"
-- DATE&TIME:
-- STARTED: January 25, 1985 6:47:43 pm PST
-- FORCED STOPPED: January 25, 1985 8:38:08 pm PST
--TEST#13
-- INPUT: BinPack3.desc
--  (1) IPPlaceBinPack.OrderingFn2 fine controll
--  (2) IPPlaceBinPack.PlaceCompTGen2: IPPlaceKit.CompCompact1:
--  (3)
← IPPlaceBinPackImpl.of2Depth1 ← 4;
← IPPlaceBinPackImpl.of2Depth2 𡤂
← IPPlaceBinPackImpl.of2Depth3 ← 2;
← IPPlaceBinPackImpl.of2Depth4 ← 2;
← IPPlaceBinPackImpl.of2Depth5 ← 2;
← IPPlaceBinPackImpl.of2Breadth1 ← 3;
← IPPlaceBinPackImpl.of2Breadth2 ← 2;
← IPPlaceBinPackImpl.of2Breadth3 ← 2;
← IPPlaceBinPackImpl.of2Breadth4 ← 2;
← IPPlaceBinPackImpl.of2Breadth5 ← 2;
← IPPlaceBinPackImpl.of2EnumIncreasing ← FALSE;
← IPPlaceBinPackImpl.pctg2Keep ← 8;
← IPParams.ChMinWidth ← 0;
← IPParams.ChDefaultWidth ← 0;
← IPMainViewer.GetInput["", "BinPack3.desc"];
← IPMainViewer.trialSolutions ← OrderedRefArray.Create[10];
← IPPlaceProcs.PlaceInit[IPMainViewer.mvTop, IPPlaceBinPack.OrderingFn2, IPPlaceBinPack.PlaceCompTGen1, IPPlaceBinPack.PlaceEvaluator2, IPMainViewer.trialSolutions]
--BEST VALUE: 120900
--DISTRIBUTION OF RESULTS:
[1..3] -> 120900; [4..10] -> 123500
--TIME TAKEN:
--COMMENT: "This results is very bad. Mostly because of the ordering of comps, the small
-- width of the search tree and the evaluator used
-- DATE&TIME:
-- STARTED: January 25, 1985 9:29:14 pm PST
-- FORCED STOPPED: January 25, 1985 9:36:41 pm PST
--CONTINUATION FROM TEST#13
--REDO TEST#13
--STARTED: January 25, 1985 10:04:28 pm PST
--FORCED STOPPED: January 25, 1985 10:10:57 pm PST
--BEST VALUE SO FAR: 120900
-- GOTO SOLUTION: 5 [(i) Use the Button on the viewer to select soln #5 (ii) ClearStacks]
-- VALUE = 123500
-- IMPROVE BY DOING:
← PlaceCompsTest.J1[1, 100]
-- TIME TAKEN: {00:00:01.42 seconds, 13472 words, 12 page faults}
-- BEST VALUE AFTER ABOVE ACTION: 120900
-- NUMBER OF SOLUTION COLLECTED = 19
-- GOTO SOLUTION: 1 [(i) Use the Button on the viewer to select soln #1 (ii) ClearStacks]
← PlaceCompsTest.J1[2, 100]
-- TIME TAKEN: {00:00:15.77 seconds, 157612 words, 12 page faults}
-- BEST VALUE AFTER ABOVE ACTION: 111800
-- NUMBER OF SOLUTION COLLECTED >= 100
-- GOTO SOLUTION: 1 [(i) Use the Button on the viewer to select soln #1 (ii) ClearStacks]
← PlaceCompsTest.J1[3, 100]
-- FORCED STOPPED AFTER: ~3 min
-- BEST VALUE AFTER ABOVE ACTION: 109200
--THERE WAS A BUG IN C5 IN BinPack3.desc (BinPack3.typ.)
-- It HAS BEEN CORRECTED. THE CORRECTED VERSION IS BinPack3C.desc (BinPack3C.typ)
--TEST#14
-- INPUT: BinPack3C.desc
--  (1) IPPlaceBinPack.OrderingFn2 fine controll
--  (2) IPPlaceBinPack.PlaceCompTGen2: IPPlaceKit.CompCompact1:
← IPPlaceBinPackImpl.of2Depth1 ← 5;
← IPPlaceBinPackImpl.of2Depth2 ← 3;
← IPPlaceBinPackImpl.of2Depth3 ← 3;
← IPPlaceBinPackImpl.of2Depth4 ← 2;
← IPPlaceBinPackImpl.of2Breadth1 ← 30;
← IPPlaceBinPackImpl.of2Breadth2 ← 10;
← IPPlaceBinPackImpl.of2Breadth3 ← 10;
← IPPlaceBinPackImpl.of2Breadth4 ← 10;
← IPPlaceBinPackImpl.of1EnumIncreasing ← TRUE; --MISTAKE!! %2
← IPPlaceBinPackImpl.pctg2Keep ← 20;
← IPParams.ChMinWidth ← 0;
← IPParams.ChDefaultWidth ← 0;
← OrderedRefArray.PruneMethod ← firstValue;
← IPMainViewer.GetInput["", "BinPack3C.desc"];
← IPMainViewer.trialSolutions ← OrderedRefArray.Create[50];
← IPPlaceProcs.PlaceInit[IPMainViewer.mvTop, IPPlaceBinPack.OrderingFn2, IPPlaceBinPack.PlaceCompTGen2, IPPlaceBinPack.PlaceEvaluator2, IPMainViewer.trialSolutions]
--  (3) IPPlaceBinPack.PlaceEvaluator2: => prunning
--BEST VALUE: 82500
--DISTRIBUTION OF RESULTS: skipped
--TIME TAKEN: {00:00:50.16 seconds, 389353 words, 41 page faults}
--COMMENT: "This is repetition of TEST#10 with bug in BinPack3.typ fixed
-- DATE&TIME:
-- STARTED: January 30, 1985 5:36:57 am PST
-- FINISHED: before January 30, 1985 5:37:55 am PST
--TEST#15
-- INPUT: BinPack3C.desc
--  (1) IPPlaceBinPack.OrderingFn2 fine controll
--  (2) IPPlaceBinPack.PlaceCompTGen1: IPPlaceKit.CompCompact0:
← IPPlaceBinPackImpl.of2Depth1 ← 5;
← IPPlaceBinPackImpl.of2Depth2 ← 3;
← IPPlaceBinPackImpl.of2Depth3 ← 3;
← IPPlaceBinPackImpl.of2Depth4 ← 2;
← IPPlaceBinPackImpl.of2Breadth1 ← 30;
← IPPlaceBinPackImpl.of2Breadth2 ← 10;
← IPPlaceBinPackImpl.of2Breadth3 ← 10;
← IPPlaceBinPackImpl.of2Breadth4 ← 10;
← IPPlaceBinPackImpl.of1EnumIncreasing ← TRUE; --MISTAKE! %2
← IPPlaceBinPackImpl.pctg2Keep ← 20;
← IPParams.ChMinWidth ← 0;
← IPParams.ChDefaultWidth ← 0;
← OrderedRefArray.PruneMethod ← firstValue;
← IPMainViewer.GetInput["", "BinPack3C.desc"];
← IPMainViewer.trialSolutions ← OrderedRefArray.Create[20];
← IPPlaceProcs.PlaceInit[IPMainViewer.mvTop, IPPlaceBinPack.OrderingFn2, IPPlaceBinPack.PlaceCompTGen1, IPPlaceBinPack.PlaceEvaluator3, IPMainViewer.trialSolutions]
--  (3) IPPlaceBinPack.PlaceEvaluator3: => very fine prunning
--BEST VALUE:
--DISTRIBUTION OF RESULTS:
-- [1..8] -> ; [9..20] -> ;
--TIME TAKEN:
--COMMENT: "The best value was reached within the 1st hour of this run"
-- DATE&TIME:
-- STARTED:
-- FORCED STOPPED: