Attribution Non-Commercial (BY-NC)

53 views

Attribution Non-Commercial (BY-NC)

- it2 fact sheet
- lecture13
- Lec1-Introduction to Data Structure and Algorithms
- HS Number Theory
- Practice Final
- Issue 1
- The Computation of Classical Constants
- AOA3_Analyzing_Algorithms
- TJUSAMO 2011-2012 NumberTheory
- mldrs
- 2. Complejidad 2012-I
- Data Structures l1.Introduction
- Bharat Hic Ml 2010
- Thesis
- sph decodin
- Data structures
- final.pdf
- agorithm final
- Geometric Complexity Theory - K. D. Mulmuley and M. Sohoni - U. Chicago.pdf
- Pre Test

You are on page 1of 4

Abstract. The Money Changing Problem is as follows: Let a1 < a2 < · · · < ak be fixed positive

integers with gcd(a1 , . . . , ak ) = 1. Given some integer n, are there non-negative integers x1 , . . . , xk

P

such that i ai xi = n? The Frobenius number g(a1 , . . . , ak ) is the largest integer n such that the

above problem has no decomposition x1 , . . . , xk .

There exist algorithms that, for fixed k, compute the Frobenius number in time polynomial in

log ai . For variable k, one can compute a residue table of a1 words which, in turn, allows to determine

the Frobenius number. The best known algorithm for computing the residue table has runtime

O(k a1 log a1 ) using binary heaps, and O(a1 (k + log a1 )) using Fibonacci heaps. In both cases, O(a1 )

extra memory in addition to the residue table is needed. Here, we present an intriguingly simple

algorithm to compute the residue table in time O(k a1 ) and extra memory O(1). In addition to

computing the Frobenius number, we can use the residue table to solve the given instance of the

Money Changing Problem in constant time, for any n.

1. Introduction

In the classical Money Changing Problem (MCP), we are given coins of Pk different values a1 < a2 <

· · · < ak with gcd(a1 , . . . , ak ) = 1. We want to know what change n = i ai xi we can generate from

these coins for non-negative integers xi , assuming that we have an infinite supply of coins. Then, there

exists an integer g(a1 , . . . , ak ) called the Frobenius number of a1 , . . . , ak , such that g(a1 , . . . , ak ) does

not allow a decomposition of the above type, but all integers n > g(a1 , . . . , ak ) do.1 Sylvester and

Curran Sharp [9] show that for k = 2 we have g(a1 , a2 ) = a1 a2 − a1 − a2 . Kannan [4] developed an

algorithm that for fixed k, computes the Frobenius number in time polynomial in log ak . For variable k,

the runtime of this algorithm has a double exponential dependence on k, the dimension of the problem.

Computing the Frobenius number is NP-hard [7] (and so is MCP [5]), so we cannot hope to find an

algorithm polynomial in k and log ai simultaneously.

If k is variable, the fastest algorithm to compute g(a1 , . . . , ak ) dates back to 1979: Nijenhuis’ algo-

rithm [6] has runtime O(k a1 log a1 ) using binary heaps, and O(a1 (k +log a1 )) using Fibonacci heaps. It

is based on an observation of Brauer and Shockley [2] to find integers np for p = 0, . . . , a1P − 1 such that

for all integers n ≡ p mod a1 , np is the smallest number that has a decomposition np = i ai xi . Note

that the np ’s can be used to answer subsequent MCP questions for variable n in constant time. Nijen-

huis’ algorithm requires O(a1 ) extra memory in addition to the residue table np for p = 0, . . . , a1 − 1.

Here, we present a simple algorithm to compute the values np and, hence, to find g(a1 , . . . , ak ) in time

O(k a1 ) and extra memory O(1).

For integers a, b, let a mod b denote the unique integer in 0, . . . , b − 1 such that (a mod b) ≡ a

mod b holds.

Let a1 < · · · < ak with gcd(a1 , . . . , ak ) = 1 be an instance of the Money Changing Problem. We

denote by np the smallest integer with np ≡ p mod a1 that can be decomposed into a non-negative

integer combination of a1 , . . . , ak . The

P np are well-defined: If n has a decomposition, so has n + a1 ,

and n ≡ n + a1 mod a1 . Clearly, i ai xi = np implies x1 = 0 because otherwise, np − a1 has a

decomposition, too. If the np are known, then we can test in constant time whether some number n

can be decomposed: Set p = n mod a1 , then n can be decomposed if and only if n ≥ np .

Date: June 21, 2004; Technical Report no. 2004-2, University of Bielefeld, Technical Faculty.

1There has been considerable work on bounds for Frobenius numbers (see [8] for a survey) but here we concentrate

on exact computations.

1

2 SEBASTIAN BÖCKER AND ZSUZSANNA LIPTÁK

Given the values np for p = 0, . . . , a1 − 1 we can compute the Frobenius number g(a1 , . . . , ak ) and

the number of omitted values ω that cannot be decomposed using a1 , . . . , ak [2]:

X np 1 X a1 − 1

g := g(a1 , . . . , ak ) = max{np } − a1 and ω = = np − .

p

p

a 1 a 1 p

2

To compute the values np for p = 0, . . . , a1 −1, Nijenhuis [6] gave an algorithm with runtime O(k a1 log a1 ),

where the log a1 factor is due to a binary heap structure that must be updated in every step. This

algorithm improved on older algorithms with worse runtime bounds [3,10], see [8] for a survey. We can

modify Nijenhuis’ algorithm by using a Fibonacci heap instead of a regular heap, thereby reaching a

O(a1 (k + log a1 )) runtime bound. It should be understood that the constant factor overhead (runtime

and memory) is much higher for a Fibonacci heap.

We compute the values np iteratively for the sub-problems “Find np for the instance a1 , . . . , ai ” for

i = 1, . . . , k. For i = k = 1 we start with n0 = 0 and np = ∞ for p = 1, . . . , a1 − 1.

Suppose we know the correct values n′p for the sub-problem a1 , . . . , ak−1 and want to calculate those

of the original problem a1 , . . . , ak . We first concentrate on the simple case that gcd(a1 , ak ) = 1. We

initialize np ← n′p for all p = 0, . . . , a1 − 1 and n ← n0 = 0. In every step of the algorithm, set

n ← n + ak and p ← n mod a1 . Let n ← min{n, np } and np ← n. We repeat this loop until n equals 0.

In case all a2 , . . . , ak are coprime to a1 , this short algorithm is already sufficient to find the correct

values np . We have displayed a small example in Fig. 1, where every column corresponds to one step

of the algorithm as described in the previous paragraph. Focus on the column a3 = 9, we start with

n = 0. In the first step, we have n ← 9 and p = 4. Since n < n4 = 24 we update n4 ← 9. Second, we

have n ← 9 + 9 = 18 and p = 3. In view of n > n3 = 8 we set n ← 8. Third, we have n ← 8 + 9 = 17

and p = 2. Since n < n2 = 32 we update n2 ← 17. Fourth, we have n ← 17 + 9 = 26 and p = 1. In

view of n > n1 = 16 we set n ← 16. Finally, we return to p = 0 via n ← 16 + 9 = 25. The Frobenius

number for this example is g(5, 8, 9, 12) = 16 − 5 = 11.

p a1 = 5 a2 = 8 a3 = 9 a4 = 12

0 0 0 0 0

1 ∞ 16 16 16

2 ∞ 32 17 12

3 ∞ 8 8 8

4 ∞ 24 9 9

It is straighforward how to generalize the algorithm for d := gcd(a1 , ai ) > 1: In this case, we do the

updating independently for every residue r = 0, . . . , d − 1. Only those np for p ∈ {0, . . . , a1 − 1} are

updated that satisfy p ≡ r mod d. To guarantee that the round-robin loop completes updating after

a1 /d steps, we have to start the loop from a minimal np with p ≡ r mod d. For r = 0 we know that

n0 = 0 is the unique minimum, while for r 6= 0 we search for the minimum first.

1 initialize n0 = 0 and np = ∞ for p = 1, . . . , a1 − 1

2 for i = 2, . . . , k do

3 d = gcd(a1 , ai );

4 for r = 0, . . . , d − 1 do

5 Find n = min{nq : q = r, r + d, r + 2d, . . . , r + (a1 − d)};

6 If n < ∞ then repeat a1 /d times

7 n ← n + ai ; p = n mod a1 ;

8 n ← min{n, np }; np ← n;

9 done;

10 done;

11 done.

MONEY CHANGING PROBLEM REVISITED 3

The inner loop (lines 6–9) will be executed only if the minimum min{nq } is finite, in case some

residue class cannot be decomposed by a1 , . . . , ai because of gcd(a1 , . . . , ai ) > 1.

Lemma 1. Suppose that n′p for p = 0, . . . , a1 − 1 are the residues for the MCP instance a1 , . . . , ak−1 .

Initialize np ← n′p for p = 0, . . . , a1 − 1. Then, after one step of the outer loop (for i = k) of the Round

Robin Algorithm, the values np for p = 0, . . . , a1 − 1 are the residues for the MCP instance a1 , . . . , ak .

Since for k = 1, n0 = 0 and np = ∞ for p 6= 0 are the correct residues of MCP with one coin, we

can use induction to show the correctness of the algorithm. To prove the lemma, we first note that for

all p = 0, . . . , a1 − 1,

np ≤ n′p and np ≤ nq + ak for q = (p − ak ) mod a1

Pk

after termination. Assume that for some n, there exists a decomposition n = i=1 ai xi . We have to

Pk−1

show n ≥ np for p = n mod a1 . Then, i=1 ai xi = n − ak xk is a decomposition of the MCP instance

a1 , . . . , ak−1 and for q = (n − ak xk ) mod a1 we have n − ak xk ≥ n′q . We conclude

np ≤ nq + ak xk ≤ n′q + ak xk ≤ n.

By an analogous argument, we infer np = n for minimal such n. One can easily show that np = ∞ if

and only if no n with n ≡ p mod a1 has a decomposition with respect to the MCP instance a1 , . . . , ak .

As time and space complexity of the algorithm are quite obvious, we reach:

Theorem 1. The Round Robin Algorithm computes the residue table of an instance a1 , . . . , ak of the

Money Changing Problem, in runtime O(k a1 ) and extra memory O(1).

To obtain a decomposition of any n in k steps, we save for every p = 0, . . . , a1 − 1 an index i

such that a decomposition x1 , . . . , xk of np has xi > 0, and we also save the maximal xi for any such

decomposition. This can be easily incorporated into the algorithm retaining identical time complexity,

and requires 2a1 additional words of memory.

We can improve the algorithm in the following two ways: First, we do not have to explicitly compute

the greatest common divisor gcd(a1 , ai ). Instead, we do the first round-robin loop (lines 6–9) for r = 0

with n = n0 = p = 0 until we reach n = p = 0 again. We count the number of steps t to this point.

Then, d = gcd(a1 , ai ) = at1 and for d > 1, we do the remaining round-robin loops r = 1, . . . , d − 1.

Second, for r > 0 we do not have to search for the minimum in {nq : q = r, r+d, r+2d, . . . , r+(a1 −d)}.

Instead, we start with n = nr and do exactly t steps of the round-robin loop. Here, nr = ∞ may hold,

so we initialize p = r (line 5) and update p ← (p + ai ) mod a1 separately in line 7. Afterwards, we

continue with this loop until we first encounter some np ≤ n in line 8, and stop there.

It should be noted that we can modify the above algorithm to find all P decompositions of some

input n: To this end, we generate a data structure with runtime and space O( i ai ). If we denote the

number of decompositions of n by γ(n), then this data structure allows us to generate all decompositions

in time linear in γ(n) and independent of n. The details will be published elsewhere.

4. Computational results

We tested our algorithm on some instances of the Money Changing Problem that are known to be

“hard”: Twenty-five such examples with 5 ≤ k ≤ 10 and 3719 ≤ a1 ≤ 48709 were taken from [1] and

presented to our algorithm. The runtime (900 MHz UltraSparc III processor, C++) for every instance

was below 16 ms, and compared well to those of [1] as well as standard linear programming based

branch-and-bound search.2

In addition, we generated 100 000 random instances of MCP, with 3 ≤ k ≤ 50 and 103 ≤ ai ≤ 107 .

We have plotted the runtime of our algorithm against k a1 in Fig. 2. As one can see, the runtime of the

algorithm is mostly independent of the structure of the underlying instance. The processor cache, on

the contrary, is responsible for major runtime differences. So, we split the instances into two groups,

depending on a1 and, thus, the size of the residue table: The left plot contains all instances with

a1 ≤ 106 ; these appear to fit into the processor cache. The right plot, on the other hand, contains

those instances with a1 > 106 ; here, the residue table has to be stored in main memory. In the left

plot, the 25 problems from the previous paragraph are indicated by circles.

2More precisely, Aardal and Lenstra [1] do not compute the Frobenius number g, but only verify that g cannot be

decomposed.

4 SEBASTIAN BÖCKER AND ZSUZSANNA LIPTÁK

10 100

1

10

0.1

time [sec]

time [sec]

1

0.01

0.1

0.001

0.0001 0.01

104 105 106 107 108 107 108

Figure 2. Runtime vs. k a1 on a log-log scale, for a1 ≤ 106 (left) and a1 > 106 (right).

Acknowledgments

Sebastian Böcker and Zsuzsanna Lipták are currently supported by “Deutsche Forschungsgemein-

schaft” (BO 1910/1-1 and 1-2) within the Computer Science Action Program. Implementation and

simulations by Henner Sudek. We thank Stan Wagon for helpful discussions.

References

[1] K. Aardal and A. K. Lenstra. Hard equality constrained integer knapsacks. Lect. Notes Comput. Sc., 2337:350–366,

2002.

[2] A. Brauer and J. E. Shockley. On a problem of Frobenius. J. Reine Angew. Math., 211:215–220, 1962.

[3] B. R. Heap and M. S. Lynn. A graph-theoretic algorithm for the solution of a linear diophantine problem of Frobenius.

Numer. Math., 6:346–354, 1964.

[4] R. Kannan. Lattice translates of a polytope and the Frobenius problem. Combinatorica, 12:161–177, 1991.

[5] G. S. Lueker. Two NP-complete problems in nonnegative integer programming. Technical Report TR-178, Depart-

ment of Electrical Engineering, Princeton University, March 1975.

[6] A. Nijenhuis. A minimal-path algorithm for the “money changing problem”. Amer. Math. Monthly, 86:832–835,

1979. Correction in Amer. Math. Monthly 87 (1980) 377.

[7] J. L. Ramı́rez-Alfonsı́n. Complexity of the Frobenius problem. Combinatorica, 16(1):143–147, 1996.

[8] J. L. Ramı́rez-Alfonsı́n. The Diophantine Frobenius Problem. Oxford University Press, 2004. To appear.

[9] J. J. Sylvester and W. J. Curran Sharp. Problem 7382. Mathematical Questions and Solutions from the Educational

Times, 41:171–178, 1884.

[10] H. S. Wilf. A circle-of-lights algorithm for the “money-changing problem”. Amer. Math. Monthly, 85:562–565, 1978.

AG Genominformatik, Technische Fakultät, Universität Bielefeld, PF 100 131, 33501 Bielefeld, Germany

E-mail address: {boecker,zsuzsa}@CeBiTec.uni-bielefeld.de

- lecture13Uploaded byvv
- Lec1-Introduction to Data Structure and AlgorithmsUploaded bysheheryar
- HS Number TheoryUploaded byEdfinity
- The Computation of Classical ConstantsUploaded byapi-26401608
- Practice FinalUploaded byErik Xu
- Issue 1Uploaded byCheenta Ganit Kendra
- AOA3_Analyzing_AlgorithmsUploaded bysvijay_7690
- mldrsUploaded byNgôn Lê Bá
- TJUSAMO 2011-2012 NumberTheoryUploaded byWithoon Chinchalongporn
- 2. Complejidad 2012-IUploaded byJuan_Loaiza_6093
- Data Structures l1.IntroductionUploaded byJawaid Iqbal
- Bharat Hic Ml 2010Uploaded byParameshwari Ramdass
- ThesisUploaded bypower1001
- sph decodinUploaded byDhanmeet Kaur
- Data structuresUploaded byDerek Jeromee Trilla
- final.pdfUploaded byShubhamParashar
- agorithm finalUploaded byballechase
- Geometric Complexity Theory - K. D. Mulmuley and M. Sohoni - U. Chicago.pdfUploaded byjuan
- Pre TestUploaded byShakir Khattak

- it2 fact sheetUploaded bypostscript
- wenke-discex00Uploaded bypostscript
- patentsUploaded bypostscript
- news2 98Uploaded bypostscript
- ecsUploaded bypostscript
- 20amortUploaded bypostscript
- prpr0118Uploaded bypostscript
- SR302Uploaded bypostscript
- cvUploaded bypostscript
- mset2000Uploaded bypostscript
- edcUploaded bypostscript
- sec2000Uploaded bypostscript
- lec6Uploaded bypostscript
- basuUploaded bypostscript
- mmidans2Uploaded bypostscript
- testsecUploaded bypostscript
- 2-1-8Uploaded bypostscript
- v7i1r46Uploaded bypostscript
- paperUploaded bypostscript
- Chip to Kapton Bonding Procedur1Uploaded bypostscript
- hagjoycombesUploaded bypostscript
- hagjoy10CMPUploaded bypostscript
- lm02Uploaded bypostscript
- snackenUploaded bypostscript
- nmarea rose slidesUploaded bypostscript
- rpf280Uploaded bypostscript
- srikant-slidesUploaded bypostscript
- net neutralityUploaded bypostscript
- zengerUploaded bypostscript
- brnoUploaded bypostscript

- ASME Training and Development-Autumn-CalenderUploaded byMaclean Arthur
- Strain Energy BitsUploaded bychaitume
- design-of-staircase-1197052627390217-2Uploaded byPrashant Narvankar
- fpsyg-08-01270Uploaded bynunukanta
- Strap FootingUploaded bynirez14
- 10.1.1.476.6482 Tesis de Dr Carlos Oropeza VasquezUploaded byAnonymous AtAGVssJ
- Oakley, V. Condition Survey of the Ceramics Collection. 1995Uploaded byTrinidad Pasíes Arqueología-Conservación
- AP FR Quiz #27 Simple Harmonic MotionUploaded bybok choi
- journal ko.docxUploaded byRoy Bajado
- John Carroll Magazine Spring 2010Uploaded byjohncarrolluniversity
- 2 2a homework fdUploaded byapi-237668778
- Electrochemistry EncyclopediaUploaded bydavid2404
- How to TranslateUploaded byHiurckito Auriazul Villegas Mendez
- is.13703.2.2.1993Uploaded byramesh
- market segmentationUploaded byAllison Silvestre
- Www.sefindia_ Woods ArmerUploaded bypandian
- Insurance ManagementUploaded byRaj Bangalore
- Manual Del Triple 7Uploaded byFausto G
- Steel Pipe PilesUploaded bySteven Liyanto
- 30197Uploaded byArunkumar Myakala
- Build Your Own Hlsls Hader Effect LabUploaded byMarijana Markov
- Ba Alloc Pd Netezza PDFUploaded byMeltz Njoroge
- Shrinkage and WarpageUploaded byEdgar Clyde Lopez
- LDK PV Modules Installation Manual en v1.13 131023Uploaded byLandon Mitchell
- Words, Meaning, Vocabualry VypiskyUploaded bykotasovam
- A Priori Relativo de FriedmanUploaded byCyrus Knight
- 4168-12204-2-PBUploaded bywinengku
- Chapter_3_of_LPL_textbook.pdfUploaded byandrea
- F Distribution PDF DerivationUploaded byJohn
- Student PortfoliosUploaded byUmi Khotimah Cha

## Much more than documents.

Discover everything Scribd has to offer, including books and audiobooks from major publishers.

Cancel anytime.