BİRİNCİ BASIMA ÖN SÖZ Varlıkların kendilerinde cereyan eden olayları ve varlıklar arasındaki ilişkileri inceleyerek anlamak ve bunları bilgi formuna dökmek kimya, biyoloji, fizik ve astronomi gibi temel bilim dallarının konusudur. Bu bilim dalları tarafından elde edilen bilgilerden faydalanarak, isteklerimize uygun şekilde görev yapacak varlıkların (ürünlerin başka bir deyişle sistemlerin) tasarlanması ve gerçekleştirilmesi ise mühendislik bilim dallarının görevidir. Var olan veya tasarlanan yani sonradan üretilen bir sistemin belirli şartlarda nasıl davranış sergilediğinin, beklenilen davranışı gösterip göstermediğinin incelenmesi analiz olarak adlandırılır. Mühendislikte yapılan bilimsel çalışmaları kabaca iki ana gruba ayırabiliriz: Analiz ve tasarım. Tasarlanan bir sistemin istekleri ne kadar sağlayıp sağlayamadığı elbette tasarımın ne kadar iyi yapıldığına bağlıdır. İstekleri, arzu edildiği şekilde sağlayan çok sayıda muhtemel alternatif çözümler olabilir ve bunlar içerisinden en iyisinin (optimum) en kısa zamanda bulunması çok önemli bir mühendislik çalışmasıdır. Optimizasyon problemi olarak adlandırılan bu çalışma, tasarlanacak sistemden beklentiler arttıkça daha karmaşık hale gelmekte ve problemin çözümü de o derece zorlaşmaktadır. Optimizasyon problemlerinin çözümüyle ilgili bilimsel çalışmalar oldukça eskidir ve bu çalışmalar tüm mühendislik alanlarını ilgilendirdiğinden önemli bir bilim alanı haline gelmiştir. Pozitivizmciliğin de etkisiyle önceleri bu tür problemler için geliştirilen çoğu yöntemler, çeşitli kabullerle elde edilen matematiksel bağıntılara dayalı belirgin yöntemlerdi. Klasik yöntemler olarak adlandırılan bu yöntemlerin daha ziyade problemlere özel olması, yani genel (esnek) olmaması, problemin kesinlikle matematiksel fonksiyonlarla tanımlanma gerekliliği gibi bir çok dezavantajları vardır. Özellikle son 30-40 yıldır, optimizasyon sahasında çalışan bazı bilim adamları genel amaçlı, esnek ve performansı yüksek yöntemler geliştirmek için dikkatlerini doğada var olan ve çalışan doğal sistemlere ve bu sistemlerde cereyan eden olaylara yöneltmişlerdir. Çünkü; tabiatta var olan karmaşık, zor, doğal optimizasyon problemleri bizler tam olarak anlayamasak da yine tabiatta var olan doğal yöntemlerle çözülmektedir. Tabiatta var olan sistemleri ve olayları temel alarak oluşturulan optimizasyon yöntemlerine sezgisel yöntem, zeki yöntem veya yapay zekâ yöntemi gibi çeşitli isimler verilmektedir. Yapay ısıl işlem algoritması, tabu araştırma algoritması, genetik algoritma, karınca koloni algoritması, yapay bağışıklık algoritması ve diferansiyel gelişim algoritması bu sınıfa giren, oldukça popüler hâle gelen algoritmalardır. Özellikle son yıllarda, bu algoritmalar oldukça farklı mühendislik sahalarında çok sayıda zor problemlerin çözümünde kullanılır hâle gelmişlerdir. Bu kitap, okuyucunun optimizasyon alanı ile ilgili hiçbir bilgisinin olmadığı varsayılarak hazırlanmıştır. Dolayısıyla Birinci Bölüm, ilk önce optimizasyon ile ilgili v
temel kavramları tanıtarak yaygın olarak kullanılan klasik optimizasyon algoritmalarından bazılarının temel adımlarını vermekte ve bunlarla ilgili örnekler sunmaktadır. İkinci Bölüm de, metallerin ısıl işleminde ortaya çıkan minimum enerjili konfigürasyona erişim olayını temel alarak geliştirilen Yapay Isıl İşlem Algoritmasının temel prensipleri verilerek tasarım parametreleri tanıtılmakta ve sonra algoritmanın bir anten tasarım problemine uygulaması sunulmaktadır. Üçüncü Bölüm, zeki problem çözmenin temel prensiplerinin benzetimine dayanan Tabu Araştırma Algoritmasını tanıtmakta ve sonra bu algoritmanın, baraj kapaklarını kontrol etmek amacıyla kullanılan Bulanık Mantık Denetleyicinin tasarımında nasıl kullanılacağını anlatmaktadır. Dördüncü Bölüm ün ilk kısmında, Evrime Dayalı Algoritmalara kısa bir giriş yapıldıktan sonra, tabii seleksiyon işlemi ile genetik operatörlere dayalı bu sınıfın en popüler algoritması olan Genetik Algoritma tanıtılmaktadır. Bölümün ikinci kısmında algoritmanın ders programının optimize edilmesi problemine uygulaması verilmektedir. Beşinci Bölüm, ilk önce gerçek karınca kolonilerinin davranışlarını benzeştiren Karınca Optimizasyon Algoritmasının temel prensiplerini vermekte ve sonra sürekli optimizasyon problemleri için karınca algoritmasının modelini tanıtmaktadır. Uygulama bölümünde ise algoritmanın sayısal filtre tasarımında kullanılmasıyla ilgili bir örnek sunulmaktadır. Altıncı Bölüm de, tabii bağışıklık sistemi örnek alınarak geliştirilen Yapay Bağışıklık Algoritması tanıtılmakta ve bu algoritma ile genetik algoritmanın bazı nümerik test fonksiyonlarının optimizasyonundaki performansları karşılaştırılmaktadır. Yedinci Bölüm, oldukça yeni ve basit bir gelişim algoritması olan diferansiyel gelişim algoritmasının temel çalışma prensiplerini açıklamakta ve bölümün ikinci kısmında, algoritmanın sayısal filtre tasarımına uygulamasını tanıtmaktadır. Son bölümde, tanıtılan ve uygulamaları sunulan tüm algoritmalarla ilgili genel değerlendirmeler yapılmaktadır. Kitabın, lisans öğrencilerinden araştırmacılara kadar bu alana ilgi duyan herkese faydalı olacağını ümit ediyor ve alanında ilk Türkçe eser olması bakımından önemli bir boşluğu dolduracağına inanıyorum. Kayseri, Ocak 2004 vi
İKİNCİ BASIMA ÖN SÖZ Birinci Basımı için 2004 yılında yazılan ön sözünde, kitabın alanında ilk Türkçe eser olması bakımından önemi vurgulanmış ve ilgi duyanlara faydalı olması temenni edilmişti. İkinci basımına gerek duyulması, kitabın ümit edildiği gibi bu alanda var olan boşluğu bir nebze doldurduğunu göstermektedir. Geçen süre içerisinde, zeki optimizasyon algoritmaları sahasında ortaya çıkan yeni gelişmeler ışığında kitabın bu basımına okuyucu için faydalı olacağı düşünülerek yeni iki bölüm eklenmiştir. Sekizinci Bölüm, sürü zekâsına dayalı algoritmalar içerisinde en çok bilineni olan ve kuş, balık gibi sürülerin davranışlarını temel alarak geliştirilmiş parçacık sürü optimizasyon (PSO) algoritmasını tanıtmakta ve algoritmanın literatürde bilinen birkaç sınırlı mühendislik problemlerine uygulamasını vermektedir. Dokuzuncu Bölüm de, literatüre oldukça yeni girmiş ve çok farklı alanlarda problem çözümlerinde kullanılmaya başlanmış ve doğal arı kolonilerinin yiyecek kaynaklarını aramada sergiledikleri zeki davranışlar örnek alınarak geliştirilmiş olan yapay arı koloni (ABC) algoritması tanıtıldıktan sonra PID kontrolör tasarımında kullanımı anlatılmaktadır. Zeki optimizasyon alanında bilim dünyasına Türkiye nin şu ana kadarki en önemli katkısı olması nedeniyle yapay arı koloni algoritmasının diğer algoritmalar içerisinde oldukça farklı bir anlamı vardır. Birinci basımdan bu tarafa geçen sürede ortaya çıkan bu gelişmenin, genç araştırmacılarımıza ve öğrencilerimize çalışmalarında bir motivasyon sağlaması ümidiyle kitabı kullanan herkese faydalı olmasını temenni ederim. Kayseri, Ocak 2011 vii
ÜÇÜNCÜ BASIMA ÖN SÖZ Kitabın birinci basımının yapıldığı 2004 yılı ile genişletilmiş ikinci basımının yapıldığı 2011 yılı arasında yaklaşık yedi yıl geçmişti. İkinci basıma popüler olan iki algoritmanın tanıtımını içeren yeni iki bölüm eklenmişti. Bu algoritmalardan biri parçacık sürüsü optimizasyon (PSO) algoritması, diğeri de yapay zekâ optimizasyon algoritmaları bilim alanında ülkemizi başarıyla temsil eden yapay arı kolonisi (ABC) algoritmasıydı. 2011 yılından bu yana sadece 2 yıl geçti ve kitabımız hızlıca tükendi. Kitabın ikinci basımının tahmin ettiğimden daha kısa sürede bitmesi beni memnun etti. Çünkü bu, ülkemizde bulunan öğrenciler ve araştırmacıların, yapay zekâ optimizasyon algoritmaları konusuna her geçen gün ilgisinin daha da arttığını ve kitabın önemli bir boşluğu doldurduğunu gösteriyor. Kitabın bundan sonraki basımları için çalışmalarımız devam ediyor. Kullanılması gittikçe yaygınlaşan yeni yapay zekâ optimizasyon algoritmaları ve uygulamalarını anlatan yeni bölümlerin eklenmesiyle gelecek basımların daha da zenginleşeceğini düşünüyorum. Kitabın üçüncü basımını mümkün kılan, başta Nevzat Argun olmak üzere emeği geçen tüm Nobel Yayınevi çalışanlarına teşekkür ederim. Kayseri, Şubat 2014 ix
TEŞEKKÜR Kitabın özellikle uygulamalarla ilgili kısımları, uzun süreden beri çalışma arkadaşlarımla birlikte yapmış olduğumuz çalışmaları kapsamaktadır. Bundan dolayı, çalışma arkadaşlarım K. Güney, N. Karaboğa, A. Kalınlı, A. Bağış, A. Akdağlı ve B. Akay ile direkt veya dolaylı olarak bu çalışmalara emeği geçen diğer tüm meslektaşlarıma teşekkürü bir borç bilirim. Yine, kitabın hazırlanma aşamasında oldukça fazla zaman harcayan V. Aslantaş ile S. Ökdem ve B. Çetinkaya ya en içten teşekkürler. Her türlü zorluklarla mücadele ederek maddi imkânsızlıklara rağmen benim eğitim görmemi sağlayan ve bu kitabın ortaya çıkmasına vesile olan fedakâr Annem ile Babama en derin saygılarımı ve şükranlarımı ifade etmek isterim. Son olarak, kitabın yayınlanması aşamasına kadar geçen süre içerisinde benden hiç bir desteğini esirgemeyen, beni sürekli olarak teşvik eden ve kitabın son düzeltmelerini yapan sevgili eşim Nurhan a sonsuz teşekkürler x