Oyun Seni İzliyor: Dynamic Difficulty Adjustment Nasıl Çalışır?

Bir bölümde art arda yenildiğinizde düşmanların gizlice yavaşladığını veya oyunu rahatça geçtiğinizde rakiplerin birden akıllandığını düşündünüz mü? Bu değişim her zaman hayal gücünüzün ürünü değildir. Dynamic Difficulty Adjustment, yani Dinamik Zorluk Ayarlama (DDA), oyuncunun performansını izleyip oyunun zorluk seviyesini gerçek zamanlı olarak değiştiren bir tasarım yaklaşımıdır.

oyun-seni-izliyor-79

Devamı...

Order Book Algoritmaları: Alış ve Satış Emirlerinden Piyasanın Yapısını Okumak

order-book-algoritmalari-36

Bir finansal piyasayı yalnızca son işlem fiyatından izlemek, futbol maçını sadece skor tabelasından takip etmeye benzer. Order book, yani emir defteri ise sahanın tamamını gösterir: Hangi fiyatlarda alıcılar bekliyor, satıcılar nerede yoğunlaşıyor ve likidite hangi tarafta inceliyor? Doğru algoritmalarla bu hareketli tabloyu inceleyerek piyasanın kısa vadeli yapısı hakkında değerli ipuçları çıkarabiliriz.

Devamı...

MMORPG Sunucu Mimarisi: Binlerce Oyuncu Tek Dünyada Nasıl Buluşuyor?

Bir MMORPG dünyasına bağlanıp kalabalık bir şehre girdiğinizde yüzlerce oyuncuyu koşarken, ticaret yaparken ve devasa yaratıklarla savaşırken görebilirsiniz. Ekrandaki bu canlılığın arkasında ise tek bir süper bilgisayar değil; görevleri paylaşan, birbirleriyle sürekli haberleşen ve arızalara karşı hazırlıklı çalışan dağıtık sunucular bulunur.

mmorpg-sunucu-mimarisi-78

Devamı...

Milyonlarca Fiyat Verisini Anlaşılır Finansal Grafiklere Dönüştürmek

Finansal piyasalarda veri kıtlığı değil, veri bolluğu problemdir. Saniyede binlerce işlem gerçekleşirken birkaç aylık fiyat geçmişi bile milyonlarca satıra ulaşabilir. Bu verilerin tamamını tek bir grafiğe göndermek ise hem tarayıcıyı yorar hem de ortaya finansal analizden çok rengârenk bir ip yumağı çıkarır. İyi bir görselleştirme sistemi, veriyi yalnızca çizmez; zaman ölçeğine göre özetler, önemli hareketleri korur ve kullanıcıya doğru hikâyeyi anlatır.

Devamı...

Mars Kolonilerinde Kaynak Yönetimi: Oksijen, Su ve Enerjiyi Algoritmalarla Dengelemek

Mars’ta koloni kurmak yalnızca roket göndermekten ibaret değildir. Asıl macera, astronotlar indikten sonra başlar: Her nefes oksijen tüketir, her duş su rezervini azaltır ve çalışan her cihaz enerji ister. Dünya’da musluğu açık unutmak küçük bir hata olabilir; Mars’ta ise simülasyonun kırmızı alarm vermesine neden olur. Bu nedenle koloni tasarımlarında kaynakların üretim, tüketim, depolama ve geri dönüşüm süreçleri algoritmik olarak modellenmelidir.

Devamı...

Kamera-Robot Kalibrasyon Hataları El-Göz Koordinasyonunu Nasıl Bozar?

Bir robotun kamerayla gördüğü parçayı doğru noktadan yakalaması, iki farklı dünyanın aynı koordinat dilini konuşmasına bağlıdır. Kamera-robot kalibrasyonundaki birkaç milimetrelik kayma veya küçük bir açı hatası, robot kolunun hedefi ıskalamasına, parçaya eğri yaklaşmasına, hatta pahalı bir çarpışmaya yol açabilir. Kısacası kamera doğru görse ve robot kusursuz hareket etse bile aralarındaki tercüman hatalıysa el-göz koordinasyonu bozulur.

Devamı...

İlaç Keşfinde Yapay Zekâ: Molekülleri Bilgisayarda Avlamak

ilac-kesfinde-yapay-29

Yeni bir ilaç geliştirmek, milyarlarca olası molekül arasından doğru anahtarı bulmaya benzer. Geleneksel yaklaşımda araştırmacılar çok sayıda bileşiği sentezleyip laboratuvarda test eder. Yapay zekâ ise henüz deney tüpüne dokunmadan hangi moleküllerin umut vadettiğini tahmin ederek arama alanını küçültür. Böylece laboratuvar ortadan kalkmaz; yalnızca daha seçici, hızlı ve ekonomik kullanılır.

Devamı...

Finansal Dolandırıcılık Tespiti: Makine Öğrenmesi Şüpheli İşlemleri Nasıl Yakalar?

Kredi kartınızla gece yarısı başka bir ülkede yüksek tutarlı alışveriş yapıldığını düşünün. Bankanın saniyeler içinde işlemi durdurup size bildirim göndermesi sihir değil; geçmiş işlemlerden davranış kalıpları öğrenen makine öğrenmesi sistemlerinin eseridir. Ancak bu sistemlerin görevi yalnızca “garip” işlemleri bulmak değil, gerçek müşterileri gereksiz yere rahatsız etmeden dolandırıcılığı mümkün olduğunca erken yakalamaktır.

finansal-dolandiricilik-tespiti-12

Devamı...

Dijital İkizler: Hastanın Sanal Kopyasıyla Tedaviyi Önceden Denemek

Bir ilacı hastaya vermeden önce etkilerini onun bilgisayardaki sanal kopyası üzerinde deneyebilseydik nasıl olurdu? Dijital ikiz yaklaşımı tam olarak bu fikrin peşinden gidiyor. Sensörlerden, tıbbi görüntülerden, laboratuvar sonuçlarından ve klinik kayıtlardan beslenen dinamik bir model; hastanın olası tepkilerini simüle ederek doktorlara karar desteği sunuyor.

Devamı...

C++’ta Manuel Kaynak Yönetimi: Exception Gelince Sızıntı Başlar

C++ geliştirirken new ile bellek ayırıp işimiz bitince delete çağırmak ilk bakışta oldukça düzenli görünür. Fakat kodun ortasında bir istisna fırlatıldığında kontrol akışı planladığımız yolu izlemez. Temizlik satırına ulaşılamaz ve ayrılan kaynak sahipsiz kalır. Program çalışmaya devam etse bile bellekte küçük bir hayalet dolaşmaya başlar.

Devamı...

Cerrahî Navigasyon Sistemleri: Vücudun İçinde GPS Gibi Yol Bulmak

Bir cerrahın milimetrelerle ölçülen bir hedefe ulaşması gerektiğini düşünün: Beyindeki küçük bir tümör, omurgaya yerleştirilecek vida veya eklem içindeki hassas bir bölge… Cerrahî navigasyon sistemleri; tıbbi görüntüleri, konum sensörlerini ve matematiksel dönüşümleri birleştirerek cerraha aletinin vücut içindeki yerini gerçek zamanlı gösterir. Kısacası sistem, otomobillerdeki GPS’in ameliyathaneye uyarlanmış, çok daha hassas kuzenidir.

Devamı...

C++ Nesne Dilimlenmesi: Kopyalama Sırasında Kaybolan Kimlik

C++’ta kalıtım kullanırken türetilmiş bir nesneyi temel sınıf türündeki değişkene değer olarak atamak ilk bakışta zararsız görünebilir. Kod derlenir, program çalışır ve çoğu zaman hata mesajı da alınmaz. Fakat bu işlem sırasında nesnenin yalnızca temel sınıfa ait bölümü kopyalanır; türetilmiş sınıfın eklediği veriler ve davranış kimliği kaybolur. İşte bu sessiz bilgi kaybına nesne dilimlenmesi, yani object slicing denir.

Devamı...

Biyolojik Gürültüden Anlamlı Veriye: EEG, EKG ve EMG Sinyalleri Nasıl Temizlenir?

Kalbin elektriksel ritmini, beynin düşünürken oluşturduğu dalgaları veya kasların çalışırken ürettiği gerilimleri bilgisayarda görebiliyoruz. Ne var ki elektrotlardan gelen ham EEG, EKG ve EMG kayıtları çoğu zaman tertemiz değildir; şebeke elektriği, hareket, terleme ve hatta göz kırpma bile ölçüme karışır. Tıbbi sinyal işleme, işte bu gürültülü elektrik çorbasından klinik açıdan anlamlı bilgiyi ayırma sanatıdır.

Devamı...

Apollo Uçuş Bilgisayarı: 2 KB Bellekle Ay’a Giden Yazılım

Bugün birkaç tarayıcı sekmesi yüzünden gigabaytlarca bellek tüketebilirken NASA, insanları Ay’a yaklaşık 2 KB yazılabilir belleğe sahip Apollo Guidance Computer (AGC) ile indirdi. Üstelik bu bilgisayar yalnızca rota hesaplamıyor; sensörleri okuyor, motorları yönetiyor ve astronotlarla iletişim kuruyordu. Kısacası AGC, donanım kısıtlarının yaratıcı yazılım mimarisine nasıl dönüştürülebileceğini gösteren tarihî bir gömülü sistem şaheseridir.

apollo-ucus-bilgisayari-20

Devamı...

Robotlarda Kalman Filtresi: Gürültülü Sensörlerden Güvenilir Durum Tahmini

robotlarda-kalman-filtresi-50

Bir robotun sensörleri dünyayı kusursuz biçimde göremez. Tekerlek enkoderleri kayabilir, GPS ölçümleri sıçrayabilir ve ivmeölçer verileri titreşimden etkilenebilir. Kalman filtresi, gürültülü ölçümleri robotun hareket modeliyle birleştirerek konum, hız veya yönelim gibi doğrudan güvenemediğimiz durumları daha isabetli tahmin eder. Kısacası robota, “Sensöre inan ama her söylediğine de kanma” yaklaşımını kazandırır.

Devamı...

Robotlarda Dış Kuvvet Tahmini: Momentum Gözlemcisi Nasıl Çalışır?

Bir robot kolu insana, duvara veya çalışma masasındaki beklenmedik bir nesneye temas ettiğinde bunu nasıl fark eder? Her ekleme pahalı kuvvet-tork sensörleri yerleştirmek mümkün olsa da robotun dinamik modelinden yararlanmak daha ekonomik bir seçenektir. Momentum gözlemcisi, ölçülen eklem konumları ve uygulanan torklar arasındaki tutarsızlığı izleyerek dış kuvvetleri tahmin eder. Kısacası robot, “Hesaplarıma göre böyle hareket etmemeliydim!” dediği anda temastan şüphelenir.

robotlarda-dis-kuvvet-66

Devamı...

Robotlarda Çarpışma Tespiti: Gerçek Zamanlı Planlamanın Görünmeyen Hesaplama Yükü

Bir robotun A noktasından B noktasına ilerlemesi kolay görünür; ta ki masalar, insanlar, diğer robotlar ve robotun kendi eklemleri sahneye çıkana kadar! Gerçek zamanlı hareket planlamasında sistem yalnızca bir rota üretmez, bu rota üzerindeki binlerce aday durumun güvenli olup olmadığını da sınar. Bu nedenle çarpışma tespiti, planlayıcının görünmeyen ama çoğu zaman en pahalı çalışanıdır.

Devamı...

Python’da == Operatörü: __eq__ Olmadan Neden Kimlik Karşılaştırılır?

Python’da iki özel sınıf nesnesini == operatörüyle karşılaştırdığınızda, alanları tamamen aynı olsa bile sonucun False çıkması ilk bakışta şaşırtıcıdır. Bunun nedeni, sınıfta __eq__ metodu tanımlanmadığında varsayılan eşitlik davranışının nesnelerin içeriklerine değil, pratikte kimliklerine dayanmasıdır. Başka bir ifadeyle Python, “Bu iki nesne aynı bilgiyi mi taşıyor?” yerine “Bunlar bellekteki aynı nesne mi?” sorusunu sorar.

pythonda-operatoru-__eq__-28

Devamı...

Python’da except Exception: Hataları Yakalamak mı, Saklamak mı?

Python’da hata yakalamak, uygulamanın ilk tökezlemede yere kapaklanmasını önler. Ancak except Exception ifadesini her yere serpiştirmek, zemini güvenli hâle getirmek yerine çukurların üzerini halıyla kapatmaya benzeyebilir. Program çalışıyor görünürken veri kaybı, yanlış sonuçlar ve bulunması zor hatalar sessizce büyüyebilir.

pythonda-except-exception-81

Devamı...