You are on page 1of 3

Matematik Dnyas, 2004 Bahar

Bilgisayar Bilimi Kesi


H. Cokun Gndz* / coskung@bilgi.edu.tr

Monte Carlo Yntemi


astgele say seme ilkesi zerine kurulmu eleman denir. Bir dizideki baskn eleman bulma

R algoritmalara rastlantsal algoritmalar de-


nir. Her ne kadar yant vermedikleri, hatta
kimileyin yanl yant verdikleri bile olsa, baz
algoritmas, en basit olarak tm elemanlarn dier-
leriyle karlatrlmas olabilir, bu da O(n log n)
zaman alr.
problemler iin, rastlantsal algoritmalar kesin al- Bu problem iin oluturulabilecek bir Monte
goritmalara tercih edilebilirler, nk daha basit- Carlo algoritmas yle olabilir: Programmz, veri-
tirler ve daha hzl alrlar. len n say arasndan rastgele bir say sesin. Eer
n saysyla ilgili bir algoritmann 2n zamanda bu say verilen n saynn en az yarsna eitse prog-
sonulanmas bilgisayar biliminde pek arzu edil- ram dursun ve yant olarak bu sayy versin. Eer
mez, nk byle bir algoritma ok yava iler. bu say verilen n saynn en az yarsna eit deilse
Ama daha ksa bir algoritma bilinmiyorsa ne yap- program gene dursun ve yant olarak baskn ele-
mal? Rastlantsal algoritmalar bu hz sorununa man bulunamad desin.
ksmi bir zm getirirler: yzde yz doruluktan Eer problem bulundu yantn verirse, bas-
vazgeerek hzl algoritmalar bulabiliriz. kn eleman bulunmu demektir. Bulunamad ya-
Elbette rastlantsal algoritmalarn uaklarda ntn verirse ya yanl eleman seilmitir ya da bas-
kullanlmamasnn byk yararlar vardr! kn eleman yoktur.
Rastlantsal algoritmalar, Monte Carlo, Las Eer baskn eleman varsa, program en az yz-
Vegas ve Sherwood olarak ana balkta topla- de elli olaslkla baskn eleman seecektir ve do-
nabilir. ru yant verecektir. Program be kez altrldn-
Monte Carlo algoritmalar her zaman bir so- da, programn baskn eleman bulma olasl 1
nu verir ve sonucun doruluk olasl program (1/2)5 = 0,96875tir, yani nerdeyse yzde 97, fena
altka artar. rnein her denemede yzde 90 saylmaz. Ve program 5n zamanda biter, olduka
baar ans varsa, iki denemede baar ans yzde abuk. Eer program alt kez altrrsak, doru
99a kar. yant bulma olasl 1 (1/2)5 = 0,984375dir ve
te yandan Las Vegas algoritmalar yanl so- program 6n zamanda biter.
nu retmezler, ama bazen hi sonu retmezler.
Sherwood algoritmalar ise her zaman sonu Asallk Testi. Monte Carlo asallk testi algorit-
verir ve verdikleri sonu dorudur. Ancak Sherwo- mas 2 ile n arasnda rastgele saylar retir ve bu
od algoritmalarnn uygulanabildii problemler s- saylarn nyi blp blmediine bakar. Eer blen
nrldr. bir say bulunursa, n asal deildir. Ama tam blen
Problemin trne ve beklenen sonucun nemi- bir say bulunamazsa, kesin olarak asaldr diyeme-
ne gre bu yntemlerden biri seilir. Biz bu yaz- yiz. Bu algoritmann ok iyi bir algoritma olduu
mzda Monte Carlo algoritmalarn inceleyeceiz. sylenemez. rnein, 60329 says 23, 43 ve 61in
imdi ok bilinen baz problemler zerinde arpmdr. Algoritma 2 ile 60329un kkne en
Monte Carlo algoritmasnn almasn inceleyelim: yakn tamsay olan 245 arasnda rastgele saylar
seecektir. Ancak bu aralkta sadece say doru
Baskn Eleman Problemi. Bir say dizisinde, sa- sonu retilmesini salar. Bu nedenle, bu rnekte-
ylarn yardan fazlas aynysa, o elemana baskn ki Monte Carlo asallk testi algoritmas ancak
%1,224 olaslkla doru sonucu verir, hi de iyi bir
sonu saylmaz.
1 stanbul Bilgi niversitesi Bilgisayar Blm retim yesi.

90
Matematik Dnyas, 2004 Bahar

izgelerin Paralan Says. Bir izgede, ka- Program, ayn parada kalacak olan noktalar
rld taktirde izgeyi iki paraya blecek olan ke- tek bir noktaya indirgemek istiyor, bylece en son-
narlardan oluan bir kmeye o izgenin paralan da her iki paray temsilen elimizde iki nokta kala-
kmesi diyelim. izgenin paralan says, bu k- cak. Bu iki nokta arasndaki kenar says da en az
melerin sahip olabilecei en dk e saysdr. paralan saysdr elbette. Eer ansmz yaver gi-
Paralan says, bir anlamda, izgenin ne kadar derse, program yandaki izgeye uygulandnda,
salam, yani ne derece tekpara olduu konu- soldaki drt nokta tek bir noktaya, sadaki be
sunda bir fikir verir: Paralan says ne kadar b- nokta da tek bir noktaya indirgenir ve geriye kalan
ykse, izge o kadar tekparadr, noktalar o dere- son iki nokta arasnda kenar olur. te bu sa-
ys paralan saysdr. Ancak burada ansmz
yaver gitti, ki herhalde ansmzn yaver gitmesi de
az bir olaslk. Yukardaki yntem, paralan say-
sn olarak vermeyebilir (ama -
ten az veremez kesinlikle). Bu prog-
ram birka kez, diyelim 50 kez uy-
Paralan says 1 olan bir izge
gularsak, ve alnan sonularn en k-
Yukardaki
nn paralan says olduunu
izgenin son
iddia edersek, o zaman gerek para- hali
lan saysna daha yakn bir say bu-
luruz.
Bu tr programlarn amac, ok ok uzun za-
man alacak algoritmalarn yerine, yzde bilmem-
Paralan says 3 olan bir izge
ka olaslkla doru yant veren ve ksa srede so-
ce birbirine balanmtr diyebiliriz. rnein, basit na eren algoritmalar kullanmaktr. Dolaysyla,
bir dngnn paralan says sadece 2dir. Oysa programn en az ka olaslkla doru yant verdii-
Kn tamizgesinin paralan says n 1dir; zaten ni bilmiyorsak, bu tr programlar hibir ie yara-
n noktal bir izgenin paralan noktas n 1den mazlar. lla da programn doru yant verme olas-
daha byk olamaz. Paralan says, elbette, nok- ln bulmalyz, yoksa programn verdii yantn
talarn derecelerinin en knden daha byk hibir anlam olmaz.
olamaz (ama ikinci rnekte grld zere daha imdi programmzn hangi olaslkla en kk
kk olabilir). paralan saysn bulacan inceleyelim:
Problemimiz bir izgenin paralan saysn
bulmak. Basit bir rastlantsal algoritma yle al- nsav. Eer nokta says n ise, rastgele seilen
r (D. Karger): bir kenarn bir en kk paralan kmesinde ol-
1- G izgesinden rastgele bir xy kenar se. ma olasl (yani yanl kenar seme olaslmz)
(Bu xy kenarnn iki paradan birinde olduunu en fazla 2/ndir.
umuyoruz.) Kant: Paralan kmesinde k kenar olduunu
2- Bu kenar bztr (bknz. aadaki e- varsayalm. O zaman her noktann derecesi en az k
kil), yani bu kenarn x ve y noktalarn tek nokta olur, dolaysyla izgemizde en az nk/2 kenar var-
yap, ama bu ilem srasnda elde edilen oklu ke- dr. Demek ki seilen bir kenarn en kk parala-
narlara dokunma, ayrca tekdngleri kaldr. n kmesinde olma olasl k/(nk/2) = 2/ndir.
3- ki noktadan fazla nokta varsa birinci ad-
ma geri dn. Yoksa, elinde kalan kenar saysnn Teorem. Yukardaki algoritma, n noktal bir iz-
paralan says olduunu iddia et. ge iin en az 2/n(n1) olaslkla doru yant verir.
Kant: izgede bir paralan kmesini sabitle-
yelim, bu kmeye P diyelim. Algoritmamz alr-
ken, seilen kenarlarn bu P kmesinin dnda kal-
masn isteyelim, ki en son kalan iki noktay birle-
X Y Z tiren kenarlar bu P kmesinin kenarlar olsun. n-

91
Matematik Dnyas, 2004 Bahar

sava gre, ilk adm sonunda P dndan bir kenar olaslkla doru yant verir. Eer n = 100 ise, ve
(yani doru kenar) seme olasl en az 1 2/ndir. biz en az %90 olaslkla doru yant istiyorsak,
Ayn akl yrtmeyle, eer ilk i admda program deneme saymz bulmak iin,
hep doru kenarlar semise, o zaman n i nokta
kalan izgede, gene Pden bir kenar seme olasl-
nn en az
denklemini zmeliyiz. Basit bir hesap,
s = 1/log10(4950/4949) 11396,6448 11397
olduu grlr. Toparlayacak olursak, her admda yantn verir.
doru kenarlardan birini seme olaslmz en az n noktal bir izgede bu algoritmayla %90
doru yant istiyorsak, programn uzunluunun
byk Osu n cinsinden ka olur?

dr.
Kaynaka
[1] Atallah, Mikhail J., Algorithms and Theory of Computation
Bu algoritmay s kez altrrsak ve verilen s Handbook, CRC Press, Florida 1999.
tahminin en kn alrsak, o zaman algoritma, [2] H. Cokun Gndz, www.cs.bilgi.edu.tr/~cgunduz.
[3] McConnell, Jeffrey C. Analysis of Algorithms, Jones and
Bartlett Computer Science, Canada 2001.
[4] www2.cs.cmu.edu/afs/cs.cmu.edu/user/avrim/www/Ran-
dalgs97/lect0122.

Geenlerde Beyolunda koltuumun altnda Matematik Dnyasyla gezerken,


Kt air erafettine rastladm. Hobeten sonra, koltuumun altndaki Matematik Dn-
yasn grd.
O ne? diye sordu.
Matematik Dnyas... dedim, olaanst bir matematik dergisi, sen de okumal-
sn...
Kmseyerek,
Bunda iir yoktur, dedi.
Var! dedim ve iindeki iiri gsterdim.
ard. Gzleri gld.
Ben de yazaym! dedi.
Yaz! dedim.
antasndan bir not defteri kard. Bir sayfa yrtp ekteki satrlar karalad. Belki
derginizde yer alabilir...
Gzel Szer

92

You might also like