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!