24 Şubat 2013 Pazar

bakalım.

her gün yenilenen bir iyimserlikle giriştiğim tüm revizyonlar design_proxy tarafından tuhaf bir tepkisizlikle karşılanıyordu. denediğim tüm parametre kombinasyonları sanki hep aynı sonucu veriyordu ve evrimsel algoritmalar söz konusu olduğunda bu esasında tuhaftı. ilk testlerin ardından yaklaşık 2 haftadır sürdürdüğüm parametre arama sürecinin böylesine verimsiz olması yorucu, üzücü ve şaşırtıcıydı.. çoktan programı iyi çalıştıran çeşitli kombinasyonlarda karar kılmış olmalıydım ama bu mümkün olmadı... aklıma sürekli anlamlı revizyonlar geliyordu ama bunların hiçbiri sonuca etkimiyor gibiydi ve evet bu da tuhaftı... tüm bu tuhaflıkların neye işaret ettiği belliydi ama ben göremiyordum. programın baştan yanlış temellere inşa edilmiş olma olasılığına kilitlenmiştim. belki de pareto tabanlı bir yaklaşıma geçmem lazımdı.. adaptivite belki böyle karmaşık bir probleme göre değildi..  interleaved ea belki de yanlış bir yaklaşımdı... adjacency cell fitness açıkça neighbor ve neighbor cell ile çatışıyordu.. ve bu sayılanlar da biçimsel fitnesslarla çatışıyordu ve bunların hepsi ise sequence ile çatışıyordu ama benim hepsini birlikte çalıştırmaya ihtiyacım vardı... ama tuhaftır, bunları birbirinden tam olarak bağımsızlaştırdığımda bile birbirlerinin yaptıklarını bozmalarına engel olamıyordum. tüm bunların neye işaret ettiği açıktı evet ama göremiyordum.. hep başka açıklamalara kilitlenmiştim.. bunca yıldır süren bunca deneme ve uygulama ardından o asıl sebebi aklıma getiremiyordum.. programın temelini oluşturan tüm yaklaşımlar iki ayrı projede sınanmıştı ve aslında çalışıyorlardı.. bu sistemin güvenilir biçimde çalıştığını göstermiştim, bunun için göbeğim çatlamıştı peki o zaman sorun nerdeydi, fitness prosedürlerinde yaptığım değişikliklerde miydi problemin yeni ve daha karmaşık tarifinde miydi nerdeydi problemi mi sadeleştirmem lazımdı du'ları mı pahlamalıydım sequence fitness için dilim genişliği alternatifleri mi denemeliydim ve bu dedlaynları neden yaklaşıp durmaktaydı... her gün ve her gece yeni revizyonlar ve düzeltmeler ve uykudan kalktığım her öğlende derhal başına oturduğum deneme serilerinde okunan aynı tepkisizlik.. ve tabi tüm bunların neye işaret ettiği açık, programın işleyişinde bir yerde özsel bir hata vardı. vardı ama bu nasıl olabilirdi ki?

her neyse, tesadüfen de olsa ben bu hatayı buldum. başka bir düşüncenin peşinden giderken bu hatayı buldum. sonra hatanın sebebini buldum. sonra hatanın sebebini düzelttim. programın 2-3 yıl önceki ilk versiyonlarında bulunmayan ama hemen orlarda bir yerlerde eklenmiş olması gereken ve ta o günlerden beri taşınıyor olması gereken bir ihmal.. with or without replacement diyeler, boşuna değil.. popülasyonun seçiminde bu çok kritik.. esasında öyle olmaması lazımdı ama, fiiliyatta popülasyon sayısı sabit değildi.. sayı sabitti ama bireyler popülasyona çoklu kopyalanıyordu, bu da süreci her durumda aşırı greedy yapıyor ve popülasyon sayısı, mutasyon ve eşeyleme oranlarında yaptığım ayarlamaları işlevsiz kılıyordu. birbirine zıt olan fitnessların fitness coğrafyasında birbirine zıt yönlere bu denli şiddetle gidebilmesinin sebebi de buydu... sonra gergin geceler, sırt ağrıları, yılgınlıklar, yeni düzeltmeler, yeni testler, yeni denemeler.

neyse. bu hatayı düzelttim. ve sabaha karşı da olsa dayanamadım ve ilk denemeleri şöyle bir inceledim. nihayet doğru yoldayız. bundan sonra parametre kombinasyonları aramanın anlamı var. yeni denemelere de girişmem lazım bir yandan. acaba sequence neighbor'larla birlikte çalışacak mı.. manuel cell'i de kullanmam lazım.. ve mimari açıdan da biraz daha fazla düşünülmüş deneme setleri hazırlamamda fayda var... ve bir ara bir kullanım kılavuzu, örnek setleri ve bir sunum... yapılacak çok iş, ve bunları yapacak az zaman...

20 Şubat 2013 Çarşamba

dünyanın çıtası çıkmış da ondan

inanılmaz detaylı bir çalışma süreci sırtta kalıntılar bırakmaktadır. öfleyip püfleyip duran bünye kırtasiyenin ötesinde bir iş yapamamakta, mesai saatlerini gevelemektedir. esasında son aylarda herşey gerektiği gibi yürütülmüş, farklı çap, ebat ve nitelikteki işler iyicene içiçe geçirilerek uzun saatler haftalar ve aylar boyu süren üretkenlik garanti altına alınmış, işlerin rutin hali olan 1 birimlik iş için 3 birim uğraşma gereği kabullenilmiş, sonuçta hep safdil bir iyimserliğin yeniden açığa çıkmasıyla tamamlanan çalışma-bozgun-yılgınlık döngüleri sırtta uzun uzun azimle azimle azimle taşınmıştır. ve bu döngüler sırtta kalıntılar bırakıyor.

yeni revizyonlar, yeni testler, yeni kırtasiye. workshop'la ilgili hemen tüm tali işler tamam. ya da çok az işi kaldı. ama asıl işler tamam değil. design_proxy ehlileştirilemez bir hayvan gibi. her revizyon çok akıllıca ve nasıl daha önce düşünememişim. fakat her revizyonun ertesi yine aynı yılgınlık, evet revizyon çok gerekliymiş çok doğruymuş ama işe de yaramadı. ve evet denemeler için ayrılan süre de ona göre ayarlanmıştı, o yüzden revizyon ve testlerin bir an önce bitirilmesi ve denemelere başlanması azami önemdeydi. işlerin bu şekilde gideceğini artık öğrenmiş olmaktan gelen bir sezgi ile çılgınca bir tempo ile revizyon ve testlerin hakkından gelinmişti. ve tam da olacağı gibi ne kadar emek verilirse hepsini hiç geri çevirmeden yutan iştahlı çalışma hayatı ve karşısında yılgınlık yılgınlık... "artık işler düzünden 1 kerede hallolsa ve bir takım şeyler daha kolay gitmeye başlasa" denmeye başlandı mı, işte bu yorgunluğun en iyi göstergesidir. ve bu göstergeler hep de dinlenmenin mümkün olmadığı en sıkışık en fena en son anlarda sökün ederler. yorgunluk kümülatiftir. ara vermeden çalışmak ruha ve bedene zararlıdır. ama işin hiç bir noktasında ara vermek mümkün değildir, zira sırtlanılan iş her zaman mevcut zamanın elverdiğinden yüklüdür. çünkü dünyanın çıtası yukarıya konmuştur. dolayısıyla kaçınılmaz olarak bünyenin en çok çalışması gereken an en çok dinlenmesi gereken andır. ama bu doktora bir bitsin. ondan sonra dengesini kaybetmeyeceğim. iş-keyif dengesini. kural 4?

8 Şubat 2013 Cuma

design_proxy.layout >>

uzun, epiy uzun, yaklaşık 4 ay süren ve evirip çevirme - heyecanlanma - kararlaştırma - planlama - oluruna bakma - revizyon - test - optimizasyon aşamalarının içiçe döngülendiği bir çalışma çılgınlığının ardından üzerinde iki sezon önce 8-10 ay kadar evirip çevirme - heyecanlanma - kararlaştırma - planlama - oluruna bakma - revizyon - deneme - uygulama - yayın mükerrer döngülerinin yine içiçe yaşanmış olduğu eski projemi eli yüzü düzgün bir hale getirmiş bulunmaktayım.

dün, gecenin bir vakti, düğmesine ilk defa bastım. o kadar heyecanlanmadım. düğmesine ilk bastığın anın önemli olduğunu hala düşünmekle beraber, düğmeye ilk bastığında düzgün bir sonuçla karşılaşmayacağın gerçeğini de öğrenmiş bulunuyorum. şimdi sırada denemeler var. parametreler aranacak. ayarlar yapılacak. yeni revizyon-optimizasyon-test döngüleri gerekli olacak..

testler ve denemeler "verification" aşamasına karşılık gelebilir. gerçi bunu gereğince yapacak vaktim kaldığını sanmıyorum. o kadar çok zaman istiyor ki.. ve çeşitli parametre kombinasyonlarıyla 100er kere çalıştırılmış pek çok Interleaved-EA varyantını güncel pareto yaklaşımlarla karşılaştırma işini de doktora sonrasına atmak durumunda kalacağım.

sonra bir live-usb'den kendine tahsis edilmiş bir işletim sistemi ve masaüstüyle çalışabilir hale gelmeli, design_proxy. kolayca taşınabilir hale getirilmesi lazım. zira bu programı pratikte kullanmak gerekiyor ve şu anda hem anlamsız işler yapıyor hem yavaş; zaman ve kullanışlılık önemli çünkü daha pratikte ve başkaları tarafından denenecek. buna da "validation" deniyormuş. ondan sonra yine yayın - revizyon - test - deneme - uygulama diye gidiyor.. daha incelikli ve kapsamlı denemeler ve karşılaştırmalar... akla hep sırası-gelince-birden-gelen işe yarar revizyonların programa eklenip durması... bir noktada basit bir arayüz hazırlayıp, kodu temizleyip, kullanım kılavuzunu yazıp projeyi açık kaynaklı bir proje olarak internete taşımak da iyi fikir. ama zaman kalırsa. bu iş çok fena. ve her şey bir tür makine gibi üstüste kuruluyor. ama öyle bir makine ki, sonraki katman öncekini tümüyle yenilemiyor. eski katmandan bazı yapıları aynen koruyor, bazı yepyeni mekanizmalar ekliyor ve bazı mekanizmaları da revize ediyor. sonra katman katman yeni üretkenlikler ve beceriler ediniliyor. bir dönem tuhaf bir çalışma çılgınlığı içinde o pek de anlamlı bir iş üretmeyen ilk uygulamayı geliştirmeden işi daha anlamlı işler yapan ikinci bir uygulamaya dönüştürmek mümkün değil. ama bu aşamaya getirdikten sonra ve bir sürü beceri ve bilgi edindikten sonra ve işin tadını iyicene aldıktan sonra da o kadar çok yapacak yeni şey çıkıyor ki... bir ömürlük.