ÖSYM Tarzı Makaleler – Yazılar 57
HAYATIMIZDAK ALGORİTMALAR -ÇİZELGELEMELER
İlk Önce Öncelikler:
Günlerden Pazartesi ve sabah saatleri. Elinizde boş bir çizelge ve tamamlanması gereken işlerden oluşan uzun bir liste var. Bazıları sadece bir görevin tamamlanmasından sonra başlanabilecek türden (bulaşık makinesini boşaltmadan kirli bulaşıkları içine yerleştiremezsiniz) ve bazıları da sadece belirli bir zaman geldiğinde başlanabilecek türden (eğer çöpünüzü Salı akşamın dan önce sokağa çıkarırsanız komşularınız sizi şikâyet edecek tir). Bazılarının çok kesin bitiş tarih ve saatleri vardır, diğerleri ise istenilen zamanda yapılabilir ve birçoğu da bu iki durumun arasında bir özelliğe sahiptir. Bazıları acildir ancak çok da önemli değillerdir. Bazıları ise önemlidir fakat acil değildir. Aristo’nun “Bizler sürekli tekrarladığımız şeyden ibaretiz” dedi ği aklınıza gelir; yeri süpürmek, çocuklarınızla daha fazla zaman geçirmek, vergilerinizi zamanında ödemek ve Fransızca öğrenmek istersiniz.
Peki, o zaman ne yapacaksınız, ne zaman yapacaksınız ve bunu hangi sıra ile yapacaksınız? Hayatınız sizi bekliyor.
Gün içerisinde yaptığımız şeyleri bir sıraya sokmanın bir şe kilde yolunu buluyor olsak da kural olarak kendimizi bu konuda çok iyi olarak görmeyiz, zamanı yönetmek üzerine yazılan ve çok satan kitaplar da bizi iyi görmez. Fakat ne yazık ki bu kitaplarda bulduğumuz yol gösterici bilgiler genellikle farklı ve tutar sızdır. İş Bitirici (Getting Th ings Done) kitabı iki dakika ya da daha kısa sürecek işleri süratle yapmayı içeren bir politikayı sa vunur. Bu kitabın rakibi olan ve çok satanlar arasında yer alan Eat That Frog! (Şu Kurbağayı Ye!) kitabı ise bizlere en zor görevden işe başlama ve daha kolaylara doğru ilerleme tavsiyesini verir. The Now Habit (Şimdiki Alışkanlıklarımız) ise genelde yaptığımıza ters olarak, bir kişinin ilk önce sosyal işlerini ve boş zamanlarını planlamasını ve daha sonra kalan boşlukları diğer işlerle doldurmasını önerir. “Amerikan psikolojisinin babası” William James, “tamamlanmamış bir işe saplanıp kalmak kadar insanı tüketen başka bir şey yoktur” derken Frank Partnoy ise Wait (Bekle) isimli eserinde kasıtlı olarak bir şeyleri hemen yap mamayı savunmaktadır.
Her uzmanın farklı bir sistemi vardır ve kimi dinleyeceğinizi bilmek zordur.
Vakit Geçirmek Bir Bilim Oluyor:
Zamanı yönetmek zamanın kendisi kadar eski bir sorun olarak görülmesine rağmen çizelgeleme bilimi endüstri devrimi zamanında makine tezgâhlarında başlamıştır. Varlıklı bir avukatın oğlu olan Frederick Taylor 1874’te Harvard’a kabul mektubunu, Philadelphia’ da bulunan Enterprise Hydraulic Works ‘de makinist çırağı olmak için geri çevirdi. Dört yıl sonra çıraklığını tamamladı ve Midvale Steel Works’de çalışmaya başladı ve bura da torna tezgâhı operatörlüğünden makine tezgah ustabaşılığına, en sonunda da baş mühendisliğe yükseldi. Bu süreçte, sorumlu olduğu makinelerin (ve insanların) zamanı iyi bir şekilde kullanmadığını düşündü ve bu nedenle “bilimsel yönetim” adını verdi ği bir disiplin geliştirdi.
Taylor, herkesin görebileceği bir yere asılan ve atölyenin işlerini gösteren bir panodan ibaret olan planlama ofisi kurdu. Pano atölyedeki tüm makineleri, her bir makine tarafından o anda yapılmakta olan işi ve bekleyen işleri göstermekteydi. Bu uygulama, Hoover Barajı’ndan Interstate Otobanı ‘na kadar 20’nci yüz yılın birçok iddialı inşaat projelerine katılan Taylor’ın meslektaşı Henry Gantt (191 O’ da Gantt Şemasını geliştirmiştir) tarafından daha da geliştirildi. Yüzyıl sonra bile Gantt Şemaları halen Amazon, IKEA ve SpaceX gibi şirketlerdeki proje yöneticilerinin duvarlarında yer almaya devam etmektedir.
Taylar ve Gantt çizelgelemeyi bir çalışma alanı haline getirerek buna görsel ve kavramsal bir şekil verdiler. Ancak hangi çizelgelerin en iyisi olduğuna dair temel problemi çözüme kavuşturmadılar. Bu sorunun çözülebileceğine dair ilk ipucu ise 1954 senesinde RAND Şirketi’nde matematikçi olarak görev yapan Selmer Johnson tarafından yayımlanan bir yazıya kadar ortaya çıkmadı.
Johnson’ın üzerinde çalıştığı senaryo kitap ciltlemeydi. Her kitap baskı makinesinde basılmakta ve başka bir makinede ciltlenmekteydi. İki makine içeren bu kurgunun evlerimizdeki örneği, çamaşır yıkama ve kurutma makinesidir. Çamaşırlarınızı yıkamak istediğinizde bu çamaşırlar sırasıyla önce çamaşır, sonra da kurutma makinelerinden geçmek zorundadır ve her seferinde makinelere yüklenen farklı miktardaki çamaşır nedeniyle işlem f arklı sürelerde tamamlanacaktır. Oldukça lekeli çamaşırları yıkamak normalden daha uzun sürerken kurutmak, normal zaman da tamamlanabilir fakat daha fazla miktardaki çamaşırı kurutmak daha uzun sürerken, bunları yıkamak ise nispeten normal bir sürede tamamlanabilir. Bu nedenle Johnson şu soruyu sor muştu: Eğer aynı gün çeşitli miktarlarda yıkamanız gereken çamaşırınız var ise bunu yapmanın en iyi yolu nedir?
Onun cevabı en kısa zamana ihtiyaç duyacak adımdan başlamaktı. En kısa sürede yıkanacak ya da kurutulacak çamaşır yükü grubunu bulmak gerekiyordu. Eğer bu en kısa süre yıkama adımıyla ilgili ise bunu ilk olarak yapmayı planlayın. Eğer bu en kısa süre kurutucu için ise, bunu en son yapmayı planlayın. Bu süreci kalan işler için tekrarlayın ve çizelgenin iki ucundan başlayıp ortaya doğru ilerleyerek çizelgeyi hazırlayın.
Johnson’ın algoritması içgüdüsel olarak işe yaramaktadır çünkü çamaşırları nasıl sıraladığınızdan bağımsız bir şekilde başlangıçta çamaşır makinesinin çalıştığı lakin kurutma makine sinin çalışmadığı bir zaman süreci ve en sonunda kurutma maki nesinin çalıştığı fakat çamaşır makinesinin çalışmadığı bir zaman dilimi olacaktır. En kısa yıkama sürelerine başta, en kısa kurutma sürelerine ise sonda sahip olarak her iki makinenin de eş zamanlı olarak çalıştığı zaman miktarını maksimize etmekte sinizdir. Bu şekilde çamaşır yıkama ve kurutmada geçen toplam süreyi de minimum değerde tutmuş olursunuz. Johnson’ın analizi çizelgelemeleri ilk optimal algoritmasıyla sonuçlanmıştı: En kısa yıkamayla başla, en kısa kurutmayla bitir.
Johnson’ın makalesi hemen uygulamaya geçirilmesinin yanı sıra daha derin anlama sahip iki nokta daha ortaya çıkarmıştı. İlk olarak, bu çizelgeleme işlemi algoritmik olarak ifade edilebilirdi. İkinci olarak da optimal çizelgeleme çözümleri mevcuttu. Bu sonuç bir anda patlama yaşayan bir literatüre neden oldu ve her türden, çok değişik sayılarda makinelerden oluşan fabrikaların yönetimine ilişkin stratejiler araştırılmaya başlandı.
Biz bu literatürün sadece küçük bir kesimine odaklanacağız. Kitap ciltleme ve çamaşır yıkamanın aksine tek makine için çizelgelemeyle ilgileneceğiz. Çünkü en önemli çizelgeleme problemleri sadece tek makine içermektedir: Kendimiz.
Son Teslim Tarihlerinin Yönetimi:
Tek makinedeki çizelgeleme işlemlerinde en baştan bir sorunla karşılaşırız. Johnson’ın kitap ciltleme üzerine olan çalışması, iki makinenin ellerindeki tüm işleri tamamlamak için gerekli zamanı minimize etmesi üzerine kuruluydu. Fakat tek makineli çizelgeleme durumlarında eğer verilen görevlerin tamamını yapacak sak hangi sırada olursa olsun bunları tamamlamak toplamda aynı süreyi gerektirecektir, sıralama burada alakasız bir unsurdur.
Bu, tekrarlanmaya değer derecede temel ve kullanışsız bir durumdur. Eğer sadece tek makineniz varsa ve elinizdeki tüm işleri yapacaksanız, yapacağınız herhangi bir sıralama sonucu iş süresi hep aynı olacaktır.
Bu nedenle tek makineli çizelgeleme problemine ilişkin ilk dersimizle, daha bu konuya başlamadan önce karşılaşmaktayız: Amaçlarınızı açık bir şekilde belirleyin. Bir çizelgeyi, nasıl puanlayacağımızı bilene kadar kazanan olarak açıklayamayız. Bu da bilgisayar bilimindeki bir temaya benzemektedir. Plan yapmadan önce, ilk olarak bir ölçüt seçmelisiniz. Ve sonuçta seçeceğimiz ölçüt, hangi çizelgeleme yaklaşımının ne kadar iyi sonuç vereceğini doğrudan etkileyecektir.
Tek makineli çizelgeleme konusundaki akademik yazılar Johnson’ın kitap ciltleme çalışmasının peşi sıra geldi ve dikkate alınacak çeşitli akla yatkın ölçütler sundular. Her ölçüt için basit ve optimal bir strateji buldular.
Elbette ki belli bir teslim süresi olan işler için bu işin gecikmesi, onun teslim edilmesi gereken zaman ile teslim edildiği zaman arasında kalan bölümdür. Yani bir grup iş kaleminin “maksimum gecikmesini”, teslim tarihinden sonra en geç teslim edilenin gecikmesi olarak düşünebiliriz. Bunu, bir çalışanınızın performans değerlendirmesinde dikkat etmesi gereken bir kriter gibi düşünebilirsiniz. (Ya da müşterilerinizin bir perakende dükkânı ya da hizmet noktasında en uzun bekleme zamanına maruz kalmaları şeklinde algıladıkları bir durum.)
Eğer maksimum gecikmeyi minimize etmekle ilgileniyorsanız en iyi strateji, işe teslim tarihi en yakın olan işten başlamak ve en uzak olana doğru ilerlemektir. En Erken Teslim Tarihi (Earliest Due Date) olarak bilinen bu stratejinin kullanımı oldukça kolaydır. (Örneğin, hizmet sektörü bağlamında düşünül düğünde bir müşterinin işinin “teslim tarihi” aslında kapıdan içeri adımını attığı andır ve bu da müşterilere geliş sıralarına göre hizmet verilmesi anlamına gelmektedir.) Bunun bazı uygu lamaları oldukça şaşırtıcıdır. Örneğin, her bir işin tamamlanma sının ne kadar süreceği konuyla ilişkili değildir. Planı değiştirmez. Aslında bunu bilmenize gerek bile yoktur. Tek bilmeniz gereken miatların ne olduğudur.
Bilgisayar teknolojisinin size bunun mantıklı bir strateji olduğunu söylemesine gerek bile kalmadan bu stratejiyi iş yükünüzü idare etmekte kullanıyor olabilirsiniz. Bilmiyor olabileceğiniz şey ise bunun optimal strateji olduğudur. Daha da açıkça belirtmek gerekirse, sadece tek ölçütle ilgilendiğiniz varsayıldığında optimaldir: Maksimum gecikmeyi azaltmak. Eğer amacınız bu değilse, o zaman başka bir strateji daha faydalı olabilir.
Örneğin buzdolabını ele alalım. Eğer taze meyve-sebze alan birçok kişiden biriyseniz, her hafta ya da iki haftada bir kapınıza kadar taze pek çok ürün geliyor demektir. Her ürünün bozulacağı f arklı bir zaman mevcuttur. Bu nedenle bunları bozulma zamanları çizelgesine göre En Erken Teslim Zamanlarından önce tüketmek akla yatkın bir başlangıç noktası gibi görünmektedir. Ancak her şey bununla bitmemektedir. En Erken Teslim Zamanı maksi mum gecikmeyi azaltmakla ilgilidir ve bozulmuş olan bir yiyeceğin bozulma süresini minimize edecektir. Bu seçenek en lezzetli ve sağlıklı seçenek olmayabilir.
Belki de bunun yerine bozulacak olan besinlerin miktarını minimize etmek isteriz. Burada da bize en iyi planı Moore Algoritması sunmaktadır. Moore Algoritması, En Erken Teslim Zamanı stratejisi gibi başlamamızı, yani ürünleri bozulma zamanlarına göre çizelgeleyerek başlamamızı söylemektedir. İlk olarak en erken bozulacak olan, daha sonra ondan sonra bozulacak olan şekilde her seferinde bir besin sıralarız. Daha sonra sıra bozulmadan yiyemeyeceğimiz bir besine geldiğimizde durur ve o ana kadar planlamış olduğumuz besinlere bakar ve en büyük (tüketilmesi en uzun sürecek olanı) listeden çıkarırız. Örneğin bu, altı dilim şeklinde tüketilebilecek olan bir karpuzdan vazgeçmek anlamına gelebilir. Daha sonra bu yaklaşımı, her seferinde besinleri bozulma tarihlerine göre sıralayarak ve en fazla miktar da olanı liste dışına atarak devam ettiririz. Bütün besinleri bozulmadan yenebilecek duruma getirdiğimizde planımızı elde etmiş oluruz.
Moore Algoritması atmak zorunda olduğunuz besin çeşidi sayısını minimize eder. Bu besinleri elbette gübre olarak kullanabilir, komşularınıza ya da ihtiyacı olanlara verebilirsiniz. En düstriyel ya da bürokratik bir açıdan ele aldığınız konularda ise geciken projeler söz konusu olduğunda -projelerin öneminden ziyade sayısı- Moore Algoritması bu durumun halledilmesinde tarafsız bir şekilde iş görecektir. Çizelgenizin ana bölümünün dışına atılan projeler, herhangi bir sıralamada olacak şekilde en sonda yapılabilirler. Hepsi zaten geç kalınmış olduğu için sıralama burada bir anlam taşımaz.
