Algoritma Pembangkitan Lengkap Permutasi dengan Siklus
Tetap dan Banyaknya Elemen Sebagai Peubah
Sulistyo Puspitodjati, Asep Juarna, Ernastuti
Djati Kerami
Jurusan Teknik Informatika Universitas Indonesia
Jurusan Matematika FMIPA Universitas Indonesia
Depok, Indonesia Depok, Indonesia
e-mail korespondensi: [email protected]
Ringkasan
Pembangkitan lengkap (exhaustive generation) adalah salah satu cabang utama kombinatorik. Topik maka-lah ini adamaka-lah pembangkitan lengkap permutasi siklus menggunakan metoda pohon pembangkit (generating tree), dan karena aturan pengembangannya ke simpul-simpul selanjutnya menggunakan aturan suksesi (su-ccession rule) maka pembangkitan juga dalam metode ECO (enumerating combinatorial object). Dua penelitian terdahulu tentang topik yang sama dilakukan masing-masing oleh Baril (2006) dan Poneti (2008). Peneliti-an Baril menghasil-kPeneliti-an daftar kode Gray (Gray code list) permutasi siklus. Poneti membPeneliti-angkitkPeneliti-anπ
n , mdari
πn , m
−1secara rekursif, dengan kata lain permutasi siklus Poneti dibangkitkan menurut jumlah siklusnya
pa-da himpunan[n]tetap. Penelitian ini merupakan sudut pan-dang lain dari penelitian Poneti, yaitu permutasi siklus dibang-kitkan menurut himpunannya pada jumlah siklus tetap, atauπn , mdibangkitkan dariπn
−1, m. Hasilnya adalah sebuah algoritma pem-bangkitan permutasi siklus berbasis metoda ECO yang bersifat non re-kursif dengan kompleksitas CAT (constant amortized time) karena obyek-obyekπn , mdibangkitkan dari sebuah πn
−1, mhanya melalui satu operasi penyisipan.
Keywords-permutasi siklus; pembangkitan lengkap; pohon pembangkit; metode ECO; algoritma pembang-kitan; CAT.
1
Pendahuluan
Kombinatorik adalah ilmu yang mempelajari sifat-sifat matematik dari struktur diskrit; dalam kombi-natorik struktur diskrit disebut obyek kombinatorial
atauobyeksaja, sedangkan himpunan obyek
kombi-natorial disebutkelas kombinatorialataukelassaja.
Kombinatorik mempunyai empat cabang utama ilmu atau penelitian: pencacahan (counting) atau enumerasi (enumeration), pembangkitan atau gen-erasi (generation), pendaftaran atau listing, dan op-timalisasi. pembangkitan membangun algoritma un-tuk membangkitkan semua struktur yang mungkin. Ada dua jenis pembangkitan yaitu pembangkitan
lengkap (exhaustive generation) dan pembangkitan acak (random generation). Pembangkitan lengkap membangkitkan semua obyek tanpa ada obyek yang tercacah ganda (no repetition) dan tanpa ada obyek yang tidak tercacah (no omission). Pembangki-tan acak membangkitkan contoh (sample) obyek yang secara statistik bisa mewakili semua obyek dari kelas yang diberikan. Pembangkitan acak bi-asanya dilakukan jika pembangkitan lengkap tidak mungkin dilakukan atau tidak praktis untuk di-lakukan terutama karena anggota kelas yang sedang diamati sangat besar [5].
Salah satu teknik enumerasi dan juga pembangk-itan lengkap obyek kombinatorial yang populer saat ini adalah teknik enumerasi dan pembangkitan menggunakan pohon pembangkit (generating tree). Pohon pembangkit adalah sebuah pohon dalam kon-teks teori graf di mana simpul-simpulnya meny-atakan obyek (untuk tujuan pembangkitan) atau angka yang menunjukkan banyaknya simpul anak (untuk tujuan enumerasi). Belakangan, untuk tujuan enumerasi, pohon pembangkit dilengkapi dengan se-buah aturan rekursif yang tepat mewakili pohon tersebut [12] yang melahirkan metoda ECO (
enumer-ating combinatorial objects)[3]; aturan rekursif
di-maksud disebut aturan suksesi (succession rule). Den-gan metode ECO, setiap obyek diekspansi dari obyek yang lebih pendek dengan menerapkan aturan suk-sesi (succession rule). Analisa matematis selanjut-nya mentransformasikan formula aturan suksesi ke sebuah persamaan hubungan rekursif (recurrence
re-lation). pohon pembangkit mempunyai pemanfaatan
yang penting dalam kombinatorial, yaitu bijeksi dan pembangkitan acak[10].
Topik makalah ini adalah enumerasi dan pem-bangkitan kelas kombinatorial permutasi, khususnya permutasi dalam pernyataannya sebagai produk sik-lus (product of cycles permutation) atau sering dis-ingkat sebagai ‘permutasi siklus’ atau ‘siklus’ saja. Algoritma pembangkitan permutasi banyak dipakai dalam analisa graf seperti model optimalisasi berba-sis graf, computer vision, berbagai masalah jaringan termasuk komputer dan bahkan jaringan sosial (
so-cial networks).
Hasil utama penelitian yang disajikan dalam dis-ertasi ini adalah algoritma pengembangan lengkap
permutasi dengan siklus menggunakan metoda po-hon pembangkit.
2
Definisi dan Istilah
2.1
Permutasi
Permutasi adalah pemetaan dari suatu himpunan bi-langan asli ke dirinya sendiri, atau secara formal da-pat didefinisikan sebagai berikut:
Definisi 1: Permutasi dari himpunan S =[n]= 1, 2, ..., n adalah fungsi bijeksiπ: S S. Permutasiπ(i)
=idisebut permutasi identitas.
Permutasi dapat direpresentasikan dengan menja-jarkan semua nilaiπ(i), untuk i = 1, . . . , n dalam satu baris. Contoh salah satu permutasiπ dari[7]
dalam notasi satu baris ditulis sebagai untai : 2 4 3 1 6 5 7
Salah representasi dari permutasi adalah dengan perkalian siklusnya. Siklus dari permutasi adalah himpunan bagian dari suatu himpunan yang elemen-elemennya masuk dalam satu orbit. Atau siklus den-gan panjang k dari suatu permutasi adalah urutan a1, a2, . . . , alsedemikian sehingga ai =π(ai−1) un-tuk i = 2, 3, . . . , l, dan a1 = π(al) atau πl(ai) =
ai. ([Rus03] dan [Bón02]). Contoh, permutasi π
berikut: 1 4 2 8 5 7 6 3. Permutasi tersebut mem-puyai 4 siklus (1), (2 4 8 3), (5), and (6 7). (2 4 8 3) adalah siklus dengan panjang l = 4, karena π4(2) = 2. Dalam perkalian siklus, π dapat diny-atakan sebagai π = (1)(2483)(5)(67). Karena sik-lus (8324) menyatakan siksik-lus yang sama dengan (2483), maka sering digunakan cara yang unik un-tuk menyatakan permutasi menggunakan notasi sik-lus, yang disebut sebagai notasi siklus kanonikal. Cara ini adalah menulis elemen terbesar pada setiap siklus terlebih dahulu, kemudian mengurutkan se-tiap siklus dari kecil ke besar berdasarkan elemen-elemen pertama pada siklus. Dengan demikian π = (1)(2483)(5)(67) dalam notasi siklus kanonikal adalahπ= (1)(5)(76)(8324).
Banyaknya permutasi[n]dengan m siklus adalah bilangan Stirling tanpa tanda jenis pertama c(n,m)
c(n, n) = 1, c(n,1) = (n−1)!
c(n, m) = (n−1).c(n−1, m) +c(n−1, m−1),1< m < n. (1)
Makalah ini akan membahas permutasi dengan m siklus. Rumus stirling digunakan untuk menun-jukkan kebenaran algoritma yang dibangun
2.2
Pembangkitan Objek kombinatorial
dan Pohon Pembangkit.
Salah satu bidang dalam kombinatorik adalah pem-bangkitan objek secara lengkap. Pembangkitan ini berarti membangkitkan (menghadirkan) semua anggota dari kelas kombinatorial tertentu secara efisien yang sedemikian sehingga setiap anggota muncul tepat sekali. Salah satu pendekatan untuk pembangkitan lengkap adalah dengan yang disebut pohon pembangkit. Pohon pembangkit adalah po-hon yang menggambarkan keluarga tertentu dari ob-jek kombinatorial; tiap simpul berhubungan den-gan satu objek, dan cabangnya menuju simpul yang mengkodekan alternatif yang dipilih dalam mengkonstruksikan objek. Pohon pembangkit men-janjikan komputasi yang cepat dalam mengenu-merasi barisan objek. Metode pohon pembangkit ini disistematisasikan oleh Barcucci, Del lungo, Pergola, and Pinzani, dengan nama sistem ECO (enumerating
combinatorial objects) [3]. Dalam metode ECO ini
se-tiap objek diperoleh dari objek yang lebih kecil den-gan melakukan ekspansi lokal. Seringkali ekspansi lokal tersebut sangat teratur dan dapat dijelaskan dalam aturan suksesi. Metode ECO ini telah di-tunjukkan efektif untuk beberapa struktur kombina-torik, seperti: objek Catalan dalam [5] dan [12], un-tuk permutasi penghindaran pola umum (generelazid
pattern avoidance) dalam [23], convex
polyominoes-pan dalam [17], dan untuk struktur Gray dalam [4]. Namun penelitian-penelitian tersebut belum mem-bahas pembangkitan permutasi siklus dengan pohon pembangkit atau metode ECO tersebut. Bagaimana metode ECO bekerja dijelaskan dalam [5],[10], dan [3], sebagaimana berikut.
Operator ECO
Misalkan O adalah kelas objek kombinatorial dan p: O N adalah parameter yang hingga pada O, yaitu pa-rameter p sedemikian sehingga On = O∈O : p(O)
= n dari objek berukuran n adalah hingga. Mis-alkan v : O 2O adalah operator yang sedemikian
sehingga v(On) ⊆ 2O n+1. Operator v
menggam-barkan bagaimana objek kecil menghasilkan objek yang lebih besar.
Proposisi 2-1: Jika v memenuhi, untuk setiap n ≥ 0,
1. untuk setiapO’∈On+1, akan terdapat O∈On
sedemikian sehinggaO’∈v, dan
2. untuk setiapO, O’∈On, akan menggambarkan
v(O)∩v(O’) =∅kapanpunO6=O’, maka famili himpunan Fn+1= v(O):O∈On adalah partisi
dari On+1.
Operator v yang memenuhi kondisi 1 dan 2 tersebut di atas, dikatakan sebagai operator ECO. Jadi opera-tor ECO membangkitkan semua objek O sedemikian sehingga setiap objek O’ ∈ On+1 diperoleh secara unik dari O ∈ On . Operator ECO yang sedang
melakukan ekspansi lokal pada objek yag disebut si-tus aktif dari objek. Operator ECO dapat digam-barkan dengan pohon pembangkit, yaitu: pohon be-rakar yang simpu-simpulnya berhubungan dengan objek O. Akar yang ditempatkan pada level 0 pada pohon, adalah objek dengan ukuran terkecil, m. Objek-objek dengan ukuran sama berada pada level yang sama dan anak dari objek O, adalah yang di-hasilkan dariOmelalui v. Jika |On|nadalah urutan
yang ditentukan oleh banyaknya objek berukuran n, maka makaf O(x) = Σn ≥m|On|xnadalah fungsi pembangkitnya.
Aturan Suksesinya
Aturan suksesi Ω adalah sistem ((a), P), mengan-dung aksioma (a) dan himpunan produksi atau at-uran penulisan P didefinisikan pada himpunan label M⊂N+:
2.3
Dekomposisi Standar dan Permutasi
dengan Siklus
Poneti dan Vajnovszki[20]menunjukkan bahwa un-tuk sembarangπ∈Sndapat ditulis secara unik dalam
dekom-posisi standarsebagai
dengan cara memilih pi = π−1(i), kemudian
mengganti π dengan π [22c5] <π−1(i),i >, un-tuk i bergerak dari n ke 1. Dari permutasi π ∈ Sn dalam dekomposisi standar, dapat ditentukan
D(π) = maxiπ(i) 6=i yang juga merupakan maxipi
6
= i. Berdasarkan sifat D ini maka Poneti dan Vajnovszki[20] membangun algoritma pembangki-tan permutasiπ∈Sn,m, yaituπ∈Sn dengan m
sik-lus, sebagai berikut:
π= n Y i=1 < pi,1>=< p1,1> . < p2,2> .... < pn, n > dengan pi∈[1, i] 1. TentukanD(π) < n
2. Untuk setiap j ,D(π) < j≤n, dan untuk setiap l, 1≤l < j, tentukan permutasiπ’ =π.<l, j>,π’
∈Sn,m−1
Algoritma ini tidak membangun permutasi Sn,mdari
Sn−1,m melainkan dari Sn,m−1. Berbeda dengan pembangkitan yang akan disajikan dalam makalah, dimana pembangkitan permutasi yang akan dis-ajikan adalah pembangkitan permutasi Sn,m dari
Sn−1,m.
2.4
Pembangkitan
Permutasi
dengan
Siklus oleh Baril
Baril dalam[16]menunjukkan pembentukan Sn,m,
yaitu permutasi [n] dengan m siklus dari Sn−1,mdan
Sn−1,m−1. Pembentukan dilakukan dalam dua cara: 1. jikaπ∈Sn−1,m,n≥2, 1≤m < n, maka dapat
diperolehπ’∈Sn,m, dengan memetakanπ’(i) =
ndanπ’(n) =π(i), 1≤i≤n.
2. jikaπ∈Sn−1,m−1,n≥m≥2, maka dapat diper-olehπ”∈Sn,m , dengan menambahkannpada
posisin.
Pengembangan dengan cara Baril ini, merupakan sifat utama yang dipegang oleh penulis dalam mengembangkan pohon pembangkit, yang akan dis-ajikan pada makalah ini.
3
Pohon Pembangkit Untuk
Per-mutasi Dengan Siklus
Mengikuti pola pengembangan permutasi [n] den-gan satu siklus [9], maupun 2 siklus[25] dan pem-bentukan semua permutasindenganmsiklus,Sn,m,
menurut [5], maka pengembangan digeneralisasi dengan membangun definisi fungsiiπ
nberikut.
Pen-definisian fungsi ini adalah formalisasi dari proses penyisipannataun+1pada semua kemungkinan po-sisi pada permutasi [n], saat menghasilkan
permu-tasi[n+1]dengan satu maupun 2 siklus.
Definisi 2: Fungsi iπ
n adalah pemetaan pada:
Sn,m × [n] Sn+1,m , 1 ≤ m ≤ n, i ∈ [n], yang
memetakan sembarang permutasiπn∈Sn,mmenjadi
permutasiiπ n+1∈Sn+1,m i π(n+1)(j) = πn(i)untuk j=n+ 1 n+ 1 untuk j=i πn(j)untuk yang lain
Fungsiiπ
npada Definisi 2 jelas adalah fungsi
satu-satu. Pembangkitan semua permutasi anggota Sn,m
lainnya, selain dengan mengimplementasiiπ
n, maka
berturut-turut m diganti m-1, dan n bertindak se-bagai n-1, sementara, iπ
n(n) = n. Hal ini untuk
memenuhi kemungkinan bahwa permutasi[n] mem-punyai siklus-siklus panjang satu. Untuk memenuhi keanggotaan Sn,m, yang siklus ke-m adalah (n),
maka harus dibangun semua kemungknan permutasi
[n-1]denganm-1siklus. Selanjutnya jika siklussm−1
= (n-1) dan siklus ke-msm= (n), maka harus
diban-gun semua kemungkinan siklus-siklus sj, j = 1, 2,
. . . , m-2 atau dengan kata lain membangun semua
kemungkinan permutasiSn−2,m−2dengan menerap-kan i
πn−2. Demikian seterusnya sampai diperoleh semua permutasiSn,m.
Permutasi dengan siklus dalam penelitian ini di-tulis dalam bentuk πn = (s1). . . (sm), siadalah
akan tetapi pada tiap siklus elemen terkecilnya dit-ulis pada elemen pertama siklus. Siklus-siklus diurut berdasarkan urutan elemen pertama tersebut dari ke-cil ke besar. si adalah siklus ke-i. Pengembangan
dimulai dengan permutasi identitas (1)(2). . . (m), untuk siklus m yang diinginkan. Selanjutnya, pembangkitan dilakukan dengan mengembangkan
Sn+1,m. Permutasi anggota Sn+1,m dihasilkan dari
mengimplementasikan fungsi iπ
n+1, untuk i ∈
[n]. Setelah itu, membangun objek-objek permu-tasi anggotaSn+1,myang lain dengan pertama
mele-takkan elemen n+1 pada siklus ke-m, yaitu sm =
(n+1). Kemudian mengganti nilai n+1 dengan n
dan mengaplikasikan fungsi i
πn, i ∈ [n-1]. Proses
pembang-kitan dilanjutkan dengan meletakkansm−1 = (n), dan tetap meletakkan siklus sm = (n+1),
kemudian mengimplementasi fungsi i
πn−1. Proses diteruskan sampai sampai iπ
2 terimplemen-tasikan dalam rangka melengkapiSn−1,m.
Teorema 4.4: Dengan menerapkan fungsiiπpada
definisi 4.1, maka akan terbentuk semua anggota Sn,msecara rekursif dari Sn−1,mdan Sn−1,m−1. Den-gan demikian banyaknya anggota Sn,m memenuhi
bilangan Stirling jenis pertama tanpa tanda cn,m =
(n-1)cn−1,m + cn−1,m−1
Bukti: Dari definisi fungsi maka terbentuk (n-1) kali kardinalitas |Sn−1,m| dan selebihnya
anggota Sn,m yang lain dibentuk dari
pengemban-ganSn−1,m−1. Sehingga banyaknyaSn,madalah
(n-1) |Sn−1,m| + |Sn−1,m−1| atau memenuhi bilangan Stirling jenis pertama tanpa tandacn,m, yaitucn,m=
(n-1)cn−1,m + cn−1,m−1
Untuk memudahkan pengembangan, maka per-mutasi dinyatakan dalam notasi siklus, sehingga jumlah siklus yang tetap terpelihara. Kemudian implementasi fungsi iπ
n+1, untuk i ∈ [n], diin-trepetasikan dengan meletakkan atau menyisipkan elemen n+1kedalam siklus sk = (sk1, sk2, . . . ) se-cara berturut-turut ke posisij = 2, . . . ,|sk|, dengan
|sk| adalah panjang siklus untuk semua siklusk.
Pembangkitan dalam penelitian ini dilakukan un-tuk sembarang permutasi[n] dengan msiklus. Po-hon pembangkit diawali dengan permutasi identi-tas Sm,m pada simpul akar, dan akar dari pohon
ini dikatakan sebagai level 0. Selanjutnya, sim-pul akar ini akan mempunyai anak yang dimulai
dengan membangun permutasi anggotaSn+1,mhasil
mengimplemen-tasikan fungsii
πn+1, untuki ∈[n], yaitu menyisipkan elmenen n+1= m+1 ke dalam
m-siklus dalam permutasi identitas, berturut-turut di posisii∈[n]. Simpul-simpul untuk objek hasil dari pembangkitan ini diberi labelon+1, dan simpul den-gan label ini akan sebanyakn.
Algoritma pembangkitan permutasi anggota Sn,m
dapat dilihat pada Algoritma 1. Algoritma ini meru-pakan generalisasi dari Sn,m.
Algoritma 1:
1. Input n dan siklus m yang diinginkan
2. t = n - m 3. Simpul akar1o 1= (1)(2)...(m). 4. Untuk level l = 1, ..., t 5. Untuk j = l, ..., m+ l 6. Untuk i = 1, ..., j 7. Untuk k = 2, . . . , |sik|
8. Buat simpul anakko
j+1dengan menyi-sipkan
el-emen j+1 ke-siklus sikpada posisi k
9. Jika j <> m+ l
10. sm(m+ l)
11. Selesai
Berdasarkan pembangkitan pada Algoritma 1, kon-struksi dimulai dengan akaro1, Sn,mdibangun
den-gan membentuk himpunan-himpunanoj. Setiap
sim-pul aktifoj mempunyaijanakoj+1,j-1anakoj, dan
seterusnya sampai m+l-1 anak om+l. Pohon terus
berkembang sampai objekom+ldengann=m + l
ter-capai. Sehingga aturan suksesi untuk sistem ECO permutasi [n] dengan siklus m pada penelitian ini adalah sistem yang dimulai dengan aksioma permu-tasi identitas πm = (1)(2). . . (m), dan selanjutnya
mengikuti aturan berikut:
Ω =
O1, permutasi identitas
Oj (Oj+1)j (Oj+1)j+1...(Om+1)m+l−1
f1 = l m+Pl−1 i1 i2=i1+ 1 mP+l−1 i2 i2=i1+ 1 P ... , l= 0 m+Pl−1 i1=i1−1+ 1 l= 1,2 (3)
Secara umum pohon dapat digambarkan seba-gaimana pada Gambar 1. Simpul pada pohon Gam-bar 1 dengan labeljoj−1adalah bentuk ringkas dari pohon dengan simpul oj−1 yang sebanyak j. Se-hingga level-1 dari pohon pembangkit ini akan mem-punyai simpul sebanyak (m + m-1 + . . . + 1). Pada level-2,j-1objekoj, masing-masing akan
mem-punyai j anak oj+1, j+1 anak oj+2, sampai m+l-1 anak om+l. Dengan demikian berdasarkan pohon
pembangkit ini, dapat dienumerasi banyak permu-tasi n dengan siklus m tertentu dengan mengitung banyaknya simpul pada levelldimanan = m+l. Se-cara umum banyaknya permutasi [n]dengan siklus
m tertentu berdasarkan pohon pembangkit adalah sebagaimana pada rumus (3).
Banyaknya simpul untuk level-lpada pohon pem-bangkit permutasi[n]denganmsiklus tertentu pada Gambar 1 adalahfldengan sebagai persamaan 3:
Algoritma pembangkitan pohon permutasi [n]
dengan m siklus pada Algoritma 1, menghasilkan simpul-simpul yang mewakili semua objek anggota
Sn,m, dengan cara menyisipkan elemen di setiap
sik-lus di setiap level untuk maing-masing objekoj.
Den-gan demikian pada setiap level, algoritma melakukan penyisipan sebanyak fl kali untuk fl pada rumus 3.
Jika penyisipan dihitung 1 waktu komputasi, maka algoritma melakukan dalam O(c(n,m)) waktu den-ganntercapai setelah mencapai levell = n – m.
Algoritma menghasilkan satu objek dengan satu operasi yaitu penyisipan, dan pada levell yang me-nunjukkan n =m + l, algoritma menghasilkan ob-jek sebanyakc(n,m). Dengan demikian jumlah total komputasi dibagi banyaknya objek yang terbentuk terbatasi oleh konstanta. Hal ini menunjukkan Algo-ritma 1 adalah algoAlgo-ritma yang CAT (Constant
Amor-tized Time) yang merupakan syarat algoritma
pem-bangkitan objek kombinatorial yang efektif.
4
Penutup
Pembangkitan lengkap permutasi [n] dengan m sik-lus (dinotasikan πn,m) berhasil dilakukan dengan
menggunakan metoda ECO (enumerating combina-torial object). Algoritma pembangkitan disusun den-gan terlebih dahulu didefinisikan pemetaan satu-satu yang memetakan πn−1,m ke πn,m.
Pendefin-isian dilakukan untuk memastikan tidak terjadi pem-bangkitan ganda ataupun pempem-bangkitan yang ter-lewatkan. Algoritma yang dihasilkan bersifat non rekursif dengan kompleksitas CAT (constant amor-tized time) karena obyek-obyek πn,m dibangkitkan
dari sebuahπn−1,mhanya melalui satu operasi peny-isipan. Pola pembangkitan pada algoritma tersebut, yang jelas terlihat pada pohon pembangkit (gener-ating tree) menunjukkan adanya pola cacahan bi-langan Stirling jenis pertama tanpa tanda (signless Stirling number of the first kind). Fakta ini memas-tikan tidak terjadi pembang-kitan ganda ataupun pembangkitan yang terlewatkan. Algoritma yang di-hasilkan pada penelitian ini diharapkan dapat men-jadi pijakan untuk penelitian lanjutan tentang per-mutasi siklus, salah satunya adalah penentuan daftar kode Gray untuk permutasi siklus
References
[1] Bogomolny A. Various ways to define a permu-tation from Interactive Mathematics Miscellany
and Puzzles. New Jersey, World Scientific
Pub-lishing, 2008.
[2] J. Von Knop N. Trinajstic Babic D, D.J. Klein. Combinatorial enumeration in chemistry. In
Chemical Modelling : Applications and Theory,
Royal Society of Chemistry, volume 3, pages 126
– 159, 2004.
[3]  A. Denise  P. Flajolet  D. Gardy D. Gouyou-Beauchamps Banderier C.,  M. Bousquet-Mà clou. Generating functions for generating trees. InDiscrete Mathematics, volume 246(1-3)„ pages 29–55, 2002.
[4] E Grazzini Bernini A., I Fanti. An exhaustive generation algorithm for catalan objects and others. In PU.M.A., volume 17, pages 39–53, 2006.
[5] E. Pergola R. Pinzani Bernini A, E. Grazzini. A general exhaustive generation algorithm for gray structures. In Journal Acta Informatica, volume 44„ pages 361–376, 2007.
[6] Savage C. A survey of combinatorial gray codes, siam review. volume 39, pages 605 – 629, 1997.
[7] Wilson M. C. Random and exhaustive gener-ation of permutgener-ations and cycles. In Journal
Annals of Combinatorics,, volume 12, of 509
-520, 2007.
[8] R.L. Rivest Cormen T.H., C.E. Leiserson.
Intro-duction to Algorithm. McGraw Hill Book
Com-pany, New York, 1990.
[9] Sulistyo P. dan Djati Kerami. Pembangkitan permutasi dengan siklus. In Prosiding
Kon-ferensi Nasional Matematika XIV. Palembang,
pages 275 – 280, 2008.
[10] Duchi E. ECO method and Object Grammars: two methods for the enumeration of
combina-torial objects. Tesi dell’ Universita degli Studi
di Firenze, Dottorato di Ricerca in Ingegne-ria Informatica e dell’Automazione, XV Ci-clo, Universit_a Degli Studi di Firenze, http:// www.dsi.unifi.it / DRIIA / RaccoltaTesi/ Duchi, 2003.
[11] Ruskey F. Combinatorial generation. 2003. [12] R. Pinzani Ferrari L. Catalan like numbers and
succession rules, pure mathematics and appli-cations. volume 16, pages 229–250., 2005. [13] Irving J. Minimal transitive factorizations of
permutations into cycles, canadian journal of mathematics. volume 61, pages 1092–111, 2009.
[14] West J. Generating trees and forbidden subse-quences. InProceedings of the 6th conference on
Formal power series and algebraic combinatorics,
pages 363 – 374, 199.
[15] Asep Juarna. Combinatorial Isomorphism Anal-ysis On Some Extensions Of A Simion-Schmidt’s
Bijection. Dissertation in Informatics, LE2I –
U.F.R des Science des Technique, Universite de Bourgogne.
[16] Baril J. L. Gray code for permutation with a fixed number of cycle. InDiscrete Mathematics, volume 307, pages 1559–1571, 2006.
[17] A. Frosini S. Rinaldi Lungo D. A., E. Duchi. Enu-meration of convex polyominoes using the eco method, discrete mathemathics and theoretical computer science ab(dmcs). pages 103–116, 2003.
[18] Bona M. A walk through combinatorics. an in-troduction to enumeration and graph theory. 2002.
[19] Adnan M.A. Effcient enumeration of combina-torial objects. Master’s thesis, B.Sc. Engg. The-sis, Department of Computer Science and Engi-neering Bangladesh University of EngiEngi-neering and Technology (BUET) Dhaka.
[20] V. Vajnovszki Poneti M. Generating restricted classes of involutions, bell and stirling permu-tations. InEuropean Journal of Combinatoric, volume 31, pages 553–564, 2010.
[21] Sedgewick R. Permutation generation methods, dagstuhl workshop on data structures. Wadern, Germany., 2002.
[22] Sedgewick R. Finding paths in graphs, adobe systems india. 2007.
[23] Elizalde S. Generating tree for permutations avoiding generalized patterns,. InJournal
An-nals of Combinatorics, volume 11„ pages 435–
[24] Wilf H. S. East side, west side an introduction to combinatorial families-with maple program-ming. 1999.
[25] Djati Kerami Ernastuti Sulistyo P, Asep Juarna. Pembangkit permutasi dengan dua siklus, akan diterbitkan prosiding seminar nasional matem-atika,. Universitas Indonesia, Depok, 2010. [26] Vajnovzki V. Generating combinatorial objects
by eco method the lyndon words case, lecture notes, gunadarma university, jakarta. 2006.