Brent Algoritması (Brent’s Algorithm)

Yazan : Şadi Evren ŞEKER

Bilgisayar bilimlerinde özlelikle graf teorisinde (graph theory) kullanılan ve bir döngüyü (cycle) algılamaya yarayan algoritmadır. (cycle detection).

Basitçe tavşan ve kaplumbağa algoritmasından (hare and tortoise algoritm) esinlenmiştir. Floyd algoritması olarak da isimlendirilen tavşan ve kaplumbağa algoritmasından farklı olarak tavşan, kaplumbağanın iki misli değil 2 üzeri adımla hareket etmektedir.

Yani kaplumbağa, tavşan 2′nin bir kuvveti olan adım attığında hareket etmekte, bu zamana kadar beklemektedir.

Örneğin aşağıdaki dairenin Brent algoritması ile nasıl çözüldüğünü görmeye çalışalım:

Başlangıç değeri olarak A düğümünden iki göstericinin (pointer) başladığını kabul edelim. Bu durumda başlangıçtaki tavşan ve kaplumbağanın şekli aşağıdaki gibi olacaktır :

Kaplumbağa tavşanı beklemektedir. Tavşan birer birer hareket etmekte, şayet hareket ettiği değer 2 üzeri bir değer olursa kaplumbağa da hareket etmektedir. Aynı düğüme geldiklerinde daire bulunmuş demektir.

Yukarıdaki şekil için tavşan ve kaplumbağanın dolaştıkları düğümleri sıralayacak olursak:

K T

A B

A C (C tavşanın geldiği 2. düğüm olduğu için kaplumbağa hareket eder)

B D

B E (E  tavşanın 4. adımda geldiği düğüm olduğu ve ikinin kuvveti olduğu için kaplumbağa hareket eder)

C F

C A

C B

C C (C. tavşanın 8. adımda geldiği düğüm olduğu için kaplumbağa hareket edecektir ancak daire bulunmuştur)

Yukarıdaki örnekte iki gösterici de C düğümünde buluşmaktadır dolayısıyla daire yakalanmıştır.

Bu yazıyı beğendiyseniz, başkalarının da ilgisini çekebilirsiniz:


151 views

Leave a Reply


bir + = 8

Benzer Yazılar:

Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Brent Algoritması (Brent’s Algorithm)' isimli yazı 27 Apr 2009 tarihinde, saat: 19:28 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam151 defa okunmuştur.

Benzer yazıları algoritma analizi (teory of algorithms), graf teorisi (graph theory, çizge kuramı), veri yapıları kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.


Category: algoritma analizi (teory of algorithms), graf teorisi (graph theory, çizge kuramı), veri yapıları