Generating Elementary Combinatorial Objects
|
|
|
- Carmella Cannon
- 9 years ago
- Views:
Transcription
1 Fall 2009
2 Combinatorial Generation Combinatorial Generation: an old subject Excerpt from: D. Knuth, History of Combinatorial Generation, in pre-fascicle 4B, The Art of Computer Programming Vol 4.
3 Combinatorial Generation Combinatorial Generation We are going to look at combinatorial generation of: Subsets k-subsets Permutations To do a sequential generation, we need to impose some order on the set of objects we are generating. Many types of ordering are possible; we will discuss two types: lexicographical ordering and minimal change ordering.
4 Combinatorial Generation Combinatorial Generation (cont d) Let S be a finite set and N = S. A rank function is a bijection rank: S {0, 1,..., N 1}. It has another bijection associated with it unrank: {0, 1,..., N 1} S. A rank function defines an ordering on S. Once an ordering is chosen, we can talk about the following types of algorithms: Successor: given an object, return its successor. Rank: given an object S S, return rank(s) Unrank: given a rank i {0, 1,..., N 1}, return unrank(n), its corresponding object.
5 Generating Subsets: Lexicographical Ordering Generating Subsets (of an n-set): Lexicographical Ordering Represent a subset of an n-set by its characteristic vector: subset X of {1,2,3} characteristic vector {1,2} [1,1,0] {3} [0,0,1] Definition The characteristic vector of a subset T X is a vector X (T ) = [x n 1, x n 2,..., x 1, x 0 ] where { 1, if n i T x i = 0, otherwise.
6 Generating Subsets: Lexicographical Ordering Example: lexicographical ordering of subsets of a 3-set lexico rank X (T ) = [x 2, x 1, x 0 ] T 0 [0, 0, 0] 1 [0, 0, 1] {3} 2 [0, 1, 0] {2} 3 [0, 1, 1] {2, 3} 4 [1, 0, 0] {1} 5 [1, 0, 1] {1, 3} 6 [1, 1, 0] {1, 2} 7 [1, 1, 1] {1, 2, 3} Note that the order is lexicographical on X (T ) and not on T. Note that X (T ) corresponds to the binary representation of rank!
7 Generating Subsets: Lexicographical Ordering Ranking More efficient implementation: SubsetLexRank (n, T ) r 0; for i 1 to n do r 2 r; if (i T ) then r r + 1; return r; Books version: if (i T ) then r r + 2 n i This is like a conversion from the binary representation to the number.
8 Generating Subsets: Lexicographical Ordering Unranking SubsetLexUnrank (n, r) T ; for i n downto 1 do if (r mod 2 = 1) then T T {i}; r r 2 ; return T ; This is like a conversion from number to its binary representation.
9 Generating Subsets: Lexicographical Ordering Successor The following algorithm is adapted for circular ranking, that is, the successor of the largest ranked object is the object of rank 0. SubsetLexSuccessor (n, T ) i 0; while (i n 1) and (n i T ) do T T \ {n i}; i i + 1; if (i n 1) then T T {n i}; return T ; This algorithm works like an increment on a binary number.
10 Generating Subsets: Lexicographical Ordering Examples: successor of a subset in lexicographical ordering 1 SubsetLexSuccessor(3, {2, 3}) = {1}. {2, 3} [0, 1, 1] {1} [1, 0, 0] 2 SubsetLexSuccessor(4, {1, 4}) = {1, 3}. {1, 4} [1, 0, 0, 1] {1, 3} [1, 0, 1, 0]
11 Generating Subsets (of an n-set) : Minimal Change Ordering Generating Subsets (of an n-set) : Minimal Change Ordering In minimal change ordering, successive sets are as similar as possible. The hamming distance between two vectors is defined as the number of bits in which the two vectors differ. Example: dist( , ) = 2. When we apply to the subsets corresponding to the binary vectors, it is equivalent to: dist(t 1, T 2 ) = T 1 T 2 = (T 1 \ T 2 ) (T 2 \ T 1 ). A Gray Code is a sequence of vectors with successive vectors having hamming distance exactly 1. Example: [00, 01, 11, 10]. We will now see a construction for one possible type of Gray Codes...
12 Generating Subsets (of an n-set) : Minimal Change Ordering Construction for Binary Reflected Gray Codes n=1 n= n=
13 Generating Subsets (of an n-set) : Minimal Change Ordering In general, build G n as follows: G n 0 G 0 n G n-1 n-1 G n-1 n-1 n G 0 1 More formally, we define G n inductively as follows: Theorem (2.1) G 1 = [0, 1] G n = [0G n 1 0,, 0G n 1 2 n 1 1, 1Gn 1 2 n 1 1, 1Gn 1 0 ] For any n 1, G n is a gray code. Exercise: prove this theorem by induction on n.
14 Generating Subsets (of an n-set) : Minimal Change Ordering Successor Examples: G 3 = [000, 001, 011, 010, 110, 111, 101, 100] G 4 = [0000, 0001, 0011, 0010, 0110, 0111, 0101, 0100, Rules for calculating successor: 1100, 1101, 1111, 1110, 1010, 1011, 1001, 1000]. If vector has even weight (even number of 1 s): flip last bit. If vector has odd weight (odd number of 1 s): from right to left, flip bit after the first 1.
15 Generating Subsets (of an n-set) : Minimal Change Ordering GrayCodeSuccessor (n, T ) if ( T is even) then U T {n}; (flip last bit) else j n; while (j T ) and (j > 0) do j j 1; if (j = 1) then U ; (I changed for circular order) else U T {j 1}; return U;
16 Generating Subsets (of an n-set) : Minimal Change Ordering Ranking and Unranking r b 3 b 2 b 1 b 0 bin.rep. r a 2 a 1 a 0 G 3 r Set b 3 = 0 in the example above. We need to relate (b n b n 1... b 0 ) and (a n 1 a n 2,... a 0 ). Lemma (Lemma 1.) Let P (n): For 0 r 2 n 1, a j b j + b j+1 (mod 2), for all 0 j n 1. Then, P (n) holds for all n 1.
17 Generating Subsets (of an n-set) : Minimal Change Ordering Lemma (Lemma 1.) Let P (n): For 0 r 2 n 1, a j b j + b j+1 (mod 2), for all 0 j n 1. Then, P (n) holds for all n 1. Proof: We will prove P (n) by induction on n. Basis: P (1) holds, since a 0 = b 0 and b 1 = 0. Induction step: Assume P (n 1) holds. We will prove P (n) holds. Case 1. r 2 n 1 1 (first half of G n ). Note that b n 1 = 0 = a n 1 and b n = 0, which implies By induction, a n 1 = 0 = b n 1 + b n. (1) a j b j + b j+1 (mod 2), for all0 j n 2. (2) Equations (1) and (2) imply P (n).
18 Generating Subsets (of an n-set) : Minimal Change Ordering Proof of Lemma 1 (cont d) Case 2. 2 n r 2 n 1 (second half of G n ). Note that b n 1 = 1 = a n 1 and b n = 0, which implies a n 1 1 b n 1 + b n (mod 2). (3) Now, G n r = 1G n 1 2 n 1 r = 1a n 2a n 3... a 1 a 0. The binary representation of 2 n 1 r is 0(1 b n 2 )(1 b n 3 )... (1 b 1 )(1 b 0 ). By induction hypothesis we know that, for all 0 j n 2, a j (1 b j ) + (1 b j+1 mod 24) Equations (3) and (5) imply P (n). b j + b j+1 (mod 25)
19 Generating Subsets (of an n-set) : Minimal Change Ordering Lemma (Lemma 2.) Let n 1, 0 r 2 n 1. Then, n 1 b j a i (mod 2), for all 0 j n 1. i=j Proof: n 1 a i i=j n 1 b i + b i+1 (mod 2) [By Lemma 1] i=j b j + 2b j b n 1 + b n (mod 2) b j + b n (mod 2) b j (mod 2) [Since b n = 0].
20 Generating Subsets (of an n-set) : Minimal Change Ordering Let n 1, 0 r 2 n 1. We haved proved the following properties hold, for all 0 j n 1, n 1 b j a i (mod 2). i=j a j b j + b j+1 (mod 2), The first property is used for ranking: GrayCodeRank (n, T ) r 0; b 0; for i n 1 downto 0 do if ((n i) T ) then ( if a i = 1) b 1 b; ( b i = b i+1 ) r 2r + b; return r;
21 Generating Subsets (of an n-set) : Minimal Change Ordering The second property is used for unranking: GrayCodeUnrank (n, r) T ; b r mod 2; r r 2 ; for i 0 to n 1 do b r mod 2 if (b b ) then T T {n i}; b b; r r 2 ; return T ;
22 Generating k-subsets: Lexicographical Ordering Generating k-subsets (of an n-set): Lexicographical Ordering Example: k = 3, n = 5. rank T T 0 {1, 2, 3} [1, 2, 3] 1 {1, 2, 4} [1, 2, 4] 2 {1, 2, 5} [1, 2, 5] 3 {1, 3, 4} [1, 3, 4] 4 {1, 3, 5} [1, 3, 5] 5 {1, 4, 5} [1, 4, 5] 6 {2, 3, 4} [2, 3, 4] 7 {2, 3, 5} [2, 3, 5] 8 {2, 4, 5} [2, 4, 5] 9 {3, 4, 5} [3, 4, 5]
23 Generating k-subsets: Lexicographical Ordering Successor Example/idea: n = 10, Successor({..., 5, 8, 9, 10})={..., 6, 7, 8, 9} ksubsetlexsuccessor ( T, k, n) U T ; i k; while (i 0) and (t i = n k + i) do i i 1; if (i = 0) then U = [1, 2,..., k]; else for j i to k do u j (t i + 1) + j i; return U;
24 Generating k-subsets: Lexicographical Ordering Ranking How many subsets preceed T = [t 1, t 2,..., t k ]? all sets [X,...] with 1 X t 1 1 all sets [t 1, X,...] with t X t 2 1. all sets [t 1,..., t k 1, X,...] with t k X t k 1 Thus, rank(t ) = k i=1 t i 1 j=t i 1 +1 ( ) n j. k i ( t 1 1 ( n j j=1 k 1) ) ( t 2 1 ( n j j=t 1 +1 k 2) ) ( t k 1 j=t k 1 +1 ( n j k (k 1)) )
25 Generating k-subsets: Lexicographical Ordering ksubsetlexrank ( T, k, n) r 0; t 0 0; for i 1 to k do for j t i to t i 1 do r r + ( n j k i) ; return r;
26 Generating k-subsets: Lexicographical Ordering Unranking t 1 = x x 1 j=1 t 2 = x x 1 etc. ( n j j=t 1 +1 ( n j k 1 k 1) r < x ) j=1 r t1 1 ( n j k 2 ksubsetlexunrank (r, k, n) x 1; for i 1 to k do while (r ( n x k i) ) do r r ( n x k i) ; x x + 1; t i x; x x + 1; return T ; j=1 ) ( n j k 1) < x j=t 1 +1 ( n j ) k 1
27 Generating k-subsets (of an n-set): Minimal Change Ordering Generating k-subsets : Minimal Change Ordering The minimum Hamming distance possible between k-subsets is 2. Revolving Door Ordering It is based on Pascal s Identity: ( n k = n 1 + n 1 k k 1). We define the sequence of k-subsets A n,k based on A n 1,k and the reverse of A n 1,k 1, as follows: [ ] A n,k = A n 1,k 0,..., A n 1,k {n},..., An 1,k 1 0 {n}, A n,0 = [ ] for 1 k n 1 A n,n = [{1, 2,..., n}] (, n 1 k ) 1 An 1,k 1 ( k 1) 1
28 Generating k-subsets (of an n-set): Minimal Change Ordering Example: Bulding A 5,3 using A 4,3 and A 4,2 A 4,3 = [{1, 2, 3}, {1, 3, 4}, {2, 3, 4}, {1, 2, 4}] A 4,2 = [{1, 2}, {2, 3}, {1, 3}, {3, 4}, {2, 4}, {1, 4}] A 5,3 = [{1, 2, 3}, {1, 3, 4}, {2, 3, 4}, {1, 2, 4}, {1, 4, 5}, {2, 4, 5}, {3, 4, 5}, {1, 3, 5}, {2, 3, 5}, {1, 2, 5}]
29 Generating k-subsets (of an n-set): Minimal Change Ordering To see that the revolving door ordering is a minimal change ordering, prove: 1 A n,k = {1, 2,..., k 1, n}. ( n k) 1 2 A n,k 0 = {1, 2,..., k}. 3 For any n, k, 1 k n, A n,k is a minimal ordering of S n k.
30 Generating k-subsets (of an n-set): Minimal Change Ordering Ranking The ranking algorithm is based on the following fact (prove it as an exercise): rank(t ) = k i=1 ( 1) k i (( ti i ) ) { k i=1 1 = ( 1)k i( t ii ) [, k even k i=1 ( 1)k i( t ii ) ] 1, k odd Hint: Prove the first equality by induction and the second, directly. KsubsetRevDoorRank( T, k) r (k mod 2); s 1; for i k downto 1 do r r + s ( t ii ) s s; return r;
31 Generating k-subsets (of an n-set): Minimal Change Ordering Ranking Algorithm Example 1 rank(136) = r =? Look at ( ( 6 3) = +20, then 3 ( 2) = 3, then 1 1) = +1 then ( ( 3 2) = ) = 1 1 r = ( 6 3) = +20
32 Generating k-subsets (of an n-set): Minimal Change Ordering Ranking Algorithm Example 2 rank(245) = r =? Look at ( ( 5 3) = +10, then 4 ( 2) = 6, then 2 1) = +2 then ( 4 2) = ( 2 1) = ( 5 3) =
33 Generating k-subsets (of an n-set): Minimal Change Ordering Unranking IDEA/ Example: n = 7, k = 4, r = 8 4 T, 5, 6, 7 T 5 T, 6, 7 T 6 T, 7 T 7 T ( 4 4 = = = 15 7 ) 4 = 21
34 Generating k-subsets (of an n-set): Minimal Change Ordering Unranking IDEA/ Example: n = 7, k = 4, r = 8 4 T, 5, 6, 7 T 5 T, 6, 7 T 6 T, 7 T 7 T ( 4 4 = = = 15 7 ) 4 = 21 We can determine the largest element in the set: r = 8 implies {,,, 6}.
35 Generating k-subsets (of an n-set): Minimal Change Ordering Unranking IDEA/ Example: n = 7, k = 4, r = 8 4 T, 5, 6, 7 T 5 T, 6, 7 T 6 T, 7 T 7 T ( 4 4 = = = 15 7 ) 4 = 21 We can determine the largest element in the set: r = 8 implies {,,, 6}. Now, solve it recursively for n = 5, k = 3, r = ( 6 4) r 1 = 6.
36 Generating k-subsets (of an n-set): Minimal Change Ordering Unranking IDEA/ Example: n = 7, k = 4, r = 8 4 T, 5, 6, 7 T 5 T, 6, 7 T 6 T, 7 T 7 T ( 4 4 = = = 15 7 ) 4 = 21 We can determine the largest element in the set: r = 8 implies {,,, 6}. Now, solve it recursively for n = 5, k = 3, r = ( 6 4) r 1 = 6. KsubsetRevDoorUnrank(r, k, n) x n; for i k downto 1 do While ( x i) > r do x x 1; t i x + 1 r ( ) x+1 i r 1; return T ;
37 Generating k-subsets (of an n-set): Minimal Change Ordering Unranking Algorithm: Example 1 n = 6, k = 3, r = 12, T = [?,?,?]
38 Generating k-subsets (of an n-set): Minimal Change Ordering Unranking Algorithm: Example 1 n = 6, k = 3, r = 12, T = [?,?,?] ( 6 3 = 20,... [12]..., 5 3 = 10,..., 4 3 = 4,..., 3 ) 3 = 1
39 Generating k-subsets (of an n-set): Minimal Change Ordering Unranking Algorithm: Example 1 n = 6, k = 3, r = 12, T = [?,?,?] ( 6 3 = 20,... [12]..., 5 3 = 10,..., 4 3 = 4,..., 3 ) 3 = 1 n = 5, k = 2, r = = 7, T = [?,?, 6]
40 Generating k-subsets (of an n-set): Minimal Change Ordering Unranking Algorithm: Example 1 n = 6, k = 3, r = 12, T = [?,?,?] ( 6 3 = 20,... [12]..., 5 3 = 10,..., 4 3 = 4,..., 3 ) 3 = 1 n = 5, k = 2, r = = 7, T = [?,?, 6] ( 5 2 = 10,... [7]..., 4 2 = 6,..., 3 2 = 3,..., 2 ) 2 = 1
41 Generating k-subsets (of an n-set): Minimal Change Ordering Unranking Algorithm: Example 1 n = 6, k = 3, r = 12, T = [?,?,?] ( 6 3 = 20,... [12]..., 5 3 = 10,..., 4 3 = 4,..., 3 ) 3 = 1 n = 5, k = 2, r = = 7, T = [?,?, 6] ( 5 2 = 10,... [7]..., 4 2 = 6,..., 3 2 = 3,..., 2 ) 2 = 1 n = 4, k = 1, r = = 2, T = [?, 5, 6]
42 Generating k-subsets (of an n-set): Minimal Change Ordering Unranking Algorithm: Example 1 n = 6, k = 3, r = 12, T = [?,?,?] ( 6 3 = 20,... [12]..., 5 3 = 10,..., 4 3 = 4,..., 3 ) 3 = 1 n = 5, k = 2, r = = 7, T = [?,?, 6] ( 5 2 = 10,... [7]..., 4 2 = 6,..., 3 2 = 3,..., 2 ) 2 = 1 n = 4, k = 1, r = = 2, T = [?, 5, 6] ( 4 1 = 4,..., 3 1 = 3,... [2],..., 2 1 = 2,..., 1 ) 1 = 1
43 Generating k-subsets (of an n-set): Minimal Change Ordering Unranking Algorithm: Example 1 n = 6, k = 3, r = 12, T = [?,?,?] ( 6 3 = 20,... [12]..., 5 3 = 10,..., 4 3 = 4,..., 3 ) 3 = 1 n = 5, k = 2, r = = 7, T = [?,?, 6] ( 5 2 = 10,... [7]..., 4 2 = 6,..., 3 2 = 3,..., 2 ) 2 = 1 n = 4, k = 1, r = = 2, T = [?, 5, 6] ( 4 1 = 4,..., 3 1 = 3,... [2],..., 2 1 = 2,..., 1 ) 1 = 1 T = [3, 5, 6]
44 Generating k-subsets (of an n-set): Minimal Change Ordering Unranking Algorithm: Example 2 n = 6, k = 3, r = 7, T = [?,?,?]
45 Generating k-subsets (of an n-set): Minimal Change Ordering Unranking Algorithm: Example 2 n = 6, k = 3, r = 7, T = [?,?,?] ( 6 3 = 20,..., 5 3 = 10,...[7]..., 4 3 = 4,..., 3 ) 3 = 1
46 Generating k-subsets (of an n-set): Minimal Change Ordering Unranking Algorithm: Example 2 n = 6, k = 3, r = 7, T = [?,?,?] ( 6 3 = 20,..., 5 3 = 10,...[7]..., 4 3 = 4,..., 3 ) 3 = 1 n = 4, k = 2, r = = 2, T = [?,?, 5]
47 Generating k-subsets (of an n-set): Minimal Change Ordering Unranking Algorithm: Example 2 n = 6, k = 3, r = 7, T = [?,?,?] ( 6 3 = 20,..., 5 3 = 10,...[7]..., 4 3 = 4,..., 3 ) 3 = 1 n = 4, k = 2, r = = 2, T = [?,?, 5] ( 4 2 = 6,..., 3 2 = 3,... [2]..., 2 ) 2 = 1
48 Generating k-subsets (of an n-set): Minimal Change Ordering Unranking Algorithm: Example 2 n = 6, k = 3, r = 7, T = [?,?,?] ( 6 3 = 20,..., 5 3 = 10,...[7]..., 4 3 = 4,..., 3 ) 3 = 1 n = 4, k = 2, r = = 2, T = [?,?, 5] ( 4 2 = 6,..., 3 2 = 3,... [2]..., 2 ) 2 = 1 n = 2, k = 1, r = = 0, T = [?, 3, 5]
49 Generating k-subsets (of an n-set): Minimal Change Ordering Unranking Algorithm: Example 2 n = 6, k = 3, r = 7, T = [?,?,?] ( 6 3 = 20,..., 5 3 = 10,...[7]..., 4 3 = 4,..., 3 ) 3 = 1 n = 4, k = 2, r = = 2, T = [?,?, 5] ( 4 2 = 6,..., 3 2 = 3,... [2]..., 2 ) 2 = 1 n = 2, k = 1, r = = 0, T = [?, 3, 5] ( 2 1 = 2,..., 1 ) 1 = 1,... [0]
50 Generating k-subsets (of an n-set): Minimal Change Ordering Unranking Algorithm: Example 2 n = 6, k = 3, r = 7, T = [?,?,?] ( 6 3 = 20,..., 5 3 = 10,...[7]..., 4 3 = 4,..., 3 ) 3 = 1 n = 4, k = 2, r = = 2, T = [?,?, 5] ( 4 2 = 6,..., 3 2 = 3,... [2]..., 2 ) 2 = 1 n = 2, k = 1, r = = 0, T = [?, 3, 5] ( 2 1 = 2,..., 1 ) 1 = 1,... [0] T = [1, 3, 5]
51 Generating k-subsets (of an n-set): Minimal Change Ordering Successor Let T = [1, 2, 3,..., j 1, t j,...], where j = min{i : t i i}. Consider fours cases for computing successor: Case A: k j (mod 2) Case A1: if tj+1 = t j + 1 then move j to the right, and remove t j + 1. Example: Successor({1, 2, 3, 7, 8, 12}) = {{1, 2, 3, 4, 7, 12}. Case A2: if tj+1 t j + 1 then move j to the left, and add t j + 1. Example: Successor({1, 2, 3, 7, 10, 12}) = {1, 2, 7, 8, 10, 12}. Case B: k j (mod 2) Case B1: if j > 1 then increment t j 1 and (if exists) t j 2. Example: Successor({1, 2, 3, 7, 10}) = {1, 3, 4, 7, 10}. Case B2: if j = 1 then decrement t1 Example: Successor{7, 9, 10, 12}) = {6, 9, 10, 12}.
52 Generating k-subsets (of an n-set): Minimal Change Ordering For each case, prove Rank(successor(T )) Rank(T ) = 1. Proof of case A1: Successor({1, 2, 3, 7, 8, 12}) = {{1, 2, 3, 4, 7, 12}. rank(successor(t )) rank(t ) = ( ) ( ) j = ( 1) k j + ( 1) k j 1 tj j j + 1 ( ) ( ) ( 1) k j tj ( 1) k j 1 tj + 1 j j + 1 ( ( )) j tj + 1 tj tj = + = = 1. j j + 1 j + 1 j Prove other cases A2, B1, B2, similarly.
53 Generating k-subsets (of an n-set): Minimal Change Ordering Successor Algorithm: Case A2 { }
54 Generating k-subsets (of an n-set): Minimal Change Ordering Successor Algorithm: Case A2 { } { } (1237 is the last of A 7,4 )
55 Generating k-subsets (of an n-set): Minimal Change Ordering Successor Algorithm: Case A2 { } { } (1237 is the last of A 7,4 ) {??? } (now the block ending in 8 starts)
56 Generating k-subsets (of an n-set): Minimal Change Ordering Successor Algorithm: Case A2 { } { } (1237 is the last of A 7,4 ) {??? } (now the block ending in 8 starts) { } (before 8, put last of A 7,3 )
57 Generating k-subsets (of an n-set): Minimal Change Ordering Successor Algorithm: Case A1 { }
58 Generating k-subsets (of an n-set): Minimal Change Ordering Successor Algorithm: Case A1 { } { } 1237 is the last of A 7,4 ; can t + + 7
59 Generating k-subsets (of an n-set): Minimal Change Ordering Successor Algorithm: Case A1 { } { } 1237 is the last of A 7,4 ; can t {???? 7 12 } is 1st ending on 8 of A 8,5
60 Generating k-subsets (of an n-set): Minimal Change Ordering Successor Algorithm: Case A1 { } { } 1237 is the last of A 7,4 ; can t {???? 7 12 } is 1st ending on 8 of A 8,5 { } pred in A 8,5 is last of A 7,5, so 12347
61 Generating k-subsets (of an n-set): Minimal Change Ordering Successor Algorithm: Case B1 { }
62 Generating k-subsets (of an n-set): Minimal Change Ordering Successor Algorithm: Case B1 { } { } is last of A 7,5
63 Generating k-subsets (of an n-set): Minimal Change Ordering Successor Algorithm: Case B1 { } { } is last of A 7,5 {??? } pred is second to last of A 7,5
64 Generating k-subsets (of an n-set): Minimal Change Ordering Successor Algorithm: Case B1 { } { } is last of A 7,5 {??? } pred is second to last of A 7,5 { } i.e. successor(1234) = 1245
65 Generating k-subsets (of an n-set): Minimal Change Ordering Successor Algorithm: Case B2 { }
66 Generating k-subsets (of an n-set): Minimal Change Ordering Successor Algorithm: Case B2 { } { } leftmost possible change is in 1st
67 Generating k-subsets (of an n-set): Minimal Change Ordering Successor Algorithm: Case B2 { } { } leftmost possible change is in 1st { } given direction, do 6
68 Generating k-subsets (of an n-set): Minimal Change Ordering KsubsetRevDoorSuccessor( T, k, n) t k+1 n + 1; j 1; While (j k) and (t j = j) do j j + 1; if (k j (mod 2)) then if (j = 1) then t 1 t 1 1; (Case B2) else (Case B1) t j 1 j; t j 2 j 1; else if (t j+1 t j + 1) then (Case A2) t j 1 t j ; t j t j + 1 else (Case A1) t j+1 t j ; t j j; return T ;
69 Generating Permutations: Lexicographical Ordering Generating Permutations: Lexicographical Ordering A permutation is a bijection Π : {1, 2,..., n} {1, 2,..., n}. We represent it by a list: Π = [Π[1], Π[2],..., Π[n]]. Lexicographical Ordering: n = 3 rank permutation 0 [1, 2, 3] 1 [1, 3, 2] 2 [2, 1, 3] 3 [2, 3, 1] 4 [3, 1, 2] 5 [3, 2, 1]
70 Generating Permutations: Lexicographical Ordering Successor Example: Π = [3, 5, 4, 7, 6, 2, 1] Let i = index right before a decreasing suffix = 3. Let j= index of the successor of π[i] in {Π[i + 1],..., Π[n]} π[i] = 4, successor of π[i] = 4 in {7, 6, 2, 1} is 6, π[5] = 6, so j = 5. Swap Π[i] and Π[j], and reverse {Π[i + 1],..., Π[n]}. Successor(Π) = [3, 5, 6, 1, 2, 4, 7]
71 Generating Permutations: Lexicographical Ordering Note that: i = max{l : Π[l] < Π[l + 1]} j = max{l : Π[l] > Π[i]}. For the algorithm, we add: Π[0] = 0. PermLexSuccessor(n, Π) Π[0] 0; i n 1; while (Π[i] > Π[i + 1]) do i i 1; if (i = 0) then return Π = [1, 2,..., n] j n; while (Π[j] < Π[i]) do j j 1; t Π[j]; Π[j] Π[i]; Π[i] t; (swap Π[i] and Π[j]) // In-place reversal of Π[i + 1],..., Π[n]: for h i + 1 to n i 2 do t Π[h]; Π[h] Π[n + i + 1 h]; Π[n + i + 1 h] t; return Π;
72 Generating Permutations: Lexicographical Ordering Ranking How many permutations come before Π = [3, 5, 1, 2, 4]? the ones of the form Π = [1,...] (there are (n 1)! = 24 of them) the ones of the form Π = [2,...] (there are (n 1)! = 24 of them) plus the rank of [5, 1, 2, 4] as a permutation of {1, 2, 4, 5}, which is the standard rank of [4, 1, 2, 3]. So, Rank([3, 5, 1, 2, 4]) = 2 4!+ Rank([4, 1, 2, 3]) = 2 4! + 3 3!+ Rank([1, 2, 3]) = 2 4! + 3 3! + 0 2!+ Rank([1, 2]) = 2 4! + 3 3! + 0 2! + 0 1!+Rank([1]) = 2 4! + 3 3! + 0 2! + 0 1! + 0 = 66
73 Generating Permutations: Lexicographical Ordering General Formula: Rank([1], 1) = 0, Rank(Π, n) = (Π[1] 1) (n 1)!+ Rank(Π, n 1), where { Π Π[i + 1] 1, if Π[i + 1] > Π[1] [i] = Π[i + 1], if Π[i + 1] < Π[1]
74 Generating Permutations: Lexicographical Ordering PermLexRank(n, Π) r 0; Π Π; for j 1 to n 1 do (Note: correction from book: n n 1) r r + (Π [j] 1) (n j)! for i j + 1 to n do if (Π [i] > Π [j]) then Π [i] = Π [i] 1; return r;
75 Generating Permutations: Lexicographical Ordering Unranking Unranking uses the factorial representation of r. Let 0 r n! 1. Then, (d n 1, d n 2,..., d 1 ) is the factorial representation of r if r = n 1 i=1 d i i!, where 0 d i i. (Exercise: prove that such r has a unique factorial representation.)
76 Generating Permutations: Lexicographical Ordering Examples: 1 Unrank(15, 4) = [3, 2, 4, 1] 15 = 2 3! + 1 2! + 1 1!, put d 0 = Unrank(8, 4) = [2, 3, 1, 4] 8 = 1 3! + 1 2! + 0 1!, Unrank(21, 4) = [4, 2, 3, 1] 21 = 3 3! + 1 2! + 1 1!,
77 Generating Permutations: Lexicographical Ordering Justification: Π[1] = d n because exactly d n 1 blocks of size (n 1)! come before Π. Then, Π[2], Π[3],..., Π[n] is computed from permutation Π, as follows: r = r d n 1 (n 1)! Π =Unrank(r, n 1), { Π Π[i] = [i 1], if Π [i 1] < Π[1] Π [i 1] + 1, if Π [i 1] > Π[1] for 2 i n PermLexUnrank(r, n) Π[n] 1; for j 1 to n 1 do r mod (j+1)! d j! ; // calculates d j r r d j!; Π[n j] d + 1; for i n j + 1 to n do if (Π[i] > d) then Π[i] Π[i] + 1; return Π;
78 Generating permutations: Minimal Change Ordering Generating permutations: Minimal Change Ordering Minimal change for permutations: two permutatiosn must differ by adjacent transposition. The Trotter-Johnson algorithm follows the following ordering: T 1 = [[1]] T 2 = [[1, 2], [2, 1]] T 3 = [[1, 2, 3], [1, 3, 2], [3, 1, 2][3, 2, 1], [2, 3, 1], [2, 1, 3]]
79 Generating permutations: Minimal Change Ordering How to build T 3 using T 2 : See picture for T 4 in page 58 of the textbook.
80 Generating permutations: Minimal Change Ordering Ranking Let Π = [Π[1],..., Π[k 1], Π[k] = n, Π[k + 1],..., Π[n]]. Thus, Π is built from Π by inserting n, where Π = [Π[1],..., Π[k 1], Π[k + 1],..., Π[n]]. Rank(Π, n) = n Rank(Π, n 1) + E, { n k, if Rank(Π E =, n 1) is even k 1, if Rank(Π, n 1) is odd Example: Rank([3, 4, 2, 1], 4) = 4 Rank([3, 2, 1], 3) + E = (2 1) = 13.
81 Generating permutations: Minimal Change Ordering PermTrotterJohnsonRank(Π, n) r 0; for j 2 to n do k 1; i 1; while (Π[i] j) do if (Π[i] < j) then k k + 1; i i + 1; if (r 0 mod 2) then r j r + j k; else r j r + k 1; return r;
82 Generating permutations: Minimal Change Ordering Unranking Based on similar recursive principle. Let r = r n, Π =Unrank(r, n 1). Let k = r n r. Insert n into Π in position: k + 1, n k, if r is odd if r is even
83 Generating permutations: Minimal Change Ordering PermTrotterJohnsonUnrank(n, r) Π[1] 1; r 2 0; for j 2 to n do r 1 r j! n! ; // rank of Π when restricted to {1, 2,..., j} k r 1 j r 2 ; if (r 2 is even) then for i j 1 downto j k do Π[i + 1] Π[i]; Π[j k] j; else for i j 1 downto k + 1 do Π[i + 1] Π[i]; Π[k + 1] j; r 2 r 1 ; return Π;
84 Generating permutations: Minimal Change Ordering Successor There are four cases to analyse: Rank(Π ) is even If possible, move left: Successor([1, 4, 2, 3])=([4, 1, 2, 3]) If n is in first position, get successor of the remaining permutation: Successor([4, 1, 2, 3])=([4, 1, 3, 2]), Rank(Π ) is odd If possible, move right: Successor([3, 4, 2, 1])=([3, 2, 4, 1]) If n is in last position, get successor of the remaining permutation: Successor([3, 2, 1, 4])=([2, 3, 1, 4]). We need to be able to determine the parity of Rank(Π ).
85 Generating permutations: Minimal Change Ordering The parity of a permutation is the parity of the number of interchanges necessary for transforming the permutation into [1, 2,..., n]. Π = [5, 1, 3, 4, 2] is an even permutation since 2 steps are sufficient to convert it into [1, 2, 3, 4, 5]. Note that: parity of Rank(Π ) = parity of Π, since in the Trotter-Johnson algorithm [1, 2,..., n] has rank 0, and each swap increases the rank by 1. It is easy to compute the parity of a permutation in Θ(n 2 ): PermParity(n, Π) = {(i, j) : Π[i] > Π[j], 1 i j n}. See the textbook for a Θ(n) algorithm.
86 Generating permutations: Minimal Change Ordering PermTrotterJohnsonSuccessor(n, Π) s 0; done false; m n; for i 1 to n do ρ[i] Π[i]; while (m > 1) and (not done) do d 1; while (ρ[d] m) do d d + 1; for i d to m 1 do ρ[i] ρ[i + 1]; par PermParity(m 1, ρ); if (par = 1) then if (d = m) then m m 1; else swap Π[s + d], Π[s + d + 1] done true; else if (d = 1) then m m 1; s s + 1 else swap Π[s + d], Π[s + d + 1] done true; if (m = 1) then return [1, 2,..., n] else return Π;
6.2 Permutations continued
6.2 Permutations continued Theorem A permutation on a finite set A is either a cycle or can be expressed as a product (composition of disjoint cycles. Proof is by (strong induction on the number, r, of
Lemma 5.2. Let S be a set. (1) Let f and g be two permutations of S. Then the composition of f and g is a permutation of S.
Definition 51 Let S be a set bijection f : S S 5 Permutation groups A permutation of S is simply a Lemma 52 Let S be a set (1) Let f and g be two permutations of S Then the composition of f and g is a
Analysis of Algorithms I: Optimal Binary Search Trees
Analysis of Algorithms I: Optimal Binary Search Trees Xi Chen Columbia University Given a set of n keys K = {k 1,..., k n } in sorted order: k 1 < k 2 < < k n we wish to build an optimal binary search
Private Approximation of Clustering and Vertex Cover
Private Approximation of Clustering and Vertex Cover Amos Beimel, Renen Hallak, and Kobbi Nissim Department of Computer Science, Ben-Gurion University of the Negev Abstract. Private approximation of search
TAKE-AWAY GAMES. ALLEN J. SCHWENK California Institute of Technology, Pasadena, California INTRODUCTION
TAKE-AWAY GAMES ALLEN J. SCHWENK California Institute of Technology, Pasadena, California L INTRODUCTION Several games of Tf take-away?f have become popular. The purpose of this paper is to determine the
= 2 + 1 2 2 = 3 4, Now assume that P (k) is true for some fixed k 2. This means that
Instructions. Answer each of the questions on your own paper, and be sure to show your work so that partial credit can be adequately assessed. Credit will not be given for answers (even correct ones) without
HOMEWORK 5 SOLUTIONS. n!f n (1) lim. ln x n! + xn x. 1 = G n 1 (x). (2) k + 1 n. (n 1)!
Math 7 Fall 205 HOMEWORK 5 SOLUTIONS Problem. 2008 B2 Let F 0 x = ln x. For n 0 and x > 0, let F n+ x = 0 F ntdt. Evaluate n!f n lim n ln n. By directly computing F n x for small n s, we obtain the following
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
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
Binary Multiplication
Binary Multiplication Q: How do we multiply two numbers? eg. 12, 345 6, 789 111105 987600 8641500 + 74070000 83, 810, 205 10111 10101 10111 00000 1011100 0000000 + 101110000 111100011 Pad, multiply and
MATH10212 Linear Algebra. Systems of Linear Equations. Definition. An n-dimensional vector is a row or a column of n numbers (or letters): a 1.
MATH10212 Linear Algebra Textbook: D. Poole, Linear Algebra: A Modern Introduction. Thompson, 2006. ISBN 0-534-40596-7. Systems of Linear Equations Definition. An n-dimensional vector is a row or a column
Two classes of ternary codes and their weight distributions
Two classes of ternary codes and their weight distributions Cunsheng Ding, Torleiv Kløve, and Francesco Sica Abstract In this paper we describe two classes of ternary codes, determine their minimum weight
Degrees that are not degrees of categoricity
Degrees that are not degrees of categoricity Bernard A. Anderson Department of Mathematics and Physical Sciences Gordon State College [email protected] www.gordonstate.edu/faculty/banderson Barbara
GENERATING SETS KEITH CONRAD
GENERATING SETS KEITH CONRAD 1 Introduction In R n, every vector can be written as a unique linear combination of the standard basis e 1,, e n A notion weaker than a basis is a spanning set: a set of vectors
Notes on Determinant
ENGG2012B Advanced Engineering Mathematics Notes on Determinant Lecturer: Kenneth Shum Lecture 9-18/02/2013 The determinant of a system of linear equations determines whether the solution is unique, without
Now is the time. For all good men PERMUTATION GENERATION. Princeton University. Robert Sedgewick METHODS
Now is the time For all good men PERMUTATION GENERATION METHODS To come to the aid Of their party Robert Sedgewick Princeton University Motivation PROBLEM Generate all N! permutations of N elements Q:
I. GROUPS: BASIC DEFINITIONS AND EXAMPLES
I GROUPS: BASIC DEFINITIONS AND EXAMPLES Definition 1: An operation on a set G is a function : G G G Definition 2: A group is a set G which is equipped with an operation and a special element e G, called
FUNCTIONAL ANALYSIS LECTURE NOTES: QUOTIENT SPACES
FUNCTIONAL ANALYSIS LECTURE NOTES: QUOTIENT SPACES CHRISTOPHER HEIL 1. Cosets and the Quotient Space Any vector space is an abelian group under the operation of vector addition. So, if you are have studied
Mathematics for Algorithm and System Analysis
Mathematics for Algorithm and System Analysis for students of computer and computational science Edward A. Bender S. Gill Williamson c Edward A. Bender & S. Gill Williamson 2005. All rights reserved. Preface
Math 55: Discrete Mathematics
Math 55: Discrete Mathematics UC Berkeley, Fall 2011 Homework # 5, due Wednesday, February 22 5.1.4 Let P (n) be the statement that 1 3 + 2 3 + + n 3 = (n(n + 1)/2) 2 for the positive integer n. a) What
Chapter 7. Permutation Groups
Chapter 7 Permutation Groups () We started the study of groups by considering planar isometries In the previous chapter, we learnt that finite groups of planar isometries can only be cyclic or dihedral
Offline sorting buffers on Line
Offline sorting buffers on Line Rohit Khandekar 1 and Vinayaka Pandit 2 1 University of Waterloo, ON, Canada. email: [email protected] 2 IBM India Research Lab, New Delhi. email: [email protected]
Test1. Due Friday, March 13, 2015.
1 Abstract Algebra Professor M. Zuker Test1. Due Friday, March 13, 2015. 1. Euclidean algorithm and related. (a) Suppose that a and b are two positive integers and that gcd(a, b) = d. Find all solutions
Single machine parallel batch scheduling with unbounded capacity
Workshop on Combinatorics and Graph Theory 21th, April, 2006 Nankai University Single machine parallel batch scheduling with unbounded capacity Yuan Jinjiang Department of mathematics, Zhengzhou University
MATHEMATICAL INDUCTION. Mathematical Induction. This is a powerful method to prove properties of positive integers.
MATHEMATICAL INDUCTION MIGUEL A LERMA (Last updated: February 8, 003) Mathematical Induction This is a powerful method to prove properties of positive integers Principle of Mathematical Induction Let P
Linear Codes. Chapter 3. 3.1 Basics
Chapter 3 Linear Codes In order to define codes that we can encode and decode efficiently, we add more structure to the codespace. We shall be mainly interested in linear codes. A linear code of length
Genetic Algorithms commonly used selection, replacement, and variation operators Fernando Lobo University of Algarve
Genetic Algorithms commonly used selection, replacement, and variation operators Fernando Lobo University of Algarve Outline Selection methods Replacement methods Variation operators Selection Methods
FACTORING LARGE NUMBERS, A GREAT WAY TO SPEND A BIRTHDAY
FACTORING LARGE NUMBERS, A GREAT WAY TO SPEND A BIRTHDAY LINDSEY R. BOSKO I would like to acknowledge the assistance of Dr. Michael Singer. His guidance and feedback were instrumental in completing this
Basic Proof Techniques
Basic Proof Techniques David Ferry [email protected] September 13, 010 1 Four Fundamental Proof Techniques When one wishes to prove the statement P Q there are four fundamental approaches. This document
CHAPTER 5. Number Theory. 1. Integers and Division. Discussion
CHAPTER 5 Number Theory 1. Integers and Division 1.1. Divisibility. Definition 1.1.1. Given two integers a and b we say a divides b if there is an integer c such that b = ac. If a divides b, we write a
Catalan Numbers. Thomas A. Dowling, Department of Mathematics, Ohio State Uni- versity.
7 Catalan Numbers Thomas A. Dowling, Department of Mathematics, Ohio State Uni- Author: versity. Prerequisites: The prerequisites for this chapter are recursive definitions, basic counting principles,
Direct Methods for Solving Linear Systems. Matrix Factorization
Direct Methods for Solving Linear Systems Matrix Factorization Numerical Analysis (9th Edition) R L Burden & J D Faires Beamer Presentation Slides prepared by John Carroll Dublin City University c 2011
Mathematical Induction. Lecture 10-11
Mathematical Induction Lecture 10-11 Menu Mathematical Induction Strong Induction Recursive Definitions Structural Induction Climbing an Infinite Ladder Suppose we have an infinite ladder: 1. We can reach
AN ALGORITHM FOR DETERMINING WHETHER A GIVEN BINARY MATROID IS GRAPHIC
AN ALGORITHM FOR DETERMINING WHETHER A GIVEN BINARY MATROID IS GRAPHIC W. T. TUTTE. Introduction. In a recent series of papers [l-4] on graphs and matroids I used definitions equivalent to the following.
3. Mathematical Induction
3. MATHEMATICAL INDUCTION 83 3. Mathematical Induction 3.1. First Principle of Mathematical Induction. Let P (n) be a predicate with domain of discourse (over) the natural numbers N = {0, 1,,...}. If (1)
Hardware Assisted Virtualization
Hardware Assisted Virtualization G. Lettieri 21 Oct. 2015 1 Introduction In the hardware-assisted virtualization technique we try to execute the instructions of the target machine directly on the host
3 Monomial orders and the division algorithm
3 Monomial orders and the division algorithm We address the problem of deciding which term of a polynomial is the leading term. We noted above that, unlike in the univariate case, the total degree does
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
SECTION 10-2 Mathematical Induction
73 0 Sequences and Series 6. Approximate e 0. using the first five terms of the series. Compare this approximation with your calculator evaluation of e 0.. 6. Approximate e 0.5 using the first five terms
Graphical degree sequences and realizations
swap Graphical and realizations Péter L. Erdös Alfréd Rényi Institute of Mathematics Hungarian Academy of Sciences MAPCON 12 MPIPKS - Dresden, May 15, 2012 swap Graphical and realizations Péter L. Erdös
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
Check Digits for Detecting Recording Errors in Horticultural Research: Theory and Examples
HORTSCIENCE 40(7):1956 1962. 2005. Check Digits for Detecting Recording Errors in Horticultural Research: Theory and Examples W.R. Okie U.S. Department of Agriculture, Agricultural Research Service, Southeastern
Lecture 4: AC 0 lower bounds and pseudorandomness
Lecture 4: AC 0 lower bounds and pseudorandomness Topics in Complexity Theory and Pseudorandomness (Spring 2013) Rutgers University Swastik Kopparty Scribes: Jason Perry and Brian Garnett In this lecture,
Lecture 3: Finding integer solutions to systems of linear equations
Lecture 3: Finding integer solutions to systems of linear equations Algorithmic Number Theory (Fall 2014) Rutgers University Swastik Kopparty Scribe: Abhishek Bhrushundi 1 Overview The goal of this lecture
MATRIX ALGEBRA AND SYSTEMS OF EQUATIONS
MATRIX ALGEBRA AND SYSTEMS OF EQUATIONS Systems of Equations and Matrices Representation of a linear system The general system of m equations in n unknowns can be written a x + a 2 x 2 + + a n x n b a
Data Structures Fibonacci Heaps, Amortized Analysis
Chapter 4 Data Structures Fibonacci Heaps, Amortized Analysis Algorithm Theory WS 2012/13 Fabian Kuhn Fibonacci Heaps Lacy merge variant of binomial heaps: Do not merge trees as long as possible Structure:
Why? A central concept in Computer Science. Algorithms are ubiquitous.
Analysis of Algorithms: A Brief Introduction Why? A central concept in Computer Science. Algorithms are ubiquitous. Using the Internet (sending email, transferring files, use of search engines, online
6.852: Distributed Algorithms Fall, 2009. Class 2
.8: Distributed Algorithms Fall, 009 Class Today s plan Leader election in a synchronous ring: Lower bound for comparison-based algorithms. Basic computation in general synchronous networks: Leader election
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. #10 Symmetric Key Ciphers (Refer
S on n elements. A good way to think about permutations is the following. Consider the A = 1,2,3, 4 whose elements we permute with the P =
Section 6. 1 Section 6. Groups of Permutations: : The Symmetric Group Purpose of Section: To introduce the idea of a permutation and show how the set of all permutations of a set of n elements, equipped
Lecture 13 - Basic Number Theory.
Lecture 13 - Basic Number Theory. Boaz Barak March 22, 2010 Divisibility and primes Unless mentioned otherwise throughout this lecture all numbers are non-negative integers. We say that A divides B, denoted
Introduction. Appendix D Mathematical Induction D1
Appendix D Mathematical Induction D D Mathematical Induction Use mathematical induction to prove a formula. Find a sum of powers of integers. Find a formula for a finite sum. Use finite differences to
Discrete Mathematics Problems
Discrete Mathematics Problems William F. Klostermeyer School of Computing University of North Florida Jacksonville, FL 32224 E-mail: [email protected] Contents 0 Preface 3 1 Logic 5 1.1 Basics...............................
Solutions to TOPICS IN ALGEBRA I.N. HERSTEIN. Part II: Group Theory
Solutions to TOPICS IN ALGEBRA I.N. HERSTEIN Part II: Group Theory No rights reserved. Any part of this work can be reproduced or transmitted in any form or by any means. Version: 1.1 Release: Jan 2013
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
Sequential Data Structures
Sequential Data Structures In this lecture we introduce the basic data structures for storing sequences of objects. These data structures are based on arrays and linked lists, which you met in first year
Sample Induction Proofs
Math 3 Worksheet: Induction Proofs III, Sample Proofs A.J. Hildebrand Sample Induction Proofs Below are model solutions to some of the practice problems on the induction worksheets. The solutions given
ENUMERATION OF INTEGRAL TETRAHEDRA
ENUMERATION OF INTEGRAL TETRAHEDRA SASCHA KURZ Abstract. We determine the numbers of integral tetrahedra with diameter d up to isomorphism for all d 1000 via computer enumeration. Therefore we give an
Graph Theory Problems and Solutions
raph Theory Problems and Solutions Tom Davis [email protected] http://www.geometer.org/mathcircles November, 005 Problems. Prove that the sum of the degrees of the vertices of any finite graph is
Chapter 3. Distribution Problems. 3.1 The idea of a distribution. 3.1.1 The twenty-fold way
Chapter 3 Distribution Problems 3.1 The idea of a distribution Many of the problems we solved in Chapter 1 may be thought of as problems of distributing objects (such as pieces of fruit or ping-pong balls)
arxiv:math/0202219v1 [math.co] 21 Feb 2002
RESTRICTED PERMUTATIONS BY PATTERNS OF TYPE (2, 1) arxiv:math/0202219v1 [math.co] 21 Feb 2002 TOUFIK MANSOUR LaBRI (UMR 5800), Université Bordeaux 1, 351 cours de la Libération, 33405 Talence Cedex, France
1 Formulating The Low Degree Testing Problem
6.895 PCP and Hardness of Approximation MIT, Fall 2010 Lecture 5: Linearity Testing Lecturer: Dana Moshkovitz Scribe: Gregory Minton and Dana Moshkovitz In the last lecture, we proved a weak PCP Theorem,
Mathematics Course 111: Algebra I Part IV: Vector Spaces
Mathematics Course 111: Algebra I Part IV: Vector Spaces D. R. Wilkins Academic Year 1996-7 9 Vector Spaces A vector space over some field K is an algebraic structure consisting of a set V on which are
NOTES ON LINEAR TRANSFORMATIONS
NOTES ON LINEAR TRANSFORMATIONS Definition 1. Let V and W be vector spaces. A function T : V W is a linear transformation from V to W if the following two properties hold. i T v + v = T v + T v for all
Undergraduate Notes in Mathematics. Arkansas Tech University Department of Mathematics
Undergraduate Notes in Mathematics Arkansas Tech University Department of Mathematics An Introductory Single Variable Real Analysis: A Learning Approach through Problem Solving Marcel B. Finan c All Rights
MATH 4330/5330, Fourier Analysis Section 11, The Discrete Fourier Transform
MATH 433/533, Fourier Analysis Section 11, The Discrete Fourier Transform Now, instead of considering functions defined on a continuous domain, like the interval [, 1) or the whole real line R, we wish
Lecture 1: Course overview, circuits, and formulas
Lecture 1: Course overview, circuits, and formulas Topics in Complexity Theory and Pseudorandomness (Spring 2013) Rutgers University Swastik Kopparty Scribes: John Kim, Ben Lund 1 Course Information Swastik
each college c i C has a capacity q i - the maximum number of students it will admit
n colleges in a set C, m applicants in a set A, where m is much larger than n. each college c i C has a capacity q i - the maximum number of students it will admit each college c i has a strict order i
Approximating the Minimum Chain Completion problem
Approximating the Minimum Chain Completion problem Tomás Feder Heikki Mannila Evimaria Terzi Abstract A bipartite graph G = (U, V, E) is a chain graph [9] if there is a bijection π : {1,..., U } U such
17. Inner product spaces Definition 17.1. Let V be a real vector space. An inner product on V is a function
17. Inner product spaces Definition 17.1. Let V be a real vector space. An inner product on V is a function, : V V R, which is symmetric, that is u, v = v, u. bilinear, that is linear (in both factors):
k, then n = p2α 1 1 pα k
Powers of Integers An integer n is a perfect square if n = m for some integer m. Taking into account the prime factorization, if m = p α 1 1 pα k k, then n = pα 1 1 p α k k. That is, n is a perfect square
Scheduling Shop Scheduling. Tim Nieberg
Scheduling Shop Scheduling Tim Nieberg Shop models: General Introduction Remark: Consider non preemptive problems with regular objectives Notation Shop Problems: m machines, n jobs 1,..., n operations
THE DIMENSION OF A VECTOR SPACE
THE DIMENSION OF A VECTOR SPACE KEITH CONRAD This handout is a supplementary discussion leading up to the definition of dimension and some of its basic properties. Let V be a vector space over a field
ABSTRACT ALGEBRA: A STUDY GUIDE FOR BEGINNERS
ABSTRACT ALGEBRA: A STUDY GUIDE FOR BEGINNERS John A. Beachy Northern Illinois University 2014 ii J.A.Beachy This is a supplement to Abstract Algebra, Third Edition by John A. Beachy and William D. Blair
Cardinality. The set of all finite strings over the alphabet of lowercase letters is countable. The set of real numbers R is an uncountable set.
Section 2.5 Cardinality (another) Definition: The cardinality of a set A is equal to the cardinality of a set B, denoted A = B, if and only if there is a bijection from A to B. If there is an injection
THE NUMBER OF REPRESENTATIONS OF n OF THE FORM n = x 2 2 y, x > 0, y 0
THE NUMBER OF REPRESENTATIONS OF n OF THE FORM n = x 2 2 y, x > 0, y 0 RICHARD J. MATHAR Abstract. We count solutions to the Ramanujan-Nagell equation 2 y +n = x 2 for fixed positive n. The computational
UNCOUPLING THE PERRON EIGENVECTOR PROBLEM
UNCOUPLING THE PERRON EIGENVECTOR PROBLEM Carl D Meyer INTRODUCTION Foranonnegative irreducible matrix m m with spectral radius ρ,afundamental problem concerns the determination of the unique normalized
Regular Languages and Finite Automata
Regular Languages and Finite Automata 1 Introduction Hing Leung Department of Computer Science New Mexico State University Sep 16, 2010 In 1943, McCulloch and Pitts [4] published a pioneering work on a
THE DESIGN OF AN EFFICIENT LOAD BALANCING ALGORITHM EMPLOYING BLOCK DESIGN. Ilyong Chung and Yongeun Bae. 1. Introduction
J. Appl. Math. & Computing Vol. 14(2004), No. 1-2, pp. 343-351 THE DESIGN OF AN EFFICIENT LOAD BALANCING ALGORITHM EMPLOYING BLOCK DESIGN Ilyong Chung and Yongeun Bae Abstract. In order to maintain load
MA651 Topology. Lecture 6. Separation Axioms.
MA651 Topology. Lecture 6. Separation Axioms. This text is based on the following books: Fundamental concepts of topology by Peter O Neil Elements of Mathematics: General Topology by Nicolas Bourbaki Counterexamples
Notes from Week 1: Algorithms for sequential prediction
CS 683 Learning, Games, and Electronic Markets Spring 2007 Notes from Week 1: Algorithms for sequential prediction Instructor: Robert Kleinberg 22-26 Jan 2007 1 Introduction In this course we will be looking
A Practical Scheme for Wireless Network Operation
A Practical Scheme for Wireless Network Operation Radhika Gowaikar, Amir F. Dana, Babak Hassibi, Michelle Effros June 21, 2004 Abstract In many problems in wireline networks, it is known that achieving
COMBINATORIAL PROPERTIES OF THE HIGMAN-SIMS GRAPH. 1. Introduction
COMBINATORIAL PROPERTIES OF THE HIGMAN-SIMS GRAPH ZACHARY ABEL 1. Introduction In this survey we discuss properties of the Higman-Sims graph, which has 100 vertices, 1100 edges, and is 22 regular. In fact
THE SIGN OF A PERMUTATION
THE SIGN OF A PERMUTATION KEITH CONRAD 1. Introduction Throughout this discussion, n 2. Any cycle in S n is a product of transpositions: the identity (1) is (12)(12), and a k-cycle with k 2 can be written
Discrete Optimization
Discrete Optimization [Chen, Batson, Dang: Applied integer Programming] Chapter 3 and 4.1-4.3 by Johan Högdahl and Victoria Svedberg Seminar 2, 2015-03-31 Todays presentation Chapter 3 Transforms using
Load Balancing and Switch Scheduling
EE384Y Project Final Report Load Balancing and Switch Scheduling Xiangheng Liu Department of Electrical Engineering Stanford University, Stanford CA 94305 Email: [email protected] Abstract Load
About the inverse football pool problem for 9 games 1
Seventh International Workshop on Optimal Codes and Related Topics September 6-1, 013, Albena, Bulgaria pp. 15-133 About the inverse football pool problem for 9 games 1 Emil Kolev Tsonka Baicheva Institute
JUST THE MATHS UNIT NUMBER 8.5. VECTORS 5 (Vector equations of straight lines) A.J.Hobson
JUST THE MATHS UNIT NUMBER 8.5 VECTORS 5 (Vector equations of straight lines) by A.J.Hobson 8.5.1 Introduction 8.5. The straight line passing through a given point and parallel to a given vector 8.5.3
263-2200 Types and Programming Languages
263-2200 Types and Programming Languages 1 / 49 Outline Types Evaluation Rules Typing Rules Properties of the Typing Relation The Inversion Lemma Prolog Implementation Reasoning Involving Types Progress
MATROIDS AND MYSQL WHAT TO DO
WHAT TO DO WITH BIG DATA SETS? Gordon Royle School of Mathematics & Statistics University of Western Australia La Vacquerie-et-Saint-Martin-de-Castries AUSTRALIA PERTH 37ACCMCC 37TH AUSTRALASIAN CONFERENCE
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
Check Digit Schemes and Error Detecting Codes. By Breanne Oldham Union University
Check Digit Schemes and Error Detecting Codes By Breanne Oldham Union University What are Check Digit Schemes? Check digit schemes are numbers appended to an identification number that allow the accuracy
SUBGROUPS OF CYCLIC GROUPS. 1. Introduction In a group G, we denote the (cyclic) group of powers of some g G by
SUBGROUPS OF CYCLIC GROUPS KEITH CONRAD 1. Introduction In a group G, we denote the (cyclic) group of powers of some g G by g = {g k : k Z}. If G = g, then G itself is cyclic, with g as a generator. Examples
