@@ -17,13 +17,13 @@ for (let i = 0; i < N + 1; i++) {
1717
1818// define tracer variables {
1919const tracer = new Array2DTracer ( 'Knapsack Table' ) ;
20- const dataViewer1 = new Array1DTracer ( 'Values' ) ;
21- const dataViewer2 = new Array1DTracer ( 'Weights' ) ;
20+ const valuesTracer = new Array1DTracer ( 'Values' ) ;
21+ const weightsTracer = new Array1DTracer ( 'Weights' ) ;
2222const logger = new LogTracer ( ) ;
23- Layout . setRoot ( new VerticalLayout ( [ tracer , dataViewer1 , dataViewer2 , logger ] ) ) ;
23+ Layout . setRoot ( new VerticalLayout ( [ tracer , valuesTracer , weightsTracer , logger ] ) ) ;
2424tracer . set ( DP ) ;
25- dataViewer1 . set ( val ) ;
26- dataViewer2 . set ( wt ) ;
25+ valuesTracer . set ( val ) ;
26+ weightsTracer . set ( wt ) ;
2727Tracer . delay ( ) ;
2828// }
2929
@@ -42,14 +42,13 @@ for (let i = 0; i <= N; i++) {
4242 // }
4343 } else if ( wt [ i - 1 ] <= j ) { // take the current item in our collection
4444 // visualize {
45- dataViewer1 . select ( i - 1 ) ;
46- Tracer . delay ( ) ;
47- dataViewer2 . select ( i - 1 ) ;
45+ weightsTracer . select ( i - 1 ) ;
46+ valuesTracer . select ( i - 1 ) ;
4847 Tracer . delay ( ) ;
48+ tracer . select ( i - 1 , j - wt [ i - 1 ] ) ;
4949 tracer . select ( i - 1 , j ) ;
5050 Tracer . delay ( ) ;
5151 // }
52-
5352 const A = val [ i - 1 ] + DP [ i - 1 ] [ j - wt [ i - 1 ] ] ;
5453 const B = DP [ i - 1 ] [ j ] ;
5554 /*
@@ -69,12 +68,13 @@ for (let i = 0; i <= N; i++) {
6968 Tracer . delay ( ) ;
7069 // }
7170 }
72-
7371 // visualize {
74- tracer . deselect ( i - 1 , j ) ;
72+ // opt subproblem depatch
7573 tracer . depatch ( i , j ) ;
76- dataViewer2 . deselect ( i - 1 ) ;
77- dataViewer1 . deselect ( i - 1 ) ;
74+ tracer . deselect ( i - 1 , j ) ;
75+ tracer . deselect ( i - 1 , j - wt [ i - 1 ] ) ;
76+ valuesTracer . deselect ( i - 1 ) ;
77+ weightsTracer . deselect ( i - 1 ) ;
7878 // }
7979 } else { // leave the current item from our collection
8080 DP [ i ] [ j ] = DP [ i - 1 ] [ j ] ;
0 commit comments