Anda di halaman 1dari 14

MASALAH CLOSEST-PAIR DAN CONVEX HULL

Diajukan untuk memenuhi salah satu tugas kelompok


Pada mata kuliah Desain Analisis Algoritma

Disusun oleh :

Cici Erza Safitri

(11351201577)

Maghfiroh Aini

(11351201397)

Wartiwi

(11351201319)

TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SULTAN SYARIF KASIM RIAU
2016

KATA PENGANTAR
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 kebodohan kealam yang penuh
dengan ilmu pengetahuan.
Rasa terima kasih penulis haturkan kepada Bapak dosen pengampu mata kuliah Desain Analisis
Algoritma yang telah membimbing kami sehingga kami dapat menyelesaikan makalah yang
berjudul Masalah Closest-Pair dan Convex Hull.
Penulis menyadari bahwa makalah ini tidak luput dari kelemahan dan kekurangan,oleh karena itu
kritik dan saran yang konstruktif dari pembaca untuk perbaikan dan penyempurnaan makalah ini
sangat penulis harapkan.
Pekanbaru, 21 April 2016

Kelompok 10

MASALAH CLOSEST-PAIR DAN CONVEX HULL


Masalah Closest-Pair dan Masalah Convex Hull dengan Brute Force
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 teoritis, muncul dalam dua penerapan bidang: Geometri
Komputasi dan Riset Operasi

Masalah Closest-Pair
Masalah pasangan terdekat (Closest-Pair) membutuhkan penemuan dua titik terdekat
dalam satu himpunan n titik. Untuk memudahkan kita asumsikan kasusnya terdiri dari dua
dimensi, walaupun masalah yang diajukan untuk dimensi ruang yang lebih tinggi. Kita
asumsikan bahwa titik pada pertanyaan ditetapkan dalam bentuk standar dengan Koordinat
Cartesius (x, y) dan bahwa jarak antara dua titik P i = (xi, yi) dan Pj = (xj, yj) adalah jarak
Euclidean standar
d ( Pi . P j )= ( x ix j )2+( y i y j)2
Pendekatan brute force untuk menyelesaikan masalah ini mengarah pada algoritma: 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 <

j.
Algoritma BruteForceClosestPoint(P)
//Temukan dua titik terdekat pada bidang dengan brute force
//Input: Daftar P dari n (n > 2) titik

Pi = ( x i , y j ) ,..,

Pn = ( x n , y n )

//Output: Indeks dari index1 dan index2 dari pasangan titik terdekat
dmin
for i i to n 1 do
for j i + 1 to n do

d sqrt ( (x ix j ) +( y i y j)

) // sqrt adalah fungsi akar kuadrat

if d < dmin
dmin d; index1 i; index2 j
return index1, index2
Operasi dasar dari algortima ini adalah menghitung jarak Euclidean antara dua titik.
Pada era kalkulator elektronik dengan tombol akar kuadrat, seseorang mungkin meyakini bahwa
menghitung akar kuadrat merupakan suatu operasi sederhana, katakanlah, penambahan atau
perkalian. Sebenarnya, tidak. Bagi pemula bahkan untuk sebagian besar bilangan bulat, akar
kuadratnya adlah bilangan irasional yang hanya dapat menghasilakn angka yang bersifat
perkiraan. Selain itu, penghitungan perkiraan seperti itu bukanlah masalah sepele. Namun, dalam
kenyataannya, penghitungan akar kuadrat dapat dihindari. Caranya adalah dengan menyadari
bahwa kita hanya dapat mengabaikan fungsi akar kuadrat dan membandingkan nilai
(x ix j )2+( y i y j)2 . Kita bisa melakukannya karena semakin kecil angka yang kita ambil akar
kuadratnya, atau, seperti yang dikatakan matematikawan, fungsi akar kuadrat adalah meningkat.
2
2
Jadi, jika kita mengganti d sqrt ( (x ix j ) +( y i y j) ) dengan dsqr

(x ix j )2+( y i y j)2 , operasi dasar algoritma akan menguadratkan angka tersebut. Berapa kali
hal ini dilaksanakan dapat dihitung sebagai berikut:
n1

C ( n ) =

i=1 j=i+1

n1

2=2 (n1)
i=1

Masalah Convex Hull


Definisi suatu himpunan titik (berhingga atau tak terhingga) pada bidang disebut
cembung jika untuk setiap dua titik P dan Q pada himpunan, seluruh ruas garis dari P dan Q
berada didalam himpunan tersebut.

Figure 1: (a) Himpunan Cembung. (b) Himpunan bukan Cembung


Semua yang digambarkan dalam Figure 1.(a) adalah cembung, termasuk garis gurus, segitiga,
persegi panjang dan yang lebih umum, setiap polygon cembung, lingkaran dan seluruh bidang.
Di sisi lain, himpunan yang digambarkan dalam Figure 1.(b) setiap himpunan berhingga dari dua
atau lebih titik berbeda, batas dari setiap polygon cembung dan sebuah lingkaran adalah contoh
himpunan yang tidak cembung.
Secara intuisi, Convex Hull dari himpunan n titik pada bidang adalah polygon cembung
terkecil yang mencakup seluruhnya (baik didalam maupun pada batasnya). Jika rumusan ini
tidak cukup memancing antusiasme anda, pikirkan masalah tersebut sebagai salah satu
penahanan n harimau tidur dengan pagar terpendek. Penafsiran ini diambil dari D.Harel[Har92];
hal ini agak menegangkan karena tiang pagar harus didirikan tepat ditempat-tempat harimau
tidur! Ada banyak lagi interprestasi dari konsep ini. Bayangkan bahwa titik-titik dalam
pertanyaan direpresentasikan dengan paku yang ditancapkan kedalam kayu lapis besar yang
mewakili sebuah bidang. Ambil karet gelang dan regangkan untuk memuat semua paku
kemudian lepaskan. Convex Hull adalah bidang yang dibatasi oleh karet gelang.

Definisi Convex Hull dari himpunan titik S adalah himpunan cembung terkecil berisi S.
(kata terkecil mengandung pengertian bahwa Convex Hull dari S haruslah merupakan bagian
dari himpunan cembung berisi S.)

Figure 2: Interprestasi karet gelang dari Convex Hull


Apabila S cembung, Convex Hull-nya adalah S itu sendiri. Apabila S adalah himpunan
dua titik, Convex Hull-nya adalah bagian garis yang menghubungkan titik-titik ini. Apabila S
adalah himpunan tiga titik yang tidak berada pada garis yang sama, Convex Hull-nya adalah
segitiga dengan verteks pada tiga titik tersebut; apabila ketiga titik tersebut berada pada garis
yang sama, Convex Hull-nya adalah bagian garis yang berujung pada dua titik terjauh.
Teorema Convex Hull dari suatu himpunan S dengan n > 2 titik (tidak semua titik terdapat pada
baris yang sama) adalah polygon cembung dengan verteks-verteks pada beberapa titik S. Apabila
semua titik terletak pada baris yang sama, polygon berubah ke segmen garis, tetapi masih dengan
ujung di dua titik S.)

Figur 3: Convex Hull untuk delapan titik ini adalah polygon cembung dengan verteks-verteks di
P1, P5, P6, P7 dan P3

Masalah Convex-Hull adalah masalah membangun convex-hull untuk himpunan S


dengan N titik. Untuk mengatasinya, kita harus mencari titik yang akan berfungsi sebagai vertex
dari poligon tersebut. Matematikawan menyebut vertex poligon tersebut dengan titik eksrtem.
Secara defenisi, titik ekstrem dari himpunan cembung adalah suatu titik dari himpunan yang
bukan merupakan titik tengah dari setiap segmen garis dengan ujung didalam himpunan.
Misalnya, titik-titik ekstrem segitiga adalah tiga titik, titik ekstrem lingkaran, adalah semua titik
pada lingkarannya, dan titik-titik ekstrem dari convex-hull dari himpunan delapan titik dalam
figur 3.6 adalah P1, P5, P6, P7, dan P3.
Titik ekstrem memiliki beberapa fitur khusus yang tidak dimiliki himpunan cembung
lainnya. Salah satunya dimanfaatkan oleh suatu algoritma yang sangat penting yang disebut
metode simpleks algoritma ini memecahkan masalah linear programing (pemrograman
linear), masalah menemukan titik minimal atau maximal fungsi linear N variabel dengan
beberapa batasan linear.
Perlu diketahui pasangan titik mana yang harus terhubung untuk membentuk batas
convex-hull. Perlu diketahui bahwa masalah ini dapat ditinjau dengan membuat daftar titik
ekstrem searah atau berlawanan arah jarum jam. jadi, bagaimana memecahkan masalah convexhull dalam kerangka Brute-Force. Masalah convex-hull merupakan salah satu algoritma tanpa
solusi yang jelas. Namun demikian, ada algoritma sederhana, tetapi tidak efisien yang didasarkan
pada pengamatan berikut ini mengenai segmen garis bata dari convex hull: segmen garis yang
menghubungkan dua titik Pi dan Pj dari satu himpunan N titik merupakan bagian dari batas
convex-hull-nya jika dan hanya jika semua titik lain pada himpunan terletak pada sisi yang sama
dari garis lurus melalui kedua titik ini.
Beberapa bukti mendasar dari geometri analitik dibutuhkan untuk mengimplementasikan

algoritma ini. Pertama, garis lurus melalui dua titik

x
( 1 , y 2 )

koordinat dapat didevenisikan dengan persamaan


ax +by=c
Dimana a= y 2 -

y 1 , b=x 1 - x 2

c=x 1 , y 2 -

y1 , x2

( y 1 , x 2)

dalam bidang

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 ). Jadi, untuk

memeriksa apakah titik-titik tertentu yang terletak disisi garis yang sama, kita dapat memeriksa
dengan mudah apakah persamaan

ax +byc

memiliki tanda yang sama pada setiap titik

tinggalkan detail implementasi sebagai latihan.


Apa yang dimaksud dengan efesiensi waktu dari algoritma ini, jawabannya terdapat
dalam O (n2) untuk setiap pasangan n ( n 1 ) / 2 dari titik yang berbeda mungkin harus
menemukan tanda

ax +byc

untuk setiap n- 2 titik lainnya. Terdapat algoritma yang jauh

lebih efesien untuk masalah penting ini. Permasalahan convex hull adalah sebuah permasalahan
yang memiliki aplikasi terapan yang cukup banyak, seperti pada permasalahan grafika komputer,
otomasi desain, pengenalan pola (pattern recognition), dan penelitian operasi. Divide and
Conquer adalah metode pemecahan masalah yang bekerja dengan membagi masalah menjadi
beberapa masalah yang lebih kecil, kemudian menyelesaikan masing-masing masalah tersebut
secara independent, dan akhirnya menggabungkan solusi masing-masing masalah sehingga
menjadi solusi dari masalah semula. Algoritma Divide and Conquer merupakan salah satu solusi
dalam penyelesaian masalah convex hull. Algoritma ini ternyata memiliki kompleksitas waktu
yang cukup kecil dan efektif dalam menyelesaikan permasalahan ini (jika dibandingkan
algoritma lain). Selain itu juga, algoritma ini dapat digeneralisasi untuk permasalahan convex
hull yang berdimensi lebih dari 3.

Masalah Closest-Pair dan Masalah Convex Hull dengan Divide and Conquer
Pada bagian ini kita akan membahas algoritma asimtotik untuk masalah ini dengan lebih
canggih dan efisien yang didasarkan pada teknik Divide and Conquer

Masalah Closest-Pair
Misalkan P1 = (x1 , y1)Pn = (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 (ascending) pada koordinat x-nya. (jika tidak, kita dapat menyortir mereka dalam
waktu O(n log n), misalnya, dengan margeshort.) Kita dapat membagi titik-titik yang diberikan

menjadi dua himpunan bagian S1 dan S2 dari titik-titik n/2 dengan menggambar garis vertikal x=c
sehingga titik-titik n/2 terletak disebelah kiri atau dibaris itu sendiri, dan titik-titik n/2 terletak
disebelah kanan atau digaris. (nilai c dapat dihitung dari median/nilai tengah dari koordinat x)
Dengan menggunakan pendekatan teknik devide and Conquer, kita dapat menemukan
closest-pair secara rekrusif untuk himpunan bagian sebelah kiri S1 dan himpunan bagian sebelah
kanan S2, secara berturut-turut. Bagian d1 dan d2 menjadi jarak terkecil antara pasangan titik di S1
dan S2, berturut-turut dan biarkan d=min{d1d2}. Sayangnya, d tidak selalu jarak terkecil diantara
semua pasangan titik S1 dan S2 karena pasangan titik yang lebih dekat dapat terletak disisi
berlawanan dari garis pemisah. Sehingga, langkah combinenya adalah dengan memeriksa titiktitik tersebut. Kita dapat membatasi daerah pemeriksaan hanya pada titik2 yang berada di jarak
2d, dengan garis pemisah sebagai sumbu simetrinya.
Misalakan C1 dan C2 adalah himpunan bagian dari titik-titik di bagian kiri dan kanan
setrip berturut-turut. Sekarang, untuk setiap titik P (x,y) di C 1, kita perlu memeriksa di C2 yang
mungkin lebih dekat dengan P dari pada d. Jelas, titik tersebut harus memiliki koordinat y
interval [y-d, y+d]. Perhatian utamanya disini adalah pengamatan bahwa terdapat tidak lebih dari
enam titik karena setiap pasang titik di C 2 setidaknya terpisah satu sama lain sejauh d (Ingat,
bahwa d d2, dimana d2 adalah jarak terkecil antara pasangan titik disebelah kanan garis
pemisah)

Observasi penting lainnya adalah kita dapat mempertahankan daftar titik-titik di

C1 dan C2 yang disortir dalam urutan menaik pada urutan koordinat y-nya. (Anda dapat
menganggap daftar ini sebagai proyeksi titik-titik paa garis pemisah.) Selain itu urutan ini dapat
dipertahankan bukan dengan menyortir kembali titik-titik pada setiap iterasi, melainkan dengan
menggabungkan dua daftar yang sebelumnya disortir. Kita dapat memproses titik C 1 secara
sekuensial, sedangkan sebuah menunjuk kedaftar C2 memindai dengan sebuah interval engan
lebar 2d untuk mengambil enam calon untuk menghitung jarak mereka ke titik P untuk saat ini
dari daftar C1. Waktu M(n) untuk penggabungan solusi ini ke sub masalah yang lebih kecil
dinyatakan dalam O(n).
Kita memiliki peluang berikut ini untuk T(n) running time dari algoritma ini pada n titik
presorted :
T(n) = 2T(n/2) + M(n)
Menerapkan versi O dari Teorema Master (dengan a=2, b=2, dan d=1), kita memperoleh T(n)
O(n log n). Kebutuhan akan resort titik input tidak mengubah keseluruhan tingkat efisiensi jika

sorting dilakukan oleh algoritma O(n log n). Pada kenyataannya ini adalah tingkat efisiensi
terbaik yang dapat kita capai karena telah terbukti bahwa setiap algoritma untuk masalah ini
harus dalam (n log n).

Masalah Convex Hull


Mari kita lihat kembali masalah Convex-Hull pada pembahasan sebelumnya temukan poligon
cembung terkecil yang mengandung n titik yang diberikan dalam bidang. Disini, kami akan
membahas algoritma Divide and Conquer yang disebut quickhull karena kemiripan dengan
quickshort.
Misalkan P1=(x1,y1)Pn=(xn,yn) sebagai suatu himpunan S dari n>1 titik pada bidang.
Asumsikan bahwa titik disortir dalam urutan menaik dari koordinat x-nya, dengan kesamaan
diselesaikan dengan urutan menaik dari koordinat y-nya pada titik-titik yang terlibat. Tidak sulit
untuk membuktikan fakta geometris yang jelas bahwa titik paling kiti P 1 dan titk paling kanan Pn
adalah kedua titik ekstrim yang berbeda dari himpunan convex hull. Misalkan P 1Pn adalah garis
lurus yang melewati titik P1 dan Pn yang diarahkan dari P1 ke Pn. Garis ini memisahkan titik S
menjadi dua kelompok: S1 adalah himpunan titik-titik disebelah kiri atau pada baris dan S 2 adalah
himpunan titik-titik disebelah kanan atau dibaris. Titik S digaris P1Pn, selain P1 dan Pn tidak dapat
menjadi titik ekstrim dari convex hull dan karenanya menjadi pengecualian dalam pembahasan
selanjutnya.
Batas dari convex hull S terdiri dari dua rantai poligonal: sebuah batas atas (upper) dan
batas bawah (lower). Batas atas disebut Hull atas, adalah urutan segmen garis dengan
verteks di P1, beberapa titik terletak di S1 (jika S1 tidak kosong), dan Pn. Batas bawah disebut
hull bawah adalah urutan segmen garis dengan verteks di P 1, beberapa titik terletak di S2(jika S2
tidak kosong) dan Pn.

Fakta bahwa convex hull diseluruh himpunan S terdiri dari hull atas dan bawah, yang
dapat dibangun secara independen dan dengan cara yang sama, merupakan pengamatan yang
sangat berguna yang dimanfaatkan oleh beberapa algoritma untuk masalah ini.
Secara nyata, mari kita membahas bagaimana quickhull terus membangun hull atas; hull
yang lebih rendah dapat terus dibangun dengan cara yang sama. Jika S 1 kosong, bagian hull atas
hanyalah ruas garis dengan titik akhir di P1 dan Pn.

Jika tidak S1 kosong, algoritma mengidentifikasi verteks Pmaks di S 1, dimana letaknya paling
jauh dari garis P1Pn . Jika ternyata ada kesamaan, titik yang memaksimalkan verteks PmaksP 1Pn
dapat dipilih. Kemudian algoritma bisa mengidentifikasi semua himpunan titik S 1 yang terletak
disebelah kiri garis P1Pmaks; ini adalah titik-titik yang bersama dengan P 1 dan Pmaks , akan
membuat himpunan P1.1. titik-titik di S1 disebelah kiri garis PmaksPn akan ditata, bersama
dengan Pmaks dan Pn, mejadi himpunan S1.2. tidak sulit untuk membuktikan bahwa
Pmaks adalah verteks dari hull atas

Titik dalam P1PmaksPn tidak dapat menjadi verteks dari hull atas(dan karenanya dapat
dieliminasi dari pembahasan lebih lanjut); dan
Tidak ada titik disebelah kiri kedua garis P1Pmaks dan PmaksPn.
Oleh karena itu, algoritma dapat terus membangun hull atas dari P1 U S1.1 U Pmaks dan Pmaks U
S1.2 U Pn secara rekrusif dan kemudian menggabungkannya untuk mendapatkan hull atas seluruh
himpuna P1US1Upn.
Sekarang kita harus mencari tau bagaimana operasi geometrik algoritma dapat
diimplementasikan. Untungnya kita dapat memanfaatkan fakta yang sangat berguna berikut ini
dari geometri analitis: jika P1=(x1,y1), P2=(x1,y1) dan P3=x3,y3) adalah segitiga titk sembarang
pada bidang cartesius, maka luas segitiga P 1P2P3 adalah sama dengan satu setengah dari besarnya
determinan. Sedangkan tanda dari persamaan ini adalah positif jika dan hanya jika P 3=(x3,y3)
terletak disebelah kiri garis P1P2. Dengan menggunakan rumus ini, kita dapat memeriksa engan
waktu yang konstan apakah suatu titik yang terletak di sebelah kiri garis ditentukan leh dua titik
lainnya, sama seperti menemukan jarak dari titik ke garis.
Quickhull memiliki efisiensi kasus-terburuk (n 2) yang sama seperti quickshort. Pada
kasus rata-rata, kita berharap mendapatkan kinerja yang lebih baik. Pertama, algoritma akan
didapatkan dari sejenis quickshort yang didapatkan dari rata-rata pemisahan masalah yang
seimbang menjadi dua submasalah yang lebih kecil. Kedua, titik-titik flaksi yang signifikansebutan untuk mereka yang terdapat dalam segitiga P1PmaksPn dieliminasi dari proses lebih
lanjut. Berdasarkan asumsi alami bahwa titik tertentu dipilih acak dari suatu distribusi seragam
dalam beberapa daerah cembung (misalnya, sebuah lingkaran atau persegi panjang), efisiensi
kasus rata-rata quickhull ternyata adalah linier [Ove80].
ALGORITMA DIVIDE AND CONQUER
procedure DIVIDE_and_CONQUER(input n : integer)
{
Menyelesaikan masalah dengan algoritma divide and conquer
Masukan: masukan yang berukuran n
Keluaran: solusi dari masalah semula
}
Deklarasi

r, k : integer
Algoritma
if n n0 then {ukuran masalah sudah cukup kecil }
SOLVE sub masalah yang berukuran n ini
else
Bagi menjadi r sub masalah, masing masing berukuran n/k
for masing-masing dari r submasalah do
DIVIDE_and_CONQUER(n/k)
endfor
COMBINE solusi dari r sub masalah menjadi solusi masalah semula
Endif

PENYELESAIAN MASALAH CONVEX HULL DENGAN DIVIDE AND CONQUER


Pada penyelesaian masalah pencarian Convex Hull dengan menggunakan algoritma
Divide and Conquer, hal ini dapat dipandang sebagai generalisasi dari algoritma pengurutan
merge sort. Berikut ini merupakan garis besar gambaran dari algoritmanya:

Pertama-tama lakukan pengurutan terhadap titik-titik dari himpunan S yang diberika


berdasarkan koordinat absis-X, dengan kompleksitas waktu O(n log n).

Jika |S| 3, maka lakukan pencarian convex hull secara brute-force dengan kompleksitas
waktu O(1). (Basis).

Jika tidak, partisi himpunan titik-titik pada S menjadi 2 buah himpunan A dan B, dimana
A terdiri dari setengah jumlah dari |S| dan titik dengan koordinat absix-X yang terendah
dan B terdiri dari setengah dari jumlah |S| dan titik dengan koordinat absis-X terbesar.

Secara rekursif lakukan penghitungan terhadap HA = conv(A) dan HB = conv(B).

Lakukan penggabungan (merge) terhadap kedua hull tersebut menjadi convex hull, H,
dengan menghitung da mencari upper dan lower tangents untuk HA dan HB dengan
mengabaikan semua titik yang berada diantara dua buah tangen ini.
Algoritma Divide and Conquer merupakan salah satu solusi dalam penyelesaian masalah

convex hull. Algoritma ini ternyata memiliki kompleksitas waktu yang cukup kecil dan efektif

dalam menyelesaikan permasalahan ini (jika dibandingkan algoritma lain). Selain itu juga,
algoritma ini dapat digeneralisasi untuk permasalahan convex hull yang berdimensi lebih dari 3.
PENYELESAIAN MASALAH CLOSEST PAIR DENGAN DIVIDE AND CONQUER
Persoalan : Diberikan himpunan titik, P, yang terdiri dari n buah titik, (x i,yi), pada bilangan 2-D.
Tentukan jarak terdekat antara dua buah titik di dalam himpunan P. Jarak dua buah titik p1 = (x1,
y1) dan p2 = (x2, y2) :
d ( Pi . P j )= ( x ix j )2+( y i y j)2
Penyelesaian:
a. Asumsi: n = 2k dan titik-titik diurut berdasarkan absis (x).
b. Algoritma Closest Pair :
SOLVE : jika n = 2, maka jarak kedua titik dihitung langsung dengan rumus Euclidean.
DIVIDE : Bagi titik-titik itu ke dalam dua bagian, PLeft dan PRight, setiap bagian mempunyai
jumlah titik yang sama
CONQUER :Secara rekursif, terapkan algoritma D-and-C pada masingmasing bagian.
Pasangan titik yang jaraknya terdekat ada tiga kemungkinan letaknya :

Pasangan titik terdekat terdapat di bagian PLeft.

Pasangan titik terdekat terdapat di bagian PRight.

Pasangan titik terdekat dipisahkan oleh garis batas L, yaitu satu titik di PLeft dan satu
titik di PRight.

Jika kasusnya adalah (c), maka lakukan tahap COMBINE untuk mendapatkan jarak dua titik
terdekat sebagai solusi persoalan semula.

Anda mungkin juga menyukai