Logo

Her gün sizlere birbirinden ilginç haberler, rehberler ve dökümanları paylaşmaktan mutluluk duyarız.

pikort

Sende Aramıza Katıl

İçindeki yazarı ortaya çıkar

Şimdi Yazmaya Başla

Dijkstra: Bilgisayar Biliminin Huysuz Dahisi

3 ay, 2 hafta önce · 4 dk okuma · 180
ali yılmaz
Baş Editör
Dijkstra: Bilgisayar Biliminin Huysuz Dahisi
Adı “Deykstra” olarak okunur. Tam adı Edsger Wybe Dijkstra. Ama kendisi öyle sıradan bir bilgisayar bilimci falan değildir. Bilgisayar biliminin daha teorik, daha matematiğe yakın olması gerektiğini savunan, bu uğurda da kimseye pek aldırmayan bir adamdır.

Dijkstra’ya göre kod yazmak, sadece çalışan bir şeyler üretmek değildir. Kod, matematik gibi anlamlı, zarif ve disiplinli olmalıdır. Hatta kelime tabanlı programlama dillerinin insanı tembelleştirdiğine, düşünmeyi körelttiğine inanırdı.

Bu düşüncesini de hiç yumuşatarak söylemezdi.

COBOL için bir dergide yazdığı eleştiride şu meşhur cümleyi kurmuştur:

“COBOL kullanmak insan aklını sakatlar.
Bu dili kullanmak suç kabul edilmeli.”

Evet, biraz sert. Ama Dijkstra’nın tarzı da buydu zaten.

(COBOL yaratıcısı Grace Hopper hakkındaki yazımız Blogumuzda mevcuttur bakmanızı tavsiye ederiz.)

Algoritmaların Babası

Kendisi Hollandalı bir fizikçidir ve çoğu kişi tarafından bilgisayar algoritmalarının babası olarak anılır. Bilgisayar programlarına ve işletim sistemlerine matematiksel mantığı sistemli bir şekilde uygulayarak bilgisayar bilimine çok büyük katkılar sağlamıştır.

En çok bilinen çalışması ise hepimizin adını duyduğu Dijkstra Algoritmasıdır.

Bu algoritma, bir graf üzerindeki iki nokta arasındaki en kısa yolu bulmayı amaçlar (shortest path problem). Bugün GPS sistemlerinden bilgisayar ağlarına kadar sayısız alanda kullanılan birçok teknoloji, doğrudan ya da dolaylı olarak bu algoritmaya dayanır.

Hatta bugün bilgisayar ağlarında bilginin en kısa yoldan, gereksiz dolanmalar olmadan taşınmasını sağlayan temel stratejilerin arkasında da yine Dijkstra vardır.

Yani telefonundan “en kısa rota” dediğinde, bir yerlerde Dijkstra gülümseyerek sana bakıyordur.

“Bilgisayarlar Düşünebilir mi?”

Dijkstra’nın felsefi çıkışları da en az teknik katkıları kadar meşhurdur. En bilinen sözlerinden biri şudur:

“Bilgisayarlar düşünebilir mi demek,
denizaltılar yüzebilir mi demekle aynı şeydir.”

Yani mesele kelimeler değil, neyi ne için kullandığındır.

Bilgisayar biliminin öncülerinden olan Edsger Wybe Dijkstra'nın doğum bilgileri şöyledir:

  • Doğum Tarihi: 11 Mayıs 1930

  • Doğum Yeri: Rotterdam, Hollanda

  • Ölümü: 6 Ağustos 2002 tarihinde Hollanda'nın Nuenen kentinde hayatını kaybetmiştir.

Şöhret, Van Gogh ve Zaman Meselesi

Dijkstra, hayatı boyunca Hollandalı ressam Vincent van Gogh kadar meşhur olmayı hayal etmiştir. Onun gibi dünyada büyük bir fark yaratmayı, hatta belki de ancak öldükten sonra gerçekten anlaşılmayı istemiştir.

İnsanlığın zamanla kendi çalışmalarının kıymetini daha iyi anlayacağına inanıyordu. Bugün geriye dönüp baktığımızda, bu konuda pek de haksız olmadığını söyleyebiliriz. Muhtemelen gelmiş geçmiş en büyük bilim insanlarından biridir.

Fizikten Bilgisayara Giden Yol

1950’lerde teorik fizikçi olma yolunda hızla ilerlerken, bilgisayar programlamaya aslında bir hobi olarak başlamıştır. Ama sırf “daha fazla entelektüel çaba gerektiriyor” diye bu alana yönelmiş ve sonunda tüm kariyerini buraya adamıştır.

Bu noktada şunu da hatırlamakta fayda var:
1950’ler, kuantum fiziğinde çığır açıcı gelişmelerin yaşandığı altın çağdır. Yani Dijkstra, fizik gibi inanılmaz bir alandan bile “Ben daha zorunu istiyorum” diyerek bilgisayar bilimine geçmiştir.

Biraz manyakça. Ama iyi ki öyle yapmış.

Sadece Algoritmalar Değil

Dijkstra’nın geliştirdiği matematiksel modellemeler sayesinde, virüslerin insan popülasyonu içinde nasıl yayıldığı ve ne hızla yayıldığı bile hesaplanabilmektedir. Yani katkıları sadece bilgisayarlarla sınırlı değildir; doğrudan insan hayatına dokunan alanlara da uzanır.

Dijkstra Algoritması: Basit Bir Örnekle

Dijkstra algoritmasını anlamak için gözünde karmaşık grafikler, düğümler falan canlandırmana gerek yok. En basit hâliyle şöyle düşün:

Bir şehirdeyiz ve A noktasından B noktasına gideceğiz.
Önümüzde birden fazla yol var ama her yolun bir mesafesi (ya da maliyeti) bulunuyor.

Dijkstra’nın yaptığı şey çok net:

“Şu ana kadar bildiğim en kısa yolu baz alırım,
oradan komşulara bakarım
ve daha kısa bir yol bulursam fikrimi güncellerim.”

Mesela:

  • A’dan C’ye gitmek 5 km
  • A’dan D’ye gitmek 2 km
  • D’den C’ye gitmek 1 km

İlk bakışta A → C yolu 5 km gibi durur.
Ama Dijkstra durmaz, der ki:

“Bir dakika, A → D → C toplamda 3 km ediyor.”

Ve hemen en kısa yol bilgisini günceller.

Algoritma bunu sistemli bir şekilde, en kısa yolu kesinleşmiş noktaları tek tek kilitleyerek yapar. Her adımda “şu ana kadar en mantıklı seçim bu” der ve geri dönüp kararsızlık yaşamaz.

Bu yüzden:

  • GPS sana gereksiz dolandırmaz
  • Ağ paketleri saçma sapan rotalara girmez
  • Sistemler mümkün olan en verimli yolu seçer

Kısacası Dijkstra algoritması,
“önce en yakını hallet, sonra adım adım genişle” mantığıyla çalışır.

Ve evet… bu kadar basit bir fikir, bugün milyarlarca cihazda çalışıyor.

Kısacası

Dijkstra;

  • Kodun estetik olması gerektiğine inanan
  • Matematiği merkeze alan
  • Popüler olana burun kıvıran
  • Sert, net ve biraz huysuz
    ama bir o kadar da vizyoner bir dahidir.

Bugün farkında olmadan kullandığımız pek çok teknolojinin arkasında onun izi vardır.


Etiketler:


ali yılmaz
Bilgi İşlem

Yaratıcı girişimciyim

Profili Gör
💬 Yorumlar

Henüz yorum yapılmamış.