Diyelim ki bir garsonsunuz. Bir müşteri sizden çok sayıda gözleme istedi. Ne yazık ki çalıştığınız restoranın aşçısı asla aynı boyda iki gözleme yapamıyor ve size verdiği tabakta üst üste duran gözlemelerin hiçbiri diğerleriyle aynı boyda değil, gelişigüzel sıralanmış durumdalar. Müşterinin göz zevkine hitap etmek için bu dengesiz kuleyi boy sırasına göre düzenlemek, yani daha küçük gözlemelerin daha büyük olanların üstünde olduğu bir hale sokmak istiyorsunuz. Elinizde bir spatula var. Onu kuledeki herhangi bir gözlemenin altına sokup o noktanın üstündeki gözlemeleri topluca ters çevirerek alttakilerin üstüne bırakabilirsiniz. Bu işlemi farklı pozisyonlara spatulanızı sokup gerektiği kadar yaparak hedefinize ulaşabilirsiniz. Tabii ki işi en kısa sürede, yani en az sayıda “çevirme” ile bitirip gözlemeler soğumadan müşteriye ulaştırmak istiyorsunuz.
Mesela en küçüğü en altta, en büyüğü en üstte üç gözlemeniz olsa spatulayı kulenin en altına sokup tek çevirmeyle işi halledebilirsiniz. Ama eğer şanssız gününüzdeyseniz aşçının size verdiği kulede üç gözlemenin en küçüğü en üstte, en büyüğü ortada, ortancaysa en altta olabilir. İşte bu durumda ne yazık ki düzgün kuleyi elde etmek için ez az üç çevirme yapmak zorundasınız. (İnanmıyorsanız deneyin!)
Bir müşteri daha obursa ne olur?
Matematikçiler kimi teknik problemleri kolayca anlaşılır hale getirmek için neşeli hikâyeler uydurur. Yukarıda anlattığım Gözleme Sıralama Sorunu da birçok bilgisayar işlemcisinin birbirlerine “iş” ve veri göndermesi gereken sistemler tasarlarken karşılaştığımız bir problemin öyküleştirilmişi.
Üç gözleme için düşünülebilecek en kötü sıralamanın taş çatlasa üç çevirme ile düzeltilebileceğini gördük. Peki ama müşteri daha obursa? On gözleme isterse? Yüz? Bin? Bilgisayarcı gibi düşünelim. Verilen herhangi bir sayı için o sayıda gözleme içeren bir kuleyi düzeltecek hızlı bir algoritma, yani “spatulayı şuraya sokup çevir, sonra şuraya, sonra şuraya…” tipinden bir talimatname bulabilir miyiz?
1970’li yıllarda bu iş için bilinen en hızlı yöntem, yaklaşık olarak gözleme sayısının iki katı kadar çevirme gerektiriyordu. Sonra Bill Gates devreye girdi.
Bill, bilgisayarla ülkesinin en iyi özel ortaöğretim okullarından birinde tanışmıştı. O zamanlarda bilgisayarlar dev makinelerdi ve Lakeside gibi zengin bir lisenin bile kendi bilgisayarı yoktu. Okul Aile Birliği, General Electric firmasının bir bilgisayarına okuldaki bir uzaktan erişim cihazından bir süre bağlanabilmek için para toplamıştı. Bill ilk bilgisayar programını burada yazdı. Bilgisayarların işletim sistemlerinde keşfettiği hatalardan bedavaya kullanım süresi almak için yararlanan bir “hacker” olması uzun sürmedi.
Daha liseden (ülke çapında bir akademik başarıyla) mezun olmadan bilgisayar programcılığından para kazanmaya başlayan Bill, 1973’te hukuk eğitimi için diye kaydolduğu Harvard Üniversitesi’nde üst sınıflardan matematik ve bilgisayar bilimi dersleri aldı. Gözleme Sıralama Sorunu’yla da bu derslerden birinde karşılaştı.
Rekoru 30 yıl boyunca kırılamadı
Bill (genç Harvard hocası Hristos Papadimitriu ile birlikte) kolları sıvadı ve yukarıda sözünü ettiğim eski yöntemden %17 daha hızlı çalışan bir algoritma keşfetti. (Sonraki 30 yıl boyunca rekoru elinde bulunduran Gates-Papadimitriu algoritması, ancak 2009’da Dallas Üniversitesi’nden bir ekip tarafından %2 farkla geçilebilecekti.) Bu buluşlarını anlattıkları eser, Gates’in yayımladığı tek matematik makalesi olacak, genç Bill çok geçmeden Harvard Üniversitesi’ni yarım bırakıp kendi şirketini kurmaya karar verecekti. O şirketin adını duymuşsunuzdur.
MITS adlı bir şirketin herkesin evine alabileceği ucuzlukta “mikrobilgisayar”lar ürettiğini duyan Gates, bu cihaz için yazılım üretmeyi önerdi. Çocukluk arkadaşı Paul Allen’la birlikte Microsoft’u kurdular. Kişisel bilgisayar pazarı genişledikçe bu bilgisayarları işletecek temel yazılımlara olan ihtiyaç büyüyordu. Gates 32 yaşında dolar milyarderi oldu. Yıllarca dünyanın en zengin adamı unvanını elinde tuttuktan sonra (şu sırada üçüncü) kendisini hayır işlerine adadı.
Hayatı problem üstüne problem çözerek geçmişti, şimdi de iklim değişikliği ve önlenebilir hastalıklardan kaynaklanan çocuk ölümleri gibi problemleri çözmek istiyordu. Yoksul insanlara temel sağlık hizmetleri götürmek için milyarlarca dolar bağışladı ama tam da bu çalışmaları nedeniyle bir yığın saçma komplo teorisinde kötü adam rolüne sokuldu. Hiçbir iyilik cezasız kalmaz.