Rastgelelik Algoritmasından Kahve Köpüğüne: Bir Günlük Akışın Dijitalleştirilmesi
Merhaba sevgili okurlar ve devre tahtamın tozunu almayı seven ruhlar,
Bazen en karmaşık algoritmalar bile, büyük bir veri setini işlemeye çalışmaktan doğan soğuk mantıksal çıkarımlardır. Ama bazen de en büyük ilham kaynağı, sabah kahvesinin aceleyle hazırlanışından ya da İstanbul trafiğinin o kaotik ritminden gelir. Benim için bu iki dünya – katı kodlama mantığı ile günlük yaşamın organik kaosu – aslında birbiriyle bağlantılı. Ve bu yazıda, "Rastgelelik" kavramını hem bir bilgisayar bilimleri konusu olarak ele alacağız hem de benim günlük yaşantımdaki o küçük, kaotik anları bu mercekle inceleyeceğiz.
Gürültüden Sinyale: Yaşamın Analog Giriş/Çıkışları
Bir mikrodenetleyiciye girdiğimiz veriyi düşündüğünüzde, her şey inanılmaz derecede temiz ve belirli bir noktaya odaklıdır. Eğer sensörden gelen voltajı okuyorsam, bu benim için net bir 0 ile 5V aralığındadır; siyah veya beyaz gibidir. Ancak hayat böyle değil. Sabah kalkıyorum, pencereden dışarı bakıyorum. Bir uğultu var, kedi mi geçti, korna mı çalıyor bilmiyorum. Bu gürültü benim için bir veri akışı değil, filtrelenmesi gereken ham girdidir.
Bu noktada benim için en büyük meydan okuma, bu analog yaşam girdisini, bilgisayarın anlayacağı o kusursuz dijital formata dönüştürmektir. Tıpkı bir mikrofonun ses dalgasını ADC (Analogdan Dijitale Dönüştürücü) ile sayılara çevirmesi gibi.
Kodun Ritmi ve Şehrin Senfonisi
Geçenlerde bir IoT projesine başladım. Amacımız, mikrodenetleyicinin okuduğu ortam sıcaklığı verisini (örneğin 24.7°C) alıp, bu veriyi bir web paneline görselleştirmekti. Her şey yolundaydı. Sensör okuması tutarlıydı, PID kontrol döngüsü stabil çalışıyordu. Buradaki sabır, bir yazılımcının balzami gibidir; hataları bulup düzeltme sürecidir.
Fakat o gün, öğle arasında sahile inmiştim ve vücudum tamamen farklı bir 'veri toplama moduna' girmişti. Deniz sesi, güneşteki metalin çatırdayışı, yanımda yürüyenlerin ayak seslerinin ritmi... Bunların hepsi benim için o anlık veri paketleriydi. Hızlıca not defterimi karaladım, sanki bir ses kaydı alıyormuşum gibi. Bu notlar benim için o anki "ambient noise" idi; bilgisayarın görmediği, ancak deneyimleyen tarafın kaydettiği kısımdı.
Rastgelelik Üzerine Bir Deneme
Bu iki farklı veri akışını birleştirmek zor oldu ama bu sürüklenme hali sanırım yaratıcılığın motoru. Bir yandan Python ile bir simülasyon yaparken, diğer yandan da bu simülasyona gerçek hayatın öngörülemezliğini enjekte etmeye çalışıyorum.
Mesela, bir karakterin hareketini simüle ederken sadece matematiksel bir rastgele sayı üreteci kullanmak yerine, o günkü hava durumunun değişkenliğini (rüzgarın şiddeti gibi), bu algoritmanın başlangıç koşuluna bir miktar bilinmeyen girdi olarak dahil etmeyi düşündüm. Bu, sadece kodun güzelleşmesi değil, aynı zamanda o simüle edilmiş dünyanın "gerçek hayata nefes almasını" sağlıyor.
Sonuç olarak; ister bir Raspberry Pi'nin üzerindeki ışık takımı olsun, ister İstanbul'un o bazen nefes kesen, bazen de tahammül edilmesi gereken kaotik uğultusu; her ikisi de temelde girdi, işlem ve çıktı denen üç aşamadan ibaret. Sadece birinin substratı silikon dioksit, diğerinin ise bilinmezlikten ibaret olması fark yaratıyor.
Bu küçük denklemleri kurmaya devam edeceğim. Bir sonraki deneyimde, belki de trafiğin yoğunluğuna göre servo motorun hareket hızını ayarlayan bir mekanik prototip üzerinde çalışacağım. Takipte kalın!