Selasa, 20 Mei 2008

Penentuan Pin Cell Pitch Optimum menggunakan Algoritma Genetik

Setiap desain teras reaktor selalu dimulai dari perhitungan netronik tingkat sel. Sel harus didesain sedemikian mungkin sehingga memenuhi parameter netronik yang kita inginkan. Padahal untuk melakukan satu kali perhitungan netronik tingkat sel bukanlah hal yang mudah. Apalagi kalau kita mau mendapatkan hasil sesuai keinginan kita.

Optimasi akhirnya menjadi hal yang diidam-idamkan. Bagaimana cara yang cepat dan tepat dalam menentukan nilai optimum dari pin cell yang kita inginkan. Beberapa metode optimasi dapat dilakukan seperti tabu search, simulated annealing, ant colony, dan lain-lain, tetapi pada kesempatan ini akan dijelaskan optimasi menggunakan algoritma genetik. Paket perhitungan netroniknya sendiri menggunakan program SRAC.


Sebagai contoh yang mudah kita gunakan pin cell dari reaktor PWR yang bentuknya persegi. Bisa dilihat dari Gambar 1. Kemudian kita definisikan secara sederhana bahwa pin cell tersebut tersusun atas bahan bakar UO2, cladding Zr, dan moderator H2O. Karena merupakan pin cell reaktor termal maka yang memegang peranan penting dalam perhitungan netronik di sini adalah bahan bakar UO2 dan moderator H2O. Oleh karena itu, jari-jari bahan bakar dan ketebalan moderator kita jadikan sebagai sebuah variabel bebas yang mempengaruhi perhitungan netroniknya. Perhitungan netronik yang dicontohkan di sini adalah nilai K-eff nya.

Gambar 1. Pin Cell PWR

Algorima genetik dipakai sebagai metode optimasi karena mampu mengimplementasikan permasalahan ini ke dalam algoritmanya. Selain itu adanya penghematan waktu optimasi untuk mendapatkan nilai yang dekat optimum juga menjadi alasan kuat digunakannya metode ini.

Penjelasannya sebagai berikut; jari-jari bahan bakar dan tebal moderator dikodekan dalam sebuah chromosome. Pengkodeannya bisa bisa bermacam-macam. Contoh: untuk suatu konfigurasi pin cell dengan batasan ukuran jari-jari bahan bakar (F), 0 cm ≤ F ≤ 1 cm dan tebal moderator (M), 0 cm ≤ M ≤ 0,5 cm, diperoleh ukuran jari-jari bahan bakar = 0,3 cm dan tebal moderator = 0,25 cm, bisa kita kodekan sebagai berikut:
  1. Pengkodean langsung ke bilangan integer. Misal jari-jari bahan bakar = 0,3 menjadi 03 sedangkan tebal moderator = 0,25 menjadi 025 sehingga chromosome-nya adalah 03025 dengan panjang chromosome-nya = 5; Atau tergantung kepresisian dan batasan yang kita inginkan, jari-jari bahan bakar = 0,3 menjadi 0300 sedangkan tebal moderator = 0,25 menjadi 0250 sehingga chromosome nya adalah 03000250 dengan panjang chromosome-nya = 8
  2. Pengkodean bilangan float ke biner. Misal jumlah angka dibelakang koma yang diinginkan (m) = 2, kita tentukan panjang biner dengan Persamaan 1:
(1)
Dengan:

m = jumlah angka dibelakang koma yang diinginkan
a = batas bawah
b = batas atas
Untuk jari-jari bahan bakar dan tebal moderator masing-masing = 2n-1 <1*102≤2n-1, maka nilai n = 7
Kemudian ada 2 cara yang bisa digunakan yaitu:
  1. Pengkodean biner langsung. Misal bahan bakar = 0,3 menjadi 0111100 sedangkan tebal moderator = 0,25 menjadi 1001100 sehingga chromosome-nya adalah 01111001001100 dengan panjang chromosome-nya = 14
  2. Pengkodean biner tidak langsung. Dengan Persamaan 2 didapat,
(2)
Dengan:

m = jumlah angka dibelakang koma yang diinginkan
a = batas bawah
b = batas atas
Bilangan integer untuk jari-jari bahan bakar = 0,3 adalah 38 dan untuk tebal moderator = 0,25 adalah 63 sehingga dalam bentuk biner chromosome-nya menjadi 01100101111110 dengan panjang chromosome-nya = 14

Untuk decoding chromosome-nya, tinggal membalik logika pengkodeannya.

Pengkodean ini dilakukan dalam satu populasi. Populasi di sini maksudnya adalah kumpulan solusi dalam suatu waktu yang dalam algoritma genetik disebut dengan generasi. Pertama-tama populasi diinisialisasi dengan menggunaka masukan parameter-parameter genetik seperti ukuran populasi (banyaknya individu/chromosome dalam satu populasi), jumlah generasi maksimum, kemungkinan tejadinya pindah silang, kemungkinan terjadinya mutasi, dan sebagainya.

Inisialisasinya sebagai berikut, komputer akan mengacak angka untuk dimasukkan ke dalam chromosome. Angka yang dimasukkan tergantung definisi kita. Misal dengan panjang chromosome = 6 dan menggunakan pengkodean biner, komputer bisa saja membentuk chromosome 110011, 101010, 001100, atau yang lainnya sebanyak jumlah populasinya. Tiap chromosome ini memiliki nilai yang melekat pada dirinya yang disebut dengan fitness. Fitness ini yang menunjukkan tingkat keberhasilan solusi (chromosome) dimana fitness yang semakin tinggi, semakin baik.

Untuk persoalan pin cell, maka inisialisasinya adalah penulisan kode jari-jari bahan bakar dan tebal moderator ke dalam SRAC untuk tiap chromosome dalam satu populasi. Penulisannya akan menggantikan baris geometri input dalam modul PIJ. Kemudian program SRAC dijalankan untuk tiap chromosome tersebut dan menghasilkan file keluaran yang di dalamnya terdapat harga K-eff yang menjadi nilai fitness chromosome tersebut.

Kemudian populasi awal ini dihitung nilai-nilai statistiknya yang akan digunakan untuk seleksi individu. Inilah bagian penting dari genetik algoritma dengan prinsipnya, “survival for the fittest”, chromosome dengan fitness yang tinggi yang dapat bertahan dan meneruskan gennya.

Beberapa cara bisa dipakai untuk cara seleksinya diantaranya roulette wheel, tournament, stochastic remainder, dan lain-lain. Di sini akan dijelaskan seleksi menggunakan roulette wheel. Perhatikan Gambar 2.

Gambar 2. Diagram Roulette Wheel

Tiap chromosome mendapat peluang terpilih dari besarnya fitness yang dimilikinya. Semakin besar fitness-nya semakin besar juga chromosome tersebut mendapat bagian dalam roulette wheel. Komputer akan mengacak angka antara 0 sampai 1 untuk tiap chromosome. Jika ternyata angka tersebut berada dalam bagian roulette wheel-nya, maka chromosome tersebut lolos seleksi. Chromosome-chromosome yang lolos seleksi akan meneruskan gennya dengan cara pindah silang. Mutasi juga dapat terjadi untuk memberi variasi solusi. Baik pindah silang maupun mutasi memiliki besar kemunginan terjadi yang menentukan berapa banyak dari chromosome yang lolos seleksi akan mengalami pindah silang dan gennya termutasi menghasilkan chromosome anak. Setelah itu semua chromosome induk diganti dengan chromosome anak. Ini yang sering disebut dengan generasi.

Setelah satu generasi, populasi dievaluasi lagi (berapa nilai fitness dan statistik lainnya). Dalam persoalan pin cell dilakukan penulisan kode lagi, eksekusi program, dan pembacaan harga K-eff. Peristiwa generasi dan evaluasi berlangsung berulang hingga sebanyak maksimum generasi.

Akhirnya diharapkan kita akan mendapatkan individu/chromosome yang memiliki fitness tertinggi sampai generasi akhir yang merupakan solusi terbaik atau nilai optimumnya. Besarnya pin cell pitch optimumnya dihitung dengan Persamaan 3:

Pp* = ( π x (F* + C + M*)2 )0,5 (3)

Dengan:
Pp* = Pin cell pith optimum
F* = Jari-jari bahan bakar optimum
C = Tebal cladding
M* = Tebal moderator optimum

Download Source Code GA dalam PASCAL!

Jumat, 25 Januari 2008

Kasih

Sekalipun aku dapat berkata-kata dengan semua bahasa manusia dan bahasa malaikat, tetapi jika aku tidak mempunyai kasih, aku sama dengan gong yang berkumandang dan canang yang bergemerincing. Sekalipun aku mempinyai karunia untuk bernubuat dan aku mengetahui segala rahasia dan memiliki seluruh pengetahuan; dan sekalipun aku memiliki iman yang sempurna untuk memindahkan gunung, tetapi jika aku tidak mempunyai kasih, aku sama sekali tidak berguna.

Dan sekalipun aku membagi-bagikan segala sesuatu yang ada padaku, bahkan menyerahkan tubuhku untuk dibakar, tetapi jika aku tidak mempunyai kasih, sedikit pun tidak ada faedahnya bagiku.



Kasih itu sabar; kasih itu murah hati; ia tidak cemburu. Ia tidak memegahkan diri dan tidak sombong. Ia tidak melakukan yang tidak sopan dan tidak mencari keuntungan diri sendiri. Ia tidak pemarah dan tidak menyimpan kesalahan orang lain. Ia tidak bersukacita karena ketidakadilan, tetapi karena kebenaran. Ia menutupi segala sesuatu, mengharapkan segala sesuatu, sabar menanggung segala sesuatu.

Kasih tidak berkesudahan; nubuat akan berakhir; bahasa roh akan berhenti; pengetahuan akan lenyap. Sebab pengetahuan kita tidak lengkap dan nubuat kita tidak sempurna. Tetapi jika yang sempurna tiba, maka yang tidak sempurna itu akan lenyap. Ketika aku kanak-kanak, aku berkata-kata seperti kanak-kanak, aku merasa seperti kanak-kanak, aku berpikir seperti kanak-kanak. Sekarang sesudah aku menjadi dewasa, aku meninggalkan sifat kanak-kanak itu. Karena sekarang kita melihat dalam cermin suatu gambaran yang samar-samar, tetapi nanti kita akan melihat muka dengan muka. Sekarang aku hanya mengenal dengan tidak sempurna, tetapi nanti aku akan mengenal dengan sempurna, seperti aku sendiri dikenal.

Demikianlah tinggal ketiga hal ini, yaitu iman, pengharapan dan kasih, dan yang paling besar di antaranya ialah kasih.

1 Korintus 13

Algoritma Genetik

Algoritma genetika yang dikembangkan oleh Goldberg adalah algoritma komputasi yang diinspirasi teori evolusi Darwin yang menyatakan bahwa kelangsungan hidup suatu makhluk dipengaruhi aturan “survival of the fittest” yang berarti bahwa yang kuat yang dapat bertahan hidup. Konsep dalam teori evolusi Darwin tersebut kemudian diadopsi menjadi algoritma komputasi untuk mencari solusi suatu permasalahan dengan cara yang lebih “alamiah”.

Sebuah solusi yang dibangkitkan dalam algoritma genetika disebut sebagai kromosom, sedangkan kumpulan kromosom-kromosom tersebut disebut sebagai populasi. Sebuah kromosom dibentuk dari komponen-komponen penyusun yang disebut sebagai gen dan nilainya dapat berupa bilangan numerik, biner, simbol ataupun karakter tergantung dari permasalahan yang ingin diselesaikan. Kromosom-kromosom tersebut akan berevolusi secara berkelanjutan yang disebut dengan generasi. Dalam tiap generasi kromosom-kromosom tersebut dievaluasi tingkat keberhasilan nilai solusinya terhadap masalah yang ingin diselesaikan (fungsi objektif) menggunakan ukuran yang disebut dengan fitness. Untuk memilih kromosom yang tetap dipertahankan untuk generasi selanjutnya dilakukan proses yang disebut dengan seleksi. Proses seleksi kromosom menggunakan konsep aturan evolusi Darwin yang telah disebutkan sebelumnya yaitu kromosom yang mempunyai nilai fitness tinggi akan memiliki peluang lebih besar untuk terpilih lagi pada generasi selanjutnya.

Kromosom-kromosom baru yang disebut dengan offspring, dibentuk dengan cara melakukan perkawinan antar kromosom-kromosom dalam satu generasi yang disebut sebagai proses crossoveratau tukar silang. Jumlah kromosom dalam populasi yang mengalami crossover ditetukan oleh paramater yang disebut dengan crossover rate. Mekanisme perubahan susunan unsur penyusun mahkluk hidup akibat adanya faktor alam yang disebut dengan mutasi direpresentasikan sebagai proses berubahnya satu atau lebih nilai gen dalam kromosom dengan suatu nilai acak. Jumlah gen dalam populasi yang mengalami mutasi ditentukan oleh parameter yang dinamakan mutation rate. Setelah beberapa generasi akan dihasilkan kromosom-kromosom yang nilai gen-gennya konvergen ke suatu nilai tertentu yang merupakan solusi terbaik yang dihasilkan oleh algoritma genetika terhadap permasalahan yang ingin diselesaikan.


Copyright © 2003-2007 IlmuKomputer.Com



Gambar 1. Single Point Crossover




Gambar 2. Mutasi