Gardırop Düzenlerken Bütün Kararlarımın Aynı Olduğunu Gördüm

Gardırop düzenlerken bir trade-off fark ettim. İki strateji var: pijamaları üst üste koymak, ya da tişört-pijama-tişört şeklinde sıralamak.
Üst üste koyarsan koyma maliyeti 1, alma maliyeti n. Sıralı koyarsan koyma maliyeti n, alma maliyeti 1. Yani biri yazma pahalı okuma ucuz, öbürü tam tersi.
Bu tanıdık geldi. Çünkü bu eager vs lazy evaluation. Precompute vs compute-on-demand. Aynı yapı.
Ama bir asimetri var. Eğer gelecekte pijama giymekten vazgeçersem, sıralı düzende yatırım çöpe gider. Üst üste düzende kayıp yok, çünkü zaten yazma maliyeti 1'di. Sıralı düzen geleceğe atılan bir bahis; üst üste düzen belirsizliğe karşı dayanıklı.
Sonra başka bir şey gördüm. Sıralı düzende pijamayı alırken düşünmem gerekmiyor, O(1). Ama üst üste düzende her seferinde düşünmem lazım.
Düşünmek context switch'tir. Kod modundan pijama moduna geçmek, sonra geri dönmek. Bu maliyetli. Yani üst üste düzen yazma maliyetini 1 göstermiyor; gizli bir maliyet var, her alımda context switch.
Bu noktada düşünmenin tanımı çıktı. Veri zaten işlenmiş formda değilse, yani O(1) değilse, düşünürüz. Düşünme, işlenmemiş veriyi işlemektir.
Bu data transfer gibi. Bir noktadan öbürüne veri taşımak. Format uymuyorsa arada bir processor olur. Ve her processor kayıplıdır. Enerji transferinde de aynı: belirli bir miktar yolda kaybolur, sıcaklık olarak geri döner. Düşünme süreci de öyle, kayıplı bir processor.
Şimdi soru şu: ne zaman batch process yapmalı (sıralı düzen), ne zaman lazy bırakmalı (üst üste düzen)?
Cevap geleceğin belirliliğine bağlı. Gelecek belliyse batch yap, context switch maliyetinden kurtul, akışta kal. Gelecek belirsizse lazy bırak, boşa yatırım yapma.
Aslında bunu düşünüyordum çünkü kendi kararlarımı organize etmek istiyorum. Hangilerini şimdi vereyim, hangilerini erteleyeyim?
Sanırım kural şu: kararın sonucunu çok kez kullanacaksam ve koşullar stabil ise, şimdi ver. Tek seferlikse ya da koşullar değişkense, ertele.
Gardırop hiç önemli değildi. Pijama da önemli değildi. Gördüğüm şey iki maliyet tipi arasındaki değiş-tokuştu: yazma maliyeti vs okuma maliyeti. Sonra bunu hemen başka alanlara taşıdım: bilgisayar bilimi, termodinamik, biliş, karar teorisi. Dört alan, tek yapı.
Çoğu insan pijamaya bakar, pijama görür. Ben pijamaya bakıyorum, trade-off görüyorum. Pijama sadece taşıyıcı; asıl nesne, alanların altındaki ortak yapı.
Son güncelleme
Bu yararlı oldu mu?