Bilgisayar ve Yazılım

Çalışma Kağıtlarını Ve Gardırobunuzu Düzenlemek İçin En İyi Algoritma

Gardırobunuz ve çalışma masanız her daim karmaşa içindeyse bilgisayarların depolama ve dosyalama algoritmaları size yardımcı olabilir.

Gardırobunuzun karmaşa içinde olduğunu düşünün. İçinde onlarca kıyafet var ama dolabınızın onu taşıyacak kapasitesi yok. Her yeni kıyafeti tıkıştırmayı denediğinizde o birkaçını reddediyor ve giysilerinizi yerlere saçılmış buluyorsunuz. Bu duruma canınız sıkılıyor, kıyafetlerinizi düzenlemeye karar veriyorsunuz. İşte tam bu noktada çetrefilli bir seçim ile karşı karşıyasınız. “Hangi kıyafetlerinizi elinizde tutacaksınız ve hangilerinden vazgeçeceksiniz?”. Belki de o 2 yıl önce aldığınız siyah kazağı elden çıkartmanın zamanı gelmiştir. Ya da birkaç yazlık atarsınız ve yaz geldiğinde bu sefer birkaç kışlık atıp dengeyi sağlarsınız. Bunların dışında birkaç çözüm yolu da siz üretebilirsiniz. Fakat optimal (en iyi) stratejiyi bulmak için bilgisayarların bu sorunun üzerinden nasıl geldiğine bir göz atmamız gerekebilir.

Bilgisayarlar Kalabalıkla Nasıl Baş Ederler?

Önbellekleme

Bilgisayarlar da sizin dolabınız ile yaşadığınız benzer bir sorun ile karşı karşıyadır. Depolama alanları sınırlıdır ve bu kısıtlı alan içinde neyin nasıl saklanacağı ve neyin daha hızlı ulaşılması gerektiği ile ilgili kararların verilmesi gerekir. Bilgisayarlar bu problem karşısında önbellekleme (caching) adı verilen bir metodu kullanır. Bu önbellekler üzerinde saklanan verinin ihtiyaç duyulması halinde daha hızlı ve kolay ulaşılmasını sağlar. Diğer bir deyişle, karmaşa içinde olan gardırobunuzdan giymek istediğiniz o kırmızı kapüşonlu hırkayı daha rahat çekip çıkartmanıza olanak tanır.

Önbelleklerin de tahmin edileceği üzeri sınırsız bir depolama alanı yoktur. Bir önbelleğin kapasitesindeki sınıra ulaştığımızda eğer başka bir şeyler de saklamak istiyorsak, yer açmamız gerekir. Aynı gardırop probleminde olduğu gibi. Bilgisayar biliminde bu alan açma işlemine “önbelleğe yazma ve silme (cache replacement)” adı verilir. İşte tam bu noktada bilgisayarların önbellekten neyi çıkartacağını karar vermesini sağlayan algoritmalar, sizin de gardırobunuzdan hangi kıyafetleri çıkartacağınıza karar vermeniz için en uygun strateji olabilir. Bilgisayar bilimciler bu sorunun üstesinden gelmek için birtakım farklı stratejiler denemişlerdir.

Rastgele Çıkarma (Random Eviction)

Adından da anlaşılabileceği gibi bu algoritma, tamamen dolu bir önbelleğe yeni bir veri ekleneceği zaman yeni verinin halihazırda bulunan rastgele bir verinin üzerine yazılmasını savunur. Bu bizim problemimizde gözünüzü kapatıp gardırobunuzdan bir kıyafet seçmenizi ve onu, en sevdiğiniz kıyafetiniz olsa bile, elden çıkartmanıza denk gelir.

İlk Giren İlk Çıkar (First In-Out)

Bu algoritma ise önbellekten bir veri kaldırılacağı zaman önbelleğe alınan ilk veriden başlanmasını önerir. Yani en uzun süredir önbellekte bulunan veri çıkarılır ve yeni veri eklenir. Bu algoritmayı uygulamaya karar verirseniz, en eski giysinizden başlayarak, hala sıklıkla giyiyor olsanız bile, onları atmanızı ve böylelikle de dolabınızda yer açmanız gerekmektedir.

Son Zamanlarda En Az Kullanılan (Least Recently Used)

Bu algoritma yakın zamanda kullanılmayan verilere odaklanır. Önbelleğe yeni veri ekleneceği zaman eski verilere bakılır. Yeni veri, son zamanlarda diğerlerine oranla daha az kullanılan verinin yerini alır. Yani gardırobunuzu düzenleme karar verdiğinizde kendinize şu soruyu sormalısınız. “Bu kıyafeti son zamanlarda ne sıklıkla giydim?” .Bu algoritma sizi ne en sevdiğiniz ne de sıklıkla kullandığınız eski bir kıyafeti elde çıkartmaya zorlamaz. Sadece son zamanlarda en az kullandığınız ya da hiç kullanmadığınız kıyafetlere karar vermenizi ve onlara dolabınızda daha fazla yer vermemenizi önerir. Kısacası gardırop problemimiz için en iyi strateji “Son Zamanlarda En Az Kullanılanı At” stratejisidir.

Düzenleme Ve Dosyalama

Giysilerimizin hepsini gardırobumuzdan çıkarttık ve son zamanlarda en az kullanılanları belirleyip onları ayırdık. Şimdi bomboş bir dolaba ve ona yerleştirmemiz gereken kıyafetlere sahibiz. Bu durumda kıyafetlerimizi rastgele yerleştirmeyi seçebiliriz. Fakat her gün giydiğimiz bir ceket için dolabın arka taraflarında bir yer seçmek hem ona ulaşımımızı zora sokacaktır hem de bu çaba içinde dolabın karışmasına neden olacaktır. O yüzden bu yeni karşılaştığımız kıyafetleri düzenleme-yerleştirme problemi içinde uygun bir çözüm yolu seçmemiz gereklidir.

Dosyaları gruplamak ve ya çalışma kağıtlarını sıralamak bu düzenleme probleminin ortaya çıktığı diğer durumlardır. Bu durumda da rastgele bir sıralama yöntemi seçebilceğiniz gibi alfabetik bir sıralama yöntemi de seçebilirsiniz. Çalışma kağıtlarınıza attığınız başlıklara bakarsanız ve onları o başlıkların alfabetik sıralamasına göre düzenlersiniz. Böylelikle de “Basit Makineler” konusu için çalışma kağıdınıza göz atacağınız zaman nereye bakacağınızı bilirsiniz.

Bu strateji rastgele sıralamaya göre daha verimli olmasına rağmen yine de en verimli strateji olmayabilir. Aslında bazı dezavantajları vardır. Örneğin son zamanlarda işlediğiniz “Belirli İntegral” konusu için çalışma kağıdına erişebilmek için yine de “B” harfiyle başlayanlar kategorisindeki birçok çalışma kağıdını incelemeniz gereklidir. “Basit Makineler” konusunu belki geçen dönem işlediniz lakin o kağıdın konum olarak daha önde ve ya daha üstte olması, sizin “Belirli İntegral” kağıdına erişiminizde zaman kaybına neden olacaktır.

dosyalama sistemi

Nugochi Dosyalama Sistemi

Japon ekonomist Yukio Noguchi’nin dosyalama sistemi, bizim sorunumuzu çözmemizin en uygun yolu olabilir. Bu dosyalama sisteminin uygulanması temelinde oldukça basittir ve oldukça verimli sonuçlar doğurur. Bir karton kutunuz olduğunu düşünün ve onun içine sonradan da erişmek isteyeceğiniz bazı dosyaları yerleştireceksiniz. Tüm belgeleri yerleştirirken sol taraftan başlayarak koyuyorsunuz. Yeni bir belge eklenmesi gerektiğinde ise onu kutunun en soluna ekliyorsunuz. Eski bir belgeye ihtiyaç duyduğunuzda onu kutudan çıkartıp kullandıktan sonra o belgeyi eski konumuna değil kutunun en soluna ekliyorsunuz. Böylelikle de kutudaki belgeler soldan sağa doğru son zamanlarda en çok kullanılandan en az kullanılana göre sıralanmış oluyor.

Bu metodu gardırop düzenleme problemimize uyarlarsak, gardırobunuza kıyafetleri yerleştirirken en çok kullandığınız kıyafetlerini ön taraflara yerleştirmelisiniz. Arka tarafta bulunan bir kıyafeti sık kullanmaya başladığınızda onu ön tarafa doğru kaydırmalısınız. Böylelikle de sıklıkla kullandığınız kıyafetlerinizi kolayca erişebilirsiniz. Bu sistem bize en iyi stratejiyi sunar

Çalışma kağıtlarına gelicek olursak, onları düzenlemek için gardıroplarımızı düzenlemek kadar çaba sarf etmemize gerek olmayabilir. Çünkü birçoğumuz belki farkına bile varmadan bahsettiğimiz stratejiyi uyguluyor. Masanızın üzerinde üst üste yığılmış kağıtları düşünün. Her yeni çalışma kağıdı hazırlandığında o yığının üstüne bırakılır ve o yığın gittikçe büyür. Bir kargaşa olarak gözükse de aslında o yığın çalışma kağıtlarınızı düzenlemek için en iyi stratejidir.

Kaynakça: Algorithms to Live By The Computer Science of Human Decision Tom Griffith, Brian Christian, 2016

Matematiksel

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.