MASALAH CLOSESTC LOSEST-PA PAIR IR DAN CONVEX HULL Diajukan untuk memenuhi salah satu tuas kel!m"!k Pa#a mata kuliah “Desain Analisis Algoritma”
Disusun !leh $
Ci%i E&'a Sa(it&i
)**+,*.*,//0
Mah(i&!h Aini
)**+,*.*+1/0
2a&ti3i
)**+,*.*+*10
TE4NI4 IN5ORMATI4A 5A4ULTAS SAINS DAN TE4NOLO6I UNIVERSITAS ISLAM NE6ERI SULTAN S7ARI5 4ASIM RIAU .*8
4ATA PEN6ANTAR Puji syukur kepada Allah SWT karena atas izin dan karunia-Nya makalah ini dapat penulis selesaikan. Tak lupa pula shalawat dan salam penulis hantarkan kepada junjungan alam, Nabi besar Muhammad Saw yang telah membawa kita dari alam keb dhan kealam yang penuh dengan ilmu pengetahuan. !asa terima kasih penulis haturkan kepada "apak dsen pengampu mata kuliah Desain Analisis Algoritma yang telah membimbing kami sehingga kami dapat menyelesaikan makalah yang
berjudul Masalah Cl!sest-Pai& #an C!n9e: Hull . Penulis menyadari bahwa makalah ini tidak luput dari kelemahan dan kekurangan,leh karena itu kritik dan saran yang knstrukti# dari pemba$a untuk perbaikan dan penyempurnaan makalah ini sangat penulis harapkan. Pekanbaru, %& April %'&(
)elmpk &'
MASALAH CLOSEST-PAIR DAN CONVEX HULL Masalah Cl!sest-Pai& #an Masalah C!n9e: Hull #enan ;&ute 5!&%e Pada bagian ini kita membahas pendekatan langsung untuk dua masalah yang sudah terkenal yang berhubungan dengan sebuah himpunan titik-titik berhingga pada sebuah bidang. Masalah-masalah ini, selain kepentingan teritis, mun$ul dalam dua penerapan bidang* +emetri )mputasi dan !iset perasi
Masalah Cl!sest-Pai& Masalah pasangan terdekat lsest-Pair/ membutuhkan penemuan dua titik terdekat dalam satu himpunan n titik. 0ntuk memudahkan kita asumsikan kasusnya terdiri dari dua dimensi, walaupun masalah yang diajukan untuk dimensi ruang yang lebih tinggi. )ita asumsikan bahwa titik pada pertanyaan ditetapkan dalam bentuk standar dengan )rdinat artesius 1, y/ dan bahwa jarak antara dua titik P i 2 1i, yi/ dan P j 2 1 j, y j/ adalah jarak 3u$lidean standar d ( Pi . P j )= √ ( x i− x j )
2
2
+( y i− y j)
Pendekatan brute #r$e untuk menyelesaikan masalah ini mengarah pada algritma* menghitung jarak antara setiap pasangan titik yang berbeda dan menemukan pasangan dengan jarak terdekat.Tentu saja, kita tidak ingin menghitung jarak antara pasangan titik yang sama dua kali. Supaya tidak melakukan hal itu, kita menganggap hanya ada pasangan titik
( Pi , P j )
j. Al!&itma ;&ute5!&%eCl!sestP!int) P 0
55Temukan dua titik terdekat pada bidang dengan brute #r$e 556nput* 7a#tar P dari n n > %/ titik Pi 2
( x i , y j ) ,8.., Pn 2 ( x n , y n )
55utput* 6ndeks dari index1 dan index2 dari pasangan titik terdekat dmin (!& i
9
(!& j
i t! n < * #!
i = * t! n #!
dimana i 4
d
s>&t
2
2
( x i− x j ) +( y i− y j ) / 55 sqrt adalah #ungsi akar kuadrat
i( d ? dmin
dmin
d; index1
i; index2
j
&etu&n index1, index2 O"e&asi #asa& dari algrtima ini adalah menghitung jarak 3u$lidean antara dua titik.
Pada era kalkulatr elektrnik dengan tmbl akar kuadrat, seserang mungkin meyakini bahwa menghitung akar kuadrat merupakan suatu perasi sederhana, katakanlah, penambahan atau perkalian. Sebenarnya, tidak. "agi pemula bahkan untuk sebagian besar bilangan bulat, akar kuadratnya adlah bilangan irasinal yang hanya dapat menghasilakn angka yang bersi#at perkiraan. Selain itu, penghitungan perkiraan seperti itu bukanlah masalah sepele. Namun, dalam kenyataannya, penghitungan akar kuadrat dapat dihindari. aranya adalah dengan menyadari bahwa kita hanya dapat mengabaikan #ungsi akar kuadrat dan membandingkan nilai 2
2
( x i− x j ) +( y i− y j ) . )ita bisa melakukannya karena semakin ke$il angka yang kita ambil akar kuadratnya, atau, seperti yang dikatakan matematikawan, #ungsi akar kuadrat adalah meningkat. :adi, jika kita mengganti d 2
s>&t
2
2
2
( x i− x j ) +( y i− y j ) / dengan dsqr
( x i− x j ) +( y i− y j ) , perasi dasar algritma akan menguadratkan angka tersebut. "erapa kali hal ini dilaksanakan dapat dihitung sebagai berikut*
n− 1
n−1
n
2 =2 ∑ ( n −1) ∑ ∑ = =+ =
C ( n ) =
i
1
j i
1
i
1
Masalah C!n9e: Hull 7e#inisi suatu himpunan titik berhingga atau tak terhingga/ pada bidang disebut $embung jika untuk setiap dua titik P dan Q pada himpunan, seluruh ruas garis dari P dan Q berada didalam himpunan tersebut.
;igure &* a/
7e#inisi n=e1
;igure %* 6nterprestasi karet gelang dari n=e1
baris yang sama/ adalah plygn $embung dengan =erteks-=erteks pada beberapa titikS. Apabila semua titik terletak pada baris yang sama, plygn berubah ke segmen garis, tetapi masih dengan ujung di dua titik S./
;igur F* n=e1
Masalah n=e1-
algritma ini. Pertama, garis lurus melalui dua titik
x (¿ ¿ 1 , y 2 )
¿
krdinat dapat dide=enisikan dengan persamaan ax +by = c 7imana
a = y 2 -
y 1 , b = x 1 - x 2
c = x 1 , y2 -
y 1 , x 2
( y , x ) dalam bidang 1
2
kedua, terdapat baris yang membagi bidang menjadi dua setengah dikurang bidang* untuk semua titik pada salah satunya lainnya,
ax + by > c , sedangkan untuk semua titik pada setengah bidang
ax +by < c . titik-titik pada garis itu sendiri, tentu saja,
ax + by = c /. :adi, untuk
memeriksa apakah titik-titik tertentu yang terletak disisi garis yang sama, kita dapat memeriksa dengan mudah apakah persamaan
ax + by − c
memiliki tanda yang sama pada setiap titik
tinggalkan detail implementasi sebagai latihan. Apa yang dimaksud dengan e#esiensi waktu dari algritma ini, jawabannya terdapat dalam n%/ untuk setiap pasangan n n I & / 5 % dari titik yang berbeda mungkin harus menemukan tanda
ax +by − c untuk setiap n- % titik lainnya. Terdapat algritma yang jauh
lebih e#esien untuk masalah penting ini. Permasalahan $n=e1 hull adalah sebuah permasalahan yang memiliki aplikasi terapan yang $ukup banyak, seperti pada permasalahan gra#ika kmputer, tmasi desain, pengenalan pla pattern re$gnitin/, dan penelitian perasi. 7i=ide and nJuer adalah metde peme$ahan masalah yang bekerja dengan membagi masalah menjadi beberapa masalah yang lebih ke$il, kemudian menyelesaikan masing-masing masalah tersebut se$ara independent, dan akhirnya menggabungkan slusi masing-masing masalah sehingga menjadi slusi dari masalah semula. Algritma 7i=ide and nJuer merupakan salah satu slusi dalam penyelesaian masalah $n=e1 hull. Algritma ini ternyata memiliki kmpleksitas waktu yang $ukup ke$il dan e#ekti# dalam menyelesaikan permasalahan ini jika dibandingkan algritma lain/. Selain itu juga, algritma ini dapat digeneralisasi untuk permasalahan $n=e1 hull yang berdimensi lebih dari F.
Masalah Cl!sest-Pai& #an Masalah C!n9e: Hull #enan Di9i#e an# C!n>ue& Pada bagian ini kita akan membahas algritma asimttik untuk masalah ini dengan lebih $anggih dan e#isien yang didasarkan pada teknik 7i=ide and nJuer
Masalah Cl!sest-Pai& Misalkan P& 2 (x1 , y1)…Pn 2 (xn , yn) menjadi himpunan S titik-titik n pada bidang, di mana n, untuk kemudahan, merupakan sesuatu pangkat dua. Asumsikan bahwa titik diurutkan dalam urutan menaik as$ending/ pada krdinat 1-nya. jika tidak, kita dapat menyrtir mereka dalam waktu n lg n/, misalnya, dengan margeshrt./ )ita dapat membagi titik-titik yang diberikan
menjadi dua himpunan bagian S& dan S% dari titik-titik n5% dengan menggambar garis =ertikal 12$ sehingga titik-titik n5% terletak disebelah kiri atau dibaris itu sendiri, dan titik-titik n5% terletak disebelah kanan atau digaris. nilai $ dapat dihitung dari median5nilai tengah dari krdinat 1/ 7engan menggunakan pendekatan teknik de=ide and nJuer, kita dapat menemukan $lsest-pair se$ara rekrusi# untuk himpunan bagian sebelah kiri S& dan himpunan bagian sebelah kanan S%, se$ara berturut-turut. "agian d& dan d% menjadi jarak terke$il antara pasangan titik di S& dan S%, berturut-turut dan biarkan d2minKd&d%L. Sayangnya, d tidak selalu jarak terke$il diantara semua pasangan titik S& dan S% karena pasangan titik yang lebih dekat dapat terletak disisi berlawanan dari garis pemisah. Sehingga, langkah combinenya adalah dengan memeriksa titiktitik tersebut. )ita dapat membatasi daerah pemeriksaan hanya pada titik% yang berada di jarak %d, dengan garis pemisah sebagai sumbu simetrinya. Misalakan & dan % adalah himpunan bagian dari titik-titik di bagian kiri dan kanan setrip berturut-turut. Sekarang, untuk setiap titik P 1,y/ di &, kita perlu memeriksa di % yang mungkin lebih dekat dengan P dari pada d. :elas, titik tersebut harus memiliki krdinat y inter=al >y-d, yd@. Perhatian utamanya disini adalah pengamatan bahwa terdapat tidak lebih dari enam titik karena setiap pasang titik di % setidaknya terpisah satu sama lain sejauh d 6ngat, bahwa d d%, dimana d% adalah jarak terke$il antara pasangan titik disebelah kanan garis pemisah/
bser=asi penting lainnya adalah kita dapat mempertahankan da#tar titik-titik di
& dan % yang disrtir dalam urutan menaik pada urutan krdinat y-nya. Anda dapat menganggap da#tar ini sebagai pryeksi titik-titik paa garis pemisah./ Selain itu urutan ini dapat dipertahankan bukan dengan menyrtir kembali titik-titik pada setiap iterasi, melainkan dengan menggabungkan dua da#tar yang sebelumnya disrtir. )ita dapat memprses titik & se$ara sekuensial, sedangkan sebuah menunjuk keda#tar % memindai dengan sebuah inter=al engan lebar %d untuk mengambil enam $aln untuk menghitung jarak mereka ke titik P untuk saat ini dari da#tar &. Waktu Mn/ untuk CpenggabunganD slusi ini ke sub masalah yang lebih ke$il dinyatakan dalam n/. )ita memiliki peluang berikut ini untuk Tn/ running time dari algritma ini pada n titik presrted * Tn/ 2 %Tn5%/ Mn/ Menerapkan =ersi dari Terema Master dengan a2%, b2%, dan d2&/, kita memperleh Tn/ ϵ n lg n/. )ebutuhan akan resrt titik input tidak mengubah keseluruhan tingkat e#isiensi jika
srting dilakukan leh algritma n lg n/. Pada kenyataannya ini adalah tingkat e#isiensi terbaik yang dapat kita $apai karena telah terbukti bahwa setiap algritma untuk masalah ini harus dalam ϴn lg n/.
Masalah C!n9e: Hull Mari kita lihat kembali masalah n=e1-
;akta bahwa $n=e1 hull diseluruh himpunan S terdiri dari hull atas dan bawah, yang dapat dibangun se$ara independen dan dengan $ara yang sama, merupakan pengamatan yang sangat berguna yang diman#aatkan leh beberapa algritma untuk masalah ini. Se$ara nyata, mari kita membahas bagaimana Jui$khull terus membangun hull atas hull yang lebih rendah dapat terus dibangun dengan $ara yang sama. :ika S& ksng, bagian hull atas hanyalah ruas garis dengan titik akhir di P& dan Pn.
:ika tidak S& ksng, algritma mengidenti#ikasi =erteks Pmaks di S&, dimana letaknya paling jauh dari garis P&Pn . :ika ternyata ada kesamaan, titik yang memaksimalkan =erteks PmaksP&Pn dapat dipilih. )emudian algritma bisa mengidenti#ikasi semua himpunan titik S & yang terletak disebelah kiri garis P&Pmaks ini adalah titik-titik yang bersama dengan P& dan Pmaks , akan membuat himpunan P&.&. titik-titik di S & disebelah kiri garis PmaksPn akan ditata, bersama dengan Pmaks dan Pn, mejadi himpunan S&.%. tidak sulit untuk membuktikan bahwa
Pmaks adalah =erteks dari hull atas
Titik dalam O P&PmaksPn tidak dapat menjadi =erteks dari hull atasdan karenanya dapat dieliminasi dari pembahasan lebih lanjut/ dan
Tidak ada titik disebelah kiri kedua garis P&Pmaks dan PmaksPn. leh karena itu, algritma dapat terus membangun hull atas dari P& U S&.& U Pmaks dan Pmaks U S&.% U Pn se$ara rekrusi# dan kemudian menggabungkannya untuk mendapatkan hull atas seluruh himpuna P&US&U pn. Sekarang kita harus men$ari tau bagaimana perasi gemetrik algritma dapat diimplementasikan. 0ntungnya kita dapat meman#aatkan #akta yang sangat berguna berikut ini dari gemetri analitis* jika P &21&,y&/, P%21&,y&/ dan PF21F,yF/ adalah segitiga titk sembarang pada bidang $artesius, maka luas segitiga P&P%PF adalah sama dengan satu setengah dari besarnya determinan. Sedangkan tanda dari persamaan ini adalah psiti# jika dan hanya jika PF21F,yF/ terletak disebelah kiri garis P&P%. 7engan menggunakan rumus ini, kita dapat memeriksa engan waktu yang knstan apakah suatu titik yang terletak di sebelah kiri garis ditentukan leh dua titik lainnya, sama seperti menemukan jarak dari titik ke garis. ui$khull memiliki e#isiensi kasus-terburuk
ϴn%/
yang sama seperti Jui$kshrt. Pada
kasus rata-rata, kita berharap mendapatkan kinerja yang lebih baik. Pertama, algritma akan didapatkan dari sejenis Jui$kshrt yang didapatkan dari rata-rata pemisahan masalah yang seimbang menjadi dua submasalah yang lebih ke$il. )edua, titik-titik #laksi yang signi#ikansebutan untuk mereka yang terdapat dalam segitiga P&PmaksPn dieliminasi dari prses lebih lanjut. "erdasarkan asumsi alami bahwa titik tertentu dipilih a$ak dari suatu distribusi seragam dalam beberapa daerah $embung misalnya, sebuah lingkaran atau persegi panjang/, e#isiensi kasus rata-rata Jui$khull ternyata adalah linier >=eQ'@. AL6ORITMA DIVIDE AND CON@UER
pr$edure 76R673andN03!input n * integer/ K Menyelesaikan masalah dengan algritma di=ide and $nJuer Masukan* masukan yang berukuran n )eluaran* slusi dari masalah semula L Dekla&asi
r, k * integer Al!&itma
i# n n' then Kukuran masalah sudah $ukup ke$il L SR3 sub masalah yang berukuran n ini else "agi menjadi r sub masalah, masing masing berukuran n5k #r masing-masing dari r submasalah d 76R673andN03!n5k/ end#r M"6N3 slusi dari r sub masalah menjadi slusi masalah semula 3ndi#
PEN7ELESAIAN MASALAH CONVEX HULL DEN6AN DIVIDE AND CON@UER
Pada penyelesaian masalah pen$arian Convex Hull dengan menggunakan algritma Divide and Conquer , hal ini dapat dipandang sebagai generalisasi dari algritma pengurutan mere sort . "erikut ini merupakan garis besar gambaran dari algritmanya* •
Pertama-tama lakukan pengurutan terhadap titik-titik dari himpunan S yang diberika berdasarkan krdinat absis-U, dengan kmpleksitas waktu n lg n/.
•
:ika VSV F, maka lakukan pen$arian $n=e1 hull se$ara brute-#r$e dengan kmpleksitas waktu &/. "asis/.
•
:ika tidak, partisi himpunan titik-titik pada S menjadi % buah himpunan A dan ", dimana A terdiri dari setengah jumlah dari VSV dan titik dengan krdinat absi1-U yang terendah dan " terdiri dari setengah dari jumlah VSV dan titik dengan krdinat absis-U terbesar.
•
Se$ara rekursi# lakukan penghitungan terhadap
•
akukan penggabungan merge/ terhadap kedua hull tersebut menjadi $n=e1 hull, <, dengan menghitung da men$ari upper dan lwer tangents untuk
$n=e1 hull. Algritma ini ternyata memiliki k!m"leksitas 3aktu yang $ukup ke$il dan e#ekti#
dalam menyelesaikan permasalahan ini jika dibandingkan algritma lain/. Selain itu juga, algritma ini dapat digeneralisasi untuk permasalahan $n=e1 hull yang berdimensi lebih dari F. PEN7ELESAIAN MASALAH CLOSEST PAIR DEN6AN DIVIDE AND CON@UER
Persalan * 7iberikan himpunan titik, P, yang terdiri dari n buah titik, 1 i,yi/, pada bilangan %-7. Tentukan jarak terdekat antara dua buah titik di dalam himpunan P. :arak dua buah titik p& 2 1&, y&/ dan p% 2 1%, y%/ * d ( Pi . P j )= √ ( x i− x j )
2
2
+( y i− y j)
Penelesaian$ a. Asumsi* n 2 %k dan titik-titik diurut berdasarkan absis 1/.
b. Algritma lsest Pair * I SR3 * jika n 2 %, maka jarak kedua titik dihitung langsung dengan rumus 3u$lidean. I 76R673 * "agi titik-titik itu ke dalam dua bagian, Pe#t dan P!ight, setiap bagian mempunyai jumlah titik yang sama I N03! *Se$ara rekursi#, terapkan algritma 7-and- pada masingmasing bagian. I Pasangan titik yang jaraknya terdekat ada tiga kemungkinan letaknya * •
Pasangan titik terdekat terdapat di bagian Pe#t.
•
Pasangan titik terdekat terdapat di bagian P!ight.
•
Pasangan titik terdekat dipisahkan leh garis batas , yaitu satu titik di Pe#t dan satu titik di P!ight.
:ika kasusnya adalah $/, maka lakukan tahap M"6N3 untuk mendapatkan jarak dua titik terdekat sebagai slusi persalan semula.