Bilgisayarınıza Ne Kadar Güvenirsiniz?

Bilgisayarınıza Ne Kadar Güvenirsiniz?
İbrahim C. Arkut1
Girne Amerikan Üniversitesi
Refik C. Arkut2
Kadir Has Üniversitesi
Intel Pentium ve Asal Sayılar3
Bazen sınıfta öğrencilere soruyoruz. Size bir tek kusuru olan bir bilgisayar hediye edilse o da
her iki aritmetik işlemden bir tanesini yanlış hesaplıyor dense, bilgisayarı kabul edermisiniz?
Genelde cevap her zaman hayırdır ve hediye kabul edilmez. Herkesten beklenilen bu cevap
alınınca bu sefer hediye edilen bilgisayarın milyarda bir defa size yanlış cevap verdiğini
varsayalım denilince sınıfın tümü bilgisayarı kabul ediyor ve ona güveniyor. Artık hoca
olarak görevimiz öğrencilere neyi anlatmak istediğimiz kanıtlamak ve ötesinde inandırmak
için can alıcı son sorumuzu yöneltiyoruz. Tatile gitmek için hava alanına gittiğinizde sizi
götürecek olan uçağın size hediye edilen ve kabul ettiğiniz milyarda bir hatalı cevap veren
bilgisayarla uçağın iniş sistemlerini kontrol ettiğini öğrendiniz. Şimdi kendi serbest iradenizle
o uçak ile seyahat edermisiniz? Sessizlik...Öğrencilerden cevap yok.
Bu makalenin amacı yukardaki senaryoya uygun insan zekasının sınırında bilgisayarın verdiği
sonuçlara güvenin biraz da matematikten sayılar kuramındaki asal sayılar çerçevesinde
irdelemek. Ayni yaklaşımla problemi tam tersten almak ta mümkün; problemin matematiksel
kanıtı için bilgisayar hesaplarına dayanılıyorsa ve daha şık çözümü henüz bilinmiyorsa veya
belkide hiç yoksa, kanıt doğru olsa bile inanmalı mıyız? Bu bakış açısı ile günümüzde
kendilerinden en fazla söz ettiren Dört Renk Teoremi ve Keppler Konjektürünü (bir anlamda
teorem olmaya aday) ele alıp makalenin devamında irdeleyeceğiz.
Lynchburg Koleji profesörlerinden Thomas Nicely’ın görevi Pentium chipinin tasarım
sorunlarını bulup halka açıklamak idi. 1993 te ilk Pentium chipi üretildiğinde Intel için her
şey yolunda gidiyordu. Kişisel bilgisayarlar için sözü verilen işlemci sürat ve gücü yerine
getirilmişti. Fakat Nicely’inin açıklaması ile Intel bir kabus yaşamaya başladı. Pentium bazen
aritmetik işlemleri yanlış yapıyordu. Bir anlamda tüm bilgisayarlar bölme işleminde yanlışlık
yaparlar. Kesirli sayılarla işlemler ünitesi, özellikle bölme işleminde yuvarlatmadan dolayı
küçük hatalar verdiği bilinir. Örneğin 1/3=0.33333... de sonsuz sayıda 3 ler serisinin
depolanması yerine sonlu sayıda 3’ler kullanılır. Bu tipten yuvarlatma hataları bilgisayar
bilimcileri tarafından kesin kurallarla belirlenir ve ne zaman yukarı veya aşağı kesirli sayının
yuvarlatılacağı verilir. Genellikle 10 ile 20 ondalık kesirler seviyesinde ilgili aritmetik ünite
işlem yapar. Sıradan hesaplamalarda yuvarlatma-hatası pek önemli olmamakla birlikte
milyarlarca ardışık hesaplama gerektiren bilimsel çalışmalarda oluşan hesaplama hatasının
1
[email protected]
[email protected]
3
Thomas Nicely’nin ‘Divide and Conquer’ başlıklı yazısından derlenmiştir.
2
ihmal edilemeyecek seviyede anlamı vardır. Örneğin 10’ncu basamağa kadar doğru olan 10
milyar kesirli sayıların toplamında hiçbir rakamın bir anlamı (doğruluk yönünde) yoktur.
Pratikte, statikten alınan rastgele-yürüyüş davranışına göre 5 basamklı doğru kabul edilebilir
netice için yukarı ve aşağı yuvarlatmaların sayısının hesaplama içinde hemen hemen eşit
olması gerekir.
Pentium’un tasarım sorununa gelince. Kesirli sayılarla işlemlerde 19 basamağa kadar
hassasiyeti garanti eden pentium bazen çok daha az hassas cevaplar verebiliyordu.
Tasarımında var olması gereken bölme algoritması ihmal edilmiş ve bölme işlemleri için
‘look-up’ tablosu konmamıştı. Daha kötüsü bu hatanın bedeli 5’nci basamaktan sonraki
hesaplamalarda kendini gösteriyordu. Tasarlanandan 100 milyar daha kötü netice veren
Pentium chipindeki eksiklik 1994 yazında düzeltildi fakat satılan bir iki milyon chip için bir
şey yapılmadı. Intel’in bu büyük hatası milyarda bir ortaya çıktığına göre hata kimin
tarafından gözlenebilir ki yaklaşımından başka bir şey olmayıp girişteki örneğin Intel
tarafından hiç düşünülmediği anlaşılıyor.
Eski Yunandan Euclid Elemanlar’ında IX Kitapta sonsuz sayıda asal sayı bulunduğunu
kanıtlamıştı. Şık kanıtı sonlu sayıda asal sayının çarpımına 1 eklendiği zaman elde edilen sayı
listedeki asal sayıların hiç birine bölünemeze dayanıyordu. Fakat her sayının en az bir asal
sayı böleni olduğuna göre sonlu sayılar listesi her asal sayıyı içermez. Birbirlerinden habersiz
1896 yılında Charles-Jean da la Poussin ve Jacques Hadamard Asal Sayı Teoremini
kanıtlarlar. Asal sayı teoremi verilen her hangi reel sayı x için x ten küçük yaklaşık x/ln x
kadar asal sayı vardır (burada ln x tabii logaritma). Örneğin x=100 alınırsa 100/ln 100≈22
bulunur, gerçekte 100 küçük asal sayılar 25 tane olduğuna göre yaklaşım fena sayılmaz. Asal
sayılar teoremine dayanarak asal sayıların bir çok gizemi çözülmüştür. Çözülemeyenler
arasında çok iyi bilinen ‘ikiz asal sayılar’ problemini burada ele alalım4- adışık asal tek sayı
çiftlerine ikiz asal sayı denir; 3 ve 5, 5 ve 7 gibi. İkiz asal sayıların bu özelliğinin belli bir
asal sayıdan sonra ortadan kalkıp kalkmayacağı bilinmiyor. Benzer şekilde ikiz asal sayılar
için kanıt verilmeden (matematiksel konjektür) matematikçiler x sayısına kadar ikiz asal sayı
çiftlerinin sayısının x / (ln x)2 ile orantılı olduğunu iddia etmektedirler. Norveç’li matematikçi
Viggo Burn 1919 da ikiz asal çiflerinin sayısı için yukardaki iddia edilen değere üsten
100x/(ln x)2 ile yaklaşmış daha sonra bu değer 6x/(ln x)2 ye kadar getirilmiştir. Henüz x / (ln
x)2 ye alttan yaklaşım verilememiştir. Burn kendi adının ilk harfi ile anılan B toplamı ve
basitce tüm ikiz asal sayı çiflernin tersinin toplamının sonlu olduğunu ve B gibi bir sayıya eşit
olacağını göstermiştir. Örneğin ilk 4 çift için
(1/ 3 + 1/ 5) + (1/ 5 + 1/ 7 ) + (1/11 + 1/13) + (1/17 + 1/19 ) + ...
Burn toplamı B yi tahmin etmek, ikiz asal sayıların nasıl oluştukları bilinmediği için hiç de
kolay değildir. Örneğin yoğun asal sayıların başladığı bir yerden önce Burn toplamını tahmin
etmek için durursanız yaklaşımınız bu yoğun asal sayıları göz önüne alamayacağından
tahmininiz çok kötü çıkar. Aksine 1 + 1/ 2 + 1/ 22 + 1/ 23 + 1/ 24 + ... 2 den biraz küçük bir
değere yakınsayacağı gösterilebilir.
Sayılar teorisinde uğraşanlar Burn toplamına daha iyi yakınsama yapabilmeleri için ve hata
tahminini 1/
4
(
)
p ln p çarpımından daha küçük yapmak için 1/ p + 1/ ( p + 2 ) de duran Burn
Dan Goldston ve Cem Yalçın Yıldırım’ın geliştirdikleri yöntem ‘ikiz asal sayılar probleminin’ sonunun
geldiğini gösteriyor (SilicomValley.com, The Mercury News, 22 Ağustoz 2003).
toplamına 1/ ln p lik ‘düzeltme’ terimi eklerler. 1974’te D. Shanks ve J. Wrench Jr. Burn
toplamını ilk iki milyon asal sayılardaki tüm ikiz asal sayılara baktılar (Brun toplamı 1.90217,
bak Şekil 1) . Ayni zamanda R. Brent (Australya) 100 milyara kadar olan tüm ikiz asal
sayıları (224376048 çift) listeleyerek Brun toplamı olarak 1.90216054 sayısını buldu.
Şekil 1. İlk milyon asal sayı için ikiz asal sayıların dağılımına bağlı Brun toplamı.
Şekil 2. R. Brent’in 100 milyara kadar ikiz asal sayı çiftleri ve Brun toplamları.
O günden sonra sayılar teorisinde uğraşanlar bilgisayarlarını ikiz asal sayılar artığı zaman
Brun toplamı fazla değişmediği için pek çalıştırmadılar (bak Şekil 2).
1993 yılında Nicely, Brun’nun toplamını ilk beş adet ‘486’ chipli PC ile daha sonra bir adet
Pentium makinesi kullanarak tekrar hesaplamaya karar verir. Buraya kadar kötü bir niyet yok!
Aksine daha önce super bilgisayarlar kullanılarak yapılan bu hesaplamalar artık kişisel
bilgisayarlarla yapılabilecekti. Fakat Nicely’yi endişelendiren bulunacak neticenin ne kadar
güvenilir olduğu idi. İkiz asal sayı çiftlerinin terslerinin toplamı PC ile hesaplanırken Brent’in
neticeleri ile ayni olması ve daha ötesine geçilmesi için kullanılan programın ve işletim
sisteminin hatasız olması gerekiyordu. Bunu sağlamak için her bilgisayar asal sayı tersini
bulurken önce floating point ünitesi kullanılarak ondalık kesirden sonra 19 basamağa kadar
hesaplama yapıldı ve daha sonra Bellcore’dan A. Lenstra’nın gelişitirdiği ultra-hassasiyet
algoritması kullanılarak 26 rakamlı hassasiyete inildi. İnildi de ne mi oldu? Daha önce π ( x )
(x ‘e kadar asal sayıların sayısı) bilinen değerinden farklı netice elde edildi. Bunun nedeni
uzun çalışmalardan sonra ultra-hassasiyet hesaplamasında yuvarlatma hatasının beklenenden
daha süratli depolandığı tesbit edildi. Sonuçta bu hata ya nedenin Borland C++ 4.02
derleyicisinde kaynaklandığı anlaşıldı ve düzeltildi. Daha fazla emin olmak için Nicely ultrahassasiyeti 53 rakama çıkardı. Yine de 486 makinesi ile pentium makinesi değerleri son 20
rakamı farklı vermeye devam ediyordu. Bunun da nedeni Pentium makinesinin 19 rakam
hassasiyet verecek yerde 824633702441 ve 824633702443 asal sayı çiftinin terslerinin
toplamında yalnız 9 rakamlı hassasiyet vermesi idi. Düzeltmek için özel hata düzeltme
yazılımı ile Pentium bilgisayarında makine dili seviyesinde hata arandı. Hatanın devam
etmesi ve başka Pentium makinelerinde de ayni hatanın kalması üzerine Intel Pentium chipi
bölmeyi doğru yapamıyor sonuçuna varıldı.
Intel hatayı müşterilerini etkilemediği iddiası ile sonunda kabul etti. Nicely Intel’in 1995’teki
düzeltilmiş ve geliştirilmiş yeni Pentium chipini kullanarak ilk 100 trilyon sayı için
133780321665 adet ikiz asal sayı çifti olduğunu Brun toplamının 1.9021605778 olduğunu
dünyaya ilan etti. Bir yıl sonra 1996-97, Alman bilim adamları Martin Kutrib ve Jörg
Richtein (Giessen Üniversitesi) ayni neticeleri bularak asal sayı hesaplamadaki doğruluğu
teyit ettiler.
O gün bu gün bu bilim adamları hesaplamalarının ayni kaldığını, farklı ise nasıl
düzeltileceğini bulmak için buldukları değerleri değiş tokuş yapmaktadırlar.
Sonuç
Bilgisayarla hesaplamalarda her şey doğru olsa bile bilgisayarın tasarımındaki sınırlamadan
milyarda bir hata olabileceğinin kanıtı bu kadar açık şekilde gösterilmesine karşın günümüzde
genel eyilim ‘netice eğer bilgisyardan geliyorsa doğrudur’ şeklinde olmaktadır.
Bilgisayara (bir bakıma makineye) güvenelim mi yoksa güvenilmemeli mi ikilemi insanın
bazı matematik problemleri karşısındaki çaresizliğine bu şekilde olsa bile çözüm
getirmektedir. Yazımızın devamında işi biraz insanın içinden çıkamayacağı seçeneklerin
analizi ile kanıtlamanın büyük ölçüde bilgisayara bırakıldığı dört renk problemi ve Keppler
konjöktürünü ele alacağız.
Bu durum makinelere teslim olma olmadığını burada belirtmek istiyoruz. Belki zarif çözüm
bulununcaya kadar durumu kabulleniyoruz demek en iyisi.