Herkes İçin Yazılım
Konu 3
Algoritma nedir? Kışlık tarhana tarifinde saklı.
7’den 70’e herkes için. Önceden hiçbir şey bilmen gerekmiyor.
Merhaba, ben Oğuz. Bu sefer mutfaktayım. Hiç tarhana yapmadım. Sen de yapmadıysan birlikte öğrenelim.
Arkadaşlarımın leğeni
Geçen ay arkadaşlarım tarhana yaptı. Ben de kamerayı alıp yanlarına gittim.
Mutfakta kocaman bir leğen duruyordu, içinde turuncu bir hamur. “Bu daha başı,” dediler. “Bitmesi günler sürer.”
Günler mi? Ben tarhanayı hep çorbasından bilirdim. Tozunu suya katarsın, olur. O tozun bir leğenden çıktığını hiç düşünmemiştim.
Bugün hâlâ evinde tarhana yapan insanlar var. Bu sayfaları onların leğeni sayesinde yazıyorum.
Tarif mi, algoritma mı?
Tarifi bilen biri şöyle anlatır: “Sebzeyi pişirirsin, yoğurdu katarsın, unu alabildiği kadar. Sonra bırakırsın, ekşisin.”
Sen anlarsın. Bilgisayar anlamaz.
Ona her adımı tek tek, sırasıyla, hiçbirini atlamadan yazman gerekir. Elinde ne olduğunu ve sonunda ne çıkacağını da söylersin. Böyle bir adım listesine algoritma diyoruz.
Algoritma bilgisayardan çok daha eski. Tarhana tarifi de bir algoritma. Yalnızca çoğu evde kâğıda yazılmamış, elden ele öğrenilmiş.
Önce girdiler
Bir işe başlamadan önce ilk soru şu: Elimde ne var?
Tezgâha bak. Un, yoğurt, domates, kırmızı biber, soğan, nane ve tuz. Bazı evler sarımsak katar, bazıları bir tutam maya.
Algoritmanın başında elinde duran her şeye girdi diyoruz. Girdi eksikse iş ya durur ya da başka bir şeye dönüşür.
Mesela yoğurdu unut. Çıkan şey tarhana olmaz.
Sıra değişirse yemek değişir
İlk gün sırası şöyle.
- Sebzeleri doğrarsın.
- Su eklemeden, kendi suyunda yumuşayana kadar pişirirsin.
- Ezip pürüzsüz yaparsın.
- Bazı evler burada soğumasını bekler.
- Yoğurdu ve tuzu katarsın.
- Unu azar azar ekleyip yoğurursun.
Peki aynı malzemeleri başka sırayla kullansan?
Mutfağı bilenler uyarıyor: unu sıcak sebzenin üstüne dökersen topak olurmuş. Yoğurdu kaynayan tencereye katarsan kesilirmiş.
Malzemeler aynı, adımlar aynı. Sıra farklı, yemek farklı.
Tamam, ekşimiş.
Ekşiyene kadar, her gün yoğur
Hamurun üstünü bir bezle örtüyoruz. Leğeni serin, güneş görmeyen bir köşeye koyuyoruz. Sonra bekliyoruz.
Ama yalnızca beklemiyoruz.
Her gün hamurun başına gidip onu yoğuruyoruz. Bazı evlerde günde iki üç kez. Ne zamana kadar? Hamur yeterince ekşiyene kadar.
Bilgisayarcılar bu kalıba döngü der. Bir işi tekrar edersin ve her seferinde “durayım mı?” diye sorarsın. O sorunun adı durma koşulu.
Durma koşulunu unutursan döngü hiç bitmez. Leğenin başında sonsuza kadar yoğurursun.
Hamurun içinde kim çalışıyor?
Bu günler boyunca hamuru asıl değiştiren sen değilsin.
Hamurun içinde gözle göremediğin canlılar çoğalıyor: bakteriler ve mayalar. Bir kısmı yoğurttan geliyor. Hamuru ekşiten onlar. Kabaca söylersek, hamurdaki şekeri ekşi bir tada çeviriyorlar.
Araştırmacılar bir hamuru 7 gün boyunca ölçmüş. Ekşiliği gösteren pH sayısı ilk gün 5,2 çıkmış, yedinci gün 4,1. Bu sayı küçüldükçe hamur ekşir. Hamurdaki su da aynı sürede yüzde 70’ten yüzde 26’ya inmiş.
Sen durma koşulunu burnunla ölçüyorsun. Laboratuvar aynı şeyi bir sayıyla ölçüyor.
1. günpH 5,2su %70
7. günpH 4,1su %26
Aynı adımlar, farklı sayılar
Arkadaşıma kaç gün beklediğini sordum. “Hava sıcaksa az, soğuksa çok,” dedi.
Bilim insanları bir ile yedi gün arası yazıyor. Ev tariflerinde bir haftadan iki haftaya kadar çıkıyor. Anlatılanlara göre bazı yörelerde sebzeyi pişirmeden rendeliyorlar, bazı yerlerde de unun bir kısmının yerine yarma ya da bulgur giriyor.
Bunlar farklı tarifler mi? Değil.
İskelet aynı. Değişen ayarlar: kaç gün, ne kadar un, hangi sebze, güneş mi gölge mi. Kimi evler mayalanmayı bir avuç ezilmiş nohutla başlatır, kimi kavanoza defne yaprağı atar. Algoritmanın bu ayarlanabilir yerlerine parametre diyoruz.
Tarhananın denizin öbür yakasında da yakın bir akrabası var. Yunanistan’da ve Kıbrıs’ta adı trahanas.
Sermek: her parça için aynı hareket
Hamur ekşidi. Temiz bir sofra bezi seriyoruz. Kimi evde damın üstüne, güneşe. Kimi tarifte gölgeye, rüzgâr alan bir yere.
Hamurdan mandalina büyüklüğünde bir parça koparıyoruz. Beze koyuyoruz. Sonraki parçaya geçiyoruz. Yüzlerce kez. Ertesi gün dışları kuruyunca her birini daha küçük parçalara bölüyoruz.
Bu da bir döngü. Ama bu sefer günleri değil, parçaları sayıyor: “Hamurdaki her parça için kopar, koy.” Ertesi gün aynı döngü bir kez daha dönüyor: “Her parça için böl.”
Bilgisayar bir fotoğraftaki pikselleri de böyle gezer. Hepsini birer birer, hiçbirini atlamadan.
Ovala, ele, iriyi geri gönder
Yarı kuruyan parçaları avucumuzda ovalayıp ufalıyoruz. Sonra elekten geçiriyoruz.
Elekten geçen ince toz bir kenara. Ya elekte kalanlar?
Bazı evlerde onlar yeniden kurumaya gidiyor. Biraz daha kuruyor, yeniden ovalanıyor, yeniden eleniyor. İri parça kalmayınca iş bitiyor.
Burada iki döngü iç içe. Dıştaki soruyor: “Elekte iri parça kaldı mı?” İçteki her avuç için aynı hareketi yapıyor: ovala.
Çıktı: kavanozdaki kış
Algoritmanın sonunda elinde kuru, ekşi, turuncu bir toz var. Bu, işin çıktısı.
Bitmiş tarhananın içinde suyun payı yüzde 3 ile 9 arası. Bu kadar kuru ve ekşi bir tozda bozan mikroplar çoğalamıyor. Toz bu yüzden aylarca dayanıyor.
Anlatılanlara göre en iyi yeri bez torba ya da kavanoz, serin ve kuru bir köşe. Kışın bir kaşığını sıcak suya karıştırıyoruz.
Haftaların emeği. Bir kaşık çorba.
Algoritma nerede yanılıyor?
Bilgisayar ona söyleneni yapar. Tam da söyleneni. Fazlasını değil.
Hatalar da buradan çıkıyor. Bilgisayarcılar bu hatalara “bug”, yani böcek diyor.
Burada tarhana ile bilgisayar ayrılıyor. Arkadaşlarım her yıl tarifi biraz değiştiriyor, havaya ve hamurun kokusuna bakıyor. Bilgisayar bakmaz. Ona bakmasını sen söylemedikçe.
Atlanan adım
Söylenene göre günlük yoğurmayı unutursan hamur her yerinde aynı hızda ekşimeyebilir. Bilgisayar atlanan adımı fark etmez. Sonrakine geçer.
Ters sıra
Ekşimeden kurumaya serersen kuru ama tatsız bir hamur çıkar. Adımların hepsi orada, sıra yanlış.
Belirsiz adım
Bazı tarifler gramı bile verir: 1 kilo un, yarım kilo domates, yarım kilo biber, 250 gram yoğurt. Yine de sonunda “kulak memesinden biraz sert olana kadar yoğur” der. Bir insana yeter. Bilgisayar sorar: Ne kadar sert?
Dünya değişirse
Tarif “damda kurut” der. Yağmur yağarsa ne yapacağını yazmaz. Islak kalan hamurun küflenebileceği söyleniyor. İyi bir algoritma, işler ters gidince ne yapılacağını da yazar.
Sıra sende
Evinde hiç kâğıda yazılmamış bir tarif var mı?
Annenin, babaannenin ya da senin kafandaki bir tarif. Onu bilgisayarın anlayacağı kadar açık, numaralı adımlarla yazmayı dene.
“Biraz”, “göz kararı”, “kıvamında” gibi bir kelimeye geldin mi? Bir algoritmanın en zor yerini buldun.
Mutfak sahneleri Oğuz’un arkadaşlarının tarhana gününden, onların izniyle. Hamurdaki pH ve su sayıları, tarhana mayalanmasını ölçen bilimsel bir çalışmadan. Tarifin adımları bölgeden bölgeye değişir. Burada anlattığımız, birçok evde ortak olan iskelet.
Başa dön