Bandcounter: Counting Bands of Multiband Chaotic Attractors
|
|
|
- Rosaline Grant
- 10 years ago
- Views:
Transcription
1 Course of Study: Computer Science Eaminer: Supervisor: Prof. Dr. rer. nat. habil. P. Levi Dr. Viktor Avrutin PD Dr. Michael Schanz Studienarbeit Nr Bandcounter: Counting Bands of Multiband Chaotic Attractors Bernd Eckstein Commenced: Completed: CR-Classification: G.1.7 University of Stuttgart Institute of Parallel and Distributed Systems Universitätsstraße 38 D Stuttgart
2 Contents Glossary 3 1 Introduction 4 2 Method 1: GCD-based bandcounting Idea Applicability restrictions Implementation Improvement Method 2: Bocounting-based bandcounting Idea Implementation The data structure Neighbors Clusterize Hash-table Validation of the developed methods Logistic function (1D) Hénon map (2D) Tent map (1D) Parameter influences GCD-based method Compare precision Basis points Number of iterations Fast termination Conclusion Bocounting-based method Number of partitions Iterations versus number of partitions Error threshold
3 CONTENTS 5.3 Performance comparison New results Banerjee map Piecewise linear map Summary and future aspects 57 Bibliography 59 List of Figures 61 List of Tables 62 A Initialization file 63 A.1 Options overview A.2 Activation of the method A.3 Selection of a method A.4 Shared keys A.4.1 Transient A.4.2 Maimal bandcount A.4.3 Period compare precision A.4.4 Period A.4.5 Period file A.4.6 Bandcount file A.5 GCD-based method A.5.1 Bandcount compare precision A.5.2 Basis points A.5.3 Fast termination A.5.4 Termination after A.6 Bocounting-based method A.6.1 Automatic domain detection A.6.2 Domain boundaries A.6.3 Number of boes A.6.4 Error threshold A.6.5 Use hash A.6.6 Hash size Declaration 71 2
4 Glossary A B i B ma BC BP C i d ε K ε P E GCD h size i I K l m MBCA MI i p i P t Attractor A band of a chaotic attractor with inde i Maimal number of boes Bocount number of points that hit a bo. Basis points Clustercount number of points that hit the cluster i State space dimension Bandcount compare precision Period compare precision Error percentage Greatest common divisor Hash size Inde value Number of iteration steps minus transient steps Bandcount number of bands of a chaotic attractor Termination after l found multiples with unchanged bandcount Multiple of the bandcount Multi-band chaotic attractor Multi-inde for dimension i Number of partitions for state space variable i Period of a periodic attractor Transient steps A point of an orbit 3
5 Chapter 1 Introduction Chaos is the order, we don t understand. Konstantin Wecker The investigation object of theory of nonlinear dynamical systems, also well-known as chaos theory, are systems, which are able to demonstrate chaotic behavior. This means, that these systems don t follow the strong causality that small variations in the cause only provoke small variations in the effect. Instead, small variations in the cause are amplified very fast and can cause big difference in the effect [2]. This is also known as the butterfly-effect. The astonishing thing is that even simple deterministic nonlinear functions show chaotic behavior. One of the main tasks of the chaos theory is the investigation of the system behavior under variation of one or more system parameters. In this case one obtain as a result a bifurcation diagram, which may show several scenarios like period-doubling, tripling,..., period adding and more. The chaotic part of the bifurcation diagram shows that the chaotic attractors also follow some rules. Especially, a chaotic attractor consists of one or more bands. The number of bands change for instance at so-called crisis, where the bands of an attractor merge together when they are hit by an unstable orbit. A sequence of such bifurcations, known as the band-merging-scenario, is often a followup of a period-doubling scenario. In the chaotic domain of a bifurcation diagram, we can only use our eyes to count the bands of a chaotic attractor right now. In systems which are not well-known, this is not a good enough hint to understand the structures in the chaotic domain, as this is only a very limited view and we will miss most of the bands. To be able to investigate systems in the chaotic domains, it is essential to have a method that is capable of counting the bands of a chaotic attractor. 4
6 CHAPTER 1 Introduction The fast computers today allow to simulate dynamical systems and investigate them numerically. Therefore the simulation and analysis tool AnT [1, 4] was developed at the Institute of Parallel and Distributes Systems at the University of Stuttgart. It already has many investigation methods like the calculation of Lyapunov-eponents, symbolic analysis, period analysis and many more. AnT is designed to be epandable and is under continuous development and usage. The task of this work is to implement and test an efficient method which counts the bands of a high-dimensional multi-band chaotic attractor (MBCA) in dynamical systems discreet in time. Note, that the power of AnT will also allow this method to be used on continuous systems as well, if they are discretized by Poincaré sections. In this work, two methods for the detection of the number of bands of a multi-band chaotic attractor are developed, implemented and tested. The first one ( GCD-based bandcounting ) is developed for dynamical systems with a continuous system function. It can be shown, that in this case the bands of a MBCA are visited by an orbit in the same order for all times. This fact combined with the miing property of chaotic attractors allows us to solve the given task efficiently, with low requirements with respect to computation time and memory consumption. The second method ( bocountingbased bandcounting ) does not use any assumptions concerning the properties of the system function and hence can be applied to dynamical systems with discontinuous system function as well. The price for this is the lower convergence rate and the higher memory consumption. For both methods we present the results of the performance tests, as well as some techniques for adjustment of the parameters. Both methods are validated by the investigation of scenarios in several well-known dynamical systems. This work is organized as follows: In chapter 2, we will introduce the GCD-based bandcounting and in chapter 3 the bocounting-based bandcounter is shown. In both chapters, first the idea of the method is eplained in detail and then a possible implementation is shown. In chapter 4 we make a brief validation using well-known systems and we will see how good both methods work. After that we see how the parameters influence the result in chapter 5 for both methods. Then we will present some new results in chapter 6 using the bandcounter on systems which where not investigated in this manner before. The work closes with a summary and a look into the future. 5
7 Chapter 2 Method 1: GCD-based bandcounting The first method developed within this work is based on the assumption that the bands of a chaotic attractor are hit sequentially, which is the case for many dynamical systems. It uses the greatest common divisor (GCD). GCD(, y) is the greatest integer that divides both, and y. In this chapter the idea of this method is eplained, and why it will work for dynamical systems with a continuous system function. Then an eample is presented that shows, why this method doesn t work with a discontinuous systems function. The chapter closes with a straightforward implementation of the developed method and how the implementation can be improved. The GCD-based method is easy to implement and doesn t need many parameters. Also, it is fast and the results are precise. 2.1 Idea In many dynamical systems the bands of a chaotic attractor are hit by the orbit sequentially, almost like in a periodic solution. This can be used to determine the bandcount K numerically. Figure 2.1 shows a cobweb diagram of the logistic map n+1 = f( n, ) with [0, 1], [0, 4] f(, ) = (1 ) (2.1) at the parameter value = The transient is long enough, so we can only see the asymptotic behavior. As one can see, the bandcount K = 4. 6
8 CHAPTER 2 Method 1: GCD-based bandcounting n+1 B 2 B 4 B 3 B 1 n Figure 2.1: Cobweb diagram of the logistic map: a 4-band chaotic attractor at = Each band B i (i {1,..., K}) is defined by intervals which are given by B 1 = [ f [5] (0.5), f [1] (0.5) ] [ , ] B 2 = [ f [2] (0.5), f [6] (0.5) ] [ , ] B 3 = [ f [3] (0.5), f [7] (0.5) ] [ , ] B 4 = [ f [8] (0.5), f [4] (0.5) ] [ , ] The chaotic attractor A is the unification of all bands: A = (2.2) K B i (2.3) i=1 An orbit that was captured by the attractor will move from band to band sequentially. Here the route is {B 1 B 2 B 3 B 4 B 1 }. Each band has eactly one successor band and one predecessor band because the logistic function is continuous. We will now prove that this is the case for any dynamical system with a continuous system function. Theorem 1 In a dynamical system discreet in time with a continuous system function, each band of a chaotic attractor has eactly one successor band. 7
9 CHAPTER 2 Method 1: GCD-based bandcounting Proof by Contradiction Let s assume that f( ) is a continuous function which describes the transitions of a dynamical system discreet in time. The parameter values shall be set that the system has a multi-band chaotic attractor A. Let s assume that there is a band B p which has two successor bands B r and B s which are not connected to each other (there is a gap γ between them) and B p, B r, B s A. That means the following two routes could be taken by the orbit: {... B p B r...} and {... B p B s...}. Hence, the following points c and c have to eist, where δ = δ is an arbitrary small value: c B p with f( c) Br c = c + δ B p with f( c ) B s ; δ R d (2.4) The definition of continuity says that for a infinitesimal change of there is a infinitesimal change of f( ): f : I D with I, D R d ; ε, δ R + ;, y I ε > 0 δ > 0 : y < δ f( ) f( y) < ε. (2.5) As f( c) B r and f( c ) B s, for the gap γ the following is true when using the definition of continuity from Equation 2.5: γ = f( c) f( c + δ) < ε (2.6) No matter how small the gap γ between those two bands is, we can get a smaller ε by choosing a small enough δ. Hence γ is infinite small. The two bands B r and B s are in fact connected to each other: B t = B r B s. This is a contradiction to the assumptions we made in the beginning. The real route is {... B p B t...}. Therefore each band of a chaotic attractor in dynamical systems discreet in time with a continuous system function has eactly one successor band. Theorem 2 In a dynamical system discreet in time with a continuous system function, each band of a chaotic attractor has eactly one predecessor band. Proof by Contradiction Let s assume we have a dynamical system discreet in time with a continuous system function f( ). The parameters shall be set that we have a chaotic attractor A consisting of K bands. Let s assume we have a band B 2 A which has two predecessor bands: B r, B s A which are not connected. This means two possible routes are {... B r B 2...} and {... B s B 2...}. As each band has eactly one successor band, we know that the following is true: {... B 2 B 3... B K...}. 8
10 CHAPTER 2 Method 1: GCD-based bandcounting B r B s B 2 B 3 B K Figure 2.2: The cycle, the orbit will go on a K-band chaotic attractor. We suppose that B K leads to B r, hence B s (red) does not eist. We proved before that no band can be split up, hence B K can t lead to B r and B s. Instead B K has eactly one successor band: B r or B s (see Figure 2.2). If B K B r, B s / A. One of those two band s does not eist as it does not lie on the attractor in contradiction to the assumptions. Therefore each band of a chaotic attractor in dynamical systems discreet in time with a continuous system function has eactly one predecessor band. Now we know that in a dynamical system discreet in time with a continuous system function, each band of a chaotic attractor has eactly one successor band and one predecessor band. Hence the bands are traversed by an orbit sequentially and build a cycle. This can be formalized like that: n N i {0,..., K 1} : n B i n+1 B (i+1 mod K) (2.7) Generally, we can claim: A ε K > 0 m N : f [m] ( ) < ε K (2.8) That means, if we start at a point on the attractor, after m iterations there will be a point f [m] ( ) which is in the ε K -neighborhood of. We want that and f [m] ( ) belong to the same band, so ε K has to be chosen smaller than the gap between two bands. Let s assume all bands are small enough that all points belonging to one band are in the ε K -neighborhood of each other. Then Equation 2.8 would be true for m = K. 1 But as the bands could be bigger than the gaps between them, ε K has to be chosen small. Much smaller than the size of a band. Now we want to follow a orbit which hits B 1 at 0. After K iterations the orbit will hit that band again at point f [K] ( 0 ) = K. But, as ε K is small, the distance between K and 0 could be bigger than ε K. We make K iteration steps again. Now the distance between f [2K] ( ) = 2K and 0 could still be bigger than ε K. But as the bands are filled by points dense, there will surely be a point f [nk] ( ) = nk (n Z) that is in the ε K -neighborhood of 0. Thus the m in Equation 2.8 is a multiple of the bandcount K: ε K > 0 n N : f [nk] ( 0 ) 0 < ε K (2.9) 1 In fact we would find periodic solutions this way: m would be the period P. 9
11 CHAPTER 2 Method 1: GCD-based bandcounting We can obviously get infinite multiples m i = n i K, if we make infinite iteration steps. As K is a factor of every multiple, the greatest common divisor of all multiples converges against K. K = lim i ( GCD(n1 K, n 2 K, n 3 K,..., n i K) ) (2.10) Eample 1 The following eample bases on a real pass of the algorithm. The multiples are the number of iterations steps until a point within the ε K -neighborhood of the basis value 0 is found. The first multiple m 1 = 1268 is used to initialize K, whereas all following multiples m i are used to calculate a new bandcount K = GCD(K, m i ). ε K = = B = [ 0 ε K, 0 + ε K ] B 1 K = = [ 0 ε K, 0 + ε K ] B 1 K = GCD(1268, 4564) = = [ 0 ε K, 0 + ε K ] B 1 K = GCD(4, 5132) = 4... We hope that this will converge fast, because we can t perform a infinite number of iteration steps. In Eample 1 we only need two multiples to calculate the correct bandcount: m 0 = 1268 and m 1 = All following multiples will not change the bandcount anymore. But there is a problem. If we make less then 4564 iteration steps I, the result will be wrong. The required number of iterations I can be reduced, as we can get more multiples with less iteration steps. We can just save more then one basis point 0 for comparison. With 100 basis points 0, 1,..., 99, 400 iteration steps are enough to get the correct result. But this is a lower boundary, if we don t change ε K. The second problem is that the algorithm will obviously find periodic attractors too. Thus they have to be sorted out. This can be done with the same algorithm that is used in the AnT method period calculator to find periodic attractors by comparing the last point I to it s predecessors until we find a point in a ε P -neighborhood. If this is the case, a periodic solution is found. 2 2 When ε P = ε K, this can also be done with one comparison: If I I K < ε P, a period is found. 10
12 CHAPTER 2 Method 1: GCD-based bandcounting n+1 B 2a B 2b B 1 B 2 n Figure 2.3: Cobweb diagram of a piecewise linear map: a 2-band chaotic attractor at a = 0.08, b = 1.1, c = Applicability restrictions In section 2.1 it was proved that the GCD-based method works with continuous functions. Now we will see why it may not work with discontinuous ones. As eample let us consider the following scalar piecewise linear map with a system function that is discontinuous at the value = 0 and given by: n+1 = f( n, a, b, c) with R; a, b, c R { b + c, if < 0 f(, a, b, c) = a, if 0 (2.11) In Figure 2.3 we see the cobweb diagram of this function at the parameter values a = 0.08, b = 1.1, c = 0.4. It is a 2-band chaotic attractor, but there is a significant difference to the 4-band attractor shown in Figure 2.1. In case of a continuous function every band has eactly one successor. This is not the case here, because of the discontinuity at = 0. When an orbit hits band B 1, in the net iteration it can hit band B 2 at two different positions: B 2a and B 2b. In the following iteration step, B 2a will lead to B 2b, whereas B 2b leads to band B 1. That means that band B 2 has two successors: itself and band B 1. It also has two predecessors: B 1 and B 2. Hence, there are two different routes an orbit could go: {B 1 B 2a B 2b B 1 } and {B 1 B 2b B 1 } (see Figure 2.4). 11
13 CHAPTER 2 Method 1: GCD-based bandcounting B 1 B 2b B 2a Figure 2.4: The two routes the orbit can go in the piecewise linear map seen in Figure 2.3. The first route needs three iterations to hit the same band B 1 again, the second route only needs two iterations. Only the second route has a length that matches the correct number of bands. Thus m from Equation 2.8 is not a multiple of the bandcount. Hence Equation 2.9 and Equation 2.10 are not valid for system (2.11) and the method can t be applied. Eample 2 shows what happens, if the method is used with this system. Eample 2 The first multiple m 1 = is used to initialize K, whereas all following multiples m i are used to calculate a new bandcount K = GCD(K, m i ). With m 2 = the algorithm seems to work correctly, as we get K = 2. But after iteration steps, we get a wrong multiple, that is not really a multiple of the bandcount hence the bandcount will be recalculated wrongly to K = 1. ε K = = B = [ 0 ε K, 0 + ε K ] B 1 K = = [ 0 ε K, 0 + ε K ] B 1 K = GCD(12876, 21106) = = [ 0 ε K, 0 + ε K ] B 1 K = GCD(2, 37601) = 1... Surely a discontinuous function can be constructed, where the method still works. This is the case, when the discontinuity is not within one of the bands of the chaotic attractor. But in general, the GCD-based method can only be used with continuous system functions. We see that if we want to count the bands of all kinds of functions, there has to be developed a different approach. That s what the bocountingbased method in chapter 3 is all about. Let s get into the implementation. 12
14 CHAPTER 2 Method 1: GCD-based bandcounting 01: GCDbased () 02: begin 03: for all basis_points 04: do 05: if distance between new_point and basis_point < epsilon 06: then 07: // Found a multiple of the real bandcount 08: multiple := iterations between new_point and basis_point; 09: if bandcount = 0 10: then 11: bandcount := multiple; 12: else 13: bandcount := GCD (bandcount, multiple); 14: fi 15: else 16: // didn t find a multiple. Do nothing. 17: fi 18: od 19: if basis_points not full 20: then 21: Add new_point into basis_points-array 22: fi 23: end Figure 2.5: Pseudo-code for the GCD-based method 2.3 Implementation The straightforward implementation of the GCD-based method is easy. A pseudo-code is shown in Figure 2.5. This algorithm will be eecuted after each iteration step (the AnT iterloop) and will get a new point. The point is compared to the points saved in the array basis points. If it fulfills < ε K, the number of iteration steps between those two scan points and is a multiple of the bandcount K. Now the variable bandcount is updated and set to GCD(K, m). If the bandcount was not initialized yet, the first multiple, which is found will be used to do that. Afterwards the new point is appended to the array basis points, if it is not full yet. In the following, the variable bandcount will be recalculated with every new multiple that is found and will converge against K and finally reach it, if enough iteration steps where made. To get the time compleity, we assume that all points are saved in basis points. As this algorithm compares every scan point to all saved points it is O(n) for the n th step. As we make I iteration steps, the time compleity is the summation of those steps: I ( ) I (I + 1) O(i) = O = O(I 2 ) (2.12) 2 i=1 13
15 CHAPTER 2 Method 1: GCD-based bandcounting point iter Table 2.1: Sorted list of pairs. 1 st element: the first state space variable of a point, 2 nd element: the iteration-step of the point; sorted by the 1 st element iter y z Table 2.2: Array basis points for a 3-dimensional state space. = ( y z). Point The presented algorithm has quadratic runtime, what can be considerably improved, so let s see what we can do Improvement There are three ideas that improve the algorithm. The first is to create a sorted list and find the needed multiples much faster. The second is to terminate the algorithm when a heuristic says that the bandcount is found already. The third improvement is not to save all points for comparison. Sorted list The runtime of the straightforward implementation can be improved by getting the points in a ε K -neighborhood and thus the needed multiples without comparing every new point with each point in the array basis points. We need a order relationship to find these points faster. As the state space can be more-dimensional, a possible solution is to use the first dimension. We create a list of pairs. First element of a pair is the first dimension of a point, the second element is the iteration step (see Table 2.1). This list will be sorted with respect to the first state variable. The 2., 3.,... dimensions are still saved in the array basis points (see Table 2.2). To find a multiple, we now just have to search the lower boundary b l ε K and the upper boundary b u > +ε K, which can be found with binary search in O(log 2 n) time, where n is the number of points which are saved for comparison. Let s consider the eample in Table 2.1. Let ε K = 0.1 and the first dimension of : = The lower boundary b l ε K = 0.18 and 14
16 CHAPTER 2 Method 1: GCD-based bandcounting the upper boundary b u > + ε K = The resulting set of multiples is {7, 5, 9}. The search for multiples is completed if the state space dimension d = 1 and can use all the elements of the resulting set to calculate the bandcount. If the system got more dimensions, the set of multiples has first to be checked against all other dimensions like in the previous algorithm. In the above eample this would mean that in the array basis points seen in Table 2.2, the y and z components of iteration step 5, 7 and 9 have to be tested. Only the multiples where all components are in the ε K -neighborhood of the current scan point will be used, It is also possible to create a sorted list for every dimension, not only the first. With d dimensions there will be d of those sorted lists. The resulting sets have to be sorted and can then be compared with a merge-like algorithm, which only keeps the elements which belong to all resulting sets. This is a epensive thing to do, especially creating the sorted lists. Also, the tests with the 2D Hénon-map showed that most (more then 90%) of the points that are in the resulting set of the first dimension, also belong to the resulting set of the second dimension. That s why it is much faster to check the remaining dimensions 2,..., d with the trivial approach, but there could also be systems where the etra costs would pay off. Fast termination A second speedup is to terminate the algorithm, when the variable bandcount has converged against K. That means the bandcount is found already and it doesn t make sense to do lots of iteration steps that don t change the bandcount anymore. We can set a limit l, that if the bandcount didn t change for l multiples, the found bandcount will be assumed to be the final result. To make this work with less errors, the found bandcount has to be the same as in the previous scan. Select points As third improvement we can only save selected points to the sorted array. We don t need to save those points, which found a point in the sorted array that is in their ε K -neighborhood. Only the points which didn t find one are stored. Thus, after many iterations, the sorted array will be filled with points that are not in a ε K -neighborhood of each other, but are still so close that every new point will find a partner in that array. 15
17 CHAPTER 2 Method 1: GCD-based bandcounting Improved runtime In one-dimensional systems the time compleity for the n th step is O(log n). As we make I iteration steps: I O(log i) = O(I log I) (2.13) i=1 We see a big improvement compared to the quadratic algorithm. When the system has more dimensions, it is not easy to say how the runtime is, because the items of the resulting set are checked by a quadratic algorithm against dimension 2,..., d. But as number of elements of the resulting set is far below the number of iterations, also because of the third improvement, we could limit the size of the resulting set synthetically to, for eample 10 or 100. Then we would still have a logarithmic runtime. This does not make sense to implement, because we don t want to miss a multiple m, but it shows that the algorithm still is near logarithmic, even in high-dimensional systems. 16
18 Chapter 3 Method 2: Bocounting-based bandcounting There where different ideas for a method that works without any assumptions that where discarded. The first was to save the midpoints and catchment area of each band. But that doesn t work since bands can be longish and lie close to each other (e.g. Hénon). Another idea was to save all points in an tree-structure. This tree needs multidimensional access paths since the method should work multidimensional. Many points have to be compared to each other and it is not easy to find out which points belong to the same band. This compleity can be reduced when a grid structure is used and the points are saved in boes. As this approach is similar to the bocounting method and AnT already has a method based on bocounting, the idea was to modify that algorithm to be able to count bands. But the neighbor-information is important to do that and this was not given in that algorithm. Hence it had to be developed from scratch. In this chapter the idea of bocounting-based bandcounting is eplained. After that, an efficient implementation of this method is eplained in detail. 3.1 Idea What we need is a data structure where it is easy to find out neighbors, and where many points fit in without saving each of them separately. This method uses a multidimensional grid as basis structure. In Figure 3.1 we can see such a grid with lots of boes. The 5000 red points belong to the orbit of a 2-dimensional map which was proposed by Hénon in [8] and is 17
19 CHAPTER 3 Method 2: Bocounting-based bandcounting 0.48 y Figure 3.1: 2-band chaotic attractor of the Hénon map at = 1.13, β = 0.3 given by the equations n+1 = 1 2 n + y n y n+1 = β n (3.1) at = 1.13, β = 0.3. The ranges for the state variables are the intervals [ 1.08, 1.50] and [ 0.39, 0.48]. The grid has 43 boes which have the size 0.6 in -direction and 29 boes of size 0.3 in y-direction. Each point of an orbit falls into a bo and each bo counts how many points fall into it. That s where the name bocounting comes from. So each bo has saved BC points. If BC = 0 the bo is empty. The filled boes (BC > 0) are shown in Figure 3.2. We see, that the boes build two clusters which represent the two bands of the chaotic attractor. After all iterations are performed, the algorithm clusterize builds clusters out of neighbored boes. Neighbored boes are all boes that are around a bo, so each bo has eight neighbors in 2 dimensions. In general a bo has 3 d 1 neighbors, where d is the state space dimension. When the clusterization is done, the number of clusters is the bandcount K. To make this work correctly, the boes have to be small enough, so clusters representing different bands don t melt together. And the number of iterations has to be high enough, that no cluster is split up in the middle. 18
20 CHAPTER 3 Method 2: Bocounting-based bandcounting 0.48 y Figure 3.2: Application of the bocounting-based method for the 2-band chaotic attractor of the Hénon map at = 1.13, β = 0.3. Filled boes are shown in black. This method will, like the GCD-based method, also find periodic solutions. These will be filtered out like in the previous method by checking if there is a period. Therefore the parameter ε P will be used. Now we want to take a look at the implementation of the bocounting-based method. 3.2 Implementation The bocounting based method has a bofilling routine (eecuted in the AnT iterloop) which will get points and calculates the boes in which the points fall into. After all iteration steps are done, the clusterize -algorithm will be started (AnT post), which will return the number of bands. The clusterization needs a way to calculate neighbors of boes which are indeed with an one-dimensional array B[ ] which holds a multidimensional grid. In the following the structure of that array and the function which maps points into boes is eplained. After that we see an efficient way to calculate the neighbors of a bo. Finally a recursive and an iterative version of the algorithm clusterize are eplained. 19
21 CHAPTER 3 Method 2: Bocounting-based bandcounting Table 3.1: Array that saves the points in the boes. The numbers are the inde values of each bo. The 55 grid is in black tet. Dark blue are the maimal elements and the border is gray. The 9 in red is shown with its green neighbors The data structure First we need a way to save a grid that has d dimensions for d state variables. The number of partitions of the grid will be p i for the state variables where i = 0 for the first state variable, that means i < d. We will use a one-dimensional array to save the boes of the grid, as we want a generic implementation for all state space dimensions. In Table 3.1 we see a 2- dimensional eample of a grid with the number of partitions p 0 = 5 and p 1 = 5. The values in each bo is the inde i of the array B[ ] which saves the boes. Then, we need a row of empty boes around it and an etra bo for the maimal elements. This will be eplained later. The array holds integer values and all array elements are set to 0 in the beginning. Now we need a function that maps the points of an orbit into the boes of the grid. In the following a point is the vector ( d 1 ). We have to know the domain boundaries min i and ma i for every dimension. They can be set by user or be calculated automatically. Then a point has to be saved in the bo with the multi-inde MI, which is calculated component-wise as follows: MI i = i min i min i ma i p i + 1 (3.2) Here the decimal place is truncated with the operation, because MI i is an integer. Now we have d values saved in MI i and it has to be checked if these are inside our boundaries. So 0 < MI i < p i + 2 for every i < d has to be true. In Table 3.1 both values MI 0 and MI 1 must be in the interval [1, 6]. Now we can see why we need the etra boes for the maimal values (blue in Table 3.1), because orbits which lie eactly on the ma value ma i would be ignored. With this etra bo we have a closed range [ min i, ma i ]. 20
22 CHAPTER 3 Method 2: Bocounting-based bandcounting The multi-inde MI i can easily be converted to the inde i of our array. Here, for eample a multi-inde MI 0 = 3, MI 1 = 4 leads to the inde i = = 35. In 3 dimensions it is i = MI 0 +MI 1 (p 0 +3)+MI 2 ((p 0 +3)(p 1 +3)). The +3 comes from the three etra boes in every dimension. In general for d dimensions the inde is: ( d 1 k ( i = MI k p r 1 + 3) ) (3.3) k=0 r=1 For every point of an orbit the inde of the corresponding bo will be calculated and the value there will be increased by 1. After all iteration steps are finished, we have a grid whose boes are filled enough to start the second algorithm clusterize, which will build clusters out of the boes. The time compleity of this bofilling routine is O(1). As it is eecuted I times, it will run in O(I) Neighbors To build clusters out of the filled boes, we first need a way to calculate which boes are neighbored. Neighbors shall be all boes which are around a bo, also the diagonal ones. The origin bo will also be included. That the diagonal neighbors are necessary can be seen in the bottom right bo of the left cluster in Figure 3.2. As we have a one-dimensional array which holds the boes, we can locate a neighbor by adding a offset to the inde of a bo. These offsets are trivial for one dimension {0, 1, 1} where 0 is the origin bo and -1 and 1 are the offsets of the left and right neighbor of that bo. We will save all offsets into an array called neighbor offsets. For two dimensions this array is dependent from the number of boes per dimension p i which are used. In Table 3.1 it would be {0, 1, 1, 8, 9, 7, 8, 7, 9}. The net algorithm clusterize can easily calculate all neighbors to a given inde i just by adding i to all elements of the array neighbor offsets. For eample, the neighbors of bo with inde 9 are {9, 8, 10, 1, 0, 2, 17, 16, 18}. Now it becomes clearly why we need the border of empty boes. If we didn t have them we would get false neighbors, for eample, 15 is no neighbor of 16 in Table 3.1. And additional, this border is a barrier that the array can t be left, as only neighbors of filled boes will be calculated. We can stay in the inde of the array without further boundary checking. With d dimensions the number of neighbors is 3 d, as we include the offset 0 for the origin bo. Let q i be p i + 3, so q i contains the additional boes for the borders and the maimal elements. The neighbors are {0, 1, 1} for 1 dimension, {0, 1, 1, q 0, q 0 1, q 0 + 1, q 0, q 0 1, q 0 + 1} for two dimensions and so on. As the neighboroffsets-array only has to be built once, it can be done recursive without performance loss. The algorithm is shown in Figure
23 CHAPTER 3 Method 2: Bocounting-based bandcounting void SetNeighborOffsets (void) { neighbor_offsets.alloc ( pow(3, dimension) ); offsetcount = 0; SetNeighborOffsetsRek (0, dimension - 1); } void SetNeighborOffsetsRek (long inde, long dimleft) { neighbor_offsets[offsetcount++] = inde; neighbor_offsets[offsetcount++] = inde - 1; neighbor_offsets[offsetcount++] = inde + 1; } long offset = 1; for (int i = 0; i < dimleft; i++) { offset *= partitions[i]; SetNeighborOffsetsRek (inde - offset, i); SetNeighborOffsetsRek (inde + offset, i); } Figure 3.3: C++ code of the recursive algorithm to create an array of neighbor offsets. The variables dimension = d and partitions[i] = p i Clusterize This algorithm will build clusters out of neighbored boes which where filled before. We will first take a look at the trivial recursive version. And we will see why we need a iterative version of this algorithm. Recursive implementation The pseudo-code is in Figure 3.4. The function Clusterize Loop starts a big loop over all boes: from 0 to the maimum of boes: d 1 B ma = (p i + 3) (3.4) i=0 If a filled bo is found [Line 06] the recursive function Clusterize Rek is started. It has two parameters, first the bo number and second, the cluster, to which the bo belongs to. The bocount BC is added to cluster C 1 [Line 24] and then this bo is erased [Line 25]. Now the same algorithm starts recursive for all neighbored boes [Line 26-29]. This way, the algorithm consumes all boes that belong to one cluster and adds their bocount to the clustercount. When the recursive algorithm terminates, the cluster is complete and the function Clusterize Loop is taking over again. 22
24 CHAPTER 3 Method 2: Bocounting-based bandcounting 01: function Clusterize_Loop() 02: begin 03: int clusternr = 1; 04: for i = 0 to maboes 05: do 06: if bo[i] > 0 07: then 08: Clusterize_Rek(i, clusternr); 09: clusternr := clusternr + 1; 10: fi 11: od 12: end 20: function Clusterize_Rek(int bonr, int clusternr) 21: begin 22: if bo[i] > 0 23: then 24: Cluster[clusterNr] := Cluster[clusterNr]+ bo[bonr]; 25: bo[i] = 0; 26: for j = 1 to maneighbors 27: do 28: Clusterize_Rek(boNr + neighboroffsets[j], clusternr); 29: od 30: fi 31: end Figure 3.4: Pseudo-code of the recursive clusterize-algorithm The variable clusternr is increased in [Line 09] and the net filled bo is searched. Now the algorithm starts to build C 2, C 3,..., C K. The recursive approach works good in one-dimensional systems, but with more dimensions, it can get really slow and the recursion stack will get large. To make it work fast with more dimensions, the function was implemented iterative. Iterative implementation This approach uses the boes themselves to save the cluster they belong to. The algorithm will walk through all boes, and save their provisional cluster number into the bo. As the filled boes contain a positive number (the bocount BC), the cluster number can be stored as a negative value. If the algorithm detects that two different clusters are connected, it changes a value in a mapping table to merge the two clusters. After just one pass the clusterization will be done. The recursion stack will be substituted by two arrays. The first array saves the amount of points per cluster C[i] = C i. The second one is a mapping table that maps cluster-numbers to other clusternumbers M[ ]. 23
25 CHAPTER 3 Method 2: Bocounting-based bandcounting step 0 8 do nothing when bo empty clustercount = 0 actualcluster = i C[i] i M[i] step 9 clustercount = 1 actualcluster = i C[i] i M[i] step 11 clustercount = 2 actualcluster = i C[i] i M[i] step 14 clustercount = 3 actualcluster = i C[i] i M[i] step 17 clustercount = 3 actualcluster = i C[i] i M[i] step 19 clustercount = 3 actualcluster = i C[i] i M[i] Table 3.2: Steps of the clusterize algorithm. Red values are negative and indicate the cluster, where the bo belongs to. Blue values (positive) are the number of points that hit the bo. The boes with 0 in it are empty. Green values indicate changes in the arrays C[i] and M[i]. 24
26 CHAPTER 3 Method 2: Bocounting-based bandcounting 01: function Clusterize () 02: begin 03: for i = 0 to maboes 04: do 05: if bo is not 0 then 06: if bo has a orbit (>0) then 07: clustercount++; actualcluster=clustercount; 08: else if bo has cluster (<0) then 09: actualcluster=-bovalue; fi 10: for j = 0 to maneighbors 11: do 12: neighborbo = i + neighbors[j]; 13: if neighborbo has orbit (>0) then 14: C[M[actualCluster]] += B[neighborBo]; 15: B[neighborBo] = -actualcluster; 16: else if neighborbo has cluster (<0) 17: and B[neighborBo]!= -actualcluster then 18: merge(clusterofneighbor, actualcluster); fi 19: fi 20: od 21: fi 22: od 23: end Figure 3.5: Pseudo-code of the iterative clusterize algorithm To understand, how the algorithm in Figure 3.5 works, it will be eplained using the eample in Table 3.2. In these tables not the inde numbers of each bo is shown, but the contents. Keep in mind that the upper left bo has inde 0, the upper right has inde 7 and so on, just like in Table 3.1. B[ ] is the array that save the boes, so for eample B[9] = 2. M[i] is initialized with i and C[i] is set to 0, as well as actualcluster and cluster- Count. The algorithm will start a big loop from 0 to the maimum number of boes B ma (see Equation 3.4). First we make step 0 to 8 which means that the loop in [Line 03] starts at 0 and makes 9 steps. Nothing will be done since all nine boes are empty, that means if they are set to 0 [Line 05]. In step 9 the algorithm sees a filled bo that was hit by 2 points [Line 06]. ClusterCount is increased and actualcluster is set to clustercount [Line 07]. Now the array of neighbor-offsets comes into play [Line 12]. And all neighbors are investigated [Line 10-17]. The points saved in the bo and all neighbored boes are added to the actual cluster C[1] = B[9] + B[17] = 5 [Line 14]. In the boes which where not empty, now the cluster, to which they belong, is saved [Line 15]. This is done by saving 1 into the boes. These negative values are displayed in red in Table
27 CHAPTER 3 Method 2: Bocounting-based bandcounting 30: function Merge (long no1, long no2) 31: begin 32: target = map[no1]; 33: source = map[no2]; 34: cluster[target] += cluster[source]; 35: cluster[source] = 0; 36: for i = 1 to mapoisition of map 37: do 38: if map[i] == source then map[i] = target; fi 39: od 40: end Figure 3.6: Pseudo-code of the function merge Step 10 is not displayed as all following steps where the bo is empty. Step 11 and step 14 are eactly like step 9. Step 17 is different. Now the bo is not filled by an orbit, but it has a negative value that indicates that the bo contains its cluster number [Line 08]. The variable actualcluster is set to the cluster this bo belongs to, which is 1 in this eample [Line 09]. All neighbors are treated like in step 9, 11 and 14. In step 19, again the bo has saved a cluster-number and actualcluster is set to cluster 2. The lower bo is added as usual to C[2], but the lower-left bo has saved a cluster-number which is not the actualcluster [Line 16,17]. So, these clusters belong together and have to be merged [Line 18]. We don t want this to be a big deal, so we need a mapping-table, that maps different cluster-numbers to one big cluster. That is done with the function merge, which is shown in Figure 3.6. It adds C[2] to C[1] [Line 34] and overwrites all elements in the mapping-table M[ ] that are set to 2 with 1 [Line 36,39]. C[2] is then set to 0. To make this work, the elements in the cluster-table C[ ] are always addressed via the mapping-table like this: C[M[i]] [Line 14]. We don t know eactly how big the arrays C[ ] and M[ ] have to be. Especially for more-dimensional systems with many partitions, they can t be set to their maimal size because that would waste lots of memory. Hence they can be implemented, so they grow before they overflow. After the clusterize-algorithm is finished, we have an array which has saved the clusters and the points in each cluster. If the transient t was not long enough there could be clusters with points and some clusters with only a few points. Those could affect the result dramatically and it can be useful to filter the small clusters out. This is done by building the median of all clusters and ignore all clusters that are far below the median. But we must be careful with that because we don t want to loose clusters that really are bands. The remaining clusters can be counted and this will be the bandcount-result of this method. 26
28 CHAPTER 3 Method 2: Bocounting-based bandcounting The time compleity of the clusterization algorithm is O(B ma ). It is eecuted one time after the bofilling routine was eecuted I times. As both run in linear time, the runtime of the complete bocounting-based method is also linear: O(I + B ma ) (3.5) Hash-table When dealing with high-dimensional parameter spaces it is not suitable to use an array to save all boes. For eample an array of integers with elements would consume 3.64 TB system memory. Usually most of the boes are empty and the memory would be wasted. Hence a hash-table which only uses space for filled boes is a good solution to engage this problem. It can be implemented really easy, as we already use a one-dimensional inde i to address the boes. The hash-function is a modulo-division by the size of the hash-table h size : h(i) = i mod h size (3.6) Each element in the hash-table contains a linear list of boes. These boes save the inde i of the bo and the number of points in the bo BC. The access to a bo is still O(1), if the boes are evenly spread in the hash table. This can be achieved by using a large prime number as hash-size h size. 27
29 Chapter 4 Validation of the developed methods In this section, well-known systems will be investigated using both investigation methods, developed in this work. We have to distinguish between systems with continuous system functions and discontinuous ones, as the GCD-based method only works with continuous system functions. In this chapter, three continuous functions are presented. The logistic function as one-dimensional system, the Hénon map with two dimensions. Then the tent map as an eample for a piecewise linear maps will be eamined. Systems with discontinuous system functions are not well-known in the chaotic domain. two of them can be seen in chapter Logistic function (1D) As a representation of one-dimensional continuous smooth function let us consider the logistic function (see Equation 2.1). We see the bandcountdiagram in Figure 4.1 for the GCD-based method and Figure 4.1 shows the result of the bocounting-based method using p = In Figure 4.2 we see that the GCD-based method can calculate up to 512 bands using ε K = Both diagrams show the epected result: the well-known period doubling cascade to infinity. After that we see a band-merging scenario, but in the chaotic domain there are lots of periodic windows. These windows also have a period-doubling cascade followed by a band-merging scenario. 28
30 CHAPTER 4 Validation of the developed methods P and K Figure 4.1: Bifurcation diagram of the logistic map with period (magenta) and bandcount (blue) using the GCD-based method. P and K Figure 4.2: Blowup of the Bifurcation diagram of the logistic map with period (magenta) and bandcount (blue) using the GCD-based method. 29
31 CHAPTER 4 Validation of the developed methods P and K Figure 4.3: Bifurcation diagram of the logistic map with period (magenta) and bandcount (blue) using the bocounting-based method. 4.2 Hénon map (2D) The Hénon map was selected as a typical 2-dimensional dynamic system. Figure 4.4 shows the result of the GCD-based method. The bandcount compare precision is ε K = The bandcount-diagram, calculated by the bocounting-based method is shown in Figure 4.5. The bifurcation diagrams show a period-doubling scenario in the interval [0, 1.057] followed by a band-merging scenario. At [1.225, 1.262] there is a wide periodic window with a period doubling scenario building the sequence 7 2 n followed by a band-merging-scenario. As one can see, both methods deliver the epected result. 30
32 CHAPTER 4 Validation of the developed methods P and K Figure 4.4: Bifurcation diagram of the Hénon map with period (magenta) and bandcount (blue) using the GCD-based method. P and K Figure 4.5: Bifurcation diagram of the Hénon map with period (magenta) and bandcount (blue) using the bocounting-based method. 31
33 CHAPTER 4 Validation of the developed methods K Figure 4.6: Bifurcation diagram of the tent map with bandcount (blue) using the GCD-based method. 4.3 Tent map (1D) The tent map is a piecewise linear map. It s system function is continuous and is defined as follows: n+1 = f( n, ) with [0, 1], R f(, ) = ( ) (4.1) For [0.5, 0.8] it has only chaotic attractors. With the new bandcountermethod, we can see the band-merging scenario in Figure 4.6 and Figure 4.7. Both pictures are a combination of different parameter values. The picture showing the result of the GCD-based method in Figure 4.6 was made by using ε K = in the interval [0.5, 0.6] and ε K = 10 6 for the rest. The picture made with the bocounting-based method and uses three intervals with a different number of partitions p = in the interval [0.50, 0.52], p = for [0.52, 0.56] and p = for [0.56, 0.8]. 32
34 CHAPTER 4 Validation of the developed methods K Figure 4.7: Bifurcation diagram of the tent map with bandcount (blue) using the bocounting-based method. 33
35 Chapter 5 Parameter influences The results of both methods are depending on the parameter settings which are used. Merely there is no parameter setting, which leads to optimal results in any case. The parameter settings to be used depend on the specific properties of the investigated dynamical system. Anyhow there are some general rules, which should be taken into consideration. This section will show what can happen if the combination of the parameters don t fit and how to engage the arising problems. The goal is to get a sense how to use the parameters to get good results from the methods. In the last subsection there will be a performance comparison of both methods. 5.1 GCD-based method In the GCD-based method the interesting parameters are ε K (which is called bandcount compare precision in the AnT initialization file) in combination with the number of basis points BP (AnT ini: basis points) and the amount of iteration-steps I (AnT ini: number of iterations) which have to be set in the configuration of the system itself. These will be discussed in the net section. Then the fast termination in combination with the user value termination after will be eamined Compare precision The parameter bandcount compare precision ε K will be investigated now. It defines the maimal distance where it is assumed that two points belong to one band. In the following diagrams iterations where made at a transient of 2000, so effectively points where used to calculate the bandcount. For the basis points BP, an amount of 1000 where used and ma bandcount is set to 128. The only parameter that was varied together with ε K is ε P which is the period compare precision in the AnT initialization file. The value of ε P should always be equal or greater than ε K, never 34
36 CHAPTER 5 Parameter influences less, because then, good bandcount-results could be discarded when a period is found with an imprecise ε P. In the diagrams the period is not shown, because the investigated system has no stable periodic solutions there. The following figures are bandcount-diagrams of the tent map which was defined in Equation 4.1 for = 0.5 to = 0.8. The tent map does not have any periodic windows in the chaotic domain, hence it is appropriate to test the parameters of the method. K K Figure 5.1: Tent map: K-diagrams for ε K = 10 5 and ε K = 10 6 In Figure 5.1 we see that ε K = 10 6 leads to a better result then ε K = 10 5 due to the higher precision. The bandcount is shown in blue, while the bifurcation diagram is green. The left picture shows a bandcount of 8 where the right has 16. That means that the gap between the etra bands are too narrow to be kept apart by a precision of ε K = But at the right end of the right diagram we see that ε K = 10 6 calculates a bandcount of 2 in the middle of a 1-domain. Lets see where this error comes from and increase the precision. K K Figure 5.2: Tent map: K-diagrams for ε K = 10 7 and ε K = 10 8 In Figure 5.2 we see the bandcounts for ε K = 10 7 and ε K = The left diagram has many errors and the right has even more, but with ε K = 10 8 we see a 32-band chaotic attractor. As the configuration says that the maimum bandcount is 128, most false points in the right diagram are erased. Let s go even further. 35
37 CHAPTER 5 Parameter influences K K Figure 5.3: Tent map: K-diagrams for ε K = 10 9 and ε K = Not much new in the left diagram of Figure 5.3, but in the right we see a chaotic attractor with 64 bands. But even in the 32-band there is the first error. To get error-free and precise results, either the basis points must be increased or the number of iterations. An interesting task for the future would be to improve the method, that it uses different precisions at the same time and join the results, so that one scan like this would deliver a bandcount result from 1 to 64 bands Basis points The previous diagrams showed that ε K = 10 6 is a good value to make a fast overall scan, while ε K = is only suitable if we scan areas with small bands, because it would be nonsense to use that precision to detect a wide 1-band chaotic attractor. Let s see how to improve the bandcount-diagram at a mid value as ε K = 10 7 to supply a clean result. We only variate the basis points from 1000 to a value that seems to be a good result. K K Figure 5.4: Tent map: K-diagrams for BP = 2000 and BP = 4000 Figure 5.4 shows that with 2000 and 4000 basis points, there are still errors left in the two and one-band areas. With 5000 points, there is only one visible error. The results for more than 6000 basis points don t change the result anymore. A good value for the basis points is 1/3 to 1/2 of the 36
38 CHAPTER 5 Parameter influences number of iteration steps I. K K Figure 5.5: Tent map: K-diagrams for BP = 5000 and BP = 6000 In Figure 5.6 we see the result for basis points, which is the maimum, as we effectively make iteration steps. If we look closer (right picture), we see that there are still some gaps. Obviously we didn t get enough multiples to calculate the bandcount correctly at these scan points. Hence we have to increase the number of iterations to get better results. K K Figure 5.6: Tent map: K-diagrams for BP = and a closeup Number of iterations In this section we increase the number of iterations and use 1000 basis points. In Figure 5.7 we see that we need to increase the number of iterations really much to get less errors. Finally with (see Figure 5.8) Iterations we have a clean result. As the runtime of the GCD-based algorithm increases with the number of iterations I, it is essential to have I as small as possible. For eample, setting the number of basis points to higher values increases the performance, as we don t need as many iteration steps. 37
39 CHAPTER 5 Parameter influences K K Figure 5.7: Tent map: K-diagrams for I = and I = K K Figure 5.8: Tent map: K-diagrams for I = and I = Fast termination Using the fast termination mode can increase the performance of the GCDbased method. This mode will save the already calculated bandcount K old of a scan-point. This will be compared to the bandcount of the actual scanpoint K new. K new will at first be much bigger, but when it reaches K old, and doesn t change for l (AnT ini: termination after) new found multiples, the algorithm will terminate and the current result K new will be used. The speedup was incredible, when using the trivial implementation with quadratic runtime, but with the current implementation with logarithmic runtime, it is at about 30 %. The biggest speedup can be achieved in the periodic areas of the dynamic system. l speedup 36.1 % 36.1 % 36.1 % 36.1 % 36.1 % 36.1 % 28.9 % errors Table 5.1: Fast termination: speedup vs. errors in the logistic map But the lower the parameter l is, the more likely there will be errors, especially at bifurcation points. In Table 5.1 we see that in the logistic map 38
40 CHAPTER 5 Parameter influences we don t need high values for l to produce correct results. The speedups are good but not impressive. It becomes better, the more iterations and the more basis points are in use. l speedup 86.1 % 82.2 % 74.7 % 65.7 % 54.1 % 40.1 % 29.1 % errors Table 5.2: Fast termination: speedup vs. errors in the tent map. In Table 5.2 we see the results for the tent map. We need much larger limit l to get a result without errors. The 4 errors are at the bifurcation points from 16 to 8, 8 to 4, 4 to 2 and 2 to 1-band chaotic attractor Conclusion We saw before that there are two ways to improve the results. The best is to use both simultaneously. Increasing the basis points to more than half of the iterations usually doesn t improve the result. Instead both, the number of iterations and the number of basis points should be increased linearly to get better results. In Table 5.3 we see how many iterations are needed to calculate the bandcount of the logistic function and the tent map. We can make an approimation based on that table, which gives a good starting position, when investigating dynamical systems. A good value for overall scans is to set the number of iteration steps to: I = c 2.8 log 10 ε K with c R (5.1) The parameter c is dependent on the system investigated. For the logistic map c = 6 is a good value, while for the tent map c = 13 gives a good result, which can be seen in Figure 5.9. If the investigated areas have many small bands, less iteration steps are needed than with a scan in an area that has only a view big bands. We saw (e. g. in Figure 5.8) that most errors are in the areas with one or two big bands. In the tent map with ε K = 10 9 we have only one error with I = which will not disappear until I = In these areas it is adequate to use a bigger ε K as the number of iteration steps can be reduced by that. ε K I logistic I tent Table 5.3: Number of Iterations needed for different ε K in the logistic map and the tent map. 39
41 CHAPTER 5 Parameter influences I Figure 5.9: Approimations for the number of Iterations for different ε K compared to the calculated values seen in Table 5.3. Both aes have log scales. The lines for the logistic map are red, the lines for the tent map are blue. The straight lines are the corresponding approimations from Equation 5.1 with c = 6 (logistic map) and c = 13 (tent map). ε K 5.2 Bocounting-based method Here the parameters of the bocounting-based method are investigated. The precision of this method clearly is dependent on the number of partitions p used (AnT ini: number of boes). In subsection we will see how the results are affected and which errors can be seen if p is not chosen big enough. In order to get good results the number of partitions determine the number of iteration steps I needed. The relationship between the number of iterations and the number of partitions is shown in subsection The parameters for the hash-table don t change anything in the result. Instead, the hash-table affects the performance negatively but uses much less memory. Therefore it is investigated in the performance comparison in section Number of partitions In this section we will see some pictures which show typical errors when using a limited number of partitions p. We use enough iteration steps that these pictures contain the best possible result. When using not enough partitions p, the method is not able to distinguish small bands. A common error that can be seen is that the method will only 40
42 CHAPTER 5 Parameter influences give a divisor of the real bandcount. In the tent map in Figure 5.10 we see that with partitions, we get K = 4 bands as result, while with p = we will get K = 8. We see in the blowup in Figure 5.10 that only shows a part of the bifurcation diagram, that the 8-band chaotic attractor, which can be seen at scan-point = 0.54, has etremely small gaps between the bands. (Note, that in that blowup we only see a small area around = 1. Where two bands are seen, there are two other bands outside of the picture.) K Figure 5.10: Tent map: Bifurcation diagram (top right) and blowup of a small area around 1 (left). K-diagram using p = (red) and p = (blue) give different results. A second error that comes with different p is, that bifurcation-points shift. The more partitions we use, the more precise the bifurcation point can be spotted. In Figure 5.11 it can be seen that when using p = instead of p = 1000, the point, where the bocounting-based method detects the bifurcation from a two-band to a one-band chaotic attractor, shifts to the right. In Figure 5.12 we see the waterfall-error which can be seen near bifurcation points. With p = 1000 the clusters of boes representing the bands melt together where the bands have too small gaps in-between and we get results for the bandcount of 7, 6, 5 instead of 8, what looks like a waterfall. The error disappears when increasing the number of partitions. With p = we have still an error in the 16-band. With partitions, the result is clean at this resolution of scan-points. 41
43 CHAPTER 5 Parameter influences K Figure 5.11: Tent map: Bifurcation diagram (left) and K-diagram (right) using p = 1000 (red) and p = (blue). We see how the bifurcation point shifts right when using more partitions Iterations versus number of partitions The phenomenon when using not enough iteration steps is the disintegration of bands, what we see in Figure The small bands are calculated correctly, only limited by the number of partitions p = which are used. In these areas, the number of iteration steps we need is much smaller than in the domain of wide one- and two-band chaotic attractors, where we see the disintegration of the bands as there are more and more empty boes within a cluster. A second kind of the waterfall-error can be seen at the bifurcation point, where the eight-band chaotic attractor becomes a four-band chaotic attractor. Both errors can be removed if we use enough iteration steps. In Table 5.4 we see the number of iterations I needed to get a good result in respect to the number of partitions p when eamining the tent map for [0.5, 0.8] and the logistic map for [3.1, 4.0]. First we made a scan run with way too many iterations and then we made several runs to see how many iterations are really needed to get the same result, using the UNIX diff command. It is critical for the bocounting-based method, that the ratio of the number of iterations and the number of partitions is high enough. For the simplicity, we assume that we have the same number of partitions for all state variables. The method can only deliver good results if I is set high enough. We can define a ratio r as followed: r = I p with r R (5.2) Unfortunately this ratio is not the same for all systems. It is dependent on the density of the points throughout each band. If a band has parts, which are not visited by an orbit often, it needs a large number of iterations to get enough points that the area and thus the boes in this area get filled. If there is only one bo which is empty inside a band, the band will be divided 42
44 CHAPTER 5 Parameter influences p = 1000 K p = 4000 K p = K p = K Figure 5.12: Logistic map: Bifurcation diagram (left) and K-diagrams (right) for different p. We see how the waterfall error disappears by increasing the number of partitions. r 43
45 CHAPTER 5 Parameter influences K K Figure 5.13: Tent map: K-diagrams for I = with p = Disintegration of wide bands. p I log r log I tent r tent Table 5.4: Number of Iterations needed for different p in the logistic map and the tent map and the ratio r. and the method will find two bands. 1 Therefore the number of iterations have to be set much higher on those systems, hence the ratio r is different for each system. The ratio r is also dependent from the number of scan points we want to calculate. The more points we use, the more likely there will be a scan-point which is not as easy to handle as the others. For eample with p = 8000 in the logistic map there is only one error left with I = To get rid of it, the number of iterations have to be raised to I = If we look at the bifurcation diagrams of the logistic map and the tent map (Figure 5.15), we see in the one-band domains that the density in the tent map is almost equally distributed, while the logistic map has structures in the bands. The higher we set the number of partitions, the more the problem of unevenly spread points becomes. If we calculate the ratio for both maps, we see that r for the tent map stays at about the same level of r = 8.8 while in the logistic map that problem causes r to increase with the number of partitions p (see Table 5.4). As we want to know how many iteration steps wee need, we can approimate them by: I = r p with r R (5.3) 1 This is true for d = 1. In high-dimensional parameter spaces, there could be more connections so this failure won t happen that easy. 44
46 CHAPTER 5 Parameter influences I Figure 5.14: Approimations for the number of Iterations for different p compared to the calculated values seen in Table 5.4. The lines for the tent map are blue, the lines for the logistic map are red. The straight lines are the corresponding approimations from Equation 5.3 with r = 8.8 (tent map) and r = 80 (logistic map). ε K Figure 5.15: Bifurcation-diagrams of the tent map (left) and the logistic map (right). In Figure 5.14 we see the approimations using r = 8.8 for the tent map and r = 80 for the logistic map. The logistic map has one problem scanpoint which is = It is directly at a bifurcation point where a tree-band chaotic attractor becomes a one-band chaotic attractor. This problem is the waterfall-error, seen before. It can also be caused, when not using enough iteration steps. 45
47 CHAPTER 5 Parameter influences Error threshold We didn t talk about the error threshold yet. This is a parameter which can make bad results better. Is uses the assumption that the real bands are big while error-bands are small. Hence the bands which have a number of points which is far below the median of all bands are considered to be errors. But it turned out that this is not suitable for all systems. In systems with continuous system functions, in which the bands are visited by an orbit periodically, the bands all have the same number of points after a scan run is finished. Here the error threshold can t make any big mistakes. But these systems can be analyzed much better with the GCD-based method. The bocounting-based method was especially developed for systems, which have discontinuous system functions. In these, the assumption above is not valid, instead there can be bands with only a very limited number of visits. As we don t want to discard them, the error threshold should be set to 0 in those systems. In fact, the positive effects of an error threshold can be substituted by setting the transient high enough. This way, we get clean results without using the error threshold. 5.3 Performance comparison In this section the two different methods and their performance 2 will be compared. Therefore we want both methods to create comparable results and measure the used time and memory resources. Logistic map The first is the logistic map. We calculate 600 scan points from = [2.8; 4.0]. For the GCD-based method we use ε K = A corresponding parameter value for the Bocounting-based method would be to set the number of partitions p 0 = 1 ε K = when using a domain range of [0, 1]. Both methods consume about 20 MB of system memory. First we make a scan run with conservative parameter values as a reference with the best possible result. Then we optimize the parameters and check the if the result is still valid (with the UNIX-command diff ). The final result for the GCD-based method was s using I = 13000, BP = 3000 and fast termination with a value of 2. 2 The performance tests where eecuted on an AMD Athlon XP Thoroughbred-B (256 KB L2-cache) at 2200 MHz, 200 MHz FSB and 1024 MB DDR-SDRAM on a NVIDIA nforce 2 board running Fedora Core 4. The user CPU time of the UNIX command time is used for comparison. 46
48 CHAPTER 5 Parameter influences The bocounting-based method would need ten million iteration steps. It was only calculated on a cluster of 16 CPUs and it delivered a comparable result the GCD-based method. As this method scales with the number of iteration steps linear, we can calculate an approimate runtime of 3 to 4 hours on the comparison system. But that does not mean that this method isn t useful at all. We can create a result that has only five differences (that is only % of the 600 scan points) to the result of the GCD-based method in s with the parameter values I = and p 0 = Tent map In the Tent map, we investigate a high-band area for [0.5, 0.52] using p = with 40 scan points. The bocounting-based method takes the time of 164 s consuming 95.2 MB of system memory for the investigation of the high-band area [0.5, 0.52] using p = Here we can reduce the requires system memory to 23,4 MB, using the hash instead of an array. The negative effect on the performance is not really big. The method needs 195 s to calculate the result and finds a 16-band chaotic attractor. Again, the GCD-based method is superior. It can find a 32-band chaotic attractor using ε K = 10 9 in only 16 s. Conclusion As conclusion, we can say, that with dynamical systems discreet in time with continuous system functions the GCD-based method is the right choice. It is much faster and more precise. The bocounting-based method can be used to get an fast overview, but its domain is the investigation of dynamical systems with discontinuous system functions. This can be seen in the net chapter. 47
49 Chapter 6 New results As the work on the bandcounter was successful and it showed impressive results in the validation, we also want to present some new results of dynamical systems, never investigated in such a manner before. The first to be investigated is the Banerjee map and second a piecewise linear map will be eamined briefly. 6.1 Banerjee map In this section we investigate a piecewise smooth dynamical system, which is a simplified model of some sort of DC-DC converter [9, 10]: n+1 = { f( n, a, b, µ, l) with a, b, µ, l R a + µ, if < 0 f(, a, b, µ, l) = b + µ + l, if 0 (6.1) Obviously, this system has four parameters and hence one has to investigate the dynamic behavior in a 4D parameter space. Of course one can try to get rid of some parameters by a suitable transformation, but it turns out, that this is not completely possible. In fact, one can show, that depending on the parameter l system (6.1) can be mapped by the following transformation (, a, b, µ) (/l, arctan(a), arctan(b), arctan(µ)/l) if l > 0 (, arctan(a), arctan(b), arctan(µ)) if l = 0 ( /l, arctan(a), arctan(b), arctan(µ)/l) if l < 0 (6.2) 48
50 CHAPTER 6 New results to the following three systems: n+1 = f( n ) = n+1 = f( n ) = n+1 = f( n ) = f l ( n ) = tan(a) n + tan(µ), if n < 0 f c ( n ) = 0, if n = 0 f r ( n ) = tan(b) n + tan(µ) + 1, if n > 0 f l ( n ) = tan(a) n + tan(µ, ) if n < 0 f c ( n ) = 0, if n = 0 f r ( n ) = tan(b) n + tan(µ), if n > 0 f l ( n ) = tan(a) n + tan(µ), if n < 0 f c ( n ) = 0, if n = 0 f r ( n ) = tan(b) n + tan(µ) 1, if n > 0 (6.3) (6.4) (6.5) Hereby, the new three parameters a, b and µ take values from the finite interval [ π/2, π/2] instead from the infinite interval [, ]. Although this does not really matter from the mathematical point of view, it is preferable to work with finite parameter ranges instead of infinite ones. The structure of the areas with stable periodic dynamics represent a subject of current investigation ([7, 6]). It is especially shown in the cited works that the area of this dynamics does not cover the parameter space of system (6.1). Instead, system (6.1) shows chaotic dynamics as well. Hereby in the cited works is shown, that the structure of the area with periodic dynamics is dominated by few co-dimension three bifurcations. Currently, the question arises, whether the influence of these bifurcations can be observed in the area of chaotic dynamics as well. Hereby the periodic solutions, which emerge at the co-dimension three bifurcation points and become unstable at the boundary of the influence area of these bifurcations, have to be investigated. In the area of chaotic dynamics these unstable orbits determine the structure of chaotic attractors and should be especially reflected in the corresponding bandcount structure. Therefore the investigation eamples shown in the following represent basics for the future investigation of the influence of multi-parametric (here: co-dimension three) bifurcations in the area of chaotic dynamics. Figure show some bifurcation scenarios, which can be observed if the parameters are varied from the area of periodic dynamics to the area of chaotic behavior (see Figure 6.1), using the case of l = 1 (Equation 6.5). As one can see, in all demonstrated eamples the period before transition to chaos is the same (namely, P = 3). However, the structures of the chaotic attractors after this transition are very different and difficult to eplain. At some parameter values we observe only attractors with few bands, like in Figure 6.6. In other eperiments we observe comple structures with large bandcounts. In the cited works it is shown, that it is not possible to eplain the structure of the area with periodic dynamics based on eperiments, where 49
51 CHAPTER 6 New results π/4 µ 0 0 b Figure 6.1: Banerjee map: 2D-Parameter space. Chaotic dynamics in the right area, periodic dynamics in the left. The Blowup shows the area and the lines which where scanned the net sites. π/2 only one parameter is varied. Our eperiments show, that the same can be stated for the area of chaotic dynamics as well. In Figure 6.15 detected bandcounts are shown in the 2D area of the parameter space, which where seen as slices in Figure The underlying structure can be recognized easily. The eistence areas of chaotic attractors with specific bandcounts have triangle or route-like shapes. Figure 6.9 for eample with the sequence of 8, 5, 8, 5 can be seen clearly in Figure It remains an interesting task for the future investigation, to describe the bifurcations leading to the change of the bandcount. Figure 6.15 represents the first step in this direction, where the bifurcation points are determined numerically. P, K µ µ Figure 6.2: Bifurcation diagram of the Banerjee map (left) and the periods (magenta) and bandcount (blue) for a = 0.5, b =
52 CHAPTER 6 New results P, K µ µ Figure 6.3: Bifurcation diagram of the Banerjee map (left) and the periods (magenta) and bandcount (blue) for a = 0.5, b = 0.9. P, K µ µ Figure 6.4: Bifurcation diagram of the Banerjee map (left) and the periods (magenta) and bandcount (blue) for a = 0.5, b = P, K µ µ Figure 6.5: Bifurcation diagram of the Banerjee map (left) and the periods (magenta) and bandcount (blue) for a = 0.5, b =
53 CHAPTER 6 New results P, K b b Figure 6.6: Bifurcation diagram of the Banerjee map (left) and the periods (magenta) and bandcount (blue) for a = 0.5, µ = P, K b b Figure 6.7: Bifurcation diagram of the Banerjee map (left) and the periods (magenta) and bandcount (blue) for a = 0.5, µ = P, K b b Figure 6.8: Bifurcation diagram of the Banerjee map (left) and the periods (magenta) and bandcount (blue) for a = 0.5, µ =
54 CHAPTER 6 New results P, K b b Figure 6.9: Bifurcation diagram of the Banerjee map (left) and the periods (magenta) and bandcount (blue) for a = 0.5, µ = P, K b b Figure 6.10: Bifurcation diagram of the Banerjee map (left) and the periods (magenta) and bandcount (blue) for a = 0.5, µ = P, K b b Figure 6.11: Bifurcation diagram of the Banerjee map (left) and the periods (magenta) and bandcount (blue) for a = 0.5, µ =
55 CHAPTER 6 New results P, K b b Figure 6.12: Bifurcation diagram of the Banerjee map (left) and the periods (magenta) and bandcount (blue) for a = 0.5, µ = P, K b b Figure 6.13: Bifurcation diagram of the Banerjee map (left) and the periods (magenta) and bandcount (blue) for a = 0.5, µ = P, K b b Figure 6.14: Bifurcation diagram of the Banerjee map (left) and the periods (magenta) and bandcount (blue) for a = 0.5, µ =
56 CHAPTER 6 New results µ K Figure 6.15: 2D bandcount diagram (color coded) of the Banerjee map. We see the complete area which is shown in slices in Figure b 55
57 CHAPTER 6 New results b K c Figure 6.16: 2D bandcount diagram system (6.6) at a = Piecewise linear map Another dynamical system we consider here is given by f l ( n ) = b n + c if n < 0 n+1 = f c ( n ) = 0 if n = 0 f r ( n ) = n a if n > 0 (6.6) This map initially introduced in [3] is used in [5, 6] in order to demonstrate an unfolding of a co-dimension three discontinuity induced big bang bifurcation. Like for system (6.1), in the cited works only that part of the parameter space is investigated, where system (6.6) has periodic and as a limit case quasi-periodic attractors. Although it is known, that system (6.6) shows chaotic dynamics as well, these dynamics still are not investigated. In Figure 6.16 we present a bandcount diagram of the piecewise linear map. It shows the 2D parameter space of this map and the bandcount is color-coded. It is clearly shown, that there are at least two types of structures in the area of chaotic dynamics of system (6.6). In the right part of Figure 6.16 (c > 0.1) the structures are similar to these observed in the banerjee map. There are, again, triangles and each triangle has again triangles which describe areas with higher bandcounts. There is an increment of the bandcount from left to right. On the right side there are more organic structures, also with an increment of the bandcount which can not be seen really good in this picture. Again, this is an interesting field to be investigated in the future. 56
58 Chapter 7 Summary and future aspects Both bandcounting methods developed within this work can generate good results. The GCD-based method is much more elegant and can be used to get really clean bandcount-diagrams. When it can be applied, it s results are superior to them of the bocounting-based method. The interesting theoretical part is that we proved that in dynamical systems discreet in time with continuous system functions, the bands of a chaotic attractor are hit sequentially, almost like in the periodic solutions. Due to the fact that this is the fundament of the GCD-based method, it only supports dynamical systems discreet in time with continuous system functions. It can t be used with dynamical systems that have discontinuous system functions, as it does not count the bands of those systems. Nevertheless it can deliver some interesting results on those too (which are not shown in this work), it may give a hint on some hidden structure of those bands, what could be investigated in the future. The bocounting-based method was created to support all kinds of dynamical systems discrete in time, also those with discontinuous system functions, which are currently of much interest in research. Investigating dynamical systems continuous in time using Poincaré sections should also work fine. Since it was not tested during this study, this is a interesting task for the future. New functionality The methods could be enhanced with new functionality, for eample saving the minimum and maimum of each band would be easy to implement with the GCD-based method. If K = 4 we would only have to compare every fourth element of the basis points-array. But this would only make sense for one-dimensional systems. 57
59 CHAPTER 7 Summary and future aspects Basis for new investigations As it can be seen in chapter 6, the method bandcounter is an investigation method that provides a not previously listed insight into the structure of the chaotic domain of dynamical systems. Like in investigations of the periodic domain, it is shown that to understand those structures, it is useful to investigate a 2-dimensional scan, as the 1D-scans are often an improper representation to understand the underlying structure. The results of the method bandcounter should be one part of investigation and could be combined with the investigation of unstable orbits, to find out how they affect the chaotic structures in those systems. 58
60 Bibliography [1] AnT, the NLD group software package for simulating dynamical systems, University of Stuttgart, IPVS. [2] J. Argyris, G. Faust, and M. Haase. Die Erforschung des Chaos. Vieweg, [3] V. Avrutin and M. Schanz. On the scaling properties of the periodincrement scenario in dynamical systems. Chaos, Solitons & Fractals, 11: , [4] V. Avrutin and M. Schanz. Ant a tool for simulating and investigating dynamical systems. In E. Schöll and K. Lüdge, editors, Proc. of XXV Int. Conf. Dynamic Days Europe, volume 29 E of Europhysics Conference Series. TU Berlin, [5] V. Avrutin and M. Schanz. On multi-parametric bifurcations in a scalar piecewise-linear map. Nonlinearity, 19: , [6] V. Avrutin and M. Schanz. On some types of discontinuity induced co-dimension three bifurcations. submitted to Int. J. on Dynamical Systems, [7] V. Avrutin, M. Schanz, and S. Banerjee. Multi-parametric bifurcations in a piecewise linear discontinuous map. submitted to Nonlinearity, [8] M. Hénon. A two-dimensional mapping with a strange attractor. Commun. Math. Phys., 50:69, [9] P. Jain and S. Banerjee. Border collision bifurcations in one-dimensional discontinuous maps. Int. J. Bif. & Chaos, 13(11): , [10] Zh. T. Zhusubaliyev and E. Mosekilde. Bifurcations and Chaos in piecewise-smooth dynamical systems, volume 44 of Nonlinear Science A. World Scientific,
61 List of Figures 2.1 Cobweb diagram of the logistic map at = Cycle of a chaotic attractor Cobweb diagram of a piecewise linear map Two possible routes in piecewise linear map Pseudo-code for the GCD-based method band chaotic Attractor of the Hénon map Application of the bocounting-based method Algorithm to create array of neighbor offsets Pseudo-code of the recursive clusterize-algorithm Pseudo-code of the iterative clusterize algorithm Pseudo-code of the function merge Logistic map: Bifurcation / K diagram Logistic map: Bifurcation / K diagram Logistic map: Bifurcation / K diagram Hénon map: Bifurcation / K diagram Hénon map: Bifurcation / K diagram Tent map: Bifurcation / K diagram Tent map: Bifurcation / K diagram Tent map: K-diagrams for ε K = 10 5 and ε K = Tent map: K-diagrams for ε K = 10 7 and ε K = Tent map: K-diagrams for ε K = 10 9 and ε K = Tent map: K-diagrams for BP = 2000 and BP = Tent map: K-diagrams for BP = 5000 and BP = Tent map: K-diagrams for BP = and a closeup Tent map: K-diagrams for I = and I = Tent map: K-diagrams for I = and I = Approimations for the number of iterations Tent map: more partitions more bands Tent map: Bifurcation point shift error Logistic map: Waterfall error Tent map: Disintegration of wide bands
62 LIST OF FIGURES 5.14 Approimations for the number of iterations Bifurcation diagram: tent map and logistic map Banerjee map: 2D-Parameter space Banerjee map: K-diagram for a = 0.5, b = Banerjee map: K-diagram for a = 0.5, b = Banerjee map: K-diagram for a = 0.5, b = Banerjee map: K-diagram for a = 0.5, b = Banerjee map: K-diagram for a = 0.5, µ = Banerjee map: K-diagram for a = 0.5, µ = Banerjee map: K-diagram for a = 0.5, µ = Banerjee map: K-diagram for a = 0.5, µ = Banerjee map: K-diagram for a = 0.5, µ = Banerjee map: K-diagram for a = 0.5, µ = Banerjee map: K-diagram for a = 0.5, µ = Banerjee map: K-diagram for a = 0.5, µ = Banerjee map: K-diagram for a = 0.5, µ = Banerjee map: 2D bandcount diagram Piecewise linear map: 2D bandcount diagram
63 List of Tables 2.1 Sorted list of pairs Array basis points Array that holds bocounting-information Steps of the clusterize algorithm Fast termination: speedup vs. errors in the logistic map Fast termination: speedup vs. errors in the tent map Number of iterations needed for different ε K Number of iterations needed for different p A.1 Bandcounting methods
64 Appendi A Initialization file The investigation method bandcounter implements the calculation of the bandcount K for dynamical systems discrete in time. K is the number of bands, which build a chaotic attractor. We will present an overview of all parameters which are used in the initialization file of AnT. The bandcounter has two methods, which are selected with the key method which can be set to "gcd based" and "bo counting based". Some keys are shared by both methods, others are used by one of the methods only. A.1 Options overview is active Sec. A.2 method Sec. A.3 Shared keys (Sec. A.4) transient ma bandcount period compare precision period period file bandcount file Sec. A.4.1 Sec. A.4.2 Sec. A.4.3 Sec. A.4.4 Sec. A.4.5 Sec. A.4.6 Keys specific for the GCD-based method (Sec. A.5) bandcount compare precision Sec. A.5.1 basis points Sec. A.5.2 fast termination Sec. A.5.3 termination after Sec. A
65 CHAPTER A Initialization file Keys specific for the bocounting-based method (Sec. A.6) automatic domain detection domain boundaries number of boes error threshold use hash hash size Sec. A.6.1 Sec. A.6.2 Sec. A.6.3 Sec. A.6.4 Sec. A.6.5 Sec. A.6.6 A.2 Activation of the method The method is applicable for dynamical systems discrete in time. For dynamical systems continuous in time the bandcount can be estimated using Poincaré sections. The method is activated using the key is active: name type status is active boolean mandatory A.3 Selection of a method One of the methods to calculate the bandcount has to be chosen. They can t both be used at the same time. The graphical user interface of AnT will only show the keys that belong to the corresponding method. The method is chosen using the key method: name method type string status mandatory values see Table A.1 setting Reference "gcd based" Sec. A.5 "bo counting based" Sec. A.6 Table A.1: Bandcounting methods A.4 Shared keys These keys are used for both, the GCD-based and the bocounting-based method. 64
66 CHAPTER A Initialization file A.4.1 Transient As the bandcount is a method that finds out something about the asymptotically behavior, it is useful to wait some transient steps until the method starts it s work. The transient is chosen in the field transient: name transient type integer status mandatory values 0; ( 500 when auto bound bo = "yes") default 1000 A.4.2 Maimal bandcount All resulting values for bandcount or period above this will be ignored. For period detection only that much iterations will be used. This is controlled by the field ma bandcount: name ma bandcount type integer status mandatory values > 0 default 128 A.4.3 Period compare precision This value is used to determine if it is a periodic or a chaotic attractor. Two states will be assumed to be identical if the distance in-between is less than this value. name period compare precision type integer status mandatory values > 0 default 10 8 A.4.4 Period The bandcount file is always saved, while for the period file it can be chosen. This field controls whether the period file is saved or not. name type status default period bool mandatory "no" 65
67 CHAPTER A Initialization file A.4.5 Period file This field specifies the period file name. name type status default period file string mandatory "bandcount period.tna" A.4.6 Bandcount file This field specifies the bandcount file name. name type status default bandcount file string mandatory "bandcount.tna" A.5 GCD-based method These keys are used by the GCD-based method, which is only suitable for dynamic systems discreet in time with continuous system functions. If the function is discontinuous this method may compute false results. Use the bocounting-based method for such systems. eample band counter = { is active = "yes", method = "gcd based", transient = 1000, ma bandcount = 128, period compare precision = 1e-08, bandcount compare precision = 1e-05, basis points = 2000, fast termination = true, termination after = 50, period = "yes", period file = "period.tna", bandcount file = "bandcount.tna" } A.5.1 Bandcount compare precision This value is used to calculate the bandcount. Two states will be assumed to belong to the same band if the distance in-between is less than this value. The iteration steps between these states are multiples of the bandcount. The multiples are used to calculate the bandcount by building the greatest 66
68 CHAPTER A Initialization file common divisor of them all. The precision can be controlled by the field bandcount compare precision: name bandcount compare precision type integer status mandatory values > 0 default 10 6 A.5.2 Basis points Here we specify how many points are used as basis to calculate the bandcount. Higher values will lead to better results. name basis points type integer status mandatory values > 0 default 1000 A.5.3 Fast termination This mode can be used to speed up the search for bands. It can be controlled by the value in Sec. A.5.4. It can be enabled with the field fast termination: name type status default fast termination bool optional "no" A.5.4 Termination after This key is only used when fast termination is enabled. It is assumed that the right bandcount is found, when the bandcount did not change after l found multiples and when the bandcount of the previous scan point was the same. Speeds up the algorithm, but low values may lead to incorrect results. It is controlled by the key termination after: name termination after type integer status mandatory when fast termination = "yes" values 0 default 20 67
69 CHAPTER A Initialization file A.6 Bocounting-based method These keys are only used by the bocounting-based method, which can be used for all dynamical systems discrete in time, also for continuous systems which are discretized by Poincaré sections. But it is slower than the GCDbased method. eample band counter = { is active = "yes", method = "bo counting based", transient = 1000, ma bandcount = 128, period compare precision = 1e-08, automatic domain detection = "no", domain boundaries = ((0.0,1.0),(0.0,1.0)), number of boes = (1000,1000), error threshold = 20, use hash = "no", hash size = 0, period = "yes", period file = "period.tna", bandcount file = "bandcount.tna" } A.6.1 Automatic domain detection The method needs to know the domain. If this key is enabled, the domain will be detected by using the minimum and maimum point that are found while the transient steps are made. The domain will be set ±10% of the detected min and ma values. The first 50 points will not be used. Make sure to do enough transient steps (see Sec. A.4.1). There should be at least 100 steps, better 500 or more. If this key is set to no, the domain boundaries have to be set manually (see Sec. A.6.2). name type status default automatic domain detection boolean mandatory "yes" A.6.2 Domain boundaries This key is only used, when automatic domain detection = no. Here the domain boundaries can be set manually. This is useful, if only a part of the domain is to be inspected. In the AnT-GUI the upper line are the minimum values and the lower line the maimum values. The dimensions are the columns from left to right (, y, z,...). 68
70 CHAPTER A Initialization file name domain boundaries type array of real dimension state space dimension status optional default ((0.0, 1.0)) eample For 2 dimensions (X min = 1.0, X ma = 1.0, Y min = 2.0, Y ma = 2.0) domain boundaries = ((-1.0,1.0),(-2.0,2.0)) For 3 dimensions (X min = 1.0, X ma = 1.0, Y min = 2.0, Y ma = 2.0, Z min = 3.0, Z ma = 3.0) domain boundaries = ((-1.0,1.0),(-2.0,2.0),(-3.0,3.0)) A.6.3 Number of boes The number of boes for each dimension is set here. The domain of dimension i will be divided in p i parts. The partitions will be lines in 1D-systems, rectangles in 2D and cubes in 3D. If high-dimensional systems are investigated, it could be useful to enable the hash-table (see Sec. A.6.5). It is controlled by this key number of boes: name number of boes type array of integer dimension state space dimension status mandatory values 1 default (1000, 1000) A.6.4 Error threshold Neighbored boes will build clusters, which represent the bands of a chaotic attractor. If the transient is not set high enough, there will sometimes be clusters with only a view points and clusters with thousands of points. Usually the etreme small clusters are not bands but belong to one big cluster. As the number of big clusters will be the bandcount, the small clusters have to be erased. This is done by building the median of all clusters and discard all clusters that have less than E% of the median. It has to be used carefully. High values could destroy clusters that really are bands. A value of 0 will remain all found clusters. 69
71 CHAPTER A Initialization file name error threshold type integer status mandatory values 0 E 100 default 0 A.6.5 Use hash If this value is turned off, the boes are saved in an array. This is no problem for one-dimensional systems. But in a two- or more-dimensional system this array can easily be bigger than the system memory. A value for the number of boes of would consume MB. With a third dimension of boes it would be 3.64 TB. Thus, using a hashtable to save the boes can be very useful. The hash table will only use space for used boes. Empty boes don t consume memory. The hash table can be activated with the key use hash: name type status default use hash boolean optional "no" A.6.6 Hash size The hash size can be set by the user, if the hash-table was activated (see Sec. A.6.5). When the value is set to 0, a prime number will be selected automatically, which is bigger than the number of iterations. As the hash function is a simple modulo-function, this will usually lead to good performance. The biggest prime that is used is right now. So, if more than 7 million iterations are made, it can be useful to set the hash size manually. This is done with the key hash size: name hash size type integer status optional values 0 default 0 70
72 Declaration Declaration All the work contained within this thesis, ecept where otherwise acknowledged, was solely the effort of the author. At no stage was any collaboration entered into with any other party. (Bernd Eckstein) 71
Notes on Factoring. MA 206 Kurt Bryan
The General Approach Notes on Factoring MA 26 Kurt Bryan Suppose I hand you n, a 2 digit integer and tell you that n is composite, with smallest prime factor around 5 digits. Finding a nontrivial factor
Chapter 15: Dynamic Programming
Chapter 15: Dynamic Programming Dynamic programming is a general approach to making a sequence of interrelated decisions in an optimum way. While we can describe the general characteristics, the details
Analysis of Binary Search algorithm and Selection Sort algorithm
Analysis of Binary Search algorithm and Selection Sort algorithm In this section we shall take up two representative problems in computer science, work out the algorithms based on the best strategy to
The Tower of Hanoi. Recursion Solution. Recursive Function. Time Complexity. Recursive Thinking. Why Recursion? n! = n* (n-1)!
The Tower of Hanoi Recursion Solution recursion recursion recursion Recursive Thinking: ignore everything but the bottom disk. 1 2 Recursive Function Time Complexity Hanoi (n, src, dest, temp): If (n >
Data Structures. Algorithm Performance and Big O Analysis
Data Structures Algorithm Performance and Big O Analysis What s an Algorithm? a clearly specified set of instructions to be followed to solve a problem. In essence: A computer program. In detail: Defined
Sorting revisited. Build the binary search tree: O(n^2) Traverse the binary tree: O(n) Total: O(n^2) + O(n) = O(n^2)
Sorting revisited How did we use a binary search tree to sort an array of elements? Tree Sort Algorithm Given: An array of elements to sort 1. Build a binary search tree out of the elements 2. Traverse
Data Warehousing und Data Mining
Data Warehousing und Data Mining Multidimensionale Indexstrukturen Ulf Leser Wissensmanagement in der Bioinformatik Content of this Lecture Multidimensional Indexing Grid-Files Kd-trees Ulf Leser: Data
Zabin Visram Room CS115 CS126 Searching. Binary Search
Zabin Visram Room CS115 CS126 Searching Binary Search Binary Search Sequential search is not efficient for large lists as it searches half the list, on average Another search algorithm Binary search Very
Binary search algorithm
Binary search algorithm Definition Search a sorted array by repeatedly dividing the search interval in half. Begin with an interval covering the whole array. If the value of the search key is less than
Faster deterministic integer factorisation
David Harvey (joint work with Edgar Costa, NYU) University of New South Wales 25th October 2011 The obvious mathematical breakthrough would be the development of an easy way to factor large prime numbers
Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay
Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay Lecture - 17 Shannon-Fano-Elias Coding and Introduction to Arithmetic Coding
Efficiency of algorithms. Algorithms. Efficiency of algorithms. Binary search and linear search. Best, worst and average case.
Algorithms Efficiency of algorithms Computational resources: time and space Best, worst and average case performance How to compare algorithms: machine-independent measure of efficiency Growth rate Complexity
Section 3-3 Approximating Real Zeros of Polynomials
- Approimating Real Zeros of Polynomials 9 Section - Approimating Real Zeros of Polynomials Locating Real Zeros The Bisection Method Approimating Multiple Zeros Application The methods for finding zeros
Clustering & Visualization
Chapter 5 Clustering & Visualization Clustering in high-dimensional databases is an important problem and there are a number of different clustering paradigms which are applicable to high-dimensional data.
Continued Fractions and the Euclidean Algorithm
Continued Fractions and the Euclidean Algorithm Lecture notes prepared for MATH 326, Spring 997 Department of Mathematics and Statistics University at Albany William F Hammond Table of Contents Introduction
Polynomial Degree and Finite Differences
CONDENSED LESSON 7.1 Polynomial Degree and Finite Differences In this lesson you will learn the terminology associated with polynomials use the finite differences method to determine the degree of a polynomial
Regular Expressions and Automata using Haskell
Regular Expressions and Automata using Haskell Simon Thompson Computing Laboratory University of Kent at Canterbury January 2000 Contents 1 Introduction 2 2 Regular Expressions 2 3 Matching regular expressions
Cost Model: Work, Span and Parallelism. 1 The RAM model for sequential computation:
CSE341T 08/31/2015 Lecture 3 Cost Model: Work, Span and Parallelism In this lecture, we will look at how one analyze a parallel program written using Cilk Plus. When we analyze the cost of an algorithm
1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++
Answer the following 1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++ 2) Which data structure is needed to convert infix notations to postfix notations? Stack 3) The
U.C. Berkeley CS276: Cryptography Handout 0.1 Luca Trevisan January, 2009. Notes on Algebra
U.C. Berkeley CS276: Cryptography Handout 0.1 Luca Trevisan January, 2009 Notes on Algebra These notes contain as little theory as possible, and most results are stated without proof. Any introductory
Binary Heap Algorithms
CS Data Structures and Algorithms Lecture Slides Wednesday, April 5, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks [email protected] 2005 2009 Glenn G. Chappell
Lecture Notes on Binary Search Trees
Lecture Notes on Binary Search Trees 15-122: Principles of Imperative Computation Frank Pfenning André Platzer Lecture 17 October 23, 2014 1 Introduction In this lecture, we will continue considering associative
Classifying Large Data Sets Using SVMs with Hierarchical Clusters. Presented by :Limou Wang
Classifying Large Data Sets Using SVMs with Hierarchical Clusters Presented by :Limou Wang Overview SVM Overview Motivation Hierarchical micro-clustering algorithm Clustering-Based SVM (CB-SVM) Experimental
Factoring & Primality
Factoring & Primality Lecturer: Dimitris Papadopoulos In this lecture we will discuss the problem of integer factorization and primality testing, two problems that have been the focus of a great amount
z 0 and y even had the form
Gaussian Integers The concepts of divisibility, primality and factoring are actually more general than the discussion so far. For the moment, we have been working in the integers, which we denote by Z
1 if 1 x 0 1 if 0 x 1
Chapter 3 Continuity In this chapter we begin by defining the fundamental notion of continuity for real valued functions of a single real variable. When trying to decide whether a given function is or
Minimizing Probing Cost and Achieving Identifiability in Probe Based Network Link Monitoring
Minimizing Probing Cost and Achieving Identifiability in Probe Based Network Link Monitoring Qiang Zheng, Student Member, IEEE, and Guohong Cao, Fellow, IEEE Department of Computer Science and Engineering
Distributed Computing over Communication Networks: Maximal Independent Set
Distributed Computing over Communication Networks: Maximal Independent Set What is a MIS? MIS An independent set (IS) of an undirected graph is a subset U of nodes such that no two nodes in U are adjacent.
Lecture 2 February 12, 2003
6.897: Advanced Data Structures Spring 003 Prof. Erik Demaine Lecture February, 003 Scribe: Jeff Lindy Overview In the last lecture we considered the successor problem for a bounded universe of size u.
CSE373: Data Structures and Algorithms Lecture 3: Math Review; Algorithm Analysis. Linda Shapiro Winter 2015
CSE373: Data Structures and Algorithms Lecture 3: Math Review; Algorithm Analysis Linda Shapiro Today Registration should be done. Homework 1 due 11:59 pm next Wednesday, January 14 Review math essential
8 Divisibility and prime numbers
8 Divisibility and prime numbers 8.1 Divisibility In this short section we extend the concept of a multiple from the natural numbers to the integers. We also summarize several other terms that express
Example: Credit card default, we may be more interested in predicting the probabilty of a default than classifying individuals as default or not.
Statistical Learning: Chapter 4 Classification 4.1 Introduction Supervised learning with a categorical (Qualitative) response Notation: - Feature vector X, - qualitative response Y, taking values in C
Medical Information Management & Mining. You Chen Jan,15, 2013 [email protected]
Medical Information Management & Mining You Chen Jan,15, 2013 [email protected] 1 Trees Building Materials Trees cannot be used to build a house directly. How can we transform trees to building materials?
6. Standard Algorithms
6. Standard Algorithms The algorithms we will examine perform Searching and Sorting. 6.1 Searching Algorithms Two algorithms will be studied. These are: 6.1.1. inear Search The inear Search The Binary
CS/COE 1501 http://cs.pitt.edu/~bill/1501/
CS/COE 1501 http://cs.pitt.edu/~bill/1501/ Lecture 01 Course Introduction Meta-notes These notes are intended for use by students in CS1501 at the University of Pittsburgh. They are provided free of charge
Data Structures and Algorithms Written Examination
Data Structures and Algorithms Written Examination 22 February 2013 FIRST NAME STUDENT NUMBER LAST NAME SIGNATURE Instructions for students: Write First Name, Last Name, Student Number and Signature where
The Union-Find Problem Kruskal s algorithm for finding an MST presented us with a problem in data-structure design. As we looked at each edge,
The Union-Find Problem Kruskal s algorithm for finding an MST presented us with a problem in data-structure design. As we looked at each edge, cheapest first, we had to determine whether its two endpoints
SOLUTIONS TO ASSIGNMENT 1 MATH 576
SOLUTIONS TO ASSIGNMENT 1 MATH 576 SOLUTIONS BY OLIVIER MARTIN 13 #5. Let T be the topology generated by A on X. We want to show T = J B J where B is the set of all topologies J on X with A J. This amounts
Passive Discovery Algorithms
t t Technische Universität Berlin Telecommunication Networks Group arxiv:1506.05255v1 [cs.ni] 17 Jun 2015 Optimized Asynchronous Passive Multi-Channel Discovery of Beacon-Enabled Networks Niels Karowski,
Roots of equation fx are the values of x which satisfy the above expression. Also referred to as the zeros of an equation
LECTURE 20 SOLVING FOR ROOTS OF NONLINEAR EQUATIONS Consider the equation f = 0 Roots of equation f are the values of which satisfy the above epression. Also referred to as the zeros of an equation f()
A Note on Maximum Independent Sets in Rectangle Intersection Graphs
A Note on Maximum Independent Sets in Rectangle Intersection Graphs Timothy M. Chan School of Computer Science University of Waterloo Waterloo, Ontario N2L 3G1, Canada [email protected] September 12,
CS 103X: Discrete Structures Homework Assignment 3 Solutions
CS 103X: Discrete Structures Homework Assignment 3 s Exercise 1 (20 points). On well-ordering and induction: (a) Prove the induction principle from the well-ordering principle. (b) Prove the well-ordering
Review of Intermediate Algebra Content
Review of Intermediate Algebra Content Table of Contents Page Factoring GCF and Trinomials of the Form + b + c... Factoring Trinomials of the Form a + b + c... Factoring Perfect Square Trinomials... 6
Cryptography and Network Security Department of Computer Science and Engineering Indian Institute of Technology Kharagpur
Cryptography and Network Security Department of Computer Science and Engineering Indian Institute of Technology Kharagpur Module No. # 01 Lecture No. # 05 Classic Cryptosystems (Refer Slide Time: 00:42)
CS473 - Algorithms I
CS473 - Algorithms I Lecture 9 Sorting in Linear Time View in slide-show mode 1 How Fast Can We Sort? The algorithms we have seen so far: Based on comparison of elements We only care about the relative
CHAOS LIMITATION OR EVEN END OF SUPPLY CHAIN MANAGEMENT
CHAOS LIMITATION OR EVEN END OF SUPPLY CHAIN MANAGEMENT Michael Grabinski 1 Abstract Proven in the early 196s, weather forecast is not possible for an arbitrarily long period of time for principle reasons.
Fundamental Algorithms
Fundamental Algorithms Chapter 7: Hash Tables Michael Bader Winter 2014/15 Chapter 7: Hash Tables, Winter 2014/15 1 Generalised Search Problem Definition (Search Problem) Input: a sequence or set A of
Network (Tree) Topology Inference Based on Prüfer Sequence
Network (Tree) Topology Inference Based on Prüfer Sequence C. Vanniarajan and Kamala Krithivasan Department of Computer Science and Engineering Indian Institute of Technology Madras Chennai 600036 [email protected],
Chapter Objectives. Chapter 9. Sequential Search. Search Algorithms. Search Algorithms. Binary Search
Chapter Objectives Chapter 9 Search Algorithms Data Structures Using C++ 1 Learn the various search algorithms Explore how to implement the sequential and binary search algorithms Discover how the sequential
Factoring Algorithms
Factoring Algorithms The p 1 Method and Quadratic Sieve November 17, 2008 () Factoring Algorithms November 17, 2008 1 / 12 Fermat s factoring method Fermat made the observation that if n has two factors
Mathematics 31 Pre-calculus and Limits
Mathematics 31 Pre-calculus and Limits Overview After completing this section, students will be epected to have acquired reliability and fluency in the algebraic skills of factoring, operations with radicals
Linear Threshold Units
Linear Threshold Units w x hx (... w n x n w We assume that each feature x j and each weight w j is a real number (we will relax this later) We will study three different algorithms for learning linear
PATTERN RECOGNITION AND MACHINE LEARNING CHAPTER 4: LINEAR MODELS FOR CLASSIFICATION
PATTERN RECOGNITION AND MACHINE LEARNING CHAPTER 4: LINEAR MODELS FOR CLASSIFICATION Introduction In the previous chapter, we explored a class of regression models having particularly simple analytical
PROPERTIES OF ELLIPTIC CURVES AND THEIR USE IN FACTORING LARGE NUMBERS
PROPERTIES OF ELLIPTIC CURVES AND THEIR USE IN FACTORING LARGE NUMBERS A ver important set of curves which has received considerabl attention in recent ears in connection with the factoring of large numbers
SPECIAL PERTURBATIONS UNCORRELATED TRACK PROCESSING
AAS 07-228 SPECIAL PERTURBATIONS UNCORRELATED TRACK PROCESSING INTRODUCTION James G. Miller * Two historical uncorrelated track (UCT) processing approaches have been employed using general perturbations
Revised Version of Chapter 23. We learned long ago how to solve linear congruences. ax c (mod m)
Chapter 23 Squares Modulo p Revised Version of Chapter 23 We learned long ago how to solve linear congruences ax c (mod m) (see Chapter 8). It s now time to take the plunge and move on to quadratic equations.
Roots of Equations (Chapters 5 and 6)
Roots of Equations (Chapters 5 and 6) Problem: given f() = 0, find. In general, f() can be any function. For some forms of f(), analytical solutions are available. However, for other functions, we have
Fast Sequential Summation Algorithms Using Augmented Data Structures
Fast Sequential Summation Algorithms Using Augmented Data Structures Vadim Stadnik [email protected] Abstract This paper provides an introduction to the design of augmented data structures that offer
Binary Heaps * * * * * * * / / \ / \ / \ / \ / \ * * * * * * * * * * * / / \ / \ / / \ / \ * * * * * * * * * *
Binary Heaps A binary heap is another data structure. It implements a priority queue. Priority Queue has the following operations: isempty add (with priority) remove (highest priority) peek (at highest
Optimal shift scheduling with a global service level constraint
Optimal shift scheduling with a global service level constraint Ger Koole & Erik van der Sluis Vrije Universiteit Division of Mathematics and Computer Science De Boelelaan 1081a, 1081 HV Amsterdam The
Elementary Number Theory and Methods of Proof. CSE 215, Foundations of Computer Science Stony Brook University http://www.cs.stonybrook.
Elementary Number Theory and Methods of Proof CSE 215, Foundations of Computer Science Stony Brook University http://www.cs.stonybrook.edu/~cse215 1 Number theory Properties: 2 Properties of integers (whole
3. Interpolation. Closing the Gaps of Discretization... Beyond Polynomials
3. Interpolation Closing the Gaps of Discretization... Beyond Polynomials Closing the Gaps of Discretization... Beyond Polynomials, December 19, 2012 1 3.3. Polynomial Splines Idea of Polynomial Splines
A Tool for Generating Partition Schedules of Multiprocessor Systems
A Tool for Generating Partition Schedules of Multiprocessor Systems Hans-Joachim Goltz and Norbert Pieth Fraunhofer FIRST, Berlin, Germany {hans-joachim.goltz,nobert.pieth}@first.fraunhofer.de Abstract.
The last three chapters introduced three major proof techniques: direct,
CHAPTER 7 Proving Non-Conditional Statements The last three chapters introduced three major proof techniques: direct, contrapositive and contradiction. These three techniques are used to prove statements
Sample Questions Csci 1112 A. Bellaachia
Sample Questions Csci 1112 A. Bellaachia Important Series : o S( N) 1 2 N N i N(1 N) / 2 i 1 o Sum of squares: N 2 N( N 1)(2N 1) N i for large N i 1 6 o Sum of exponents: N k 1 k N i for large N and k
Integer Factorization using the Quadratic Sieve
Integer Factorization using the Quadratic Sieve Chad Seibert* Division of Science and Mathematics University of Minnesota, Morris Morris, MN 56567 [email protected] March 16, 2011 Abstract We give
PARALLEL PROGRAMMING
PARALLEL PROGRAMMING TECHNIQUES AND APPLICATIONS USING NETWORKED WORKSTATIONS AND PARALLEL COMPUTERS 2nd Edition BARRY WILKINSON University of North Carolina at Charlotte Western Carolina University MICHAEL
Vector storage and access; algorithms in GIS. This is lecture 6
Vector storage and access; algorithms in GIS This is lecture 6 Vector data storage and access Vectors are built from points, line and areas. (x,y) Surface: (x,y,z) Vector data access Access to vector
The Systematic Descent from Order to Chaos
The Systematic Descent from Order to Chaos COURTNEY DARVILLE The Quadratic Iterator Final State Diagrams A method for examining the long-term behaviour of a system 1. Choose an initial value at random
Data Corruption In Storage Stack - Review
Theoretical Aspects of Storage Systems Autumn 2009 Chapter 2: Double Disk Failures André Brinkmann Data Corruption in the Storage Stack What are Latent Sector Errors What is Silent Data Corruption Checksum
Moving Least Squares Approximation
Chapter 7 Moving Least Squares Approimation An alternative to radial basis function interpolation and approimation is the so-called moving least squares method. As we will see below, in this method the
WRITING PROOFS. Christopher Heil Georgia Institute of Technology
WRITING PROOFS Christopher Heil Georgia Institute of Technology A theorem is just a statement of fact A proof of the theorem is a logical explanation of why the theorem is true Many theorems have this
If A is divided by B the result is 2/3. If B is divided by C the result is 4/7. What is the result if A is divided by C?
Problem 3 If A is divided by B the result is 2/3. If B is divided by C the result is 4/7. What is the result if A is divided by C? Suggested Questions to ask students about Problem 3 The key to this question
Glossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
ON THE COMPLEXITY OF THE GAME OF SET. {kamalika,pbg,dratajcz,hoeteck}@cs.berkeley.edu
ON THE COMPLEXITY OF THE GAME OF SET KAMALIKA CHAUDHURI, BRIGHTEN GODFREY, DAVID RATAJCZAK, AND HOETECK WEE {kamalika,pbg,dratajcz,hoeteck}@cs.berkeley.edu ABSTRACT. Set R is a card game played with a
Mathematics More Visual Using Algebra Tiles
www.cpm.org Chris Mikles CPM Educational Program A California Non-profit Corporation 33 Noonan Drive Sacramento, CA 958 (888) 808-76 fa: (08) 777-8605 email: [email protected] An Eemplary Mathematics Program
Polynomial and Synthetic Division. Long Division of Polynomials. Example 1. 6x 2 7x 2 x 2) 19x 2 16x 4 6x3 12x 2 7x 2 16x 7x 2 14x. 2x 4.
_.qd /7/5 9: AM Page 5 Section.. Polynomial and Synthetic Division 5 Polynomial and Synthetic Division What you should learn Use long division to divide polynomials by other polynomials. Use synthetic
The Goldberg Rao Algorithm for the Maximum Flow Problem
The Goldberg Rao Algorithm for the Maximum Flow Problem COS 528 class notes October 18, 2006 Scribe: Dávid Papp Main idea: use of the blocking flow paradigm to achieve essentially O(min{m 2/3, n 1/2 }
Cryptography and Network Security. Prof. D. Mukhopadhyay. Department of Computer Science and Engineering. Indian Institute of Technology, Kharagpur
Cryptography and Network Security Prof. D. Mukhopadhyay Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Module No. # 01 Lecture No. # 12 Block Cipher Standards
Some Polynomial Theorems. John Kennedy Mathematics Department Santa Monica College 1900 Pico Blvd. Santa Monica, CA 90405 [email protected].
Some Polynomial Theorems by John Kennedy Mathematics Department Santa Monica College 1900 Pico Blvd. Santa Monica, CA 90405 [email protected] This paper contains a collection of 31 theorems, lemmas,
Partitioning and Divide and Conquer Strategies
and Divide and Conquer Strategies Lecture 4 and Strategies Strategies Data partitioning aka domain decomposition Functional decomposition Lecture 4 and Strategies Quiz 4.1 For nuclear reactor simulation,
How To Compare A Markov Algorithm To A Turing Machine
Markov Algorithm CHEN Yuanmi December 18, 2007 1 Abstract Markov Algorithm can be understood as a priority string rewriting system. In this short paper we give the definition of Markov algorithm and also
SELECTING NEURAL NETWORK ARCHITECTURE FOR INVESTMENT PROFITABILITY PREDICTIONS
UDC: 004.8 Original scientific paper SELECTING NEURAL NETWORK ARCHITECTURE FOR INVESTMENT PROFITABILITY PREDICTIONS Tonimir Kišasondi, Alen Lovren i University of Zagreb, Faculty of Organization and Informatics,
Factoring Algorithms
Institutionen för Informationsteknologi Lunds Tekniska Högskola Department of Information Technology Lund University Cryptology - Project 1 Factoring Algorithms The purpose of this project is to understand
(Refer Slide Time: 01:11-01:27)
Digital Signal Processing Prof. S. C. Dutta Roy Department of Electrical Engineering Indian Institute of Technology, Delhi Lecture - 6 Digital systems (contd.); inverse systems, stability, FIR and IIR,
PRIME FACTORS OF CONSECUTIVE INTEGERS
PRIME FACTORS OF CONSECUTIVE INTEGERS MARK BAUER AND MICHAEL A. BENNETT Abstract. This note contains a new algorithm for computing a function f(k) introduced by Erdős to measure the minimal gap size in
OPTIMAL BINARY SEARCH TREES
OPTIMAL BINARY SEARCH TREES 1. PREPARATION BEFORE LAB DATA STRUCTURES An optimal binary search tree is a binary search tree for which the nodes are arranged on levels such that the tree cost is minimum.
Models of Cortical Maps II
CN510: Principles and Methods of Cognitive and Neural Modeling Models of Cortical Maps II Lecture 19 Instructor: Anatoli Gorchetchnikov dy dt The Network of Grossberg (1976) Ay B y f (
Topological Properties
Advanced Computer Architecture Topological Properties Routing Distance: Number of links on route Node degree: Number of channels per node Network diameter: Longest minimum routing distance between any
Core Maths C2. Revision Notes
Core Maths C Revision Notes November 0 Core Maths C Algebra... Polnomials: +,,,.... Factorising... Long division... Remainder theorem... Factor theorem... 4 Choosing a suitable factor... 5 Cubic equations...
GREATEST COMMON DIVISOR
DEFINITION: GREATEST COMMON DIVISOR The greatest common divisor (gcd) of a and b, denoted by (a, b), is the largest common divisor of integers a and b. THEOREM: If a and b are nonzero integers, then their
7.7 Solving Rational Equations
Section 7.7 Solving Rational Equations 7 7.7 Solving Rational Equations When simplifying comple fractions in the previous section, we saw that multiplying both numerator and denominator by the appropriate
Loop Invariants and Binary Search
Loop Invariants and Binary Search Chapter 4.3.3 and 9.3.1-1 - Outline Ø Iterative Algorithms, Assertions and Proofs of Correctness Ø Binary Search: A Case Study - 2 - Outline Ø Iterative Algorithms, Assertions
24. The Branch and Bound Method
24. The Branch and Bound Method It has serious practical consequences if it is known that a combinatorial problem is NP-complete. Then one can conclude according to the present state of science that no
The Mixed Binary Euclid Algorithm
Electronic Notes in Discrete Mathematics 35 (009) 169 176 www.elsevier.com/locate/endm The Mixed Binary Euclid Algorithm Sidi Mohamed Sedjelmaci LIPN CNRS UMR 7030 Université Paris-Nord Av. J.-B. Clément,
