Abstrak makalah yang memuat latar belakang masalah,

Document Sample
Abstrak makalah yang memuat latar belakang masalah, Powered By Docstoc
					Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2008)
Auditorium Universitas Gunadarma, Depok, 20-21 Agustus 2008                          ISSN : 1411-6286


      ALGORITMA PEMBANGKITAN MENGGUNAKAN POHON
                     PEMBANGKIT

                                       1
                                           Sulistyo Puspitodjati
                                              2
                                                Djati Kerami
               1
                   UNIVERSITAS GUNADARMA (sulistyo@staff.gunadarma.ac.id)
                        2
                          UNIVERSITAS GUNADARMA (djatikr@ui.edu)

                                              ABSTRAK

    Pembangkitan secara lengkap objek-objek dari kelas kombinatorial tertentu adalah
    mencari cara atau metode atau algoritma untuk mencacah (list, enumerate) semua objek
    dalam urutan tertentu tanpa pengulangan dan tidak melewatkan satu objek pun. Salah satu
    pendekatan dalam membangkitkan objek kombinatorial secara lengkap adalah dengan
    pohon pembangkit. Pohon pembangkit adalah suatu sistem yang mempunyai akar dan
    cabang-cabangnya yang dapat direpresentasikan dalam aturan yang dikenal dengan nama
    aturan suksesi. Pendekatan ini banyak digunakan karena dengan aturan suksesi dapat
    diterjemahkan kedalam bentuk-bentuk lain seperti operator linier pada polinomial dengan
    satu variabel, perkalian matriks, atau kode tertentu seperti kode Gray. Dari pohon
    pembangkit dapat pula dimungkinkan suatu algoritma pembangkitan acak. Makalah
    membahas pohon pembangkit dan aplikasinya pada objek kombinatorial untai Fibonacci,
    permutasi dan permutasi dengan siklus.

    Kata Kunci: kombinatorik, pembangkitan lengkap, pohon pembangkit, aturan
    suksesi.

1. PENDAHULUAN                                         diekspansikan dengan rumusan yang disebut
        Salah satu bidang utama dari                   aturan suksesi. Aturan suksesi ini dapat
kombinatorik adalah membangkitkan objek                direpresentasikan dalam suatu pohon dan
dari kelas tertentu untuk parameter tertentu,          disebut pohon pembangkit ([Fer05]). Pohon
baik secara lengkap (exhaustive generation)            pembangkit ini telah ditunjukkan efisien
atau secara acak (random generation).                  dalam konteks pembangkitan kombinatorial,
Maksud dari membangkitan secara lengkap                yaitu waktu untuk menghasilkan N objek
tersebut adalah mencari cara atau metode atau          berukuran n adalah O(N). Objek-objek yang
algoritma untuk mencacah (list, enumerate)             telah ditunjukkan efisien dibangkitkan dengan
semua objek dalam urutan tertentu tanpa                pohon pembangkit tersebut adalah: objek
pengulangan dan tidak melewatkan satu objek            Catalan dalam [Ber07] dan [Fer05], untuk
pun. Algoritma-algoritma tersebut berguna              permutasi      penghindaran    pola     umum
pada banyak bidang seperti uji perangkat keras         (generelazid pattern avoidance) dalam
maupun perangkat lunak, biokimia, biologi              [Eli07], convex polyominoespan dalam
dan termodinamika. ([Ber07], [Duc07]).                 [Lun03], dan untuk struktur Gray dalam
Pembangkitan lengkap sering juga digunakan             [Ber207]. Pohon pembangkit juga secara
untuk memecahkan masalah-masalah NP-                   detail dibahas untuk beberapa objek dalam
complete, dan menganalisa atau membuktikan             [Ban07] dan [Wes96]. Selain itu, pohon
suatu program. ([Vaj06]).                              pembangkit mempunyai pemanfaatan yang
        Salah     satu    pendekatan    untuk          penting dalam kombinatorial, yaitu bijeksi dan
membangkitkan objek kombinatorial adalah               pembangkitan acak ([Duc07]).
dengan yang disebut pohon pembangkit atau                       Karena itu makalah ini akan
sering diidentikkan dengan nama metode ECO             membahas pembangkitan permutasi siklus
(enumerating       combinatorial      objects)         menggunakan pendekatan pohon pembangkit
([Ban07]). Dalam metode ECO setiap objek               atau dikenal juga sebagai metode ECO.
diperoleh dari objek yang lebih kecil yang

Algoritma Pembangkitan Menggunakan Pohon                                                          169
(Sulistyo Puspitodjati)
Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2008)
Auditorium Universitas Gunadarma, Depok, 20-21 Agustus 2008                         ISSN : 1411-6286



2. TINJAUAN PUSTAKA                                 nilai dari parameter objek berhubungan
Enumerasi Objek Kombinatorik                        dengan panjang kata dari bahasa. Jika
         Enumerasi             (pembangkitan)       bahasa terbentuk dari tata bahasa bebas
kombinatorik adalah subjek utama dari               konteks yang ambigu, maka ada
kombinatorik dan menangani pencacahan               kemungkinan       untuk    menerjemahkan
(counting) sejumlah elemen dari kelas               produksi dari tata bahasa ke sistem
berhingga secara eksak maupun secara                persamaan fungsional, yang solusinya unik
pendekatan. Berbagai masalah dari                   dan algebraic dan merupakan fungsi
berbagai bidang dapat dipecahkan dari               pembangkit dari bahasa.
sudut pandang kombinatorial. Biasanya,                      Pendekatan lain untuk enumerasi
masalah-masalah tersebut mempunyai ciri             adalah dengan pohon pembangkit. Pohon
yang sama untuk direpresentasikan ke                pembangkit       adalah    pohon      yang
dalam objek yang sesuai untuk teknik-               menggambarkan keluarga tertentu dari
teknik pembangkitan kombinatorik. Duchi             objek     kombinatorial;     tiap   simpul
([Duc07]),           membagi       pendekatan       berhubungan dengan satu objek, dan
enumerasi dalam 4 kelompok, yakni:                  cabangnya      menuju      simpul     yang
Fungsi rekurensi, fungsi pembangkit,                mengkodekan alternatif yang dipilih dalam
DSV, dan metode ECO.                                mengkonstruksikan        objek.     Pohon
         Untuk kelas objek O dan suatu              pembangkit menjanjikan komputasi yang
parameter p dalam kelas tersebut,                   cepat dalam mengenumerasi barisan objek.
perhatikan himpunan On dengan ukuran n,             Metode       pohon      pembangkit      ini
dimana n adalah bilangan bulat tidak                disistematisasikan oleh Barcucci, Del
negatif. Yang dipermasalahkan dalam                 lungo, Pergola, and Pinzani, dengan nama
enumerasi kobinatorik adalah menentukan             sistem ECO (enumerating combinatorial
kardinalitas an dari himpunan On untuk              objects) ([Ban07]). Dalam metode ECO
setiap kemungkinan n. Hanya beberapa                ini setiap objek diperoleh dari objek yang
kasus yang mempunyai rumusan untuk an               lebih kecil dengan melakukan ekspansi
yang hanya melibatkan fungsi yang sudah             lokal. Seringkali ekspansi lokal tersebut
diketahui dan bebas dari penjumlahan                sangat teratur dan dapat dijelaskan dalam
(summation). Rekurensi untuk an tersaji             aturan suksesi. Metode ECO ini telah
dalam      hubungannya         dengan    nilai      ditunjukkan efektif untuk beberapa
sebelumnya ai yang telah dihitung. Dengan           struktur kombinatorik, seperti: objek
demikian memberikan prosedur sederhana              Catalan dalam [Ber07] dan [Fer05], untuk
untuk menghitung an untuk sembarang n ∈             permutasi penghindaran pola umum
N.                                                  (generelazid pattern avoidance) dalam
         Pendekatan lain adalah dengan              [Eli07], convex polyominoespan dalam
fungsi pembangkit, perumusan an lebih               [Del03], dan untuk struktur Gray dalam
umum, menggunakan deret Taylor, yaitu               [Ber207]. Berikut ini akan dijelaskan
 f ( x) = ∑n a n x n . Jika fungsi pembangkit       metode ECO secara lebih rinci.
                                                    Metode ECO dan aturan suksesi
sudah diketahui, maka koefisien an dapat                    Metode ECO adalah metode untuk
diperoleh.                                          mengenumerasi kelas-kelas dari objek
       Metode lain untuk enumerasi                  kombinatorial. Metode ini menawarkan
adalah metode yang menggunakan bahasa               konstruksi rekursif dari objek sesuai
aljabar, yang disebut metodologi                    dengan ukurannya. Dalam metode ECO,
Schützenberger, atau dikenal juga sebagai           setiap objek diperoleh dari objek yang
DSV. Metode ini menggunakan bijeksi                 lebih kecil dengan membuat beberapa
antara objek-objek dan kata-kata dalam              ekspansi lokal. Jika konstruksi rekursif
bahasa aljabar sedemikian rupa sehingga             mempunyai peraturan tertentu, maka dapat

170                                                      Algoritma Pembangkitan Menggunakan Pohon
                                                                              (Sulistyo Puspitodjati)
Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2008)
Auditorium Universitas Gunadarma, Depok, 20-21 Agustus 2008                       ISSN : 1411-6286

dikodekan dalam sistem formal yang                          Operator     v yang memenuhi
disebut aturan suksesi. Aturan suksesi              kondisi 1 dan 2 tersebut di atas, dikatakan
mewakili langkah selanjutnya. Bagaimana             sebagai operator ECO. Jadi operator ECO
metode ECO bekerja dijelaskan dalam                 membangkitkan       semua      objek     O
[Ber07],    [Duc07],    dan     [Ban07],            sedemikian sehingga setiap objek O’ ∈
sebagaimana pada subbab-subbab berikut.
                                                    On+1 diperoleh secara unik dari O ∈ On .
Operator ECO dan pohon pembangkit.                  Operator ECO yang sedang melakukan
                                                    ekspansi lokal pada objek yag disebut situs
       Misalkan O adalah kelas objek
                                                    aktif dari objek. Operator ECO dapat
kombinatorial dan p: O        N adalah              digambarkan dengan pohon pembangkit,
parameter yang hingga pada O, yaitu                 yaitu: pohon berakar yang simpu-
parameter p sedemikian sehingga On = {O             simpulnya berhubungan dengan objek O.
∈ O : p(O) = n} dari objek berukuran n              Akar yang ditempatkan pada level 0 pada
adalah hingga. Misalkan v : O 2O adalah             pohon, adalah objek dengan ukuran
                                                    terkecil, m. Objek-objek dengan ukuran
operator yang sedemikian sehingga v(On)
                                                    sama berada pada level yang sama dan
⊆ 2On+1. Operator v menggambarkan                   anak dari objek O, adalah yang dihasilkan
bagaimana objek kecil menghasilkan                  dari O melalui v. Jika {|On |}n adalah
objek yang lebih besar.                             urutan yang ditentukan oleh banyaknya
                                                    objek berukuran n, maka fO(x) = Σn≥m |On |
Proposisi 2-1: Jika v memenuhi, untuk
                                                    xn adalah fungsi pembangkitnya.
setiap n ≥ 0,
                                                    Aturan suksesi
1. untuk setiap O’ ∈ On+1, akan terdapat                    Aturan suksesi Ω adalah sistem
    O ∈ On sedemikian sehingga O’ ∈ v,              ((a), P), mengandung aksioma (a) dan
    dan                                             himpunan produksi atau aturan penulisan
2. untuk setiap O, O’ ∈ On, akan                    P didefinisikan pada himpunan label M ⊂
    menggambarkan v(O) ∩ v(O’) = ∅                  N+:
    kapanpun O ≠ O’, maka famili
    himpunan Fn+1 = { v(O): O ∈ On }
    adalah partisi dari On+1.

            ⎧(a)
          Ω=⎨
            ⎩(k ) a (e1 (k ))(e2 (k )) K (ek (k )) untuk semua k ∈ M

dimana a ∈ M adalah nilai tertentu dan ei
adalah fungsi M M.
        Salah satu sifat utama dari aturan          menghasilkan urutan {fn}n dari bilangan
suksesi adalah prinsip konsistensi, yaitu           bulat positif, dimana fn adalah banyaknya
setiap label (k) harus memproduksi tepat k          simpul pada level ke n dari pohon
elemen. Aturan suksesi adalah sesuai                pembangkit dan dinotasikan sebagai fΩ(x)
dengan representasi pohon yang akarnya              = Σn≥m fnxn.
berlabel aksioma (a), dan simpul berlabel                   Seringkali operator v dikodekan
(k) menghasilkan level selanjutnya k anak-          dengan aturan suksesi Ω, yang berarti,
anak yang masing-masing berlabel (e1(k),            objek     dengan      ukuran     minimum
…, ek(k)) (yang nanti akan menghasilkan             mempunyai a anak dan k objek O1 , …,′
masing-masing anak berlabel e1(k), …,                 ′
                                                    Ok , dihasilkan oleh objek O yang
ek(k), dan seterusnya). Aturan suksesi

Algoritma Pembangkitan Menggunakan Pohon                                                      171
(Sulistyo Puspitodjati)
Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2008)
Auditorium Universitas Gunadarma, Depok, 20-21 Agustus 2008                                   ISSN : 1411-6286

sedemikian          sehingga        Oi′       akan        Fibonacci, permutasi, permutasi dengan
menghasilkan anak ei(k) oleh v, yaitu |                   siklus, dan jalur Dyck .
                                                          Pohon Pembangkit Untai Fibonacci
v( Oi′ )|=ei(k), 1≤ i ≤ k. Berarti terdapat
                                                                  Untai Fibonacci adalah untai biner
isomorfima antara pohon pembangkit dari                   yang tidak mengandung 1 berurutan.
operator ECO dan aturan suksesinya yang                   Pohon pembangkit dari untai Fibonacci
bersesuaian. Maka fO(x) = xm fΩ(x), atau                  dapat dilihat pada gambar-1. Untai bit yang
fO(x) = xm fΩ(x) ketika m = 0.                            diperoleh dari pohon pembangkit tersebut
          Jika v adalah operator ECO untuk                adalah dengan membaca dari akar sampai
                                                          ke simpul terbawah dimulai dari cabang
O sesuai p, dan asumsikan terdapat aturan
                                                          kiri kemudian kanan.
suksesi yang berhubungan dengan v,                                Aturan suksesi dari pohon
maka kuadrupel Σ = (O, p, v, Ωv ) disebut                 pembangkit tersebut adalah:
sistem ECO.
                                                              ⎧ (1)
3. APLIKASI                                                   ⎪
       Berikut adalah adalah beberapa
                                                          Ω = ⎨ (1) a (2)
                                                              ⎪(2) a (1)(2)
penerapan pembangkitan objek dari                             ⎩
beberapa kelas kombinatorial, yaitu: Untai

                                                    *


                                 0                                     1


                       1                      0                        0


                       0             0               1         1               0


                0           1   1         0          0         0           0       1


          1           0     0   0 0           1 1        0 0        1 1        0   0
                           Gambar 1: Pohon pembangkit untai Fibonacci

        Hal ini menunjukkan bahwa                                 Permutasi [n] = {1,2,…,N} dapat
ukuran objek terkecil adalah a = 1. Dan                   didefinisikan sebagai bijeksi f: [n]    [n].
selanjutnya terdapat simpul berlabel 1                    Pohon pembangkit permutasi dapat
yang mempunyai satu cabang anak                           dibangun       berdasarkan        algoritma
berlabel 2, dan simpul berlabel 2                         pembangkitan permutasi Johnson –Trotter.
mempunyai 2 anak yang berlabel 1 dan 2.                   Algoritma     Johnson-Trotter      memulai
        Berdasarkan    aturan    suksesi                  permutasi dari yang terpendek, yaitu [1],
tersebut, maka fungsi pembangkit dari                     dan ini hanya mempunyai satu permutasi
untai bit Fibonacci adalah x/(1-x-x2).                    {1}. Kemudian untuk [2], elemen
([Ban07]).                                                tambahan 2, ditambahkan ke permutasi 1
Pohon Pembangkit Permutasi                                dengan cara meletakkan 2 pada sebelah

172                                                                Algoritma Pembangkitan Menggunakan Pohon
                                                                                        (Sulistyo Puspitodjati)
Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2008)
Auditorium Universitas Gunadarma, Depok, 20-21 Agustus 2008                           ISSN : 1411-6286

kiri 1, kemudian ke sebelah kanan 1,                                 a1 a2 … an-1 N
sehingga diperoleh 12 dan 21. Dua elemen
dari     masing-masing    permutasi    ini          Melalui        pohon        pembangkit,
mendefinisikan 3 posisi untuk elemen                pembangkitan        permutasi      dapat
ketiga 3 dengan meletakkan 3 pada paling            digambarkan sebagaimana gambar-2
kiri, tengah, dan paling kanan: 312, 132,           berikut. Jika simpul dari pohon sebelah
123, dan 321, 231, 213. Secara umum,                kiri pada gambar-2 diberi label sesuai
terdapat N cara untuk memperluas                    dengan banyaknya anak cabang, maka
permutasi a1 a2 … an-1 dengan panjang N-1           diperoleh pohon sebelah kanan pada
ke permutasi dengan panjang N:                      gambar-2. Dengan demikian pohon
               N a1 a2 … an-1                       pembangkit untuk permutasi dapat
               a1 N a2 … an-1                       ditulis dalam aturan suksesi berikut:
               a1 a2 N… an-1                              ⎧ (1)
               …                                    Ω=⎨
                                                          ⎩(k ) a (k + 1)
                                                                           k
               a1 a2 … N an-1

                                1
                                                                              2


                     1               2                               3                 3
                                     1

                                                                 4    4   4       4    4    4
            31 13 12            32   23   21



    43     34   31       31          42   24   21   21

                      Gambar-2: Pohon pembangkit untuk permutasi

       Berdasarkan aturan suksesi                   fungsi pembangkit untuk aturan suksesi
untuk pohon pembangkit diatas, maka                 tersebut adalah

                  f Ω = ∑ f n xn = 1+ 2x + 2.3x2 + 2.3.4x3 + ...+ (n +1)!xn
                          n≥0


Pohon Pembangkit untuk Permutasi                    Sn_c = {(a1a2...an)| a1 = n = π(an), ai = π(ai-
dengan siklus                                       1), i = 2, 3, …, n}
        Permutasi dengan siklus adalah                       Dengan demikian, π(n) adalah
permutasi (a1a2...an) dengan a1 = n = π(an),        semua kemungkinan angota [n-1],
ai = π(ai-1), i = 2, 3, …, n. Untuk                 kemudian π(a2) adalah semua anggota [n-
pembangkitan permutasi π: [n]           [n]         1] tanpa a2, dan seterusnya, π(an-1) adalah
dengan satu siklus panjang n, penulis               anggota [n-1] tanpa ai, i = 2, …, n-2.
mengikuti logika pembangkitan permutasi             Dengan kata lain siklus-siklus anggota Sn_c
Johnson –Trotter. Misalkan Sn_c adalah              adalah        (na2...an)    dengan        semua
himpunan semua anggota permutasi n                  kemungkinan permutasi [n-1] untuk a2...an.
dengan siklus yang ditulis secara kanonik,          Berarti | Sn_c | = (n-1)!
dan | Sn_c | adalah banyaknya anggota Sn_c .
Maka

Algoritma Pembangkitan Menggunakan Pohon                                                          173
(Sulistyo Puspitodjati)
Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2008)
Auditorium Universitas Gunadarma, Depok, 20-21 Agustus 2008                            ISSN : 1411-6286

Sn_c dapat dibangun dari S(n-1)_c dengan                permutasi n dengan siklus adalah
menambahkan n didepan semua anggota                     sebagaimana pada gambar-3.
S(n-1)_c sehingga diperoleh sebanyak | S(n-                    Jika simpul dari pohon pembangkit
1)_c | elemen berupa (na2...an) dengan a2 =             gambar-2 diberi label sesuai dengan
n-1. Anggota Sn_c yang lain dibentuk dari               banyaknya anak cabang, maka pohon
setiap       (na2...an) yang ada dengan                 pembangkit untuk permutasi n dengan
memindahkan posisi n-1 ke posisi ak                     siklus dapat ditulis dalam aturan suksesi
berturut-turut untuk k = 3, ..., n. Dengan               Ω berikut:
demikian pohon pembangkit untuk
                                                 (1)


                                               (21)



                                     (321)              (312)


                 (4321)          (4231) (4213)         (4312)   (4132) (4123)
             Gambar-3 Pohon Pembangkit untuk permutasi 4 dengan siklus

                                 ⎧ (1)
                                 ⎪
                             Ω = ⎨ (1) a   (2)
                                 ⎪(k ) a (k + 1) k
                                 ⎩
Berdasarkan aturan suksesi diatas maka
fungsi pembangkit untuk aturan suksesi
tersebut adalah

                    f       = ∑ f x = 1 + x + 2.x 2 + 2.3 x 3 + ... + n! x n
                        Ω        n n
                             n≥0


4. KESIMPULAN DAN SARAN                                 DAFTAR PUSTAKA
       Metode pembangkit menggunakan                    [1] C. Banderier, dkk. 2007. Generating
pohon pembangkit baik untuk untai                           Functions for Generating Trees.
Fibonacci maupun untuk permutasi, dilihat                   arXiv:math.CO/ 0702753v1, 25 Feb
dari rumusan fungsi pembangkit untuk                        2007.
aturan suksesi sama dengan fungsi-fungsi                [2] A. Bernini, I. Fanti, E Grazzini. An
pembangkit dari enumerasi yang sudah                        exhaustive generation algorithm for
ada. Hal ini menunjukkan pembangkitan                       Catalan objects and others. 2007.
objek kombinatorial konsisten dengan                        arXiv:math.CO/0612127v2, 1 Feb
yang sudah ada. Dan karena kelebihannya                     2007.
yang disajikan dengan struktur pohon,                   [3] A. Bernini, dkk. A general exhaustive
maka pohon-pohon pembangkit diatas                          generation algorithm for Gray
adalah pembangkitan yang baik untuk                         structures.       2007.        arXiv:
digunakan.                                                  math/0703262v1 [math.CO]         , 9
                                                            March 2007



174                                                         Algoritma Pembangkitan Menggunakan Pohon
                                                                                 (Sulistyo Puspitodjati)
Proceeding, Seminar Ilmiah Nasional Komputer dan Sistem Intelijen (KOMMIT 2008)
Auditorium Universitas Gunadarma, Depok, 20-21 Agustus 2008                       ISSN : 1411-6286

[4]   M. Bóna, A Walk through                       [8]  A. Del Lungo, dkk. “Enumeration of
      Combinatorics. An Introduction to                  convex polyominoes using the ECO
      Enumeration and Graph Theory.                      method”.          2003.        Discrete
      2002. New Jersey, War Scientific.                  Mathemathics         and    Theoretical
[5]   E. Duchi. ECO method and Object                    Computer Science AB(DMCS),
      Grammars: two methods for the                      2003, 103-116.
      enumeration       of    combinatorial         [9] F.         Ruskey.         Combinatorial
      objects. 2007. Dottorato di Ricerca                Generation.                       2003.
      in     Ingegneria    Informatica    e              http://www.1stworks.com/ref/Ruskey
      dell'Automazione,       XV     Ciclo,              CombGen.pdf.
      Universit_a Degli Studi di Firenze,           [10] V.        Vajnovszki,        Generating
      http://www.dsi.unifi.it/DRIIA/Raccol               Combinatorial Objects by ECO
      taTesi/Duchi. diakses: Mei, 2007.                  Method, the Lyndon Words Case,
[6]   S. Elizalde. Generating Tree for                   Lecture Notes. Jakarta, 26 January
      Permutations Avoiding Generalized                  2006.
      Patterns. 2007. arXiv: 0707.4633v1            [11] J. West. Generating Trees and
      [math.CO] , 31 July 2007.                          Forbidden Subsequences. 1996.
[7]   L. Ferrari and R. Pinzani. Catalan                 http://citeseerx.ist.psu.edu/showciting
      like numbers and succession rules.                 ;jsessionid=1CEE9A0113F2F48EF4
      2005. arXiv:math.CO/0507210v1, 11                  334245C6A52BED?cid=153114.
      July 2005.




Algoritma Pembangkitan Menggunakan Pohon                                                      175
(Sulistyo Puspitodjati)