This Article 
 Bibliographic References 
 Add to: 
Knapsack on VLSI: from Algorithm to Optimal Circuit
June 1997 (vol. 8 no. 6)
pp. 545-561

Abstract—We present a parallel solution to the unbounded knapsack problem on a linear systolic array. It achieves optimal speedup for this well-known, NP-hard problem on a model of computation that is weaker than the PRAM. Our array is correct by construction, as it is formally derived by transforming a recurrence equation specifying the algorithm.

This recurrence has dynamic dependencies, a property that puts it beyond the scope of previous methods for automatic systolic synthesis. Our derivation thus serves as a case study. We generalize the technique and propose a systematic method for deriving systolic arrays by nonlinear transformations of recurrences. We give sufficient conditions that the transformations must satisfy, thus extending systolic synthesis methods.

We address a number of pragmatic considerations: implementing the array on only a fixed number of PEs, simplifying the control to just two counters and a few latches, and loading the coefficients so that successive problems can be pipelined without any loss of throughput.

Using a register level model of VLSI, we formulate a nonlinear optimization problem to minimize the expected running time of the array. The analytical solution of this problem allows us to choose the memory size of each PE in an optimal manner.

[1] R. Andonov and A. Benaini, "A Linear Systolic Array for 0/1 Knapsack Problem," Technical Report 90-12, LIP-IMAG, Ecole Normale Superieure de Lyon, 1990.
[2] R. Andonov and P. Quinton, "Efficient Linear Systolic Array for the Knapsack Problem," Proc. CONPAR '92, Lecture Notes in Computer Science 634, pp. 247-258,Lyon, France, Sept. 1992.
[3] R. Andonov, P. Quinton, S. Rajopadhye, and D. Wilde, "A Shift-Register Based Systolic Array for the General Knapsack Problem," Parallel Processing Letters, vol. 5, no. 2, pp. 251-262, Feb. 1995.
[4] R. Andonov and S.V. Rajopadhye, "An Optimal Algo-Tech-Cuit for the Knapsack Problem," Proc Int'l Conf. Application-Specific Array Processors (ASAP-93), pp. 548-559,Venice, Oct. 1993.
[5] R. Andonov and S.V. Rajopadhye, "A Sparse Knapsack Algo-Tech-Cuit and Its Synthesis," Proc Int'l Conf. Application-Specific Array Processors (ASAP-94), pp. 302-313,San Francisco, Aug. 1994.
[6] R. Andonov, F. Raimbault, and P. Quinton, "Dynamic Programming Parallel Implementation for the Knapsack Problem," Internal Report 740, IRISA, June 1993.
[7] V. Aleksandrov and S. Fidanova, "On the Expected Execution Time for a Class of Non-Uniform Recurrence Equations Mapped onto 1D Regular Arrays," J. Parallel Algorithms and Applications, vol. 2, no. 1, 1993.
[8] R.E. Bellman Dynamic Programming. Princeton, N.J.: Princeton Univ. Press, 1957.
[9] F. Bitz and H.T. Kung, "Path Planning on the Warp Computer: Using a Linear Systolic Array in Dynamic Programming," Int'l J. Computer Math., vol. 25, pp. 173-188, 1988.
[10] G.H. Chen, M.S. Chern, and J.H. Jang, "Pipeline Architectures for Dynamic Programming Algorithms," Parallel Computing, vol. 13, pp. 111-117, 1990.
[11] C-S. Chung, M.S. Hung, and W.O. Rom, "A Hard Knapsack Problem," Naval Research Logistics, vol. 35, pp. 85-98, 1988.
[12] G.H. Chen and J.H. Jang, "An Improved Parallel Algorithm for 0/1 Knapsack Problem," Parallel Computing, vol. 18, pp. 811-821, 1992.
[13] M.R. Garey and D.S. Johnson, Computers and Intractability: A Guide to the Theory of NP-Completeness.New York: W.H. Freeman, 1979.
[14] L. Guibas, H.T. Kung, and C.D. Thompson, "Direct VLSI Implementation of Combinatorial Algorithms," Proc. Conf. Very Large Scale Integration: Architecture, Design, and Fabrication, pp. 509-525, Jan. 1979.
[15] R. Garfinkel and G. Nemhauser, Integer Programming. John Wiley and Sons, 1972.
[16] T.C. Hu, Integer Programming and Network Flows. Addison-Wesley, 1969.
[17] J.M. Jansen and F.M. Sijstermans, "Parallel Branch-and Bound Algorithms," Future Generation Computer Systems, vol. 4, pp. 271-279, 1988.
[18] V. Kumar, A. Grama, A. Gupta, and G. Karypis, Introduction to Parallel Computing: Design and Analysis of Algorithms. Benjamin Cummings, 1994.
[19] R. Karp, R. Miller, and S. Winograd, "The Organization of Computations for Uniform Recurrence Equations," J. ACM, vol. 14, July 1967.
[20] R.J. Lipton and D. Lopresti, "Delta Transformation to Simplify VLSI Processor Arrays for Serial Dynamic Programming," Proc. Int'l Conf. Parallel Processing, pp. 917-920, 1986.
[21] T.H. Lai and S. Sahni, "Anomalies in Parallel Branch and Bound Algorithms," Comm. ACM, pp. 594-602, 1984.
[22] J. Lin and J.A. Storer, "Processor-Efficient Hypercube Algorithm for the Knapsack Problem," J. Parallel and Distributed Computing, vol. 13, pp. 332-337, 1991.
[23] J. Lee, E. Shragowitz, and S. Sahni, "A Hypercube Algorithm for the 0/1 Knapsack Problems," J. Parallel and Distributed Computing, vol. 5, pp. 438-456, 1988.
[24] G. Li and B.W. Wah, "Systolic Processing for Dynamic Programming Problems," Proc. Int'l Conf. Parallel Processing, pp. 434-441, 1985.
[25] G.M. Megson, "Mapping a Class of Run-Time Dependencies onto Regular Arrays," Proc Int'l Parallel Processing Symp., pp. 97-107,Newport Beach, Calif., Apr. 1993.
[26] D.I. Moldovan and J.A.B. Fortes, “Partitioning and Mapping Algorithms into Fixed Size Systolic Arrays,” IEEE Trans. Computers, vol. 35, no. 1, pp.1-12, Jan. 1986.
[27] S. Martello and P. Toth, Knapsack Problems: Algorithms and Computer Implementation. John Wiley and Sons, 1990.
[28] J.F. Myoupo, "A Fully Pipelined Solutions Constructor for Dynamic Programming Problems," Advances in Computing—ICCI '91, Proc. Int'l Conf. Computing Information, Lecture Notes in Computer Science, vol. 497. Springer-Verlag, 1991.
[29] P. Quinton and Y. Robert, Algorithms et architectures systoliques. Masson, 1989. (Systolic Algorithms and Architectures. English trans., Prentice Hall, Sept. 1991).
[30] S.V. Rajopadhye, "Synthesizing Systolic Arrays with Control Signals from Recurrence Equations," Distributed Computing, vol. 3, pp. 88-105, May 1989.
[31] S.V. Rajopadhye and R.M. Fujimoto, "Synthesizing Systolic Arrays from Recurrence Equations," Parallel Computing, vol. 14, pp. 163-189, June 1990.
[32] I.V. Ramakrishnan and P.J. Varman, "Dynamic Programming and Transitive Closure on Linear Pipelines," Proc Int'l Conf. Parallel Processing,St. Charles, Ill., Aug. 1984.
[33] S. Teng, "Adaptive Parallel Algorithm for Integral Knapsack Problems," J. Parallel and Distributed Computing, vol. 8, pp. 400-406, 1990.

Index Terms:
Application specific VLSI design, systolic arrays, unbounded knapsack problem, space-time transformations, recurrence equations, dynamic dependencies, nonlinear discrete optimization, correctness preserving transformations.
Rumen Andonov, Sanjay Rajopadhye, "Knapsack on VLSI: from Algorithm to Optimal Circuit," IEEE Transactions on Parallel and Distributed Systems, vol. 8, no. 6, pp. 545-561, June 1997, doi:10.1109/71.595572
Usage of this product signifies your acceptance of the Terms of Use.