Skip to content

Commit 0a096f4

Browse files
dmrodriqu64json
authored andcommitted
Improve Knapsack Problem
* missing subproblem visualization * error in patch * fixed opt problem patch * Remove unnecessary delays and change unnecessary patch to select
1 parent e8d66c6 commit 0a096f4

File tree

1 file changed

+13
-13
lines changed
  • Dynamic Programming/Knapsack Problem

1 file changed

+13
-13
lines changed

Dynamic Programming/Knapsack Problem/code.js

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ for (let i = 0; i < N + 1; i++) {
1717

1818
// define tracer variables {
1919
const 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');
2222
const logger = new LogTracer();
23-
Layout.setRoot(new VerticalLayout([tracer, dataViewer1, dataViewer2, logger]));
23+
Layout.setRoot(new VerticalLayout([tracer, valuesTracer, weightsTracer, logger]));
2424
tracer.set(DP);
25-
dataViewer1.set(val);
26-
dataViewer2.set(wt);
25+
valuesTracer.set(val);
26+
weightsTracer.set(wt);
2727
Tracer.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

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy