Ortayı Bul, Kaosu Yen: İkili Aramanın Şaşırtıcı Gücü

Bir telefon rehberinde “Mert” adını aradığınızı düşünün. İlk sayfadan başlayıp bütün isimleri tek tek okumazsınız. Rehberi ortasından açar, karşınıza çıkan harfe bakar ve aradığınız ismin hangi tarafta kaldığını belirlersiniz. Sonra kalan bölümü yeniden ikiye ayırırsınız. Farkında olmadan bilgisayar biliminin en zarif fikirlerinden birini kullanırsınız: ikili arama.

İkili arama, sıralanmış bir veri kümesinde hedeflenen değeri bulmak için arama alanını her adımda yarıya indirir. Basit görünür; fakat gücü tam da bu sadelikten gelir. Bin öğelik bir listede doğrusal arama en kötü durumda bin karşılaştırma yapabilirken ikili arama yaklaşık on adımda sonuca ulaşır. Bir milyon öğe mi var? Yaklaşık yirmi adım yeterlidir. Çünkü mesele bütün kapıları çalmak değil, her soruyla yanlış kapıların yarısını sonsuza dek kapatmaktır.

Kodlar Dünyayı Yönetmiyor; Dünyanın Neye Dönüşeceğini Fısıldıyor

Kod denince çoğumuzun zihninde karanlık bir ekranda hızla akan yeşil karakterler belirir. Sinema sağ olsun, programcıyı da birkaç tuşa basarak bankaları ele geçiren kapüşonlu bir sihirbaz sanırız. Oysa kod, bilgisayara yazılmış büyülü sözlerden çok daha sade bir şeydir: Bir niyeti, makinenin uygulayabileceği kesin adımlara dönüştürme sanatı. Bilgisayar ne ima anlar ne de “sen gerisini halledersin” cümlesinden hoşlanır. Ona ne söylerseniz onu yapar; bazen de tam olarak söylediğinizi yaptığı için sistem çöker.

Kod, düşüncenin sıkıştırılmış hâlidir

Her programın arkasında bir problem tanımı bulunur. Bir uygulama kullanıcıdan bilgi alır, bu bilgiyi belirli kurallarla işler ve bir sonuç üretir. En temel şema şöyledir: girdi, işlem, çıktı. Bir navigasyon uygulamasında girdi bulunduğunuz konum ile hedefinizdir; işlem, olası yolların karşılaştırılmasıdır; çıktı ise önerilen rotadır. Ancak mesele yalnızca çalışan bir sonuç üretmek değildir. İyi kod doğru, anlaşılır, güvenli, hızlı ve değiştirilebilir olmalıdır. Çünkü bugünün küçük çözümü, yarının milyonlarca kişinin kullandığı altyapıya dönüşebilir.

Aklın Görünmez Tuzakları: Mantık Bizi Her Zaman Doğruya Götürür mü?

Mantık çoğu zaman zihnin pusulası olarak görülür. Doğru kullanıldığında bizi çelişkilerden uzaklaştırır, iddiaları sınamamızı sağlar ve düşünceler arasındaki görünmez bağları ortaya çıkarır. Ne var ki pusula, haritanın kendisi değildir. Kuzeyi gösterebilir ama hangi yola girmemiz gerektiğini söylemez. Mantığın gücü tam da burada başlar; sınırı da burada belirir.

Mantık Ne İşe Yarar?

En basit hâliyle mantık, düşüncenin biçimini inceler. Örneğin bütün insanlar ölümlüyse ve Sokrates bir insansa, Sokrates’in ölümlü olduğu sonucuna ulaşırız. Bu çıkarımın gücü, Sokrates hakkında ne hissettiğimizden bağımsız olmasıdır. Onu sevsek de sevmesek de sonuç değişmez. Mantık, duyguların gürültüsünü azaltarak öncüller ile sonuç arasındaki yapısal ilişkiyi görünür kılar.

Fakat küçük ve önemli bir sorun vardır: Kusursuz bir çıkarım, yanlış öncüllerden hareket edebilir. Bütün kedilerin görünmez olduğunu ve Tekir’in bir kedi olduğunu kabul edersek, Tekir’in görünmez olduğu sonucuna mantıksal olarak ulaşırız. Çıkarım geçerlidir; buna rağmen sonuç gerçek değildir. Demek ki mantık yalnızca nasıl düşündüğümüzü denetler. Nereden başladığımızı doğrulamak için gözleme, bilime, deneyime ve bazen tarihsel bilgiye ihtiyaç duyarız.

Makineler Dünyayı Raflara Dizince: Ontolojik Mühendisliğin Görünmez Zekâsı

Bir makineye “kedi” dediğinizde ne anlar? Sevimli bir ev hayvanı mı, memeli bir canlı mı, dört ayaklı bir nesne mi, yoksa internetteki sonsuz komik videoların başrol oyuncusu mu? İnsan için bu sorunun cevabı bağlama göre kayar; zihin, anlamı bir lastik gibi uzatır. Makine içinse mesele daha serttir: Kedi nedir, neyin alt türüdür, hangi özellikleri taşır, neyle karıştırılmamalıdır? İşte ontolojik mühendislik tam burada sahneye çıkar: Dünyayı makinelerin anlayabileceği şekilde kavramlara, ilişkilere ve hiyerarşilere ayırma sanatı ve disiplini.

Ontoloji, felsefede “varlık nedir?” sorusuyla başlar. Bilişimde ise bu soru biraz daha pratikleşir: “Bir sistemin hakkında konuştuğu şeyler nelerdir ve bunlar birbirine nasıl bağlıdır?” Bir hastane yazılımı için “hasta”, “doktor”, “teşhis”, “ilaç” ve “alerji” sadece kelimeler değildir; birbirine bağlı varlık sınıflarıdır. Bir hasta ilaç kullanabilir, bir ilaç yan etki üretebilir, bir alerji tedaviyi değiştirebilir. Makinenin akıllı davranması için bu ağın açık, tutarlı ve sorgulanabilir olması gerekir.

Dolu Otelde Sonsuza Yer Açmak: Aklın Kilidini Kıran Paradoks

Bir otel düşünün: Odaları 1, 2, 3 diye sonsuza kadar gidiyor. Sonsuz koridor, sonsuz kapı, sonsuz anahtar. Üstelik otel tamamen dolu. Her odada bir müşteri var. Normal bir resepsiyonist burada çaresiz kalırdı; kahvesini bırakır, yüzünü buruşturur ve boş oda yok derdi. Ama burası Hilbert’in Sonsuzluk Oteli. Burada mantık, günlük sezgimizin üniformasını çıkarıp matematiğin tuhaf ama kesin kıyafetlerini giyer.

Önce daha basit bir ısınma yapalım: Tamamen dolu bu sonsuz otele tek bir yeni müşteri gelsin. Finite, yani sonlu bir otelde bu imkansızdır. 100 odalı otelde 100 kişi varsa, 101. kişiye yer açamazsınız. Fakat sonsuz otelde resepsiyonist hoparlörden şu anonsu yapar: Her müşteri kendi oda numarasının bir fazlasına geçsin. 1 numaradaki 2’ye, 2 numaradaki 3’e, 3 numaradaki 4’e… Böylece herkes hâlâ bir odada kalır, kimse sokağa atılmaz ve 1 numaralı oda boşalır. Yeni müşteri içeri alınır. İlk çatlak burada oluşur: Dolu olmak, sonsuzlukta sandığımız kadar kesin bir kapı değildir.