Minggu, 30 Oktober 2011

algoritma menara hanoi

Memindahkan piringan yang memiliki nilai teracak menjadi berurutan dengan menggunakan Solusi Langsung => greedy
Tentukan Elemen/Komponen di bawah ini: (urutan pengerjaannya bebas)
-          Menara kandidat
-          Menara solusi
-          Fungsi seleksi
-          Fungsi kelayakan
-          Fungsi objektif/tujuan
Misal :
Ada 3 buah menara A B C, dimana:
Menara A berisi tumpukkan piringan (dari atas ke bawah) dimana setiap piringan memiliki nilai  1, 4, 2, 3, 5, 6, 3. Sementara menara B dan C tidak ada tumpukkan piringan, tugas saat ini adalah memindahkan semua tumpukkan piringan pada menara A ke menara C dengan tumpukkan piringan yang berurutan kecil ke besar dari atas ke bawah.

Fungsi objektif/tujuan :
A = {1,4,2,3,5,6,3} pindahkan ke C = {1,2,3,3,4,5,6}

Menara kandidat :
A = {1,4,2,3,5,6,3}

Menara solusi :
  1. Nilai dari setiap piringan yang ada pada menara A memang tidak diurutkan
  2. Untuk setiap piringan yang bernilai  yang ada pada menara bandingkan current piringan(n) dengan current piringan + 1 (n+1)
  3. Jika n < (n+1) maka pindahkan n ke menara kosong selain menara tujuan(hanya untuk tahap pertama), pada kasus ini C merupakan menara tujuan
  4. Jika n > (n+1) maka pindahkan n ke menara kosong lainnya
  5. Untuk setiap piringan yang bernilai  paling terakhir/sisa pindahkan ke menara yang pertama kali dipilih pada setiap langkah pemindahan piringan

Fungsi seleksi :
Seleksi piringan : apakah n < (n+1) atau n > (n+1)

Fungsi Kelayakan :
Seleksi menara A
A = {1,4,2,3,5,6,3}
B = {}
C = {}
Bandingkan untuk setiap piringan yang memiliki nilai yang berada pada menara A :
Apakah 1 < 4 ?  ya, masukkan piringan yang bernilai  1 ke menara kosong selain menara tujuan; B = {1}
Apakah 4 < 2 ? tidak, masukkan piringan yang bernilai  4 ke menara lainnya; C = {4}
Apakah 2 < 3 ?  ya, masukkan piringan yang bernilai  2 ke menara terdekat; B = {1,2}
Apakah 3 < 5 ?  ya, masukkan piringan yang bernilai  3 ke menara terdekat; B = {1,2,3}
Apakah 5 < 6 ?  ya, masukkan piringan yang bernilai  5 ke menara terdekat; B = {1,2,3,5}
Apakah 6 < 3 ?  tidak, masukkan piringan yang bernilai  6 ke menara lainnya; C = {4,6}
Untuk sisa piringan yang berada pada menara A dimasukkan ke menara yang pertama kali dipilih; B = {1,2,3,5,3}
Hasil dari uji kelayakan tahap I
A = {}
B = {1,2,3,5,3}
C = {4,6}
Hasil pada tahap ini diseleksi kembali menjadi :
A = {1,2,3,3}
B = {}
C = {4,6,5}
Seleksi menara C
A = {1,2,3,3,4}
B = {6,5}
C = {}
Seleksi menara A
A = {}
B = {6,5}
C = {1,2,3,3,4,5,6}

sebagai contoh akan saya beri gambarnya seperti di bawah ini,cekidot:

2 komentar: