C. Barnes-Hut
Barnes-Hut adalah algoritma yang biasanya digunakan
Gambar 1. Contoh Barnes-Hut (diambil dari :
untuk mensimulasikan N-Body Problem atau permasalahan
http://www.cs.princeton.edu/courses/archive/fall03/cs126/assi
simulasi menentukan gerakan n buah objek yang berinteraksi
gnments/barnes-hut.html, diakses pada 26 april 2019)
satu sama lain dengan gaya gravitasi. Barnes-Hut merupakan
Terlihat pada contoh titik a berada di upa-dunia bagian atas
algoritma aproksimasi, sehingga hasil yang didapat belum
kiri, kemudian b awalnya berada di upa-dunia atas kanan, tapi
tentu eksak tapi jika diberikan waktu yang cukup lama, maka
karena c masuk maka upa-dunia atas kanan terbagi lagi
algoritma Barnes-Hut akan memberikan hasil yang sangat
menjadi 4 bagian, dan karena b dan c masih 1 upa-dunia, maka
dekat dengan hasil eksaknya.
dibagi lagi sehingga upa-dunia yang berisi b dan c berbeda.
Barnes-Hut bekerja dengan cara memanfaatkan konsep
Kegunaan penting dari Barnes-Hut adalah mencoba untuk
Divide and Conquer dimana dibandingkan dengan melakukan
mengelompokkan beberapa kelompok titik menjadi satu.
perhitungan total gaya secara manual untuk setiap pasang,
Setiap simpul pada quadtree t ersebut berisi informasi
akan lebih baik jika ada beberapa titik yang dekat maka
mengenai pusat massa dari gabungan anak anak tree tersebut
titik-titik itu akan dianggap sebagai suatu titik baru dengan
dan berapa total massa nya.
posisinya adalah pusat massa titik-titik itu dan beratnya adalah
Hal tersebut sangat berguna karena jika kita ingin
berat total titik-titik itu.
menghitung total gaya yang berlaku di suatu titik T, kita hanya
Untuk bisa melakukan hal tersebut, perlulah dunia
perlu menghitung total gaya titik T dengan pusat massa
simulasinya dibagi menjadi 4 bagian yaitu atas kanan, atas
kelompok titik lainnya. Tapi, agar lebih akurat lagi, total gaya
kiri, bawah kiri, bawah kanan yang nantinya akan disebut
hanya akan dihitung menggunakkan pusat massa kelompok
sebagai kuadran 1, 2, 3, 4. Untuk mewujudkan hal tersebut,
titik lainnya jika perbandingan panjang upa-dunia dengan
kita akan menggunakkan struktur data yang bernama Quad
jarak titik T dan kelompok titik melebihi suatu nilai konstanta
Tree atau Tree tapi dengan jumlah anak tepat 4.
yang kita beri nama tetha [4]. Jika tidak melebihi tetha maka
Bagian Divide and Conquer dari algoritma Barnes-Hut
total gaya adalah total gaya titik dengan semua upa-dunia dari
terdapat di bagian membuat tree a walnya dengan memasukkan
dunia itu. Perbandingan panjang upa-dunia dengan jarak
berbagai titik kedalam tree nya.
tersebut menandakan apakah titik T cukup jauh dengan
kelompok titik yang diuji.