PENERAPAN HARMONY SEARCH ALGORITHM UNTUK
MENYELESAIKAN PERMAINAN SU-DOKU
M SYAMSUDDIN WISNU BROTO
PROGRAM STUDI MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA
i
PENERAPAN HARMONY SEARCH ALGORITHM UNTUK
MENYELESAIKAN PERMAINAN SU-DOKU
SKRIPSI
Diajukan kepada
Universitas Islam Negeri Syarif Hidayatullah Jakarta Untuk Memenuhi Salah Satu Persyaratan Dalam
Memperoleh Gelar Sarjana Sains (S.Si)
Oleh:
M SYAMSUDDIN WISNU BROTO 1111094000010
PROGRAM STUDI MATEMATIKA FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA
iii
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN SEBAGAI SKRIPSI PADA PERGURUAN TINGGI ATAU LEMBAGA MANAPUN
Jakarta, Januari 2016
M Syamsuddin Wisnu Broto 1111094000010
ABSTRAK
M Syamsuddin Wisnu Broto, Penerapan Harmony Search Algorithm untuk Menyelesaikan Permainan Su-Doku. Di bawah bimbingan Yanne Irene, M.Si dan Irma Fauziah, M.Sc.
Permainan Su-Doku merupakan sebuah permainan untuk menempatkan
ang-ka 1 sampai dengan 9 pada sebuah matriks berukuran 9 9dengan syarat untuk
setiap baris, setiap kolom, dan setiap bloknya hanya berisi angka 1 sampai de-ngan 9 tepat hanya satu kali. Pada skripsi ini dibahas salah satu teknik yang da-pat digunakan untuk menyelesaikan permainan Su-Doku menggunakan Harmony Search Algorithm dengan kotak kosong sebanyak 41 buah. Terdapat beberapa tahap dalam algoritma ini, diantaranya adalah tahap iterasi untuk menentukan nilai fungsi tujuan harmony sama dengan nol. Nilai ini merupakan optimum global dari Harmony Search Algorithm. Terdapat tiga parameter untuk mencapai optimum global dan membatasi nilai random selection yaitu Harmony Memory Size (HM S), Harmony Memory Consideration Rate (HM CR), dan Pitch Ad-justment Rate (P AR). Berdasarkan hasil simulasi, dibutuhkan waktu 1 sampai
29detik untuk menyelesaikannya.
Kata kunci: Permainan Su-Doku, Harmony Search Algorithm, Harmony
Me-mory Size (HM S); Harmony MeMe-mory Consideration Rate (HM CR); Pitch Ad-justment Rate (P AR).
ABSTRACT
M Syamsuddin Wisnu Broto, Application Harmony Search Algorithm for Solving Game Su-Doku. Under the guidance of Yanne Irene, M.Si and Irma Fauziah, M.Sc.
Su-Doku is a game to put the numbers 1 through 9 in a 9 9 matrix. The
provision in this game is the number 1 through 9 placed exactly one time for every row, every column, and every block. This research discusses a technique that can be used to complete the game Su-Doku using Harmony Search Algorithm with
41of empty element in a 9 9matrix. There are several stages in this algorithm,
one of them is iteration to determine the harmony objective function value equal to zero. This value is a global optimum of Harmony Search Algorithm. There are three parameters to achieve the global optimum and restrict the number of random selection are Harmony Memory Size (HM S), Harmony Memory Con-sideration Rate (HM CR), and Pitch Adjustment Rate (P AR). The simulation result shows that it takes time 1 through 29 seconds to complete this Sudoku game using Harmony Search Algorithm.
Keywords: Su-Doku game, Harmony Search Algorithm, Harmony Memory Size
(HM S), Harmony Memory Consideration Rate (HM CR), dan Pitch Adjustment Rate (P AR).
PERSEMBAHAN
Skripsi ini saya persembahkan untuk
Abah Kisdiyanta dan Ibu Siti Mar’fuah yang selalu mendoakan yang terbaik untuk anaknya, maafkan jika belum bisa membuat bahagia sepenuhnya.
Berjuanglah untuk wanita yang membuat pribadimu lebih baik Tinggalkan wanita yang membuat pribadimu lebih jelek atau konstan
- Syamsuddin Excellent
Berusaha, berdoa, bersabar dan yakinlah Allah SWT pasti akan memberikan yang terbaik untukmu.
- Syamsuddin Excellent
Terlalu sadis sepanjang hidup bersamamu
KATA PENGANTAR
Assalamu’alaikum Warahmatullahi Wabarakatuh
Alhamdulillah, segala puji bagi Allah SWT, Tuhan Semesta Alam yang senantiasa memberikan rahmat dan hidayah-Nya kepada penulis, sehingga penulis dapat menyelesaikan skripsi yang berjudul "Penerapan Harmony Search Al-gorithm untuk Menyelesaikan Permainan Su-Doku". Tidak lupa pula shalawat serta salam semoga selalu tercurahkan kepada Nabi Muhammad SAW beserta keluarganya, para sahabatnya, dan para pengikutnya sampai akhir za-man.
Skripsi ini disusun untuk memenuhi salah satu kewajiban akhir mahasiswa untuk memperoleh gelar sarjana. Penulis mendapat banyak pelajaran selama mengkaji bahan-bahan penelitian yang tidak didapatkan dalam bangku perkuliah-an. Pelajaran yang paling penting adalah kesabaran, kerja keras dan pantang menyerah dalam mencapai tujuan.
Dalam penyusunan skripsi ini, penulis banyak mendapatkan inspirasi, se-mangat, motivasi, dukungan, bimbingan dan do’a serta kritikan dari berbagai pihak, sehingga terselesaikan dengan baik. Oleh karena itu, penulis menyam-paikan terima kasih yang sebesar-besarnya kepada :
1. Abah Kisdiyanta, S.Pd, dan Ibu Siti Marfu’ah, S.Pd.I, yang tiada henti-hentinya selalu memberikan do’a, kasih sayang, motivasi, semangat, serta dukungannya baik yang berupa moral maupun materil kepada penulis, 2. Tak lupa pula untuk Adikku M Aziz Indrayanto, M Khamim Ma’arif, dan
Faizatul Aulia, terimakasih atas kasing sayangnya selama ini yang tidak terkira kepada penulis serta do’anya selama ini,
3. Bapak Dr. Agus Salim, M.Si, selaku Dekan Fakultas Sains dan Teknologi, Universitas Islam Negeri Syarif Hidayatullah Jakarta,
4. Ibu Dr. Nina Fitriyati, M.Kom, selaku Ketua Program Studi Matematika Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta, sekaligus sebagai penguji I,
5. Ibu Irma Fauziah, M.Sc, selaku Sekretaris Program Studi Matematika Fakul-tas Sains dan Teknologi UniversiFakul-tas Islam Negeri Syarif Hidayatullah Jakarta, sekaligus sebagai pembimbing II yang telah memberikan dorongan, serta ilmu yang bermanfa’at dalam menyelesaikan skripsi ini,
6. Ibu Yanne Irene, M.Si, selaku dosen Program Studi Matematika Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta sekaligus sebagai pembimbing I yang telah banyak sekali membantu penulis dengan memberikan arahan, saran yang baik, semangat, dan motivasi dalam menyelesaikan skripsi ini, terima kasih banyak Ibu,
7. Ibu Dr. Nur Inayah, M.Si selaku dosen Program Studi Matematika Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta, sekaligus sebagai pembimbing akademik yang telah membantu penulis de-ngan memberikan arahan dan saran yang baik selama proses perkuliahan, 8. Bapak Muhaza Liebenlito, M.Si selaku dosen Program Studi Matematika
Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta, sekaligus sebagai peguji II,
9. Ibu Suma’inna, M.Si selaku dosen Program Studi Matematika Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta, 10. Seluruh Ibu/Bapak dosen Program Studi Matematika Fakultas Sains dan Teknologi Universitas Islam Negeri Syarif Hidayatullah Jakarta yang selama perkuliahan telah memberikan ilmu-ilmunya dan pengalamannya yang sa-ngat bermanfa’at. Terimakasih banyak Ibu dan Bapak semuanya,
11. Keluarga tercinta Mbah, Bude, Pakde, Paman, Bibi, Mbak, Mas, Keponak-an, yang tak henti-hentinya memberikan nasehat, semangat dan kasih sa-yangnya kepada penulis,
12. Teman-teman Pengurus IKAHIMATIKA Indonesia masa bakti 2012-2014, IKAHIMATIKA Indonesia Wilayah III masa bakti 2011-2013 dan 2013-2015, HIMATIKA masa bakti 2013 dan 2014, DEMA FST masa bakti 2014 dan 2015, yang tidak bisa disebutkan satu persatu, terima kasih banyak atas pengalaman organisasi yang luar biasa penulis dapatkan selama ini diluar perkuliahan,
13. Riski Febriandi (cepetan lulus), Aufar Hamdi (raja …lm), M Heykal Al-Faruqi (cepet lulus jangan males), Guntur M. Husein (motivator cinta), Jesry Pandawa (pemikir yang ribet), dan Hidayatullah (gaya melulu) yang selalu menemani dalam keadaan susah maupun senang, panas maupun hu-jan, kampus maupun kosan, diam maupun berisik, lab maupun kelas, jalan maupun naik motor, kantin maupun warteg dan banyak lainnya, semoga kita bertemu kembali di lain waktu, preeeeetttttt haha, kept spirit broo.... 14. Afo Rakaiwa (cepet nikah), Muharman (jangan kelamaan nunggu), Haris Hamzah (jangan search mulu, tentukan!!), Jefry Afryanto (seriusin tu satu aja), Tri Prasetyo (jangan search mulu), M Irvan Septiar Musti (cepet nikah), dan semua laki-laki Matematika 2011 terimakasih atas persahabatan selama ini. hueeekkk haha
15. Seluruh teman-temanku Matematika 2011 yang tidak bisa disebutkan satu persatu, terima kasih banyak telah bekerja sama sebagai rekan seperjuangan selama masa pekuliahan,
16. Perempuan yang selalu mendoakan dan memberikan motivasi agar segera lulus, terimakasih banyak atas motivasinya dan untuk perempuan yang mendoakan lama lulusnya, makasih banyak yaa sis atas doanya karena kalian menjadi motivasi sesegera mencapai kelulusan ini.
17. Pihak-pihak yang tidak dapat penulis sebutkan satu persatu tanpa mengu-rangi rasa hormat, yang telah memberikan dorongan dan bantuan sehingga skripsi ini selesai disusun.
Penulis menyadari bahwa penulisan skripsi ini masih banyak kekurangan dan jauh dari kesempurnaan, oleh karena itu penulis memohon ma’af jika terdapat kesalahan yang kurang berkenan, dan penulis harapkan kritikan dan saran demi perbaikan penulisan skripsi ini.
Akhir kata, semoga skripsi ini bermanfaat dan memberikan kontribusi yang berarti khususnya bagi penulis dan bagi pembaca umumnya dalam rangka menam-bah wawasan pengetahuan kita. Aaamiiin.
Wassalamu’alaikum Warahmatullahi Wabarakatuh
Jakarta, Januari 2016
DAFTAR ISI
HALAMAN JUDUL i LEMBAR PENGESAHAN ii PERNYATAAN iii ABSTRAK iv ABSTRACT v PERSEMBAHAN viKATA PENGANTAR vii
DAFTAR ISI xi
DAFTAR TABEL xiii
DAFTAR GAMBAR xiv
1 PENDAHULUAN 1 1.1 Latar Belakang . . . 1 1.2 Rumusan Masalah . . . 3 1.3 Tujuan Penelitian . . . 3 1.4 Batasan Masalah . . . 3 1.5 Manfaat Penelitian . . . 3 2 LANDASAN TEORI 4 2.1 Matriks . . . 4 2.2 Jenis-Jenis Matriks . . . 4
2.3 Matriks Bagian (Submatriks) . . . 7
2.4 Matriks Su-Doku . . . 7
2.5 Optimisasi . . . 11
2.6 Maksimum dan Minimum Fungsi . . . 12
3 Harmony Search Algorithm untuk Menyelesaikan Permainan
Su-Doku 16
3.1 Harmony Search Algorithm . . . 16
3.1.1 Inisialisasi Fungsi Tujuan . . . 16
3.1.2 Inisialisasi Parameter . . . 17
3.1.3 Pembentukan Harmony Memory (HM ) . . . 17
3.1.4 Pembentukan Harmony Memory Baru (HMN EW) . . . . . 20
3.1.5 Update Harmony Memory . . . 22
3.2 Flowchart Harmony Search Algorithm . . . 23
4 AplikasiHarmony Search Algorithm pada Penyelesaian Permainan Su-Doku 24 4.1 Menentukan Fungsi Tujuan . . . 24
4.2 Menentukan Parameternya . . . 25
4.3 Pembentukan Harmony Memory (HM ) . . . 25
4.4 Pembentukan Harmony Memory Baru (HMN EW) . . . . 38
4.5 Update Harmony Memory . . . 54
4.6 Contoh Lain Permainan Su-Doku . . . 61
5 KESIMPULAN DAN SARAN 62 5.1 Kesimpulan . . . 62
5.2 Saran . . . 62
REFERENSI 63
xiii
DAFTAR TABEL
Tabel 3.1 Kandidat yang mungkin untuk permainan Su-Doku ... 25
Tabel 3.2 Nilai random untuk harmony 𝑥1 ... 26
Tabel 3.3 Nilai random untuk harmony 𝑥2 ... 27
Tabel 3.4 Fungsi tujuan harmony 𝑥1 ... 33
Tabel 3.5 Fungsi tujuan harmony 𝑥2 ... 33
xiv
DAFTAR GAMBAR
Gambar 2.1 Koordinat Su-Doku ... 8
Gambar 2.2 Contoh Blok 5 dari Su-Doku ... 8
Gambar 2.3 Pembagian Blok Su-Doku ... 9
Gambar 2.4 Contoh Masalah Permainan Su-Doku ... 9
Gambar 2.5 Pembagian Blok pada Permainan Su-Doku ... 10
Gambar 2.6 Contoh Permainan Su-Doku ... 11
Gambar 2.7 Fungsi 𝑓 dan domain ... 13
Gambar 2.8 Sketsa Grafik fungsi 𝑓 dengan daerah asal ... 14
Gambar 2.9 Minumum Lokal dan Maksimum Lokal ... 15
Gambar 3.1 Flowchart Harmony Search Algorithm untuk Menyelesaikan Permainan Su-Doku ... 20
Gambar 3.2 Masalah Permainan Su-Doku... 21
Gambar 3.3 Harmony 𝑥1 ... 32
Gambar 3.4 Harmony 𝑥2 ... 32
Gambar 3.5 Harmony 𝑥2 dengan 𝑓(𝑥2) = 73 ... 35
Gambar 3.6 Harmony 𝑥1 dengan 𝑓(𝑥1) = 78 ... 35
Gambar 3.7 Permainan Su-Doku dengan fungsi tujuan minimum ... 36
Gambar 3.8 𝐻𝑀𝑁𝐸𝑊 ... 51
Gambar 3.9 Harmony 𝑥1 dengan 𝑓(𝑥1) = 55 ... 52
Gambar 3.10 Harmony 𝑥2 dengan 𝑓(𝑥2) = 73 ... 52
Gambar 3.11 Harmony 𝑥𝑁𝐸𝑊 dengan 𝑓(𝑥𝑁𝐸𝑊) = 23 ... 53
Gambar 3.12 Harmony 𝑥𝑁𝐸𝑊 dengan 𝑓(𝑥𝑁𝐸𝑊) = 22 ... 53
Gambar 3.13 Harmony 𝑥𝑁𝐸𝑊 dengan 𝑓(𝑥𝑁𝐸𝑊) = 20 ... 54
Gambar 3.14 Harmony 𝑥𝑁𝐸𝑊dengan 𝑓(𝑥𝑁𝐸𝑊) = 17 ... 54
Gambar 3.15 Harmony 𝑥𝑁𝐸𝑊dengan 𝑓(𝑥𝑁𝐸𝑊) = 11 ... 55
Gambar 3.16 Harmony 𝑥𝑁𝐸𝑊dengan 𝑓(𝑥𝑁𝐸𝑊) = 17 ... 55
Gambar 3.17 Harmony 𝑥𝑁𝐸𝑊dengan 𝑓(𝑥𝑁𝐸𝑊) = 0 ... 56
Gambar 3.18 Masalah Su-Doku ... 59
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Sebuah permainan puzzle di desain oleh seorang pensiunan arsitek yang ber-asal dari Amerika Serikat bernama Howard Grans. Permainan puzzle ini diberi nama Number Place yang dipublikasi pertama kalinya dalam sebuah majalah Dell Megazine of New York puzzle pada tahun 1979. Dan pada saat itu, permainan puzzle ini kurang populer dikarenakan tidak diminati oleh masyarakat [1].
Pada tahun 1984, perusahaan Nikoli menerbitkan sebuah majalah cetak khusus puzzle yang dimuat di Majalah Bulanan Nikoli, sehingga membuat per-mainan puzzle ini berkembang menjadi perper-mainan yang sangat populer di Jepang. Kemudian puzzle ini diberi nama Suuji Wa Dokushin Kagiru yang dapat diter-jemahkan menjadi angka-angka yang harus tetap tunggal atau kemunculannya hanya sekali saja. Selanjutnya permainan puzzle ini dikenal sebagai Su-Doku. Saat ini sekitar 15 majalah Su-Doku Jepang dan 30 buku diterbitkan setiap bu-lannya [1].
Pada tahun 1997, seorang pensiunan Hakim Pengadilan Tinggi yang tinggal di Hongkong bernama Wayne Gould menemukan puzzle Su-Doku saat berbelanja disebuah toko buku di Tokyo. Karena terpesona, Wayne Gould menghabiskan beberapa tahun untuk merancang program komputer untuk menghasilkan teka-teki Su-Doku dengan tingkat kesulitan yang bervariasi, yaitu mudah, sedang, sulit dan sangat sulit. Kemudian Wayne Gould menawarkan puzzle tersebut pada majalah The Times di London yang kemudian menerbitkannya bulan November 2004. Sampai saat ini Su-Doku masih dimuat di setiap terbitan majalah The Times dengan tingkat kesulitan yang bervariasi [1].
Pada bulan Mei 2005, Su-Doku menjadi benar-benar menggila dan tersebar di seluruh dunia. Dalam sebulan teka-teki Su-Doku muncul di berbagai media cetak di Australia, Canada, Israel, Eropa Timur, dan India, kemudian menyebar
di banyak puluhan surat kabar Amerika Serikat [1].
Permainan Su-Doku adalah sebuah permainan menempatkan angka-angka 1
sampai 9 pada matriks berukuran 9 9 dengan syarat untuk setiap baris,
se-tiap kolom, dan sese-tiap bloknya hanya berisi angka 1 sampai 9 tepat sati kali [2].
Tujuan permainan Su-Doku ini adalah melengkapi matriks 9 9 yang memiliki
kotak-kotak kosong yang akan diisi dengan angka 1 sampai 9 sehingga akan meng-hasilkan suatu solusi Su-Doku. Permainan ini merupakan salah satu permainan yang menggunakan logika pemainnya yang relatif mudah dalam penyelesaian-nya, walaupun tidak semua pemainnya dapat menyelesaikan permainan ini. Oleh karena itu diperlukan suatu teknik untuk membantu pemain dalam menyelesaikan permainan Su-Doku ini.
Terdapat beberapa teknik yang dapat digunakan untuk menyelesaikan per-mainan Su-Doku, yaitu dengan menggunakan Metode Backtracking, Metode Brute-force, Genetic Algorithm, Simulated Anneling, Graph Referencing Algorithm dan Harmony Search Algorithm [14]. Dalam skripsi ini akan dibahas penyelesaian permainan Su-Doku dengan menggunakan Metode Harmony Search Algorithm.
Harmony Search Algorithm adalah suatu teknik metaheuristik yang diperke-nalkan oleh Dr. Zong Woo Geem, Dr. G.V. Loganathan, dan Dr. Joong Hoon Kim tahun 2001. Harmony Search Algorithm dikembangkan dengan memper-hatikan proses improvisasi musik, dimana seorang musisi berusaha terus menerus untuk memperbaiki nadanya untuk mendapatkan harmony yang lebih baik. Un-tuk improvisasi musik, masing-masing musisi membunyikan sebuah nada dengan tingkat nada yang mungkin, kemudian nada-nada tersebut akan membentuk se-buah harmony. Jika semua nada menghasilkan harmony yang bagus, maka ke-jadian tersebut disimpan diingatan para musisi, maka kemungkinan untuk mem-buat harmony yang bagus lainnya akan lebih baik [3].
Penelitian tentang Harmony Search Algorithm untuk menyelesaikan Su-Doku dilakukan oleh Zoo Woo Geem. Pada penelitian tersebut dijelaskan tentang model dan rancangan Harmony Search Algorithm untuk menyelesaikan puzzle dalam permainan Su-Doku. Penggunaan Harmoy Search Algorithm pada penelitian tersebut dapat menyelesaikan puzzle Su-Doku dengan benar dalam waktu antara
3sampai 38 detik dengan parameter berbeda [2].
1.2 Rumusan Masalah
Berdasarkan latar belakang di atas maka permasalahan yang akan dikaji dalam penulisan ini adalah bagaimana menyelesaikan permainan Su-Doku dengan menggunakan Harmony Search Algorithm.
1.3 Tujuan Penelitian
Tujuan dari penulisan penelitian ini adalah menyelesaikan permainan Su-Doku dari suatu matriks Su-Su-Doku dengan menggunakan Harmony Search Algo-rithm.
1.4 Batasan Masalah
Agar penelitian sesuai dengan tujuan penelitian, diperlukan batasan masalah sebagai berikut :
1. Permainan Su-Doku yang digunakan adalah matriks berukuran 9 9,
de-ngan jumlah kotak kosong antara 1 sampai 41 kotak,
2. Untuk masalah Su-Doku dengan jumlah kotak kosong lebih dari 41 kotak, aplikasi dari Harmony Search Algorithm hanya mencapai local optimum.
1.5 Manfaat Penelitian
Manfaat penelitian ini adalah menambah pengetahuan baru bagi kita, khusus-nya penulis, mengenai penggunaan metode Harmony Search Algorithm untuk menyelesaikan permainan Su-Doku.
BAB 2
LANDASAN TEORI
2.1 Matriks
De…nisi 2.1 Sebuah matriks adalah susunan segi empat siku-siku dari
bilangan-bilangan yang dibatasi dengan tanda kurung. Bilangan-bilangan-bilangan dalam susuan tersebut dinamakan entri dalam matriks [4].
Suatu matriks tersusun atas baris dan kolom, jika matriks tersusun atas m
baris dan n kolom maka dikatakan matriks tersebut berukuran (berordo) m n.
Penulisan matriks biasanya menggunakan huruf besar A; B; C; dan seterusnya. Sedangkan penulisan matriks beserta ukurannya (matriks dengan m baris dan n
kolom) adalah Am n; Bm n dan seterusnya [4].
Contoh 2.2 Suatu matriks A dikatakan berukuran m n jika banyaknya baris
dari A adalah m dan banyaknya kolom dari A adalah n, yng dapat ditulis sebagai berikut : Am n 2 6 6 6 6 6 6 6 6 6 4 x11 x12 x13 x1n x21 x22 x23 x2n x31 x32 x33 xn .. . xm1 xm2 xm3 xmn 3 7 7 7 7 7 7 7 7 7 5
dimana xij disebut elemen dari A yang terletak pada baris i dan kolom j [4].
2.2 Jenis-Jenis Matriks
Ada beberapa jenis matriks yang perlu diketahui, yaitu sebagai berikut : 1. Matriks Baris
Matriks baris adalah matriks yang hanya mempunyai satu baris saja. Secara umum, ordo dari matriks baris berbentuk 1 n dengan n menentukan
banyak kolom dari matriks baris tersebut. Contoh 2.3
A =h1 2
i
2. Matriks Kolom
Matriks kolom adalah matriks yang hanya mempunyai satu kolom saja.
Secara umum, ordo matriks kolom adalah m 1 dengan m menentukan
banyak baris matriks kolom tersebut. Contoh 2.4 A = 2 6 6 6 4 1 2 3 3 7 7 7 5
3. Matriks Bujur Sangkar
Matriks bujur sangkar adalah matriks yang jumlahnya sama dengan jumlah kolomnya. Karena sifatnya yang demikian ini, dalam matriks bujur sangkar dikenal istilah elemen diagonal yang berjumlah n untuk matriks
bujur sangkar yang berukuran n n, yaitu x11; x22; :::; xnn
Contoh 2.5 A2 2= 2 4x11 x12 x21 x22 3 5
dengan elemen diagonal x11; dan x22
Contoh 2.6 A3 3= 2 6 6 6 4 x11 x12 x13 x21 x22 x23 x31 x23 x33 3 7 7 7 5
dengan elemen diagonal x11; x22 dan x33
Matriks diagonal adalah matriks yang elemen bukan diagonalnya berni-lai nol. Dalam hal ini tidak disyaratkan bahwa elemen diagonal harus tak nol. Contoh 2.7 A = 2 41 0 0 1 3 5 ; B = 2 41 0 0 0 3 5 5. Matriks Nol
Matriks nol merupakan matriks yang semua elemennya bernilai nol. Contoh 2.8 A = 2 40 0 0 0 3 5 6. Matriks Segitiga
Matriks segitiga adalah matriks bujur sangkar yang elemen-elemen dibawah atau diatas elemen diagonal bernilai nol. Jika yang bernilai nol adalah elemen-elemen dibawah elemen diagonal maka disebut matriks se-gitiga atas, sebaliknya disebut matriks sese-gitiga bawah. Dalam hal ini, juga tidak disyaratkan bahwa elemen diagonal harus bernilai tak nol.
Contoh 2.9 A = 2 6 6 6 4 1 0 1 0 0 2 0 0 1 3 7 7 7 5; B = 2 6 6 6 4 1 0 0 1 0 0 0 2 1 3 7 7 7 5; C = 2 6 6 6 4 1 0 0 0 2 0 0 0 1 3 7 7 7 5
Matriks A adalah matriks segitiga bawah, matriks B adalah matriks segitiga atas, sedangkan matriks C adalah matriks segitiga bawah dan juga matriks segitiga atas.
7. Matriks Identitas
Matriks identitas adalah matriks diagonal yang elemen diagonalnya bernilai 1.
Contoh 2.10 A = 2 6 6 6 4 1 0 0 0 1 0 0 0 1 3 7 7 7 5
2.3 Matriks Bagian (Submatriks)
De…nisi 2.11 Sebuah matriks dapat dibagi-bagi atau dipartisi ke matriks-matriks
yang lebih kecil dengan menyelipkan garis-garis horizontal maupun vertikal di-antara baris dan kolom yang ditentukan. Hasil partisi tersebut dinamakan sub-matriks [4].
Misalkan matriks A ditulis sebagai berikut :
A3 4 = 2 6 6 6 4 a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 3 7 7 7 5
Dengan partisinya, yaitu :
A3 4= 2 6 6 6 4 a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 3 7 7 7 5= 2 4a11 a12 a13 a21 a22 a23 3 5 = A2 3 2.4 Matriks Su-Doku
Matriks Su-Doku adalah matriks berukuran n2 n2dimana n 2, sedemikian
sehingga setiap baris, setiap kolom dan setiap blok berukuran n n memuat semua
angka 1 sampai n2. Misalkan matriks Su-Doku berukuran 9 9akan mempunyai
9baris, 9 kolom dan 9 blok berukuran 3 3. Aturan dalam permainan Su-Doku
adalah sebagai berikut :
Untuk setiap baris entri-entrinya terdiri dari angka 1 sampai 9 dengan syarat entri-entri yang muncul tepat satu kali,
syarat entri-entri yang muncul tepat satu kali,
Untuk setiap blok yang berukuran 3 3, entri-entrinya terdiri dari angka 1
sampai 9 dengan syarat entri-entri yang muncul tepat satu kali [2].
Berdasarkan Wei Meng Lee [5] koordinat dari entri-entri pada matriks Su-Doku yaitu sebagai berikut :
(1; 1) (1; 2) (1; 3) (1; 4) (1; 5) (1; 6) (1; 7) (1; 8) (1; 9) (2; 1) (2; 2) (2; 3) (2; 4) (2; 5) (2; 6) (2; 7) (2; 8) (2; 9) (3; 1) (3; 2) (3; 3) (3; 4) (3; 5) (3; 6) (3; 7) (3; 8) (3; 9) (4; 1) (4; 2) (4; 3) (4; 4) (4; 5) (4; 6) (4; 7) (4; 8) (4; 9) (5; 1) (5; 2) (5; 3) (5; 4) (5; 5) (5; 6) (5; 7) (5; 8) (5; 9) (6; 1) (6; 2) (6; 3) (6; 4) (6; 5) (6; 6) (6; 7) (6; 8) (6; 9) (7; 1) (7; 2) (7; 3) (7; 4) (7; 5) (7; 6) (7; 7) (7; 8) (7; 9) (8; 1) (8; 2) (8; 3) (8; 4) (8; 5) (8; 6) (8; 7) (8; 8) (8; 9) (9; 1) (9; 2) (9; 3) (9; 4) (9; 5) (9; 6) (9; 7) (9; 8) (9; 9)
Gambar 2:1 Koordinat Su-Doku
Sedangkan untuk mende…nisikan blok dari Su-Doku dimulai dari pojok kiri atas sampai pojok kanan bawah. Blok-blok pada Su-Doku dinamakan dengan angka 1 sampai 9. Pembagian bloknya terdapat pada Gambar 2:3. Berikut contoh entri-entri blok 5 dari Su-Doku adalah sebagai berikut :
(4; 4) (4; 5) (4; 6)
(5; 4) (5; 5) (5; 6)
(6; 4) (6; 5) (6; 6)
Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9 Row1 Row2 1 2 3 Row3 Row4 Row5 4 5 6 Row6 Row7 Row8 7 8 9 Row9
Gambar 2:3 Pembagian Blok Su-Doku
Berdasarkan Zong Woo Geem [2] berikut adalah contoh dari permainan Su-Doku : 2 5 4 3 1 6 8 9 7 7 6 3 9 8 5 1 2 4 1 9 8 4 2 7 6 5 3 9 8 1 7 5 3 2 4 6 6 3 2 8 4 9 7 1 5 5 4 7 2 6 1 9 3 8 4 7 5 6 9 2 3 8 1 3 1 9 5 7 8 4 6 2 8 2 6 1 3 4 5 7 9
Gambar 2:4 Contoh Permainan Su-Doku
Dari Gambar 2:4 diatas dapat dilihat bahwa permainan Su-Doku memiliki tiga syarat, yaitu :
Untuk setiap baris entri-entrinya terdiri dari angka 1 sampai 9 yang muncul tepat satu kali
tepat satu kali
Untuk setiap blok yang berukuran 3 3, entri-entrinya terdiri dari angka 1
sampai 9 yang muncul tepat satu kali
Dengan pembagian bloknya (submatriks), yaitu sebagai berikut :
1-3 4-6 7-9 1-3 2 6 6 6 4 2 5 4 7 6 3 1 9 8 3 7 7 7 5 Blok 1 2 6 6 6 4 3 1 6 9 8 5 4 2 7 3 7 7 7 5 Blok 2 2 6 6 6 4 8 9 7 1 2 4 6 5 5 3 7 7 7 5 Blok 3 4-6 2 6 6 6 4 9 8 1 6 3 2 5 4 7 3 7 7 7 5 Blok 4 2 6 6 6 4 7 5 3 8 4 9 2 6 1 3 7 7 7 5 Blok 5 2 6 6 6 4 2 4 6 7 1 5 9 3 8 3 7 7 7 5 Blok 6 7-9 2 6 6 6 4 4 7 5 3 1 9 8 2 6 3 7 7 7 5 Blok 7 2 6 6 6 4 6 9 2 5 7 8 1 3 4 3 7 7 7 5 Blok 8 2 6 6 6 4 3 8 1 6 6 2 5 7 9 3 7 7 7 5 Blok 9 Gambar 2.5 Pembagian Blok pada Permainan Su-Doku
Sesuai dengan pengertian matriks Su-Doku, maka dapat dibuat suatu per-mainan Su-Doku. Perper-mainan Su-Doku yaitu suatu perper-mainan penempatan
angka-angka 1 sampai 9 pada matriks berukuran 9 9dengan syarat setiap baris, kolom
dan blok 3 3hanya berisi angka 1 sampai 9 tepat satu kali. Permainan Su-Doku
memiliki beberapa kotak-kotak yang belum diisi dengan angka-angka, sehingga tujuan dari permainan Su-Doku adalah mengisi kotak-kotak kosong tersebut de-ngan suatu angka sehingga menghasilkan suatu solusi Su-Doku.
Dari contoh permainan Doku diatas akan dibentuk suatu permainan Doku pada Gambar 2:6. dimana merupakan salah satu contoh permainan Su-Doku yang setelah diselesaikan akan menghasilkan matriks Su-Su-Doku pada Gam-bar 2:4. Cara penyelesaian permainan Su-Doku diatas adalah kita harus mengisi kotak-kotak kosong diatas dengan angka 1 sampai 9 sehingga akhirnya akan
men-jadi suatu matriks Su-Doku. Kotak-kotak kosong diatas masing-masing hanya dapat diisi oleh tepat satu angka. Sehingga setelah permainan Su-Doku sele-sai dimainkan, maka akan membentuk suatu matriks Sudoku yang unik, karena hanya memiliki satu solusi pada Gambar 2:4.
5 3 6 7 8 5 2 4 9 8 4 2 6 3 9 1 3 2 6 3 1 5 7 2 6 9 8 4 5 9 3 8 1 5 7 2 8 1 4 7
Gambar 2.6 Contoh Masalah Permainan Su-Doku
Pada tahun 2006, Felgenhauer dan Jarvis melakukan penelitian dengan tu-juan mencari jumlah matriks Su-Doku yang ada. Dan mereka menemukan bahwa
tedapat 6670903752021072936960 6:671 1021 matriks Su-Doku yang unik
yang berukuran 9 9. Dalam membentuk sebuah permainan Su-Doku, akan digu-nakan pengacakan dalam menentukan angka-angka yang dapat dipilih dan
ditem-patkan pada matriks 9 9. Sehingga dalam menyelesaikan permainan Su-Doku
akan diperoleh salah satu matriks Su-Doku dari 6670903752021072936960
6:671 1021 matriks Su-Doku yang sudah ada [6].
2.5 Optimisasi
Optimisasi merupakan suatu proses menemukan solusi terbaik dari semua solusi yang mungkin dan memberikan nilai minimum atau maksimum dari fungsi tujuan. Secara umum masalah optimisasi dapat ditulis :
kendala gj(x) 0; j = 1; 2; : : : ; J hk(x) = 0; k = 1; 2; : : : ; K x(L)i xi x (U ) i ; i = 1; 2; : : : ; n
Solusi x adalah vektor dari n variabel keputusan : x = (x1; x2; : : : ; xn)T.
Himpunan terakhir dari kendala disebut batas variabel, membatasi setiap variabel
keputusan (decision variabels) xi yang nilainya berada diantara batas bawah x
(L) i
dan batas atas x(U )i . Batas-batas ini dinamakan ruang variabel keputusan D atau
dikenal sebagai ruang keputusan.
Bentuk gj(x)dan hk(x)disebut fungsi kendala. Solusi x yang tidak memenuhi
setiap kendala (J + K) dan setiap batas variabel disebut solusi yang tidak layak (infeasible solution). Sebaliknya, jika setiap solusi x memenuhi seluruh kendala dan batas variabel, maka solusi itu disebut solusi yang layak (feasible solution).
Di sisi lain, jika tidak ada kendala yang ditentukan maka xi dapat bernilai
bera-papun disumbu x (atau bilangan bulat), masalah optimisasi ini dinamakan opti-misasi tanpa kendala [15]. Masalah optiopti-misasi tanpa kendala dimana keadaan
op-timal dapat terjadi pada titik-titik kritis dengan kondisi stasioner yaitu f0(x) = 0
[16].
2.6 Maksimum dan Minimum Fungsi
Dalam hidup ini kita sering menghadapi masalah guna mendapatkan jalan terbaik untuk melakukan sesuatu. Sebagai contoh seorang petani ingin memilih kombinasi hasil panen yang dapat menghasilkan keuntungan terbesar. Kadang kala masalah dapat dirumuskan sehingga akan melibatkan memaksimumkan dan meminimumkan fungsi tertentu. Andaikan kita mengetahui fungsi f dan do-main(daerah asal) S seperti Gambar 2:7. Akan ditentukan apakah f memiliki ni-lai maksimum atau minimum pada S. Anggap bahwa nini-lai-nini-lai tersebut ada, kita ingin mengetahui lebih lanjut dimana dalam S nilai-nilai itu berada. Akhirnya,
kita dapat menentukan nilai-nilai maksimum dan minimum.
:
Gambar 2:7 Fungsi f dan domain
De…nisi 2.12 Andaikan S, daerah asal f , memuat titik c. Kita katakan bahwa:
(i) f (c) adalah nilai maksimum f pada S jika f (c) f (x) untuk semua x di
S;
(ii) f (c) adalah nilai minimum f pada S jika f (c) f (x) untuk semua x di S;
(iii) f (c) adalah nilai eksrim f pada S jika ia adalah nilai maksimum atau nilai minimum.
Teorema 2.13 (Teorema Eksistensi Mak-Min). Jika f kontinu pada selang
tertutup [a; b], maka f mencapai nilai maksimum dan nilai minimum.
Teorema 2.14 Andaikan f dide…nisikan pada selang I yang memuat titik c. jika
f (c) adalah titik ekstrim, maka c haruslah suatu titik kritis; yakni c berupa salah satu :
1. titik ujung I;
2. titik stasioner dari f (f0(c) = 0);
2.7 Maksimum dan Minimum Lokal
Berdasarkan subbab 2:6 nilai maksimum (jika ada) suatu fungsi f pada him-punan S adalah nilai f terbesar yang dicapai pada keseluruhan himhim-punan S. Kadang-kadang diacu sebagai nilai maksimum global, atau nilai maksimum absolut dari f . Jadi untuk fungsi f dengan daerah asal S = [a; b] yang gra…knya diskets dalam Gambar 2:8, f (a) adalah nilai maksimum global. Sedangkan f (c) suatu nilai maksimum lokal, atau nilai maksimum relatif. Tentu saja nilai maksimum global otomatis juga nilai maksimum lokal [17]. Gambar 2:9 menun-jukkan sejumlah kemungkinan. Perhatikan bahwa nilai maksimum global (jika ada) hanyalah yang terbesar diantara nilai-nilai maksimum lokal. Sama halnya dengan nilai minimum global adalah yang terkecil di antara nilai-nilai minimum lokal.
Gambar 2:8 Sketsa Gra…k fungsi f dengan daerah asal
De…nisi 2.15 Andaikan S, daerah asal f , memuat titik c, kita katakan bahwa :
(i) f (c) nilai maksimum lokal f jika terdapat selang (a; b) yang memuat c sedemikian sehingga f (c) adalah nilai maksimum f pada (a; b) \ S;
(ii) f (c) nilai minimum lokal f jika terdapat selang (a; b) yang memuat c sedemikian sehingga f (c) adalah nilai minimum f pada (a; b) \ S;
(iii) f (c) nilai ekstrim lokal f jika ia berupa nilai maksimum lokal atau mini-mum lokal.
Gambar 2:9 Minumum Lokal dan Maksimum Lokal
Masalah optimisasi dapat diselesaikan dengan berbagai macam metode, salah satunya yaitu dengan menggunakan metode metaheuristik [7].
Metaheuristik adalah metode penyelesaian masalah optimisasi yang dilakukan dengan memperbaiki kandidat solusi secara iteratif dan mampu menghasilkan so-lusi yang baik dalam waktu yang cepat, tetapi tidak menjamin bahwa penyele-saian yang dihasilkan merupakan penyelepenyele-saian yang terbaik. Dan salah satu jenis metode metaheuristik yang akan digunakan dalam skripsi ini adalah Harmony Search Algorithm [7]:
BAB 3
Harmony Search Algorithm untuk
Menyelesaikan Permainan Su-Doku
3.1 Harmony Search Algorithm
Harmony Search Algorithm dapat menyelesaikan suatu permainan Su-Doku sehingga menghasilkan matriks Su-Doku. Cara kerja dari Harmony Search Algo-rithm adalah mengisi kotak-kotak yang kosong pada permainan Su-Doku secara satu persatu sampai terbentuk matriks Su-Doku. Sebelum menggunakan Har-mony Search Algorithm, maka terlebih dahulu kita menginput satu permainan Su-Doku dengan beberapa kotak belum diisi angka-angka sesuai dengan tingkat kesulitannya. Semakin banyak angka yang kita input, maka semakin mudah dalam menyelesaikannya. Angka-angka yang kita input ke dalam permainan Su-doku harus sesuai dengan prinsip-prinsip permainan Su-Doku, yaitu tidak boleh ada angka yang sama dalam setiap baris, kolom atau bloknya.
Langkah-langkah dalam menyelesaikan permainan Su-Doku dengan Harmony Search Algorithm :
3.1.1 Inisialisasi Fungsi Tujuan
Berdasarkan Zong Woo Geem [2], fungsi tujuan yang akan digunakan dalam menyelesaikan permainan Su-Doku adalah sebagai berikut :
f (xn) = 9 X i=1 9 X j=1 xij 45 + 9 X j=1 9 X i=1 xij 45 + 9 X k=1 9 X (l;m)2Bk xlm 45 (3.1)
dimana xij = kotak pada baris i dan kolom j yang berisi angka 1 9, dengan
i; j 2 f1; 2; 3; 4; 5; 6; 7; 8; 9g dan Bk = kotak pada blok k.
di-mana diharapkan bisa untuk meminimalkan total jumlah angka-angka untuk se-tiap baris yang mendatar, kolom yang menurun, dan area bloknya pada sese-tiap baris, kolom dan bloknya. Sedangkan untuk angka 45 merupakan hasil penjum-lahan dari 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45 untuk menjamin bahwa setiap angka tersebut hanya ada satu kali pada setiap baris, kolom dan bloknya [2].
3.1.2 Inisialisasi Parameter
Dalam permainan Su-Doku ini menggunakan parameter secara umum dalam Harmony Search Algorithm. Parameternya adalah sebagai berikut :
1. HM S (Harmony Memory Size) adalah jumlah dari kumpulan harmony
atau bisa disebut sebagai jumlah populasi [2]. (1 HM S 100) [8]
2. HM CR (Harmony Memory Consideration Rate) adalah probabilitas pemi-lihan angka yang akan diubah atau diganti dari kandidat solusi Su-Doku
pada populasi. (0:5 HM CR 0:9) [2]
3. P AR (Pitch Adjustment Rate) adalah probabilitas melakukan penggantian angka apakah harus diubah, disesuaikan atau diganti dengan angka yang
lain pada kotak kosong dalam matriks Su-Doku. (0:01 P AR 0:5) [2]
4. N I (Number of Improvisations) adalah batasan jumlah iterasi sebagai kri-teria pemberhentian atau perulangan yang digunakan selama proses penye-suaian angka-angka pada kotak kosong. (N I = f100; 500; 1000; 10000g) [2]
Harmony Search Algorithm akan berhenti ketika mencapai kriteria tertentu diantaranya ketika telah mencapai batas N I.
3.1.3 Pembentukan Harmony Memory (HM )
Pada langkah ini akan dibentuk matriks solusi yang dibangkitkan secara acak sebanyak HM S, kemudian disimpan dalam HM . Berikut contoh matriks solusi
: 2 6 6 6 6 6 6 6 6 6 4 x111 x112 x113 x119 x1 21 x122 x123 x129 x131 x132 x133 x139 .. . x191 x192 x193 x199 3 7 7 7 7 7 7 7 7 7 5 =) Z(x1) (3.2) 2 6 6 6 6 6 6 6 6 6 4 x2 11 x212 x213 x219 x221 x222 x223 x229 x2 31 x232 x233 x239 .. . x2 91 x292 x293 x299 3 7 7 7 7 7 7 7 7 7 5 =) Z(x2) (3.3) 2 6 6 6 6 6 6 6 6 6 4 xHM S11 xHM S12 xHM S13 xHM S19 xHM S 21 xHM S22 xHM S23 xHM S29 xHM S31 xHM S32 xHM S33 xHM S39 .. . xHM S91 xHM S92 xHM S93 xHM S99 3 7 7 7 7 7 7 7 7 7 5 =) Z(xHM S) (3.4) dimana xn
ij = kotak pada baris i dan kolom j pada vektor nth dalam HM ; dan
Z(xn) = hasil dari fungsi matriks nth dalam HM .
Kemudian melakukan proses random selection yang akan digunakan untuk mengisi matriks solusi yang baru dalam HM yang dinyatakan sebagai berikut :
xnij = XLij + rand (XUij XLij)
dimana ij = baris i dan kolom j, untuk i; j 2 f1; 2; 3; 4; 5; 6; 7; 8; 9g;
n 2 f1; 2; 3; :::; HMSg; XLij = angka terkecil yang mungkin dari nilai
kemung-kinan baris i dan kolom j; XUij = angka terbesar yang mungkin dari nilai
ke-mungkinan baris i dan kolom j; rand = nilai acak antara 0 sampai 1.
Dari proses random selection diatas, maka akan dicari jarak terkecil dengan nilai yang mungkin yang sudah ada, sehingga didapat nilai untuk mengisi kotak
kosong. Aturannya sebagai berikut :
dnij;k= xnij yij;k 2
dimana dn
ij;k = jarak dari baris i dan kolom j nilai yang mungkin ke-k untuk
HM S ke-n, xnij =hasil random selection pada baris i kolom j untuk HM S ke-n,
yij;k =nilai yang mungkin dari baris i kolom j ke-k pada kotak kosong.
Dari aturan diatas didapat nilai dn
ij;k dari masing-masing nilai yang mungkin
dari kotak kosong. Berdasarkan nilai dn
ij;k terkecil, maka nilai yang mungkin ke-k
yang bersesuaian dengan dn
ij;k tersebut akan dimasukkan ke kotak yang kosong.
Dalam pembentukan suatu HM , maka setiap baris harus disusun sesuai
dengan nilai dari fungsi tujuannya yaitu f (xn). Nilai-nilai fungsi tujuan dari
banyaknya HM S disusun berdasarkan urutannya, bisa mulai dari terbesar hingga terkecil atau sebaliknya, tergantung bentuk fungsi tujuan yang kita inginkan. Fungsi tujuan ini berfungsi untuk mengetahui himpunan mana yang memiliki nilai terbaik dan nilai terburuk. Dalam fungsi tujuan ini menggunakan masalah meminimumkan, yaitu : HM = 2 6 6 6 6 6 6 6 6 6 4 x1 11 x112 x113 x119 x1 21 x122 x123 x129 x1 31 x132 x133 x139 .. . x1 91 x192 x193 x199 3 7 7 7 7 7 7 7 7 7 5 ; :::; 2 6 6 6 6 6 6 6 6 6 4 xHM S 11 xHM S12 xHM S13 xHM S19 xHM S 21 xHM S22 xHM S23 xHM S29 xHM S 31 xHM S32 xHM S33 xHM S39 .. . xHM S 91 xHM S92 xHM S93 xHM S99 3 7 7 7 7 7 7 7 7 7 5 atau HM = 2 6 6 6 6 6 6 6 6 6 4 x1 1 x12 x13 x19 x21 x22 x23 x29 x3 1 x32 x33 x39 .. . xHM S 1 xHM S2 xHM S3 xHM S9 3 7 7 7 7 7 7 7 7 7 5
dengan fungsi tujuannya : f (x1) f (x2) f (x3) .. . f (xHM S)
Misalkan f (y1); f (y2); f (y3); : : : ; f (yHM S) adalah nilai fungsi tujuan yang sudah
diurutkan, maka f (y1) < f (y2) < f (y3) <; : : : ; < f (yHM S):
Fungsi tujuan yang dipakai dalam menyelesaikan permainan Su-Doku ini adalah fungsi tujuan dengan menggunakan masalah meminimumkan, dimana ni-lai terbaik akan dipakai menjadi solusinya, sedangkan nini-lai terburuk akan ter-eliminasi dan digantikan dengan nilai yang lebih baik selama proses perulangan berlangsung.
Proses selanjutnya adalah proses improvisasi bertujuan untuk menghasilkan harmony baru : xN EWij =HMN EW = 2 6 6 6 6 6 6 6 6 6 4 xN EW11 xN EW12 xN EW13 xN EW19 xN EW 21 xN EW22 xN EW23 xN EW29 xN EW31 xN EW32 xN EW33 xN EW39 .. . xN EW91 xN EW92 xN EW93 xN EW99 3 7 7 7 7 7 7 7 7 7 5
dimana sebelumnya telah terbentuknya HM awal, yaitu HM terbaik berdasarkan fungsi tujuannya. Dalam proses pembentukan harmony baru ini akan digunakan tiga komponen utama dari Harmony Search Algorithm, yaitu random selection, memory consideration, dan pitch adjustment.
3.1.4 Pembentukan Harmony Memory Baru (HMN EW)
Pada proses pembentukan HMN EW melibatkan tiga komponen utama dari
Harmony Search Algorithm yaitu random selection, memory consideration, dan pitch adjustment.
Random Selection
Penggunaan random selection untuk HMN EW yaitu dengan cara seleksi acak
dengan memilih angka antara 1 sampai 9 (1 xN EW
ij 9) dengan peluang
(1 HM CR):
xN EWij xij; xij 2 f1; 2; 3; 4; 5; 6; 7; 8; 9g w:p(1 HM CR)
Memory Consideration
Proses memory consideration dilakukan untuk mengambil sebuah nilai yang terdapat dalam matriks solusi HM .
xN EWij xij; xij 2 x1ij; x2ij; : : : ; xHM Sij w:p(HM CR)
Sebuah HMN EW diperoleh berdasarkan posisi nilai dalam HM dengan aturan
sebagai berikut :
Jika rand < HM CR, maka HMN EW 2 x1ij; x2ij; : : : ; xHM Sij ; dimana N EW =
brand HMSc + 1
Misal, nilai dari HMN EW dapat dipilih dari berapapun angka-angka yang
tersimpan dalam HM (x1ij; x2ij; : : : ; xHM Sij ). Angka dari kotak lainnya dari HMN EW
dapat dipilih dengan cara yang sama. Angka yang dihasilkan selama proses ini akan ditampung sebagai solusi atau bisa menjadi jawaban terbaik.
Jika rand HM CR, maka dilakukan proses random selection ulang yang
diharapkan dapat memberikan solusi yang lebih baik dari sebelumnya. Proses random selection ini dilakukan sama seperti pada tahap pembentukan HM .
Pitch Adjustment
Pada proses memory consideration akan terpilih satu angka, dimana kemu-dian akan dilakukan proses pitch adjustment. Sebelum dilakukan proses pitch adjustment akan dilakukan proses random selection terlebih dahulu. Proses pitch adjustment ini dilakukan dengan cara mengubah satu atau lebih harmony yang
berbeda. Nilai HMN EW ini diharapkan akan menghasilkan solusi yang lebih baik
daripada harmony sebelumnya. Apabila proses ini dilakukan, maka nilai yang
di-hasilkan pada proses memory consideration yaitu HMN EW dapat diganti dengan
nilai kandidat yang mungkin atau neighbor. Aturan pada proses ini yaitu :
Jika rand < P AR, maka HMN EW = xN EW
ij + w; w 2 f:::; 2; 1; 1; 2; :::g.
Nilai yang dihasilkan dari proses pitch adjustment akan dilakukan kembali untuk iterasi selanjutnya sampai diperoleh nilai fungsi tujuan yang terbaik.
3.1.5 Update Harmony Memory
Jika hasil dari matriks solusi HMN EW = xN EW
1 ; xN EW2 ; : : : ; xN EW9 memiliki
nilai fungsi tujuan yang lebih baik dari matriks solusi HM , HMN EW maka akan
menggantikan matriks solusi HM yang memiliki niliai fungsi tujuan terburuk.
Selanjutnya matriks solusi HMN EW akan dimasukkan ke dalam HM , sedangkan
matriks solusi HM yang memiliki fungsi tujuan terburuk akan dikeluarkan dari HM. Kemudian HM akan melakukan proses pengurutan kembali berdasarkan fungsi tujuan yang baru sesuai dengan masalah meminimumkan.
Proses selanjutnya akan berulang kembali ke proses memory consideration, pitch adjusment, dan random selection, kemudian akan melakukan proses update HM. Proses ini akan berhenti jika ketika proses ketika HM memperoleh ni-lai fungsi tujuan terbaik, yaitu 0 atau ketika telah mencapai maksimum nini-lai iterasinya, yaitu paremeter N I.
BAB 4
Aplikasi
Harmony Search Algorithm pada
Penyelesaian Permainan Su-Doku
Misalkan diberikan satu permainan Su-Doku :
5 3 6 7 8 5 2 4 9 8 4 2 6 3 9 1 3 2 6 3 1 5 7 2 6 9 8 4 5 9 3 8 1 5 7 2 8 1 4 7
Gambar 3:2 Masalah Permainan Su-Doku
4.1 Menentukan Fungsi Tujuan
Permasalahan permainan Su-Doku adalah mengisi kotak-kotak kosong de-ngan angka 1 sampai 9 dimana tidak boleh ada angka yang sama untuk setiap baris, kolom dan bloknya. Maka permasalahan permainan Su-Doku adalah kita harus meminimumkan fungsi tujuan terbaiknya dengan formulasi sebagai berikut:
min f (xn) = 9 X i=1 9 X j=1 xij 45 + 9 X j=1 9 X i=1 xij 45 + 9 X k=1 9 X (l;m)2Bk xlm 45
4.2 Menentukan Parameternya
Untuk permainan Su-Doku pada Gambar 3:2 akan ditetapkan nilai untuk masing-masing parameternya, yaitu HM S = 2; HM CR = 0:8; P AR = 0:2;dan N I = 500. Setelah menentukan parameter-parameter Harmony Search Algorithm untuk menyelesaikan permainan Su-Doku, langkah selanjutnya adalah pemben-tukan harmony memory.
4.3 Pembentukan Harmony Memory (HM )
Harmony Memory (HM ) pada permainan Su-Doku menyatakan kumpulan dari harmony yang berupa kandidat matriks Su-Doku. Langkah awal membentuk
HM yaitu diberikan permainan Su-Doku sebayak jumlah HM S yaitu 2 adalah
sebagai berikut : x1 = 2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4 0 5 0 3 0 6 0 0 7 0 0 0 0 8 5 0 2 4 0 9 8 4 2 0 6 0 3 9 0 1 0 0 3 2 0 6 0 3 0 0 0 0 0 1 0 5 0 7 2 6 0 9 0 8 4 0 5 0 9 0 3 8 0 0 1 0 5 7 0 0 0 2 8 0 0 1 0 4 0 7 0 3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5 x2 = 2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4 0 5 0 3 0 6 0 0 7 0 0 0 0 8 5 0 2 4 0 9 8 4 2 0 6 0 3 9 0 1 0 0 3 2 0 6 0 3 0 0 0 0 0 1 0 5 0 7 2 6 0 9 0 8 4 0 5 0 9 0 3 8 0 0 1 0 5 7 0 0 0 2 8 0 0 1 0 4 0 7 0 3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5
Tujuan dari permainan Su-Doku ini adalah memberikan sebuah angka untuk kotak yang bernilai 0 sehingga menghasilkan beberapa harmony yang berupa kandidat matriks Su-Doku yang disimpan pada HM .
Sebelum mengisi kotak yang bernilai 0 (atau kotak kosong) pada permainan Su-Doku, akan dicari nilai-nilai yang mungkin untuk masing-masing kotak kosong. Dari Gambar 3:2 diketahui terdapat 41 kotak kosong yaitu : (1; 1); (1; 3); (1; 5); (1; 7); (1; 8); (2; 1); (2; 2); (2; 3); (2; 4); (2; 7); (3; 1); (3; 6); (3; 8); (4; 2); (4; 4); (4; 5); (4; 8); (5; 1); (5; 3); (5; 4); (5; 5); (5; 6); (5; 7); (5; 9); (6; 2); (6; 6); (6; 8); (7; 2); (7; 4); (7; 6); (7; 9); (8; 1); (8; 3); (8; 6); (8; 7); (8; 8); (9; 2); (9; 3); (9; 5); (9; 7);dan (9; 9):
1. Untuk kotak (1; 1) akan kita cek semua angka yang yang terdapat pada tiap baris, kolom dan bloknya. Kemudian dilakukan eliminasi yang akan memperoleh nilai kandidat yang dapat diisi untuk kotak (1; 1), yaitu :
Baris = 0 0 3 0 5 6 7 0 0
Kolom = 0 0 0 4 5 0 0 8 9
Blok = 0 0 0 0 5 0 0 8 9
Hasil = 0 0 3 4 5 6 7 8 9
Kandidat yang dapat mengisi kotak (1; 1) didapat dari hasil yang bernilai 0. Maka kandidat untuk kotak (1; 1) yaitu 1 dan 2. Dan dapat ditentukan juga
nilai minimum dan nilai maksimum untuk kotak (1; 1) adalah XL11= 1dan
XU11 = 2
2. Untuk kotak (1; 3) akan kita cek semua angka yang yang terdapat pada tiap baris, kolom dan bloknya. Kemudian dilakukan eliminasi yang akan memperoleh nilai kandidat yang dapat diisi untuk kotak (1; 3), yaitu :
Baris = 0 0 3 0 5 6 7 0 0
Kolom = 1 0 0 0 5 0 7 8 0
Blok = 0 0 0 0 5 0 0 8 9
Hasil = 1 0 3 0 5 6 7 8 9
Kandidat yang dapat mengisi kotak (1; 3) didapat dari hasil yang bernilai 0. Maka kandidat untuk kotak (1; 3) yaitu 2 dan 4. Dan dapat ditentukan juga
nilai minimum dan nilai maksimum untuk kotak (1; 3) adalah XL13= 2dan
XU13 = 4
3. Untuk kotak (1; 5) akan kita cek semua angka yang yang terdapat pada tiap baris, kolom dan bloknya. Kemudian dilakukan eliminasi yang akan memperoleh nilai kandidat yang dapat diisi untuk kotak (1; 5), yaitu :
Baris = 0 0 3 0 5 6 7 0 0
Kolom = 0 2 0 0 0 6 7 8 9
Blok = 0 2 3 4 5 6 0 8 9
Hasil = 0 2 3 4 5 6 7 8 9
Kandidat yang dapat mengisi kotak (1; 5) didapat dari hasil yang bernilai 0. Maka kandidat untuk kotak (1; 5) yaitu 1:
Setelah melakukan elimininasi dari semua kotak yang kosong maka inilah nilai-nilai yang mungkin untuk masing-masing kotak kosong :
Tabel 3:1 Kandidat yang mungkin untuk permainan Su-Doku
Kotak (1; 1) (1; 3) (1; 5) (1; 7) (1; 8) (2; 1) (2; 2) (2; 3) (2; 4)
Nilai 1; 2 2; 4 1 1; 8 9 1; 3; 6; 7 6; 7 3; 6 7; 9
Kotak (2; 7) (3; 1) (3; 6) (3; 8) (4; 2) (4; 4) (4; 5) (4; 8) (5; 1)
Kotak (5; 3) (5; 4) (5; 5) (5; 6) (5; 7) (5; 9) (6; 2) (6; 6) (6; 8) Nilai 2; 4; 6 7; 8; 9 4; 5 7; 8; 9 4; 5; 7 5 4 1 3; 4 Kotak (7; 2) (7; 4) (7; 6) (7; 9) (8; 1) (8; 3) (8; 6) (8; 7) (8; 8) Nilai 2; 6; 7 6 2 1 3; 6 3; 6; 9 8 4 4; 6; 9 Kotak (9; 2) (9; 3) (9; 5) (9; 7) (9; 9) Nilai 2; 6 2; 3; 6; 9 3 5 5; 9
Setelah diketahui nilai-nilai yang mungkin dari masing-masing kotak yang kosong, maka langkah selanjutnya adalah mengisi nilai yang bernilai 0 dengan suatu angka namun sebelum itu akan kita lakukan proses random selection ter-lebih dahulu. Dalam proses ini akan dipilih suatu bilangan random secara acak untuk masing-masing kotak kosong.
Berikut ini nilai random untuk membentuk HM :
Tabel 3.2 Nilai random untuk harmony x1
Kotak (1; 1) (1; 3) (1; 5) (1; 7) (1; 8) (2; 1) (2; 2) Random 0:9324 0:9831 0:9416 0:2561 0:3968 0:3820 0:6018 Kotak (2; 3) (2; 4) (2; 7) (3; 1) (3; 6) (3; 8) (4; 2) Random 0:2216 0:6690 0:2274 0:8273 0:8977 0:8903 0:0034 Kotak (4; 4) (4; 5) (4; 8) (5; 1) (5; 3) (5; 4) (5; 5) Random 0:4428 0:5375 0:7230 0:8992 0:9943 0:5703 0:7912 Kotak (5; 6) (5; 7) (5; 9) (6; 2) (6; 6) (6; 8) (7; 2) Random 0:8328 0:7588 0:4034 0:6461 0:5128 0:7830 0:1870 Kotak (7; 4) (7; 6) (7; 9) (8; 1) (8; 3) (8; 6) (8; 7) Random 0:5844 0:4234 0:5387 0:3229 0:5116 0:7563 0:8058 Kotak (8; 8) (9; 2) (9; 3) (9; 5) (9; 7) (9; 9) Random 0:9282 0:4768 0:7645 0:7762 0:6138 0:7068
Tabel 3:3 Nilai random untuk harmony x2
Kotak (1; 1) (1; 3) (1; 5) (1; 7) (1; 8) (2; 1) (2; 2)
Kotak (2; 3) (2; 4) (2; 7) (3; 1) (3; 6) (3; 8) (4; 2) Random 0:8176 0:6991 0:8431 0:2034 0:8631 0:9813 0:8751 Kotak (4; 4) (4; 5) (4; 8) (5; 1) (5; 3) (5; 4) (5; 5) Random 0:7314 0:8321 0:3527 0:3350 0:5219 0:9561 0:2347 Kotak (5; 6) (5; 7) (5; 9) (6; 2) (6; 6) (6; 8) (7; 2) Random 0:9732 0:9823 0:0751 0:9481 0:1833 0:8469 0:9301 Kotak (7; 4) (7; 6) (7; 9) (8; 1) (8; 3) (8; 6) (8; 7) Random 0:4591 0:0591 0:3816 0:7621 0:8297 0:1907 0:0298 Kotak (8; 8) (9; 2) (9; 3) (9; 5) (9; 7) (9; 9) Random 0:1739 0:7943 0:9830 0:8142 0:4592 0:7477
Setelah menentukan nilai random dari masing-masing harmony, maka langka selanjutnya kita akan melakukan proses random selection untuk mengisi kotak-kotak kosong pada permainan Sudoku. Proses ini akan dilakukan dengan aturan sebagai berikut :
xnij = XLij + rand (XUij XLij)
Kemudian akan dicari jarak terkecil dengan nilai yang mungkin yang sudah ada, sehingga didapat nilai untuk mengisi kotak kosong. Aturannya sebagai berikut :
dnij;k= xnij yij;k 2
Untuk Harmony x1 :
1. Untuk kotak (1; 1) memiliki kandidat angka yaitu (1; 2). Misalkan angka random yang dipilih yaitu 0:9324, maka :
x111 = XL11+ rand (XU11 XL11)
= 1 + 0:9324 (2 1)
= 1; 9324
dnij;k = xnij yij;k 2
d111;1 = (1; 9324 1)2
d111;1 = 0; 8693
Mencari jarak dari nilai 1; 9324 untuk nilai kemungkinan 2 adalah :
dnij;k = xnij yij;k 2
d111;2 = (1; 9324 2)2
d111;2 = 0; 0045
Karena nilai dari d111;1> d111;2 maka nilai untuk mengisi kotak (1; 1) adalah
nilai kemungkinan yang bersesuaian dengan d1
11;2 yaitu angka 2.
2. Untuk kotak (1; 3) memiliki kandidat angka yaitu (2; 4). Misalkan angka random yang dipilih yaitu 0; 9831. Maka kotak (1; 3) dapat diisi dengan angka :
x113 = XL13+ rand (XU13 XL13)
= 2 + 0:9831 (4 2)
= 3:9662
Mencari jarak dari nilai 3:9662 untuk nilai kemungkinan 2 adalah :
dnij;k = xnij yij;k 2
d113;2 = (3:9662 2)2
d113;2 = 3; 8659
dnij;k = xnij yij;k 2
d113;4 = (3:9662 4)2
d113;4 = 0; 0011
Karena nilai dari d113;2> d113;4 maka nilai untuk mengisi kotak (1; 3) adalah
nilai kemungkinan yang bersesuaian dengan d1
11;4 yaitu angka 4.
3. Untuk kotak (1; 5) memiliki kandidat angka yaitu (1). Misalkan angka random yang dipilih yaitu 0:9416. Maka kotak (1; 5) dapat diisi dengan angka :
x115 = XL15+ rand (XU15 XL15)
= 1 + 0:9416 (1 1)
= 1
Mencari jarak dari nilai 1 untuk nilai kemungkinan 1 adalah :
dnij;k = xnij yij;k 2
d115;1 = (1 1)2
d115;1 = 0
Karena nilai dari d1
15;1 = 0 maka nilai untuk mengisi kotak (1; 5) adalah
nilai kemungkinan yang bersesuaian dengan d1
15;1 yaitu angka 1.
Untuk Harmony x2 :
1. Untuk kotak (1; 1) memiliki kandidat angka yaitu (1; 2). Misalkan angka random yang dipilih yaitu 0:5036. Maka kotak (1; 1) dapat diisi dengan angka :
x211 = XL11+ rand (XU11 XL11)
= 1 + 0:5036 (2 1)
= 1:5036
Mencari jarak dari nilai 1:5036 untuk nilai kemungkinan 1 adalah :
dnij;k = xnij yij;k 2
d211;1 = (1:5036 1)2
d211;1 = 0; 2536
Mencari jarak dari nilai 1:5036 untuk nilai kemungkinan 2 adalah :
dnij;k = xnij yij;k 2
d211;2 = (1:5036 2)2
d211;2 = 0; 2464
Karena nilai dari d2
11;1> d211;2 maka nilai untuk mengisi kotak (1; 1) adalah
nilai kemungkinan yang bersesuaian dengan d2
11;2 yaitu angka 2.
2. Untuk kotak (1; 3) memiliki kandidat angka yaitu (2; 4). Misalkan angka random yang dipilih yaitu 0:1381. Maka kotak (1; 3) dapat diisi dengan angka :
x213 = XL13+ rand (XU13 XL13)
= 2 + 0:1381 (4 2)
= 2:2762
dnij;k = xnij yij;k 2
d213;2 = (2:2762 2)2
d213;2 = 0; 0762
Mencari jarak dari nilai 2:2762 untuk nilai kemungkinan 4 adalah :
dnij;k = xnij yij;k 2
d213;4 = (2:2762 4)2
d213;4 = 2; 9714
Karena nilai dari d2
13;2< d213;4 maka nilai untuk mengisi kotak (1; 3) adalah
nilai kemungkinan yang bersesuaian dengan d213;2 yaitu angka 2.
3. Untuk kotak (1; 5) memiliki kandidat angka yaitu (1). Misalkan angka random yang dipilih yaitu 0:5647. Maka kotak (1; 5) dapat diisi dengan angka :
x215 = XL15+ rand (XU15 XL15)
= 1 + 0:5647 (1 1)
= 1
Mencari jarak dari nilai 1 untuk nilai kemungkinan 1 adalah :
dnij;k = xnij yij;k 2
d215;1 = (1 1)2
d215;1 = 0
Karena nilai dari d2
15;1 = 0 maka nilai untuk mengisi kotak (1; 3) adalah
nilai kemungkinan yang bersesuaian dengan d2
Hasil dari keseluruhan dari kandidat angka yang diperoleh untuk masing-masing kota kosong, kemudian diisikan ke dalam permainan Su-Doku sehingga akan terbentuk harmony sebagai berikut :
2 5 4 3 1 6 1 9 7 3 7 3 9 8 5 1 2 4 7 9 8 4 2 7 6 5 3 9 4 1 7 5 3 2 5 6 6 3 6 8 5 9 7 1 5 5 4 7 2 6 1 9 4 8 4 2 5 6 9 2 3 8 1 3 1 6 5 7 8 4 8 2 8 2 6 1 3 4 5 7 9 Gambar 3.3 Harmony x1 2 5 2 3 1 6 1 9 7 3 6 6 9 8 5 1 2 4 1 9 8 4 2 7 6 5 3 9 8 1 8 5 3 2 4 6 2 3 4 9 4 9 7 1 5 5 4 7 2 6 1 9 4 8 4 7 5 6 9 2 3 8 1 6 1 9 5 7 8 4 4 2 8 6 9 1 3 4 5 7 9 Gambar 3.4 Harmony x2
Langkah selanjutnya adalah menghitung nilai fungsi tujuan untuk masing-masing harmony dengan cara menghitung jumlah dalam setiap baris, kolom dan
bloknya. Misalnya diketahui pada harmony x1, dapat kita ketahui jumlah total
baris pertama adalah 36, yaitu dengan menjumlahkan angka-angka 2 + 5 + 2 +
3 + 1 + 6 + 1 + 9 + 7 = 36, jumlah total kolom pertama pada harmony x1 yaitu
harmony x1 yaitu 2 + 5 + 2 + 3 + 6 + 3 + 1 + 9 + 8 = 39. Dan berikut adalah
hasil penjumlahan seluruh baris, kolom dan blok untuk :
Tabel 3:4 Fungsi tujuan harmony x1
Baris Kolom Blok
1 38 47 48 2 42 37 45 3 51 46 38 4 42 45 45 5 50 46 46 6 46 45 47 7 40 38 37 8 45 50 45 9 45 45 48
Tabel 3.5 Fungsi tujuan harmony x2
Baris Kolom Blok
1 36 40 42 2 44 49 45 3 45 51 38 4 46 47 43 5 44 45 47 6 46 45 46 7 45 38 55 8 46 44 45 9 52 45 43
Setelah menghitung semua jumlah masing-masing baris, kolom dan blok, dapat dihitung fungsi tujuannya.
Nilai fungsi tujuan untuk harmony x1, yaitu : f (x1) = 9 X i=1 9 X i=1 xij 45 + 9 X j=1 9 X j=1 xij 45 + 9 X k=1 9 X (l;m)2Bk xlm 45 = (j38 45j + j42 45j + j51 45j + j42 45j + j50 45j + j46 45j + j40 45j + j45 45j + j45 45j) + (j47 45j + j37 45j + j46 45j + j45 45j + j46 45j + j45 45j + j38 45j + j50 45j + j45 45j) + (j48 45j + j45 45j + j38 45j + j45 45j + j46 45j + j47 45j + j37 45j + j45 45j + j48 45j) = (7 + 3 + 6 + 3 + 5 + 1 + 5 + 0 + 0) + (2 + 8 + 1 + 0 + 1 + 0 + 7 + 5 + 0) + (3 + 0 + 7 + 0 + 1 + 2 + 8 + 0 + 3) = 30 + 24 + 24 = 78
Nilai fungsi tujuan untuk harmony x2, yaitu :
f (x1) = 9 X i=1 9 X i=1 xij 45 + 9 X j=1 9 X j=1 xij 45 + 9 X k=1 9 X (l;m)2Bk xlm 45 = (j36 45j + j44 45j + j45 45j + j46 45j + j44 45j + j46 45j + j45 45j + j46 45j + j52 45j) + (j40 45j + j49 45j + j51 45j + j47 45j + j45 45j + j45 45j + j38 45j + j44 45j + j45 45j) + (j42 45j + j45 45j + j38 45j + j43 45j + j47 45j + j46 45j + j55 45j + j45 45j + j43 45j) = (9 + 1 + 0 + 1 + 1 + 1 + 0 + 1 + 7) + (5 + 4 + 6 + 2 + 0 + 0 + 7 + 1 + 0) + (3 + 0 + 7 + 2 + 2 + 1 + 10 + 0 + 2) = 21 + 25 + 27 = 73
Karena fungsi tujuan dari masalah Su-Doku ini adalah memininumumkan, maka masing-masing dari harmony disusun berdasarkan nilai fungsi tujuan
terke-cil hingga terbesar. Sehingga didapat sebagai berikut : 2 5 2 3 1 6 1 9 7 3 6 6 9 8 5 1 2 4 1 9 8 4 2 7 6 5 3 9 8 1 8 5 3 2 4 6 2 3 4 9 4 9 7 1 5 5 4 7 2 6 1 9 4 8 4 7 5 6 9 2 3 8 1 6 1 9 5 7 8 4 4 2 8 6 9 1 3 4 5 7 9
Gambar 3.5 Harmony x2 dengan f (x2)=73
2 5 4 3 1 6 1 9 7 3 7 3 9 8 5 1 2 4 7 9 8 4 2 7 6 5 3 9 4 1 7 5 3 2 5 6 6 3 6 8 5 9 7 1 5 5 4 7 2 6 1 9 4 8 4 2 5 6 9 2 3 8 1 3 1 6 5 7 8 4 8 2 8 2 6 1 3 4 5 7 9
Gambar 3.6 Harmony x1 dengan f (x1)=78
Semakin besar nilai fungsi tujuan harmony maka semakin buruk pula har-mony tersebut. Suatu harhar-mony dinyatakan sebagai solusi dari Su-Doku apabila nilai dari fungsi tujuannya sama dengan 0.
Langkah selanjutnya adalah akan diambil harmony yang memiliki fungsi tujuan minimum, maka harmony yang memiliki fungsi tujuan yang minimum
adalah harmony x2. Pada harmony x2 akan diperiksa semua kotak yang tidak
untuk setiap baris, kolom dan blok. Hasilnya adalah sebagai berikut : 2 5 2 3 1 6 1 9 7 3 6 6 9 8 5 1 2 4 1 9 8 4 2 7 6 5 3 9 8 1 8 5 3 2 4 6 2 3 4 9 4 9 7 1 5 5 4 7 2 6 1 9 4 8 4 7 5 6 9 2 3 8 1 6 1 9 5 7 8 4 4 2 8 6 9 1 3 4 5 7 9
Gambar 3.7 Permainan Su-Doku dengan fungsi tujuan minimum
Berdasarkan Su-Doku diatas dapat kita akan diperiksa kembali sehingga menghasilkan kandidat solusi Su-Doku yang baru. Kotak-kotak yang terpilih ada 27 kotak, yaitu : (1; 1); (1; 3); (1; 5); (1; 7); (2; 2); (2; 3); (2; 4); (2; 7); (4; 2); (4; 4); (4; 8); (5; 1); (5; 3); (5; 4); (5; 5); (5; 6); (6; 2); (6; 8); (8; 1); (8; 3); (8; 7); (8; 8); (9; 2); (9; 3);dan (9; 9):
4.4 Pembentukan Harmony Memory Baru (HMN EW)
Langkah selanjutnya adalah pembentukan HMN EW dimana hasil HM akan
diperbaiki untuk mendapatkan HMN EW yang lebih baik. Dalam prosesnya
pem-bentukan HMN EW akan dillibatkan nilai random yang digunakan diawal.
1. Untuk kotak (1; 1) bilangan random yang digunakan adalah 0; 5036, karena 0; 5036 < HM CR, maka akan dilakukan proses memory consideration :
N EW = brand HMSc + 1
= b0; 5036 2c + 1
= 2
har-mony x2
11yaitu angka 2. Selanjutnya dilakukan pembangkitan nilai random
kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya
yaitu 0:5318. Karena 0:5318 > P AR , maka dipertahankan x2
11= 2:
2. Untuk kotak (1; 3) bilangan random yang digunakan adalah 0:1381, karena 0:1381 < HM CR, maka akan dilakukan proses memory consideration :
N EW = brand HMSc + 1
= b0:1381 2c + 1
= 1
maka untuk kotak (1; 3) akan diganti dengan angka kotak (1; 3) pada
har-mony x1
13yaitu angka 4. Selanjutnya dilakukan pembangkitan nilai random
kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya
yaitu 0:2594. Karena 0:2594 > P AR , maka dipertahankan x1
13= 4:
3. Untuk kotak (1; 5) bilangan random yang digunakan adalah 0:5647, karena 0:5647 < HM CR, maka akan dilakukan proses memory consideration :
N EW = brand HMSc + 1
= b0:5647 2c + 1
= 2
maka untuk kotak (1; 5) akan diganti dengan angka kotak (1; 5) pada
har-mony x2
15yaitu angka 1. Selanjutnya dilakukan pembangkitan nilai random
kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya
yaitu 0:6351. Karena 0:6351 > P AR , maka dipertahankan x2
15= 1:
4. Untuk kotak (1; 7) bilangan random yang digunakan adalah 0:4693, karena 0:4693 < HM CR, maka akan dilakukan proses memory consideration :
N EW = brand HMSc + 1
= b0:4693 2c + 1
= 1
maka untuk kotak (1; 7) akan diganti dengan angka kotak (1; 7) pada
har-mony x1
17yaitu angka 1. Selanjutnya dilakukan pembangkitan nilai random
kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya
yaitu 0:9288. Karena 0:9288 > P AR , maka dipertahankan x1
17= 1:
5. Untuk kotak (2; 2) bilangan random yang digunakan adalah 0:4128, karena 0:4128 < HM CR, maka akan dilakukan proses memory consideration :
N EW = brand HMSc + 1
= b0:4128 2c + 1
= 1
maka untuk kotak (2; 2) akan diganti dengan angka kotak (2; 2) pada
har-mony x1
22yaitu angka 7. Selanjutnya dilakukan pembangkitan nilai random
kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya
yaitu 0:4199. Karena 0:4199 > P AR , maka dipertahankan x1
22= 7:
6. Untuk kotak (2; 3) bilangan random yang digunakan adalah 0:8176, karena 0:8176 > HM CR, maka akan dilakukan proses random selection kembali, dimana ditetapkan nilai random baru, sehingga menghasilkan angka yang baru untuk kotak (2; 3). Misalkan nilai randomnya adalah 0:2133, maka sesuai dengan persamaan :
x223 = XL23+ rand (XU23 XL23)
Mencari jarak dari nilai 3:6399 untuk nilai kemungkinan 3 adalah :
dnij;k = xnij yij;k 2
d223;3 = (3:6399 3)2
d223;3 = 0:4094
Mencari jarak dari nilai 3:6399 untuk nilai kemungkinan 6 adalah :
dnij;k = xnij yij;k 2
d223;6 = (3:6399 6)2
d223;6 = 5; 5700
Karena nilai dari d2
23;3< d223;6 maka nilai untuk mengisi kotak (2; 3) adalah
nilai kemungkinan yang bersesuaian dengan d2
23;3 yaitu angka 3.
7. Untuk kotak (2; 4) bilangan random yang digunakan adalah 0:6991, karena 0:6991 < HM CR, maka akan dilakukan proses memory consideration :
N EW = brand HMSc + 1
= b0:6991 2c + 1
= 2
maka untuk kotak (2; 4) akan diganti dengan angka kotak (2; 4) pada
har-mony x2
24yaitu angka 9. Selanjutnya dilakukan pembangkitan nilai random
kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya
yaitu 0:9522. Karena 0:9522 > P AR , maka dipertahankan x2
24= 9:
8. Untuk kotak (2; 7) bilangan random yang digunakan adalah 0:8431, karena 0:8431 > HM CR, maka akan dilakukan proses random selection kembali, dimana ditetapkan nilai random baru, sehingga menghasilkan angka yang baru untuk kotak (2; 7). Misalkan nilai randomnya adalah 0:6544, maka
sesuai dengan persamaan :
x227 = XL27+ rand (XU27 XL27)
= 1 + 0:6544 (1 1)
= 1
Mencari jarak dari nilai 1 untuk nilai kemungkinan 1 adalah :
dnij;k = xnij yij;k 2
d227;1 = (1 1)2
d227;1 = 0
Karena nilai dari d2
27;1 = 0 maka nilai untuk mengisi kotak (2; 7) adalah
nilai kemungkinan yang bersesuaian dengan d2
27;1 yaitu angka 1.
9. Untuk kotak (4; 2) bilangan random yang digunakan adalah 0:8751, karena 0:8751 > HM CR, maka akan dilakukan proses random selection kembali, dimana ditetapkan nilai random baru, sehingga menghasilkan angka yang baru untuk kotak (4; 2). Misalkan nilai randomnya adalah 0:251, maka sesuai dengan persamaan :
x242 = XL42+ rand (XU42 XL42)
= 4 + 0:251 (8 4)
= 5:004
Mencari jarak dari nilai 5:004 untuk nilai kemungkinan 4 adalah :
dnij;k = xnij yij;k 2
d242;4 = (5:004 4)2
Mencari jarak dari nilai 5:004 untuk nilai kemungkinan 8 adalah :
dnij;k = xnij yij;k 2
d242;6 = (5:004 8)2
d242;6 = 8:9760
Karena nilai dari d242;4< d242;6 maka nilai untuk mengisi kotak (4; 2) adalah
nilai kemungkinan yang bersesuaian dengan d2
42;4 yaitu angka 4:
10. Untuk kotak (4; 4) bilangan random yang digunakan adalah 0:7314, karena 0:7314 < HM CR, maka akan dilakukan proses memory consideration :
N EW = brand HMSc + 1
= b0:7314 2c + 1
= 2
maka untuk kotak (4; 4) akan diganti dengan angka kotak (4; 4) pada
har-mony x2
44 yaitu angka 8. Selanjutnya dilakukan pembangkitan nilai random
kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya yaitu 0:0191. Karena 0:0191 < P AR , maka akan dilakukan proses pitch
ad-justment, dimana kotak (4; 4) akan diisi dengan angka neighbor dari x44 = 7.
Penyesuaian dengan neighbor yaitu menghasilkan x44= 7
11. Untuk kotak (4; 8) bilangan random yang digunakan adalah 0:3527, karena 0:3527 < HM CR, maka akan dilakukan proses memory consideration :
N EW = brand HMSc + 1
= b0:3527 2c + 1
= 1
har-mony x1
48yaitu angka 5. Selanjutnya dilakukan pembangkitan nilai random
kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya
yaitu 0:6178. Karena 0:6178 > P AR , maka dipertahankan x1
48= 5:
12. Untuk kotak (5; 1) bilangan random yang digunakan adalah 0:335, karena 0:335 < HM CR, maka akan dilakukan proses memory consideration :
N EW = brand HMSc + 1
= b0:335 2c + 1
= 1
maka untuk kotak (5; 1) akan diganti dengan angka kotak (5; 1) pada
har-mony x1
51yaitu angka 6. Selanjutnya dilakukan pembangkitan nilai random
kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya
yaitu 0:7643. Karena 0:7643 > P AR , maka dipertahankan x1
51= 6:
13. Untuk kotak (5; 3) bilangan random yang digunakan adalah 0:5219, karena 0:5219 < HM CR, maka akan dilakukan proses memory consideration :
N EW = brand HMSc + 1
= b0:5219 c 2 + 1
= 2
maka untuk kotak (5; 3) akan diganti dengan angka kotak (5; 3) pada
har-mony x2
53yaitu angka 4. Selanjutnya dilakukan pembangkitan nilai random
kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya
yaitu 0:435. Karena 0:435 > P AR , maka dipertahankan x2
53 = 4:
14. Untuk kotak (5; 4) bilangan random yang digunakan adalah 0:9561, karena 0:9561 > HM CR, maka akan dilakukan proses random selection kembali, dimana ditetapkan nilai random baru, sehingga menghasilkan angka yang baru untuk kotak (5; 4). Misalkan nilai randomnya adalah 0:556, maka
sesuai dengan persamaan :
x254 = XL54+ rand (XU54 XL54)
= 7 + 0:556 (9 7)
= 8:112
Mencari jarak dari nilai 8:112 untuk nilai kemungkinan 7 adalah :
dnij;k = xnij yij;k 2
d254;7 = (8:112 7)2
d254;7 = 1; 2365
Mencari jarak dari nilai 8:112 untuk nilai kemungkinan 8 adalah :
dnij;k = xnij yij;k 2
d254;8 = (8:112 8)2
d254;8 = 0; 0125
Mencari jarak dari nilai 8:112 untuk nilai kemungkinan 9 adalah :
dnij;k = xnij yij;k 2
d254;9 = (8:112 9)2
d254;9 = 0:7885
Karena nilai dari d254;8< d254;7< d254;9 maka nilai untuk mengisi kotak (5; 4)
adalah nilai kemungkinan yang bersesuaian dengan d2
54;8 yaitu angka 8:
15. Untuk kotak (5; 5) bilangan random yang digunakan adalah 0:2347, karena 0:2347 < HM CR, maka akan dilakukan proses memory consideration :
N EW = brand HMSc + 1
= b0:2347 2c + 1
= 1
maka untuk kotak (5; 5) akan diganti dengan angka kotak (5; 5) pada
har-mony x1
55 yaitu angka 5. Selanjutnya dilakukan pembangkitan nilai random
kembali untuk penyesuaian dengan nilai P AR, maka bilangan randomnya
yaitu 0:6596. Karena 0:6596 > P AR , maka dipertahankan x1
55= 5:
16. Untuk kotak (5; 6) bilangan random yang digunakan adalah 0; 9732, karena 0; 9732 > HM CR, maka akan dilakukan proses random selection kembali, dimana ditetapkan nilai random baru, sehingga menghasilkan angka yang baru untuk kotak (5; 6). Misalkan nilai randomnya adalah 0:6986, maka sesuai dengan persamaan :
x256 = XL56+ rand (XU56 XL56)
= 7 + 0:6986 (9 7)
= 8:3972
Mencari jarak dari nilai 8:3972 untuk nilai kemungkinan 7 adalah :
dnij;k = xnij yij;k 2
d256;7 = (8:3972 7)2
d256;7 = 1:9521
Mencari jarak dari nilai 8:3972 untuk nilai kemungkinan 8 adalah :
dnij;k = xnij yij;k 2