enumeration algorithms for€¦ · · 2014-09-02enumeration algorithms for restricted and...
TRANSCRIPT
![Page 1: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/1.jpg)
Enumeration Algorithms for Restricted and Unrestricted Compositions and Words
Daniel PageApril 8, 2011
![Page 2: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/2.jpg)
Enumeration?
Two different disciplines in computation but a generation solution is more powerful.
Typical interests:− Combinatorial Objects− Discrete Solution Spaces− Sequencing− Many more...
Two very different disciplines Counting
Generation
![Page 3: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/3.jpg)
Enumeration?Primary Goals of an enumeration algorithm: Given properties of a finite set, exhaust all the
members of the set which fit the definition. Avoiding extra structure whenever possible. Understanding more about the structure of a
construction. Can solve counting problems. Eg) Combinatorial Objects, Word Problems...WARNING: These algorithms are highly
output sensitive.
![Page 4: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/4.jpg)
Definition: A finite set Cs,n which contains all non-negative integer sequences л = л1 л2 ... лn
such that Σ (лi) = s, 1≤i≤n. This is called an unrestricted composition.
Combinatorial Composition
eg) C3,3= {(0,0,3),(0,3,0),(3,0,0),
(2,1,0),(1,2,0),(0,2,1),(0,1,2),(1,0,2),(2,0,1), (1,1,1)}
![Page 5: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/5.jpg)
There is also a more general version:A finite set CR
s,n which contains all non-negative
integer sequences л = л1 л2 ... лn such that Σ (лi) = s, 1≤i≤n, where лi є R.
This is called an restricted composition. There are several types of restricted compositions...
Combinatorial Composition
eg) CR3,3= {(1,1,1)}, where R = {1}
![Page 6: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/6.jpg)
HistoryCompositions play a vital role in the
foundations of Theoretical Computer Science and also are of interest in Combinatorics.
Generation of Compositions are a specific sub-type of Word Problems.
Word Problem – Given a semi-Thue System, rewrite a string given a set of 'rewriting'
axioms, to produce an outputting string in the string rewriting system in a language.
General Case: Problem is undecidable.
![Page 7: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/7.jpg)
HistoryEarly Research:
Percy Alexander MacMahon (1854-1929)“Compositions are merely
partitions in which the order of occurrence of the parts
are important”
Credit: “Combinatorics of Compositions and Words”, Heubach,Mansour
Many of his conventions are still used today.
Earliest results. “Assemblage of objects”
![Page 8: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/8.jpg)
HistoryEarly Research:
Axel Thue (1863-1922)“Zeichenreihen”
Credit: “Combinatorics of Compositions and Words”, Heubach,Mansour
First to systematically study words and compositions.
Extended to the infinite cases. The general word problem.
Thue and semi-Thue systems.
“Combinatorics on Words”
![Page 9: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/9.jpg)
ProblemsProblem 1:
Given positive integers n,s (n =0 iff s = 0), enumerate the unrestricted composition
Cs,n . Some Results: C(s,n) = CHOOSE(s+n-1,n-1) Lower bound space-complexity: Ω(C(s,n)).
− Output sensitive− Tight bound (it's the output itself).
s+k−1 , n−1
![Page 10: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/10.jpg)
ProblemsOutput Sensitivity Extremes:
s+k−1 , n−1
S(7,8)={@@@@@@H,@@@@@AG,@@@@@BF,@@@@@CE,@@@@@DD,@@@@@EC,@@@@@FB,@@@@@GA,@@@@@H@,@@@@A@G,@@@@AAF,@@@@ABE,@@@@ACD,@@@@ADC,@@@@AEB,@@@@AFA,@@@@AG@,@@@@B@F,@@@@BAE,@@@@BBD,@@@@BCC,@@@@BDB,@@@@BEA,@@@@BF@,@@@@C@E,@@@@CAD,@@@@CBC,@@@@CCB,@@@@CDA,@@@@CE@,@@@@D@D,@@@@DAC,@@@@DBB,@@@@DCA,@@@@DD@,@@@@E@C,@@@@EAB,@@@@EBA,@@@@EC@,@@@@F@B,@@@@FAA,@@@@FB@,@@@@G@A,@@@@GA@,@@@@H@@,@@@A@@G,@@@A@AF,@@@A@BE,@@@A@CD,@@@A@DC,@@@A@EB,@@@A@FA,@@@A@G@,@@@AA@F,@@@AAAE,@@@AABD,@@@AACC,@@@AADB,@@@AAEA,@@@AAF@,@@@AB@E,@@@ABAD,@@@ABBC,@@@ABCB,@@@ABDA,@@@ABE@,@@@AC@D,@@@ACAC,@@@ACBB,@@@ACCA,@@@ACD@,@@@AD@C,@@@ADAB,@@@ADBA,@@@ADC@,@@@AE@B,@@@AEAA,@@@AEB@,@@@AF@A,@@@AFA@,@@@AG@@,@@@B@@F,@@@B@AE,@@@B@BD,@@@B@CC,@@@B@DB,@@@B@EA,@@@B@F@,@@@BA@E,@@@BAAD,@@@BABC,@@@BACB,@@@BADA,@@@BAE@,@@@BB@D,@@@BBAC,@@@BBBB,@@@BBCA,@@@BBD@,@@@BC@C,@@@BCAB,@@@BCBA,@@@BCC@,@@@BD@B,@@@BDAA,@@@BDB@,@@@BE@A,@@@BEA@,@@@BF@@,@@@C@@E,@@@C@AD,@@@C@BC,@@@C@CB,@@@C@DA,@@@C@E@,@@@CA@D,@@@CAAC,@@@CABB,@@@CACA,@@@CAD@,@@@CB@C,@@@CBAB,@@@CBBA,@@@CBC@,@@@CC@B,@@@CCAA,@@@CCB@,@@@CD@A,@@@CDA@,@@@CE@@,@@@D@@D,@@@D@AC,@@@D@BB,@@@D@CA,@@@D@D@,@@@DA@C,@@@DAAB,@@@DABA,@@@DAC@,@@@DB@B,@@@DBAA,@@@DBB@,@@@DC@A,@@@DCA@,@@@DD@@,@@@E@@C,@@@E@AB,@@@E@BA,@@@E@C@,@@@EA@B,@@@EAAA,@@@EAB@,@@@EB@A,@@@EBA@,@@@EC@@,@@@F@@B,@@@F@AA,@@@F@B@,@@@FA@A,@@@FAA@,@@@FB@@,@@@G@@A,@@@G@A@,@@@GA@@,@@@H@@@,@@A@@@G,@@A@@AF,@@A@@BE,@@A@@CD,@@A@@DC,@@A@@EB,@@A@@FA,@@A@@G@,@@A@A@F,@@A@AAE,@@A@ABD,@@A@ACC,@@A@ADB,@@A@AEA,@@A@AF@,@@A@B@E,@@A@BAD,@@A@BBC,@@A@BCB,@@A@BDA,@@A@BE@,@@A@C@D,@@A@CAC,@@A@CBB,@@A@CCA,@@A@CD@,@@A@D@C,@@A@DAB,@@A@DBA,@@A@DC@,@@A@E@B,@@A@EAA,@@A@EB@,@@A@F@A,@@A@FA@,@@A@G@@,@@AA@@F,@@AA@AE,@@AA@BD,@@AA@CC,@@AA@DB,@@AA@EA,@@AA@F@,@@AAA@E,@@AAAAD,@@AAABC,@@AAACB,@@AAADA,@@AAAE@,@@AAB@D,@@AABAC,@@AABBB,@@AABCA,@@AABD@,@@AAC@C,@@AACAB,@@AACBA,@@AACC@,@@AAD@B,@@AADAA,@@AADB@,@@AAE@A,@@AAEA@,@@AAF@@,@@AB@@E,@@AB@AD,@@AB@BC,@@AB@CB,@@AB@DA,@@AB@E@,@@ABA@D,@@ABAAC,@@ABABB,@@ABACA,@@ABAD@,@@ABB@C,@@ABBAB,@@ABBBA,@@ABBC@,@@ABC@B,@@ABCAA,@@ABCB@,@@ABD@A,@@ABDA@,@@ABE@@,@@AC@@D,@@AC@AC,@@AC@BB,@@AC@CA,@@AC@D@,@@ACA@C,@@ACAAB,@@ACABA,@@ACAC@,@@ACB@B,@@ACBAA,@@ACBB@,@@ACC@A,@@ACCA@,@@ACD@@,@@AD@@C,@@AD@AB,@@AD@BA,@@AD@C@,@@ADA@B,@@ADAAA,@@ADAB@,@@ADB@A,@@ADBA@,@@ADC@@,@@AE@@B,@@AE@AA,@@AE@B@,@@AEA@A,@@AEAA@,@@AEB@@,@@AF@@A,@@AF@A@,@@AFA@@,@@AG@@@,@@B@@@F,@@B@@AE,@@B@@BD,@@B@@CC,@@B@@DB,@@B@@EA,@@B@@F@,@@B@A@E,@@B@AAD,@@B@ABC,@@B@ACB,@@B@ADA,@@B@AE@,@@B@B@D,@@B@BAC,@@B@BBB,@@B@BCA,@@B@BD@,@@B@C@C,@@B@CAB,@@B@CBA,@@B@CC@,@@B@D@B,@@B@DAA,@@B@DB@,@@B@E@A,@@B@EA@,@@B@F@@,@@BA@@E,@@BA@AD,@@BA@BC,@@BA@CB,@@BA@DA,@@BA@E@,@@BAA@D,@@BAAAC,@@BAABB,@@BAACA,@@BAAD@,@@BAB@C,@@BABAB,@@BABBA,@@BABC@,@@BAC@B,@@BACAA,@@BACB@,@@BAD@A,@@BADA@,@@BAE@@,@@BB@@D,@@BB@AC,@@BB@BB,@@BB@CA,@@BB@D@,@@BBA@C,@@BBAAB,@@BBABA,@@BBAC@,@@BBB@B,@@BBBAA,@@BBBB@,@@BBC@A,@@BBCA@,@@BBD@@,@@BC@@C,@@BC@AB,@@BC@BA,@@BC@C@,@@BCA@B,@@BCAAA,@@BCAB@,@@BCB@A,@@BCBA@,@@BCC@@,@@BD@@B,@@BD@AA,@@BD@B@,@@BDA@A,@@BDAA@,@@BDB@@,@@BE@@A,@@BE@A@,@@BEA@@,@@BF@@@,@@C@@@E,@@C@@AD,@@C@@BC,@@C@@CB,@@C@@DA,@@C@@E@,@@C@A@D,@@C@AAC,@@C@ABB,@@C@ACA,@@C@AD@,@@C@B@C,@@C@BAB,@@C@BBA,@@C@BC@,@@C@C@B,@@C@CAA,@@C@CB@,@@C@D@A,@@C@DA@,@@C@E@@,@@CA@@D,@@CA@AC,@@CA@BB,@@CA@CA,@@CA@D@,@@CAA@C,@@CAAAB,@@CAABA,@@CAAC@,@@CAB@B,@@CABAA,@@CABB@,@@CAC@A,@@CACA@,@@CAD@@,@@CB@@C,@@CB@AB,@@CB@BA,@@CB@C@,@@CBA@B,@@CBAAA,@@CBAB@,@@CBB@A,@@CBBA@,@@CBC@@,@@CC@@B,@@CC@AA,@@CC@B@,@@CCA@A,@@CCAA@,@@CCB@@,@@CD@@A,@@CD@A@,@@CDA@@,@@CE@@@,@@D@@@D,@@D@@AC,@@D@@BB,@@D@@CA,@@D@@D@,@@D@A@C,@@D@AAB,@@D@ABA,@@D@AC@,@@D@B@B,@@D@BAA,@@D@BB@,@@D@C@A,@@D@CA@,@@D@D@@,@@DA@@C,@@DA@AB,@@DA@BA,@@DA@C@,@@DAA@B,@@DAAAA,@@DAAB@,@@DAB@A,@@DABA@,@@DAC@@,@@DB@@B,@@DB@AA,@@DB@B@,@@DBA@A,@@DBAA@,@@DBB@@,@@DC@@A,@@DC@A@,@@DCA@@,@@DD@@@,@@E@@@C,@@E@@AB,@@E@@BA,@@E@@C@,@@E@A@B,@@E@AAA,@@E@AB@,@@E@B@A,@@E@BA@,@@E@C@@,@@EA@@B,@@EA@AA,@@EA@B@,@@EAA@A,@@EAAA@,@@EAB@@,@@EB@@A,@@EB@A@,@@EBA@@,@@EC@@@,@@F@@@B,@@F@@AA,@@F@@B@,@@F@A@A,@@F@AA@,@@F@B@@,@@FA@@A,@@FA@A@,@@FAA@@,@@FB@@@,@@G@@@A,@@G@@A@,@@G@A@@,@@GA@@@,@@H@@@@,@A@@@@G,@A@@@AF,@A@@@BE,@A@@@CD,@A@@@DC,@A@@@EB,@A@@@FA,@A@@@G@,@A@@A@F,@A@@AAE,@A@@ABD,@A@@ACC,@A@@ADB,@A@@AEA,@A@@AF@,@A@@B@E,@A@@BAD,@A@@BBC,@A@@BCB,@A@@BDA,@A@@BE@,@A@@C@D,@A@@CAC,@A@@CBB,@A@@CCA,@A@@CD@,@A@@D@C,@A@@DAB,@A@@DBA,@A@@DC@,@A@@E@B,@A@@EAA,@A@@EB@,@A@@F@A,@A@@FA@,@A@@G@@,@A@A@@F,@A@A@AE,@A@A@BD,@A@A@CC,@A@A@DB,@A@A@EA,@A@A@F@,@A@AA@E,@A@AAAD,@A@AABC,@A@AACB,@A@AADA,@A@AAE@,@A@AB@D,@A@ABAC,@A@ABBB,@A@ABCA,@A@ABD@,@A@AC@C,@A@ACAB,@A@ACBA,@A@ACC@,@A@AD@B,@A@ADAA,@A@ADB@,@A@AE@A,@A@AEA@,@A@AF@@,@A@B@@E,@A@B@AD,@A@B@BC,@A@B@CB,@A@B@DA,@A@B@E@,@A@BA@D,@A@BAAC,@A@BABB,@A@BACA,@A@BAD@,@A@BB@C,@A@BBAB,@A@BBBA,@A@BBC@,@A@BC@B,@A@BCAA,@A@BCB@,@A@BD@A,@A@BDA@,@A@BE@@,@A@C@@D,@A@C@AC,@A@C@BB,@A@C@CA,@A@C@D@,@A@CA@C,@A@CAAB,@A@CABA,@A@CAC@,@A@CB@B,@A@CBAA,@A@CBB@,@A@CC@A,@A@CCA@,@A@CD@@,@A@D@@C,@A@D@AB,@A@D@BA,@A@D@C@,@A@DA@B,@A@DAAA,@A@DAB@,@A@DB@A,@A@DBA@,@A@DC@@,@A@E@@B,@A@E@AA,@A@E@B@,@A@EA@A,@A@EAA@,@A@EB@@,@A@F@@A,@A@F@A@,@A@FA@@,@A@G@@@,@AA@@@F,@AA@@AE,@AA@@BD,@AA@@CC,@AA@@DB,@AA@@EA,@AA@@F@,@AA@A@E,@AA@AAD,@AA@ABC,@AA@ACB,@AA@ADA,@AA@AE@,@AA@B@D,@AA@BAC,@AA@BBB,@AA@BCA,@AA@BD@,@AA@C@C,@AA@CAB,@AA@CBA,@AA@CC@,@AA@D@B,@AA@DAA,@AA@DB@,@AA@E@A,@AA@EA@,@AA@F@@,@AAA@@E,@AAA@AD,@AAA@BC,@AAA@CB,@AAA@DA,@AAA@E@,@AAAA@D,@AAAAAC,@AAAABB,@AAAACA,@AAAAD@,@AAAB@C,@AAABAB,@AAABBA,@AAABC@,@AAAC@B,@AAACAA,@AAACB@,@AAAD@A,@AAADA@,@AAAE@@,@AAB@@D,@AAB@AC,@AAB@BB,@AAB@CA,@AAB@D@,@AABA@C,@AABAAB,@AABABA,@AABAC@,@AABB@B,@AABBAA,@AABBB@,@AABC@A,@AABCA@,@AABD@@,@AAC@@C,@AAC@AB,@AAC@BA,@AAC@C@,@AACA@B,@AACAAA,@AACAB@,@AACB@A,@AACBA@,@AACC@@,@AAD@@B,@AAD@AA,@AAD@B@,@AADA@A,@AADAA@,@AADB@@,@AAE@@A,@AAE@A@,@AAEA@@,@AAF@@@,@AB@@@E,@AB@@AD,@AB@@BC,@AB@@CB,@AB@@DA,@AB@@E@,@AB@A@D,@AB@AAC,@AB@ABB,@AB@ACA,@AB@AD@,@AB@B@C,@AB@BAB,@AB@BBA,@AB@BC@,@AB@C@B,@AB@CAA,@AB@CB@,@AB@D@A,@AB@DA@,@AB@E@@,@ABA@@D,@ABA@AC,@ABA@BB,@ABA@CA,@ABA@D@,@ABAA@C,@ABAAAB,@ABAABA,@ABAAC@,@ABAB@B,@ABABAA,@ABABB@,@ABAC@A,@ABACA@,@ABAD@@,@ABB@@C,@ABB@AB,@ABB@BA,@ABB@C@,@ABBA@B,@ABBAAA,@ABBAB@,@ABBB@A,@ABBBA@,@ABBC@@,@ABC@@B,@ABC@AA,@ABC@B@,@ABCA@A,@ABCAA@,@ABCB@@,@ABD@@A,@ABD@A@,@ABDA@@,@ABE@@@,@AC@@@D,@AC@@AC,@AC@@BB,@AC@@CA,@AC@@D@,@AC@A@C,@AC@AAB,@AC@ABA,@AC@AC@,@AC@B@B,@AC@BAA,@AC@BB@,@AC@C@A,@AC@CA@,@AC@D@@,@ACA@@C,@ACA@AB,@ACA@BA,@ACA@C@,@ACAA@B,@ACAAAA,@ACAAB@,@ACAB@A,@ACABA@,@ACAC@@,@ACB@@B,@ACB@AA,@ACB@B@,@ACBA@A,@ACBAA@,@ACBB@@,@ACC@@A,@ACC@A@,@ACCA@@,@ACD@@@,@AD@@@C,@AD@@AB,@AD@@BA,@AD@@C@,@AD@A@B,@AD@AAA,@AD@AB@,@AD@B@A,@AD@BA@,@AD@C@@,@ADA@@B,@ADA@AA,@ADA@B@,@ADAA@A,@ADAAA@,@ADAB@@,@ADB@@A,@ADB@A@,@ADBA@@,@ADC@@@,@AE@@@B,@AE@@AA,@AE@@B@,@AE@A@A,@AE@AA@,@AE@B@@,@AEA@@A,@AEA@A@,@AEAA@@,@AEB@@@,@AF@@@A,@AF@@A@,@AF@A@@,@AFA@@@,@AG@@@@,@B@@@@F,@B@@@AE,@B@@@BD,@B@@@CC,@B@@@DB,@B@@@EA,@B@@@F@,@B@@A@E,@B@@AAD,@B@@ABC,@B@@ACB,@B@@ADA,@B@@AE@,@B@@B@D,@B@@BAC,@B@@BBB,@B@@BCA,@B@@BD@,@B@@C@C,@B@@CAB,@B@@CBA,@B@@CC@,@B@@D@B,@B@@DAA,@B@@DB@,@B@@E@A,@B@@EA@,@B@@F@@,@B@A@@E,@B@A@AD,@B@A@BC,@B@A@CB,@B@A@DA,@B@A@E@,@B@AA@D,@B@AAAC,@B@AABB,@B@AACA,@B@AAD@,@B@AB@C,@B@ABAB,@B@ABBA,@B@ABC@,@B@AC@B,@B@ACAA,@B@ACB@,@B@AD@A,@B@ADA@,@B@AE@@,@B@B@@D,@B@B@AC,@B@B@BB,@B@B@CA,@B@B@D@,@B@BA@C,@B@BAAB,@B@BABA,@B@BAC@,@B@BB@B,@B@BBAA,@B@BBB@,@B@BC@A,@B@BCA@,@B@BD@@,@B@C@@C,@B@C@AB,@B@C@BA,@B@C@C@,@B@CA@B,@B@CAAA,@B@CAB@,@B@CB@A,@B@CBA@,@B@CC@@,@B@D@@B,@B@D@AA,@B@D@B@,@B@DA@A,@B@DAA@,@B@DB@@,@B@E@@A,@B@E@A@,@B@EA@@,@B@F@@@,@BA@@@E,@BA@@AD,@BA@@BC,@BA@@CB,@BA@@DA,@BA@@E@,@BA@A@D,@BA@AAC,@BA@ABB,@BA@ACA,@BA@AD@,@BA@B@C,@BA@BAB,@BA@BBA,@BA@BC@,@BA@C@B,@BA@CAA,@BA@CB@,@BA@D@A,@BA@DA@,@BA@E@@,@BAA@@D,@BAA@AC,@BAA@BB,@BAA@CA,@BAA@D@,@BAAA@C,@BAAAAB,@BAAABA,@BAAAC@,@BAAB@B,@BAABAA,@BAABB@,@BAAC@A,@BAACA@,@BAAD@@,@BAB@@C,@BAB@AB,@BAB@BA,@BAB@C@,@BABA@B,@BABAAA,@BABAB@,@BABB@A,@BABBA@,@BABC@@,@BAC@@B,@BAC@AA,@BAC@B@,@BACA@A,@BACAA@,@BACB@@,@BAD@@A,@BAD@A@,@BADA@@,@BAE@@@,@BB@@@D,@BB@@AC,@BB@@BB,@BB@@CA,@BB@@D@,@BB@A@C,@BB@AAB,@BB@ABA,@BB@AC@,@BB@B@B,@BB@BAA,@BB@BB@,@BB@C@A,@BB@CA@,@BB@D@@,@BBA@@C,@BBA@AB,@BBA@BA,@BBA@C@,@BBAA@B,@BBAAAA,@BBAAB@,@BBAB@A,@BBABA@,@BBAC@@,@BBB@@B,@BBB@AA,@BBB@B@,@BBBA@A,@BBBAA@,@BBBB@@,@BBC@@A,@BBC@A@,@BBCA@@,@BBD@@@,@BC@@@C,@BC@@AB,@BC@@BA,@BC@@C@,@BC@A@B,@BC@AAA,@BC@AB@,@BC@B@A,@BC@BA@,@BC@C@@,@BCA@@B,@BCA@AA,@BCA@B@,@BCAA@A,@BCAAA@,@BCAB@@,@BCB@@A,@BCB@A@,@BCBA@@,@BCC@@@,@BD@@@B,@BD@@AA,@BD@@B@,@BD@A@A,@BD@AA@,@BD@B@@,@BDA@@A,@BDA@A@,@BDAA@@,@BDB@@@,@BE@@@A,@BE@@A@,@BE@A@@,@BEA@@@,@BF@@@@,@C@@@@E,@C@@@AD,@C@@@BC,@C@@@CB,@C@@@DA,@C@@@E@,@C@@A@D,@C@@AAC,@C@@ABB,@C@@ACA,@C@@AD@,@C@@B@C,@C@@BAB,@C@@BBA,@C@@BC@,@C@@C@B,@C@@CAA,@C@@CB@,@C@@D@A,@C@@DA@,@C@@E@@,@C@A@@D,@C@A@AC,@C@A@BB,@C@A@CA,@C@A@D@,@C@AA@C,@C@AAAB,@C@AABA,@C@AAC@,@C@AB@B,@C@ABAA,@C@ABB@,@C@AC@A,@C@ACA@,@C@AD@@,@C@B@@C,@C@B@AB,@C@B@BA,@C@B@C@,@C@BA@B,@C@BAAA,@C@BAB@,@C@BB@A,@C@BBA@,@C@BC@@,@C@C@@B,@C@C@AA,@C@C@B@,@C@CA@A,@C@CAA@,@C@CB@@,@C@D@@A,@C@D@A@,@C@DA@@,@C@E@@@,@CA@@@D,@CA@@AC,@CA@@BB,@CA@@CA,@CA@@D@,@CA@A@C,@CA@AAB,@CA@ABA,@CA@AC@,@CA@B@B,@CA@BAA,@CA@BB@,@CA@C@A,@CA@CA@,@CA@D@@,@CAA@@C,@CAA@AB,@CAA@BA,@CAA@C@,@CAAA@B,@CAAAAA,@CAAAB@,@CAAB@A,@CAABA@,@CAAC@@,@CAB@@B,@CAB@AA,@CAB@B@,@CABA@A,@CABAA@,@CABB@@,@CAC@@A,@CAC@A@,@CACA@@,@CAD@@@,@CB@@@C,@CB@@AB,@CB@@BA,@CB@@C@,@CB@A@B,@CB@AAA,@CB@AB@,@CB@B@A,@CB@BA@,@CB@C@@,@CBA@@B,@CBA@AA,@CBA@B@,@CBAA@A,@CBAAA@,@CBAB@@,@CBB@@A,@CBB@A@,@CBBA@@,@CBC@@@,@CC@@@B,@CC@@AA,@CC@@B@,@CC@A@A,@CC@AA@,@CC@B@@,@CCA@@A,@CCA@A@,@CCAA@@,@CCB@@@,@CD@@@A,@CD@@A@,@CD@A@@,@CDA@@@,@CE@@@@,@D@@@@D,@D@@@AC,@D@@@BB,@D@@@CA,@D@@@D@,@D@@A@C,@D@@AAB,@D@@ABA,@D@@AC@,@D@@B@B,@D@@BAA,@D@@BB@,@D@@C@A,@D@@CA@,@D@@D@@,@D@A@@C,@D@A@AB,@D@A@BA,@D@A@C@,@D@AA@B,@D@AAAA,@D@AAB@,@D@AB@A,@D@ABA@,@D@AC@@,@D@B@@B,@D@B@AA,@D@B@B@,@D@BA@A,@D@BAA@,@D@BB@@,@D@C@@A,@D@C@A@,@D@CA@@,@D@D@@@,@DA@@@C,@DA@@AB,@DA@@BA,@DA@@C@,@DA@A@B,@DA@AAA,@DA@AB@,@DA@B@A,@DA@BA@,@DA@C@@,@DAA@@B,@DAA@AA,@DAA@B@,@DAAA@A,@DAAAA@,@DAAB@@,@DAB@@A,@DAB@A@,@DABA@@,@DAC@@@,@DB@@@B,@DB@@AA,@DB@@B@,@DB@A@A,@DB@AA@,@DB@B@@,@DBA@@A,@DBA@A@,@DBAA@@,@DBB@@@,@DC@@@A,@DC@@A@,@DC@A@@,@DCA@@@,@DD@@@@,@E@@@@C,@E@@@AB,@E@@@BA,@E@@@C@,@E@@A@B,@E@@AAA,@E@@AB@,@E@@B@A,@E@@BA@,@E@@C@@,@E@A@@B,@E@A@AA,@E@A@B@,@E@AA@A,@E@AAA@,@E@AB@@,@E@B@@A,@E@B@A@,@E@BA@@,@E@C@@@,@EA@@@B,@EA@@AA,@EA@@B@,@EA@A@A,@EA@AA@,@EA@B@@,@EAA@@A,@EAA@A@,@EAAA@@,@EAB@@@,@EB@@@A,@EB@@A@,@EB@A@@,@EBA@@@,@EC@@@@,@F@@@@B,@F@@@AA,@F@@@B@,@F@@A@A,@F@@AA@,@F@@B@@,@F@A@@A,@F@A@A@,@F@AA@@,@F@B@@@,@FA@@@A,@FA@@A@,@FA@A@@,@FAA@@@,@FB@@@@,@G@@@@A,@G@@@A@,@G@@A@@,@G@A@@@,@GA@@@@,@H@@@@@,A@@@@@G,A@@@@AF,A@@@@BE,A@@@@CD,A@@@@DC,A@@@@EB,A@@@@FA,A@@@@G@,A@@@A@F,A@@@AAE,A@@@ABD,A@@@ACC,A@@@ADB,A@@@AEA,A@@@AF@,A@@@B@E,A@@@BAD,A@@@BBC,A@@@BCB,A@@@BDA,A@@@BE@,A@@@C@D,A@@@CAC,A@@@CBB,A@@@CCA,A@@@CD@,A@@@D@C,A@@@DAB,A@@@DBA,A@@@DC@,A@@@E@B,A@@@EAA,A@@@EB@,A@@@F@A,A@@@FA@,A@@@G@@,A@@A@@F,A@@A@AE,A@@A@BD,A@@A@CC,A@@A@DB,A@@A@EA,A@@A@F@,A@@AA@E,A@@AAAD,A@@AABC,A@@AACB,A@@AADA,A@@AAE@,A@@AB@D,A@@ABAC,A@@ABBB,A@@ABCA,A@@ABD@,A@@AC@C,A@@ACAB,A@@ACBA,A@@ACC@,A@@AD@B,A@@ADAA,A@@ADB@,A@@AE@A,A@@AEA@,A@@AF@@,A@@B@@E,A@@B@AD,A@@B@BC,A@@B@CB,A@@B@DA,A@@B@E@,A@@BA@D,A@@BAAC,A@@BABB,A@@BACA,A@@BAD@,A@@BB@C,A@@BBAB,A@@BBBA,A@@BBC@,A@@BC@B,A@@BCAA,A@@BCB@,A@@BD@A,A@@BDA@,A@@BE@@,A@@C@@D,A@@C@AC,A@@C@BB,A@@C@CA,A@@C@D@,A@@CA@C,A@@CAAB,A@@CABA,A@@CAC@,A@@CB@B,A@@CBAA,A@@CBB@,A@@CC@A,A@@CCA@,A@@CD@@,A@@D@@C,A@@D@AB,A@@D@BA,A@@D@C@,A@@DA@B,A@@DAAA,A@@DAB@,A@@DB@A,A@@DBA@,A@@DC@@,A@@E@@B,A@@E@AA,A@@E@B@,A@@EA@A,A@@EAA@,A@@EB@@,A@@F@@A,A@@F@A@,A@@FA@@,A@@G@@@,A@A@@@F,A@A@@AE,A@A@@BD,A@A@@CC,A@A@@DB,A@A@@EA,A@A@@F@,A@A@A@E,A@A@AAD,A@A@ABC,A@A@ACB,A@A@ADA,A@A@AE@,A@A@B@D,A@A@BAC,A@A@BBB,A@A@BCA,A@A@BD@,A@A@C@C,A@A@CAB,A@A@CBA,A@A@CC@,A@A@D@B,A@A@DAA,A@A@DB@,A@A@E@A,A@A@EA@,A@A@F@@,A@AA@@E,A@AA@AD,A@AA@BC,A@AA@CB,A@AA@DA,A@AA@E@,A@AAA@D,A@AAAAC,A@AAABB,A@AAACA,A@AAAD@,A@AAB@C,A@AABAB,A@AABBA,A@AABC@,A@AAC@B,A@AACAA,A@AACB@,A@AAD@A,A@AADA@,A@AAE@@,A@AB@@D,A@AB@AC,A@AB@BB,A@AB@CA,A@AB@D@,A@ABA@C,A@ABAAB,A@ABABA,A@ABAC@,A@ABB@B,A@ABBAA,A@ABBB@,A@ABC@A,A@ABCA@,A@ABD@@,A@AC@@C,A@AC@AB,A@AC@BA,A@AC@C@,A@ACA@B,A@ACAAA,A@ACAB@,A@ACB@A,A@ACBA@,A@ACC@@,A@AD@@B,A@AD@AA,A@AD@B@,A@ADA@A,A@ADAA@,A@ADB@@,A@AE@@A,A@AE@A@,A@AEA@@,A@AF@@@,A@B@@@E,A@B@@AD,A@B@@BC,A@B@@CB,A@B@@DA,A@B@@E@,A@B@A@D,A@B@AAC,A@B@ABB,A@B@ACA,A@B@AD@,A@B@B@C,A@B@BAB,A@B@BBA,A@B@BC@,A@B@C@B,A@B@CAA,A@B@CB@,A@B@D@A,A@B@DA@,A@B@E@@,A@BA@@D,A@BA@AC,A@BA@BB,A@BA@CA,A@BA@D@,A@BAA@C,A@BAAAB,A@BAABA,A@BAAC@,A@BAB@B,A@BABAA,A@BABB@,A@BAC@A,A@BACA@,A@BAD@@,A@BB@@C,A@BB@AB,A@BB@BA,A@BB@C@,A@BBA@B,A@BBAAA,A@BBAB@,A@BBB@A,A@BBBA@,A@BBC@@,A@BC@@B,A@BC@AA,A@BC@B@,A@BCA@A,A@BCAA@,A@BCB@@,A@BD@@A,A@BD@A@,A@BDA@@,A@BE@@@,A@C@@@D,A@C@@AC,A@C@@BB,A@C@@CA,A@C@@D@,A@C@A@C,A@C@AAB,A@C@ABA,A@C@AC@,A@C@B@B,A@C@BAA,A@C@BB@,A@C@C@A,A@C@CA@,A@C@D@@,A@CA@@C,A@CA@AB,A@CA@BA,A@CA@C@,A@CAA@B,A@CAAAA,A@CAAB@,A@CAB@A,A@CABA@,A@CAC@@,A@CB@@B,A@CB@AA,A@CB@B@,A@CBA@A,A@CBAA@,A@CBB@@,A@CC@@A,A@CC@A@,A@CCA@@,A@CD@@@,A@D@@@C,A@D@@AB,A@D@@BA,A@D@@C@,A@D@A@B,A@D@AAA,A@D@AB@,A@D@B@A,A@D@BA@,A@D@C@@,A@DA@@B,A@DA@AA,A@DA@B@,A@DAA@A,A@DAAA@,A@DAB@@,A@DB@@A,A@DB@A@,A@DBA@@,A@DC@@@,A@E@@@B,A@E@@AA,A@E@@B@,A@E@A@A,A@E@AA@,A@E@B@@,A@EA@@A,A@EA@A@,A@EAA@@,A@EB@@@,A@F@@@A,A@F@@A@,A@F@A@@,A@FA@@@,A@G@@@@,AA@@@@F,AA@@@AE,AA@@@BD,AA@@@CC,AA@@@DB,AA@@@EA,AA@@@F@,AA@@A@E,AA@@AAD,AA@@ABC,AA@@ACB,AA@@ADA,AA@@AE@,AA@@B@D,AA@@BAC,AA@@BBB,AA@@BCA,AA@@BD@,AA@@C@C,AA@@CAB,AA@@CBA,AA@@CC@,AA@@D@B,AA@@DAA,AA@@DB@,AA@@E@A,AA@@EA@,AA@@F@@,AA@A@@E,AA@A@AD,AA@A@BC,AA@A@CB,AA@A@DA,AA@A@E@,AA@AA@D,AA@AAAC,AA@AABB,AA@AACA,AA@AAD@,AA@AB@C,AA@ABAB,AA@ABBA,AA@ABC@,AA@AC@B,AA@ACAA,AA@ACB@,AA@AD@A,AA@ADA@,AA@AE@@,AA@B@@D,AA@B@AC,AA@B@BB,AA@B@CA,AA@B@D@,AA@BA@C,AA@BAAB,AA@BABA,AA@BAC@,AA@BB@B,AA@BBAA,AA@BBB@,AA@BC@A,AA@BCA@,AA@BD@@,AA@C@@C,AA@C@AB,AA@C@BA,AA@C@C@,AA@CA@B,AA@CAAA,AA@CAB@,AA@CB@A,AA@CBA@,AA@CC@@,AA@D@@B,AA@D@AA,AA@D@B@,AA@DA@A,AA@DAA@,AA@DB@@,AA@E@@A,AA@E@A@,AA@EA@@,AA@F@@@,AAA@@@E,AAA@@AD,AAA@@BC,AAA@@CB,AAA@@DA,AAA@@E@,AAA@A@D,AAA@AAC,AAA@ABB,AAA@ACA,AAA@AD@,AAA@B@C,AAA@BAB,AAA@BBA,AAA@BC@,AAA@C@B,AAA@CAA,AAA@CB@,AAA@D@A,AAA@DA@,AAA@E@@,AAAA@@D,AAAA@AC,AAAA@BB,AAAA@CA,AAAA@D@,AAAAA@C,AAAAAAB,AAAAABA,AAAAAC@,AAAAB@B,AAAABAA,AAAABB@,AAAAC@A,AAAACA@,AAAAD@@,AAAB@@C,AAAB@AB,AAAB@BA,AAAB@C@,AAABA@B,AAABAAA,AAABAB@,AAABB@A,AAABBA@,AAABC@@,AAAC@@B,AAAC@AA,AAAC@B@,AAACA@A,AAACAA@,AAACB@@,AAAD@@A,AAAD@A@,AAADA@@,AAAE@@@,AAB@@@D,AAB@@AC,AAB@@BB,AAB@@CA,AAB@@D@,AAB@A@C,AAB@AAB,AAB@ABA,AAB@AC@,AAB@B@B,AAB@BAA,AAB@BB@,AAB@C@A,AAB@CA@,AAB@D@@,AABA@@C,AABA@AB,AABA@BA,AABA@C@,AABAA@B,AABAAAA,AABAAB@,AABAB@A,AABABA@,AABAC@@,AABB@@B,AABB@AA,AABB@B@,AABBA@A,AABBAA@,AABBB@@,AABC@@A,AABC@A@,AABCA@@,AABD@@@,AAC@@@C,AAC@@AB,AAC@@BA,AAC@@C@,AAC@A@B,AAC@AAA,AAC@AB@,AAC@B@A,AAC@BA@,AAC@C@@,AACA@@B,AACA@AA,AACA@B@,AACAA@A,AACAAA@,AACAB@@,AACB@@A,AACB@A@,AACBA@@,AACC@@@,AAD@@@B,AAD@@AA,AAD@@B@,AAD@A@A,AAD@AA@,AAD@B@@,AADA@@A,AADA@A@,AADAA@@,AADB@@@,AAE@@@A,AAE@@A@,AAE@A@@,AAEA@@@,AAF@@@@,AB@@@@E,AB@@@AD,AB@@@BC,AB@@@CB,AB@@@DA,AB@@@E@,AB@@A@D,AB@@AAC,AB@@ABB,AB@@ACA,AB@@AD@,AB@@B@C,AB@@BAB,AB@@BBA,AB@@BC@,AB@@C@B,AB@@CAA,AB@@CB@,AB@@D@A,AB@@DA@,AB@@E@@,AB@A@@D,AB@A@AC,AB@A@BB,AB@A@CA,AB@A@D@,AB@AA@C,AB@AAAB,AB@AABA,AB@AAC@,AB@AB@B,AB@ABAA,AB@ABB@,AB@AC@A,AB@ACA@,AB@AD@@,AB@B@@C,AB@B@AB,AB@B@BA,AB@B@C@,AB@BA@B,AB@BAAA,AB@BAB@,AB@BB@A,AB@BBA@,AB@BC@@,AB@C@@B,AB@C@AA,AB@C@B@,AB@CA@A,AB@CAA@,AB@CB@@,AB@D@@A,AB@D@A@,AB@DA@@,AB@E@@@,ABA@@@D,ABA@@AC,ABA@@BB,ABA@@CA,ABA@@D@,ABA@A@C,ABA@AAB,ABA@ABA,ABA@AC@,ABA@B@B,ABA@BAA,ABA@BB@,ABA@C@A,ABA@CA@,ABA@D@@,ABAA@@C,ABAA@AB,ABAA@BA,ABAA@C@,ABAAA@B,ABAAAAA,ABAAAB@,ABAAB@A,ABAABA@,ABAAC@@,ABAB@@B,ABAB@AA,ABAB@B@,ABABA@A,ABABAA@,ABABB@@,ABAC@@A,ABAC@A@,ABACA@@,ABAD@@@,ABB@@@C,ABB@@AB,ABB@@BA,ABB@@C@,ABB@A@B,ABB@AAA,ABB@AB@,ABB@B@A,ABB@BA@,ABB@C@@,ABBA@@B,ABBA@AA,ABBA@B@,ABBAA@A,ABBAAA@,ABBAB@@,ABBB@@A,ABBB@A@,ABBBA@@,ABBC@@@,ABC@@@B,ABC@@AA,ABC@@B@,ABC@A@A,ABC@AA@,ABC@B@@,ABCA@@A,ABCA@A@,ABCAA@@,ABCB@@@,ABD@@@A,ABD@@A@,ABD@A@@,ABDA@@@,ABE@@@@,AC@@@@D,AC@@@AC,AC@@@BB,AC@@@CA,AC@@@D@,AC@@A@C,AC@@AAB,AC@@ABA,AC@@AC@,AC@@B@B,AC@@BAA,AC@@BB@,AC@@C@A,AC@@CA@,AC@@D@@,AC@A@@C,AC@A@AB,AC@A@BA,AC@A@C@,AC@AA@B,AC@AAAA,AC@AAB@,AC@AB@A,AC@ABA@,AC@AC@@,AC@B@@B,AC@B@AA,AC@B@B@,AC@BA@A,AC@BAA@,AC@BB@@,AC@C@@A,AC@C@A@,AC@CA@@,AC@D@@@,ACA@@@C,ACA@@AB,ACA@@BA,ACA@@C@,ACA@A@B,ACA@AAA,ACA@AB@,ACA@B@A,ACA@BA@,ACA@C@@,ACAA@@B,ACAA@AA,ACAA@B@,ACAAA@A,ACAAAA@,ACAAB@@,ACAB@@A,ACAB@A@,ACABA@@,ACAC@@@,ACB@@@B,ACB@@AA,ACB@@B@,ACB@A@A,ACB@AA@,ACB@B@@,ACBA@@A,ACBA@A@,ACBAA@@,ACBB@@@,ACC@@@A,ACC@@A@,ACC@A@@,ACCA@@@,ACD@@@@,AD@@@@C,AD@@@AB,AD@@@BA,AD@@@C@,AD@@A@B,AD@@AAA,AD@@AB@,AD@@B@A,AD@@BA@,AD@@C@@,AD@A@@B,AD@A@AA,AD@A@B@,AD@AA@A,AD@AAA@,AD@AB@@,AD@B@@A,AD@B@A@,AD@BA@@,AD@C@@@,ADA@@@B,ADA@@AA,ADA@@B@,ADA@A@A,ADA@AA@,ADA@B@@,ADAA@@A,ADAA@A@,ADAAA@@,ADAB@@@,ADB@@@A,ADB@@A@,ADB@A@@,ADBA@@@,ADC@@@@,AE@@@@B,AE@@@AA,AE@@@B@,AE@@A@A,AE@@AA@,AE@@B@@,AE@A@@A,AE@A@A@,AE@AA@@,AE@B@@@,AEA@@@A,AEA@@A@,AEA@A@@,AEAA@@@,AEB@@@@,AF@@@@A,AF@@@A@,AF@@A@@,AF@A@@@,AFA@@@@,AG@@@@@,B@@@@@F,B@@@@AE,B@@@@BD,B@@@@CC,B@@@@DB,B@@@@EA,B@@@@F@,B@@@A@E,B@@@AAD,B@@@ABC,B@@@ACB,B@@@ADA,B@@@AE@,B@@@B@D,B@@@BAC,B@@@BBB,B@@@BCA,B@@@BD@,B@@@C@C,B@@@CAB,B@@@CBA,B@@@CC@,B@@@D@B,B@@@DAA,B@@@DB@,B@@@E@A,B@@@EA@,B@@@F@@,B@@A@@E,B@@A@AD,B@@A@BC,B@@A@CB,B@@A@DA,B@@A@E@,B@@AA@D,B@@AAAC,B@@AABB,B@@AACA,B@@AAD@,B@@AB@C,B@@ABAB,B@@ABBA,B@@ABC@,B@@AC@B,B@@ACAA,B@@ACB@,B@@AD@A,B@@ADA@,B@@AE@@,B@@B@@D,B@@B@AC,B@@B@BB,B@@B@CA,B@@B@D@,B@@BA@C,B@@BAAB,B@@BABA,B@@BAC@,B@@BB@B,B@@BBAA,B@@BBB@,B@@BC@A,B@@BCA@,B@@BD@@,B@@C@@C,B@@C@AB,B@@C@BA,B@@C@C@,B@@CA@B,B@@CAAA,B@@CAB@,B@@CB@A,B@@CBA@,B@@CC@@,B@@D@@B,B@@D@AA,B@@D@B@,B@@DA@A,B@@DAA@,B@@DB@@,B@@E@@A,B@@E@A@,B@@EA@@,B@@F@@@,B@A@@@E,B@A@@AD,B@A@@BC,B@A@@CB,B@A@@DA,B@A@@E@,B@A@A@D,B@A@AAC,B@A@ABB,B@A@ACA,B@A@AD@,B@A@B@C,B@A@BAB,B@A@BBA,B@A@BC@,B@A@C@B,B@A@CAA,B@A@CB@,B@A@D@A,B@A@DA@,B@A@E@@,B@AA@@D,B@AA@AC,B@AA@BB,B@AA@CA,B@AA@D@,B@AAA@C,B@AAAAB,B@AAABA,B@AAAC@,B@AAB@B,B@AABAA,B@AABB@,B@AAC@A,B@AACA@,B@AAD@@,B@AB@@C,B@AB@AB,B@AB@BA,B@AB@C@,B@ABA@B,B@ABAAA,B@ABAB@,B@ABB@A,B@ABBA@,B@ABC@@,B@AC@@B,B@AC@AA,B@AC@B@,B@ACA@A,B@ACAA@,B@ACB@@,B@AD@@A,B@AD@A@,B@ADA@@,B@AE@@@,B@B@@@D,B@B@@AC,B@B@@BB,B@B@@CA,B@B@@D@,B@B@A@C,B@B@AAB,B@B@ABA,B@B@AC@,B@B@B@B,B@B@BAA,B@B@BB@,B@B@C@A,B@B@CA@,B@B@D@@,B@BA@@C,B@BA@AB,B@BA@BA,B@BA@C@,B@BAA@B,B@BAAAA,B@BAAB@,B@BAB@A,B@BABA@,B@BAC@@,B@BB@@B,B@BB@AA,B@BB@B@,B@BBA@A,B@BBAA@,B@BBB@@,B@BC@@A,B@BC@A@,B@BCA@@,B@BD@@@,B@C@@@C,B@C@@AB,B@C@@BA,B@C@@C@,B@C@A@B,B@C@AAA,B@C@AB@,B@C@B@A,B@C@BA@,B@C@C@@,B@CA@@B,B@CA@AA,B@CA@B@,B@CAA@A,B@CAAA@,B@CAB@@,B@CB@@A,B@CB@A@,B@CBA@@,B@CC@@@,B@D@@@B,B@D@@AA,B@D@@B@,B@D@A@A,B@D@AA@,B@D@B@@,B@DA@@A,B@DA@A@,B@DAA@@,B@DB@@@,B@E@@@A,B@E@@A@,B@E@A@@,B@EA@@@,B@F@@@@,BA@@@@E,BA@@@AD,BA@@@BC,BA@@@CB,BA@@@DA,BA@@@E@,BA@@A@D,BA@@AAC,BA@@ABB,BA@@ACA,BA@@AD@,BA@@B@C,BA@@BAB,BA@@BBA,BA@@BC@,BA@@C@B,BA@@CAA,BA@@CB@,BA@@D@A,BA@@DA@,BA@@E@@,BA@A@@D,BA@A@AC,BA@A@BB,BA@A@CA,BA@A@D@,BA@AA@C,BA@AAAB,BA@AABA,BA@AAC@,BA@AB@B,BA@ABAA,BA@ABB@,BA@AC@A,BA@ACA@,BA@AD@@,BA@B@@C,BA@B@AB,BA@B@BA,BA@B@C@,BA@BA@B,BA@BAAA,BA@BAB@,BA@BB@A,BA@BBA@,BA@BC@@,BA@C@@B,BA@C@AA,BA@C@B@,BA@CA@A,BA@CAA@,BA@CB@@,BA@D@@A,BA@D@A@,BA@DA@@,BA@E@@@,BAA@@@D,BAA@@AC,BAA@@BB,BAA@@CA,BAA@@D@,BAA@A@C,BAA@AAB,BAA@ABA,BAA@AC@,BAA@B@B,BAA@BAA,BAA@BB@,BAA@C@A,BAA@CA@,BAA@D@@,BAAA@@C,BAAA@AB,BAAA@BA,BAAA@C@,BAAAA@B,BAAAAAA,BAAAAB@,BAAAB@A,BAAABA@,BAAAC@@,BAAB@@B,BAAB@AA,BAAB@B@,BAABA@A,BAABAA@,BAABB@@,BAAC@@A,BAAC@A@,BAACA@@,BAAD@@@,BAB@@@C,BAB@@AB,BAB@@BA,BAB@@C@,BAB@A@B,BAB@AAA,BAB@AB@,BAB@B@A,BAB@BA@,BAB@C@@,BABA@@B,BABA@AA,BABA@B@,BABAA@A,BABAAA@,BABAB@@,BABB@@A,BABB@A@,BABBA@@,BABC@@@,BAC@@@B,BAC@@AA,BAC@@B@,BAC@A@A,BAC@AA@,BAC@B@@,BACA@@A,BACA@A@,BACAA@@,BACB@@@,BAD@@@A,BAD@@A@,BAD@A@@,BADA@@@,BAE@@@@,BB@@@@D,BB@@@AC,BB@@@BB,BB@@@CA,BB@@@D@,BB@@A@C,BB@@AAB,BB@@ABA,BB@@AC@,BB@@B@B,BB@@BAA,BB@@BB@,BB@@C@A,BB@@CA@,BB@@D@@,BB@A@@C,BB@A@AB,BB@A@BA,BB@A@C@,BB@AA@B,BB@AAAA,BB@AAB@,BB@AB@A,BB@ABA@,BB@AC@@,BB@B@@B,BB@B@AA,BB@B@B@,BB@BA@A,BB@BAA@,BB@BB@@,BB@C@@A,BB@C@A@,BB@CA@@,BB@D@@@,BBA@@@C,BBA@@AB,BBA@@BA,BBA@@C@,BBA@A@B,BBA@AAA,BBA@AB@,BBA@B@A,BBA@BA@,BBA@C@@,BBAA@@B,BBAA@AA,BBAA@B@,BBAAA@A,BBAAAA@,BBAAB@@,BBAB@@A,BBAB@A@,BBABA@@,BBAC@@@,BBB@@@B,BBB@@AA,BBB@@B@,BBB@A@A,BBB@AA@,BBB@B@@,BBBA@@A,BBBA@A@,BBBAA@@,BBBB@@@,BBC@@@A,BBC@@A@,BBC@A@@,BBCA@@@,BBD@@@@,BC@@@@C,BC@@@AB,BC@@@BA,BC@@@C@,BC@@A@B,BC@@AAA,BC@@AB@,BC@@B@A,BC@@BA@,BC@@C@@,BC@A@@B,BC@A@AA,BC@A@B@,BC@AA@A,BC@AAA@,BC@AB@@,BC@B@@A,BC@B@A@,BC@BA@@,BC@C@@@,BCA@@@B,BCA@@AA,BCA@@B@,BCA@A@A,BCA@AA@,BCA@B@@,BCAA@@A,BCAA@A@,BCAAA@@,BCAB@@@,BCB@@@A,BCB@@A@,BCB@A@@,BCBA@@@,BCC@@@@,BD@@@@B,BD@@@AA,BD@@@B@,BD@@A@A,BD@@AA@,BD@@B@@,BD@A@@A,BD@A@A@,BD@AA@@,BD@B@@@,BDA@@@A,BDA@@A@,BDA@A@@,BDAA@@@,BDB@@@@,BE@@@@A,BE@@@A@,BE@@A@@,BE@A@@@,BEA@@@@,BF@@@@@,C@@@@@E,C@@@@AD,C@@@@BC,C@@@@CB,C@@@@DA,C@@@@E@,C@@@A@D,C@@@AAC,C@@@ABB,C@@@ACA,C@@@AD@,C@@@B@C,C@@@BAB,C@@@BBA,C@@@BC@,C@@@C@B,C@@@CAA,C@@@CB@,C@@@D@A,C@@@DA@,C@@@E@@,C@@A@@D,C@@A@AC,C@@A@BB,C@@A@CA,C@@A@D@,C@@AA@C,C@@AAAB,C@@AABA,C@@AAC@,C@@AB@B,C@@ABAA,C@@ABB@,C@@AC@A,C@@ACA@,C@@AD@@,C@@B@@C,C@@B@AB,C@@B@BA,C@@B@C@,C@@BA@B,C@@BAAA,C@@BAB@,C@@BB@A,C@@BBA@,C@@BC@@,C@@C@@B,C@@C@AA,C@@C@B@,C@@CA@A,C@@CAA@,C@@CB@@,C@@D@@A,C@@D@A@,C@@DA@@,C@@E@@@,C@A@@@D,C@A@@AC,C@A@@BB,C@A@@CA,C@A@@D@,C@A@A@C,C@A@AAB,C@A@ABA,C@A@AC@,C@A@B@B,C@A@BAA,C@A@BB@,C@A@C@A,C@A@CA@,C@A@D@@,C@AA@@C,C@AA@AB,C@AA@BA,C@AA@C@,C@AAA@B,C@AAAAA,C@AAAB@,C@AAB@A,C@AABA@,C@AAC@@,C@AB@@B,C@AB@AA,C@AB@B@,C@ABA@A,C@ABAA@,C@ABB@@,C@AC@@A,C@AC@A@,C@ACA@@,C@AD@@@,C@B@@@C,C@B@@AB,C@B@@BA,C@B@@C@,C@B@A@B,C@B@AAA,C@B@AB@,C@B@B@A,C@B@BA@,C@B@C@@,C@BA@@B,C@BA@AA,C@BA@B@,C@BAA@A,C@BAAA@,C@BAB@@,C@BB@@A,C@BB@A@,C@BBA@@,C@BC@@@,C@C@@@B,C@C@@AA,C@C@@B@,C@C@A@A,C@C@AA@,C@C@B@@,C@CA@@A,C@CA@A@,C@CAA@@,C@CB@@@,C@D@@@A,C@D@@A@,C@D@A@@,C@DA@@@,C@E@@@@,CA@@@@D,CA@@@AC,CA@@@BB,CA@@@CA,CA@@@D@,CA@@A@C,CA@@AAB,CA@@ABA,CA@@AC@,CA@@B@B,CA@@BAA,CA@@BB@,CA@@C@A,CA@@CA@,CA@@D@@,CA@A@@C,CA@A@AB,CA@A@BA,CA@A@C@,CA@AA@B,CA@AAAA,CA@AAB@,CA@AB@A,CA@ABA@,CA@AC@@,CA@B@@B,CA@B@AA,CA@B@B@,CA@BA@A,CA@BAA@,CA@BB@@,CA@C@@A,CA@C@A@,CA@CA@@,CA@D@@@,CAA@@@C,CAA@@AB,CAA@@BA,CAA@@C@,CAA@A@B,CAA@AAA,CAA@AB@,CAA@B@A,CAA@BA@,CAA@C@@,CAAA@@B,CAAA@AA,CAAA@B@,CAAAA@A,CAAAAA@,CAAAB@@,CAAB@@A,CAAB@A@,CAABA@@,CAAC@@@,CAB@@@B,CAB@@AA,CAB@@B@,CAB@A@A,CAB@AA@,CAB@B@@,CABA@@A,CABA@A@,CABAA@@,CABB@@@,CAC@@@A,CAC@@A@,CAC@A@@,CACA@@@,CAD@@@@,CB@@@@C,CB@@@AB,CB@@@BA,CB@@@C@,CB@@A@B,CB@@AAA,CB@@AB@,CB@@B@A,CB@@BA@,CB@@C@@,CB@A@@B,CB@A@AA,CB@A@B@,CB@AA@A,CB@AAA@,CB@AB@@,CB@B@@A,CB@B@A@,CB@BA@@,CB@C@@@,CBA@@@B,CBA@@AA,CBA@@B@,CBA@A@A,CBA@AA@,CBA@B@@,CBAA@@A,CBAA@A@,CBAAA@@,CBAB@@@,CBB@@@A,CBB@@A@,CBB@A@@,CBBA@@@,CBC@@@@,CC@@@@B,CC@@@AA,CC@@@B@,CC@@A@A,CC@@AA@,CC@@B@@,CC@A@@A,CC@A@A@,CC@AA@@,CC@B@@@,CCA@@@A,CCA@@A@,CCA@A@@,CCAA@@@,CCB@@@@,CD@@@@A,CD@@@A@,CD@@A@@,CD@A@@@,CDA@@@@,CE@@@@@,D@@@@@D,D@@@@AC,D@@@@BB,D@@@@CA,D@@@@D@,D@@@A@C,D@@@AAB,D@@@ABA,D@@@AC@,D@@@B@B,D@@@BAA,D@@@BB@,D@@@C@A,D@@@CA@,D@@@D@@,D@@A@@C,D@@A@AB,D@@A@BA,D@@A@C@,D@@AA@B,D@@AAAA,D@@AAB@,D@@AB@A,D@@ABA@,D@@AC@@,D@@B@@B,D@@B@AA,D@@B@B@,D@@BA@A,D@@BAA@,D@@BB@@,D@@C@@A,D@@C@A@,D@@CA@@,D@@D@@@,D@A@@@C,D@A@@AB,D@A@@BA,D@A@@C@,D@A@A@B,D@A@AAA,D@A@AB@,D@A@B@A,D@A@BA@,D@A@C@@,D@AA@@B,D@AA@AA,D@AA@B@,D@AAA@A,D@AAAA@,D@AAB@@,D@AB@@A,D@AB@A@,D@ABA@@,D@AC@@@,D@B@@@B,D@B@@AA,D@B@@B@,D@B@A@A,D@B@AA@,D@B@B@@,D@BA@@A,D@BA@A@,D@BAA@@,D@BB@@@,D@C@@@A,D@C@@A@,D@C@A@@,D@CA@@@,D@D@@@@,DA@@@@C,DA@@@AB,DA@@@BA,DA@@@C@,DA@@A@B,DA@@AAA,DA@@AB@,DA@@B@A,DA@@BA@,DA@@C@@,DA@A@@B,DA@A@AA,DA@A@B@,DA@AA@A,DA@AAA@,DA@AB@@,DA@B@@A,DA@B@A@,DA@BA@@,DA@C@@@,DAA@@@B,DAA@@AA,DAA@@B@,DAA@A@A,DAA@AA@,DAA@B@@,DAAA@@A,DAAA@A@,DAAAA@@,DAAB@@@,DAB@@@A,DAB@@A@,DAB@A@@,DABA@@@,DAC@@@@,DB@@@@B,DB@@@AA,DB@@@B@,DB@@A@A,DB@@AA@,DB@@B@@,DB@A@@A,DB@A@A@,DB@AA@@,DB@B@@@,DBA@@@A,DBA@@A@,DBA@A@@,DBAA@@@,DBB@@@@,DC@@@@A,DC@@@A@,DC@@A@@,DC@A@@@,DCA@@@@,DD@@@@@,E@@@@@C,E@@@@AB,E@@@@BA,E@@@@C@,E@@@A@B,E@@@AAA,E@@@AB@,E@@@B@A,E@@@BA@,E@@@C@@,E@@A@@B,E@@A@AA,E@@A@B@,E@@AA@A,E@@AAA@,E@@AB@@,E@@B@@A,E@@B@A@,E@@BA@@,E@@C@@@,E@A@@@B,E@A@@AA,E@A@@B@,E@A@A@A,E@A@AA@,E@A@B@@,E@AA@@A,E@AA@A@,E@AAA@@,E@AB@@@,E@B@@@A,E@B@@A@,E@B@A@@,E@BA@@@,E@C@@@@,EA@@@@B,EA@@@AA,EA@@@B@,EA@@A@A,EA@@AA@,EA@@B@@,EA@A@@A,EA@A@A@,EA@AA@@,EA@B@@@,EAA@@@A,EAA@@A@,EAA@A@@,EAAA@@@,EAB@@@@,EB@@@@A,EB@@@A@,EB@@A@@,EB@A@@@,EBA@@@@,EC@@@@@,F@@@@@B,F@@@@AA,F@@@@B@,F@@@A@A,F@@@AA@,F@@@B@@,F@@A@@A,F@@A@A@,F@@AA@@,F@@B@@@,F@A@@@A,F@A@@A@,F@A@A@@,F@AA@@@,F@B@@@@,FA@@@@A,FA@@@A@,FA@@A@@,FA@A@@@,FAA@@@@,FB@@@@@,G@@@@@A,G@@@@A@,G@@@A@@,G@@A@@@,G@A@@@@,GA@@@@@,H@@@@@@}
Keep this in mind! This is your solution space size that you output...
C(8,7)= 3003. C(9,9) = 24310. C(200,100) =
1.3860838210861882482611278421088 x 1081
![Page 11: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/11.jpg)
ProblemsSome Solutions to Problem 1:
s+k−1 , n−1
Often solutions try to take one element and form the next from the previous to avoid consuming extra space.
Randomized Generation Idea: Keep generating unique sequences of
unique sum of s from a uniform distribution on [0,s] and test if it's currently in the set.
Hard to analyze, but often useful in parallel implementations.
![Page 12: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/12.jpg)
ProblemsSome Solutions to Problem 1:
s+k−1 , n−1
K-bit Reflected Gray Code Generation: Idea: Generate all gray codes in
lexicographical order of length n integers in binary, then on the last iteration, remove all elements which don't sum to s if the last symbol is added.
Constructs elements from scratch but the trade off could be dependent on implementation. (moves to modern results)
Bitner-Ehrlich-Reingold (BER) method.
![Page 13: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/13.jpg)
ProblemsSome Solutions to Problem 1:
s+k−1 , n−1
Brute Force: Idea: Similar to the previous technique
except working directly with integers. Based on the definition, this technique can
always take advantage of the fact we have a continuous interval of non-negative integers.
Simpler to implement but space can grow substantially more than the previous. Very small instances can be efficient.
![Page 14: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/14.jpg)
ProblemsUpper Bounds/Lower Bounds:
s+k−1 , n−1
This problem has been attacked numerous times by many researchers since the 70's by the likes of Knuth, Lothaire, and many others.
Optimal solution: Combinatorial Gray Codes. For simplicity: let k be the output size of a given
composition.
![Page 15: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/15.jpg)
ProblemsVital Result:
s+k−1 , n−1
Goal: Compute gray codes quickly, and perform the 2nd technique (with modification).
O(1) – Generating gray codes in O(1) worst-case time per word [Walsh,2003]
Map this problem to our unrestricted composition problem
Upper Bound – Ω(k) [evident from above] Optimal Time.
![Page 16: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/16.jpg)
ProblemsProblem 2 (Definition): A finite set CL,U
s,n which contains all integer
sequences л = л1 л2 ... лn such that Σ (лi) = s, 1≤i≤n, where L ≤ лi ≤ U.
This is called an bounded composition. Specific type of restricted composition. Inherits problems from problem 1. New problems: unused space and decision
complexity increases.
s+k−1 , n−1
![Page 17: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/17.jpg)
ProblemsProblem 2:
Given positive integers n,s (n =0 iff s = 0), and non-negative integers L,U, enumerate the
bounded composition CL,Us,n .
Why would we want this?− Many of the same reasons, but some of the
more modern research was for statistical analysis in computation.
Applying the last problems solutions can be tedious but are doable but can lead to space-issues in contrast to solution size.
s+k−1 , n−1
![Page 18: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/18.jpg)
ProblemsProblem 2:
Using the same techniques as Problem 1 would cause a rise in time-complexity
using the optimal solution. When L=0 and U=s, we get the
unrestricted composition. Same lower bound holds since this is a
sub-instance of Problem 1.
s+k−1 , n−1
![Page 19: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/19.jpg)
ProblemsSome Solutions to Problem 2:
s+k−1 , n−1
Another technique:Idea: Based on Fibonnaci Numbers and
Pascal's Triangle for counting.[Kimberling. 2002]
Inside pascal's triangle there exists a path from an interior node to the root that will diagonally reach the root of the triangle. Thus when reading off the coefficients of the triangle you obtain a composition sequence of elements for each off diagonal.
Picture... next here...
![Page 20: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/20.jpg)
ProblemsSome Solutions to Problem 2:
s+k−1 , n−1
![Page 21: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/21.jpg)
ProblemsSome Solutions to Problem 2:
s+k−1 , n−1
![Page 22: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/22.jpg)
ProblemsSome Solutions to Problem 2:
s+k−1 , n−1
![Page 23: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/23.jpg)
ProblemsSome Solutions to Problem 2:
s+k−1 , n−1
This solution was developed by J.D. Opdyke in 2010 from Kimberling's result.
time-complexity: ~O(k x RICs) Hard to bound the algorithm's run-time. Flaws: Recursive, and has loops. Is the best result in Bounded Compositions.
![Page 24: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/24.jpg)
Future ProblemsProblem 3:
s+k−1 , n−1
Given positive integers n,s (n =0 iff s = 0), and set of non-negative integers R, enumerate
the restricted composition CRs,n .
Very tough problem. General 'first order'. Has reduction to Positive Integer Subset
Sum Problem 1 and Problem 2's solutions won't
work on this without a heavy cost. Discontinuity of values.
Work on counting has been done for this but, not generating.
![Page 25: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/25.jpg)
Future ResearchResearch Interests:
s+k−1 , n−1
We had mentioned Problem 3 but what other interests hold in this discourse with
Compositions still? Pattern avoidance work, w-avoidance
Relationships between Integer Partitions and Integer Compositions
'2nd order' problems with compositions.
![Page 26: Enumeration Algorithms for€¦ · · 2014-09-02Enumeration Algorithms for Restricted and Unrestricted Compositions and Words Daniel Page April 8, 2011](https://reader031.vdocuments.us/reader031/viewer/2022022010/5b0614867f8b9a5c308c7585/html5/thumbnails/26.jpg)
Questions?
s+k−1 , n−1
Thank you very much for your time!
Questions?
Have a beautiful day!