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

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. 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.

Ancak aslında bilgisayarlar da sizinle aynı sorunu yaşarlar. Sonuçta depolama alanları sınırlıdır. 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. Şimdi gelin onların bu sorunu nasıl çözdüğüne bakalım.

Bilgisayarlar Kalabalıkla Nasıl Baş Ederler?

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)” denir. İş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.

Rastgele Çıkarma (Random Eviction)

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. 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. 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. Aslında gardırop problemimiz için en iyi strateji budur.

Düzenleme Ve Dosyalama

Giysilerimizin hepsini gardırobumuzdan çıkarttık. Ardından son zamanlarda en az kullanılanları belirleyip 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 ona ulaşımımızı zora sokacaktır. Ayrıca bunu yapmaya çabalarken dolabımız yine karışacaktır. O yüzden kıyafetleri düzenleme-yerleştirme problemi için de uygun bir çözüm yolu seçmemiz gereklidir.

dosyalama sistemi

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çebileceğ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.

Ancak bu strateji aslında verimli değildir. Örneğin son zamanlarda işlediğiniz “Belirli İntegral” konusu çalışma kağıdına erişmek için “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 üstte olması, sizin “Belirli İntegral” kağıdına erişiminizde zaman kaybına neden olacaktır.

Noguchi 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ış olur.

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ını 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.



Kaynaklar ve ileri okumalar:

  • How Should You Organize Your Closet? Exactly Like a Computer Organizes Its Memory; yayınlanma tarihi: 20 Nisan 2016; Bağlantı: https://www.wired.com/
  • How I Use Data Structures and Algorithms to Help My Wife Organize the Closet; yayınlanma tarihi: 15 Temmuz 2020; Bağlantı: https://medium.com/

Dip Not:

Matematiksel, 2015 yılından beri yayında olan ve Türkiye’de matematiğe karşı duyulan önyargıyı azaltmak ve ilgiyi arttırmak amacıyla kurulmuş bir platformdur. Sitemizde, öncelikli olarak matematik ile ilgili yazılar yer almaktadır. Ancak bilimin bütünsel yapısı itibari ile diğer bilim dalları ile ilgili konularda ilerleyen yıllarda sitemize dahil edilmiştir. Bu sitenin tek kazancı sizlere göstermek zorunda kaldığımız reklamlardır. Yüksek okunurluk düzeyine sahip bir web sitesi barındırmak ne yazık ki günümüzde oldukça masraflıdır. Bu konuda bizi anlayacağınızı umuyoruz. Ayrıca yazımızı paylaşarak da büyümemize destek olabilirsiniz. Matematik ile kalalım, bilim ile kalalım

Matematiksel

Kamil Anıl

Cevaplardan çok sorulara merak duyan, bilginin yaygınlaşması için katkıda bulunmak isteyen ,eğitim hayatını ODTÜ'de sürdüren bir öğrenciyim. Ayrıca bilim ve matematiğin uçsuz bucaksız olduğuna ve herkese ulaşabileceğine inanmaktayım. Yeter ki ne kadar zaman geçerse geçsin "hala öğreniyorum" diyebilelim.

Bu Yazılarımıza da Bakmanızı Öneririz