masalah closest
TRANSCRIPT
-
8/17/2019 Masalah Closest
1/14
MASALAH CLOSEST-PAIR 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
-
8/17/2019 Masalah Closest
2/14
-
8/17/2019 Masalah Closest
3/14
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+( y i− y j)
2
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 ) dimana i 4
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 P
i 2( x
i
, y j
),8..,
Pn 2 (
xn,
yn )
55utput* 6ndeks dari index1 dan index2 dari pasangan titik terdekat
dmin 9
(!& i i t! n < * #!
(!& j i = * t! n #!
-
8/17/2019 Masalah Closest
4/14
d s>&t ( x i− x j)2+( y i− y j)
2
/ 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
( x i− x j)2+( y i− y j)
2
. )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 s>&t ( x i− x j)2+( y i− y j)
2
/ dengan dsqr
( x i− x j)2+( y i− y j)
2
, perasi dasar algritma akan menguadratkan angka tersebut. "erapa kali
hal ini dilaksanakan dapat dihitung sebagai berikut*
C (n )=∑i=1
n−1
∑ j=i+1
n
2=2∑i=1
n−1
(n−1)
-
8/17/2019 Masalah Closest
5/14
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/
-
8/17/2019 Masalah Closest
6/14
7e#inisi n=e1
-
8/17/2019 Masalah Closest
7/14
Masalah n=e1-
-
8/17/2019 Masalah Closest
8/14
kedua, terdapat baris yang membagi bidang menjadi dua setengah dikurang bidang* untuk
semua titik pada salah satunya ax+by>c , sedangkan untuk semua titik pada setengah bidang
lainnya, ax+byue&
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
-
8/17/2019 Masalah Closest
9/14
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 titik-
titik 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
-
8/17/2019 Masalah Closest
10/14
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-
-
8/17/2019 Masalah Closest
11/14
;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
-
8/17/2019 Masalah Closest
12/14
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#ikan-
sebutan untuk mereka yang terdapat dalam segitiga P&PmaksPn dieliminasi dari prses lebihlanjut. "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
-
8/17/2019 Masalah Closest
13/14
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
-
8/17/2019 Masalah Closest
14/14
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+( y i− y j)
2
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.