Post on 24-Jun-2020
T.C. SÜLEYMAN DEM İREL ÜNİVERSİTESİ
FEN BİLİMLER İ ENSTİTÜSÜ
YAPAY ARI KOLON İSİ ALGOR İTMASI İLE DERS ÇİZELGELEME PROBLEM İNİN ÇÖZÜMÜ
Mahmut TOKMAK
Danışman: Yrd. Doç. Dr. Ecir Uğur KÜÇÜKS İLLE
YÜKSEK L İSANS TEZİ ELEKTRON İK BİLGİSAYAR EĞİTİMİ ANABİLİM DALI
ISPARTA - 2011
TEZ ONAYI
Mahmut TOKMAK tarafından hazırlanan “Yapay Arı Kolonisi Algoritması ile
Ders Çizelgeleme Probleminin Çözümü” adlı tez çalışması aşağıdaki jüri
tarafından oy birliği / oy çokluğu ile Süleyman Demirel Üniversitesi Elektronik
Bilgisayar Eğitimi Anabilim Dalı’nda YÜKSEK L İSANS TEZİ olarak kabul
edilmiştir.
Danışman : Yrd. Doç. Dr. Ecir Uğur KÜÇÜLSİLLE (İmza)
Süleyman Demirel Üniversitesi Bilgisayar Mühendisliği Anabilim Dalı
Jüri Üyeleri :
Yrd. Doç. Dr. Tuncay AYDOĞAN (İmza)
Süleyman Demirel Üniversitesi Elektronik Bilgisayar Eğitimi Anabilim Dalı
Yrd. Doç. Dr. Yavuz CENGİZ (İmza)
Süleyman Demirel Üniversitesi Elektronik Haberleşme Mühendisliği Anabilim Dalı
Prof. Dr. Mustafa KUŞCU Enstitü Müdürü
Not: Bu tezde kullanılan özgün ve başka kaynaktan yapılan bildirişlerin, çizelge, şekil ve fotoğrafların kaynak gösterilmeden kullanımı, 5846 sayılı Fikir ve Sanat Eserleri Kanunundaki hükümlere tabidir.
i
İÇİNDEKİLER
Sayfa
İÇİNDEKİLER ............................................................................................................. i ÖZET............................................................................................................................ ii ABSTRACT................................................................................................................iii TEŞEKKÜR................................................................................................................ iv ŞEKİLLER DİZİNİ......................................................................................................v ÇİZELGELER DİZİNİ ............................................................................................... vi SİMGELER VE KISALTMALAR............................................................................vii 1. GİRİŞ ....................................................................................................................... 1 2. KAYNAK ÖZETLERİ ............................................................................................ 4 3. MATERYAL VE YÖNTEM ................................................................................... 9 3.1. Doğada Arılar........................................................................................................ 9 3.2. Arıların Yem Bulma Davranışları ....................................................................... 12 3.3. Yapay Arı Kolonisi Algoritması ve Temel Adımları.......................................... 15 3.3.1. Başlangıç kaynaklarının oluşturulması ............................................................ 16 3.3.2. İşçi arıların yiyecek kaynaklarına gönderilmesi .............................................. 16 3.3.3. Gözcü arılar için olasılık değerlerinin hesaplanması ....................................... 18 3.3.4. Gözcü arıların yiyecek kaynağı seçme işlemi.................................................. 18 3.3.5. Kaynak bırakma ve kaşif arı üretimi................................................................ 19 3.3.6. ABC algoritmasının özellikleri ve temel adımları ........................................... 19 3.3.7. ABC algoritması için matematiksel örnek ....................................................... 22 4. ARAŞTIRMA BULGULARI ................................................................................ 26 4.1. Ders Çizelgeleme Probleminin Ortaya Konulması............................................. 26 4.2. Kısıtlar................................................................................................................. 26 4.3. Ders Çizelgeleme Problemi İçin Yapay Arı Kolonisi Algoritması..................... 27 4.3.1. Çözümün gösterimi .......................................................................................... 27 4.3.2. Başlangıç popülasyonunun oluşturulması........................................................ 28 4.3.3. Uygunluk değerinin hesaplanması ................................................................... 28 4.3.4. İşçi arı fazı........................................................................................................ 29 4.3.5. Gözcü arı fazı ................................................................................................... 30 4.3.6. Kaşif arı fazı..................................................................................................... 30 4.4. Geliştirilen Yazılımın Tanıtılması ...................................................................... 31 4.4. Deneysel Çalışmalar............................................................................................ 37 5. TARTIŞMA VE SONUÇ ...................................................................................... 39 6. KAYNAKLAR ...................................................................................................... 41 EKLER....................................................................................................................... 44 ÖZGEÇMİŞ ............................................................................................................... 53
ii
ÖZET
Yüksek Lisans Tezi
YAPAY ARI KOLON İSİ ALGOR İTMASI İLE DERS ÇİZELGELEME PROBLEM İNİN ÇÖZÜMÜ
Mahmut TOKMAK
Süleyman Demirel Üniversitesi
Fen Bilimleri Enstitüsü Elektronik Bilgisayar E ğitimi Anabilim Dalı
Danışman: Yrd.Doç.Dr. Ecir Uğur KÜÇÜKS İLLE
Çizelgeleme, belirli zaman aralıklarında kaynak kısıtları dikkate alınarak kabul edilir bir şekilde atama yapma işlemidir. Eğitim kurumları için ders programı hazırlama işlemi çizelgeleme çeşitlerinden biridir. Amaç, belirlenen kısıtlar çerçevesinde dönem derslerinin zaman çizelgesine yerleştirilmesidir. Eğitim kurumlarında ders programı genellikle idareciler tarafından elle hazırlanmaktadır. Bu tez çalışmasında, elle hazırlamayı gerektirmeyen, ders programını otomatik olarak hazırlayan bir program geliştirilmi ştir. Programda Süleyman Demirel Üniversitesi Gelendost Meslek Yüksekokulu dönem dersleri ve ders görevlendirmeleri kullanılmıştır. Daha önceki çalışmalar incelenerek ve Gelendost Meslek Yüksekokulu’nun ihtiyaçları dikkate alınarak problemin kısıtları belirlenmiştir. Problemin çözümüne yönelik C# programlama dilinde, Yapay Arı Kolonisi algoritması kullanılarak, kullanıcı etkileşimli arayüze sahip bir program geliştirilmi ştir. Çalışmalar sonucunda kullanılan algoritma ile uygun bir ders çizelgesi oluşturulmuş ve bu çizelgelerin raporları alınmıştır. Anahtar Kelimeler: Optimizasyon, sezgisel yöntemler, yapay arı kolonisi algoritması, ders çizelgeleme. 2011, 53 sayfa
iii
ABSTRACT
M.Sc. Thesis
COURSE SCHEDULING PROBLEM SOLVING WITH ARTIFICIAL B EE COLONY ALGORITHM
Mahmut TOKMAK
Süleyman Demirel University
Graduate School of Applied and Natural Sciences Department of Electronics Computer Education
Supervisor: Asst.Prof. Ecir Uğur KÜÇÜKS İLLE
Scheduling, taking into account resource constraints specific time interval, is accepted the process of making the assignment. In preparation the lecture program is one of the scheduling types for educational institutions. Purpose of courses placement in the period timeline within the framework of the constraints. In educational institutions curriculum is usually prepared manually by administrators. In this study, preparing a manual that does not require, developed a program that automatically prepares curriculum. Süleyman Demirel University Vocational School of Gelendost of semester courses and course assignments are used in the program. Constraints of the problem, examining the previous studies and taking into account the needs of Vocational School of Gelendost, is determined. C # programming language to solve the problem, using artificial bee colony algorithm, developed a program with an interactive user interface. As a result of our work, we have seen that the used algorithm can create an appropriate course schedule and these tables have been reports. Key Words: Optimization, heuristic methods, artificial bee colony algorithm, lesson scheduling. 2011, 53 pages
iv
TEŞEKKÜR
Tez çalışmam süresince bilgi, tecrübe ve yardımlarını esirgemeyen değerli hocam
sayın Yrd.Doç.Dr. Ecir Uğur KÜÇÜKSİLLE’ye saygı ve teşekkürlerimi sunarım.
Çalışmalarım sırasında bilgisine başvurduğum değerli arkadaşım Bilgisayar
Mühendisi Ramazan Yıldız’a teşekkür ederim.
Tez çalışmalarım esnasında manevi desteklerini hissettiğim aileme, anlayış ve
desteğinden dolayı eşim Arzu TOKMAK’a, motivasyon kaynağım oğlum Yiğit
TOKMAK’a teşekkür ederim.
Mahmut TOKMAK
ISPARTA, 2011
v
ŞEKİLLER D İZİNİ
Şekil 3.8. Arılarda görev dağılımı.............................................................................. 11
Şekil 3.9. Arıların yem arama davranışları ................................................................ 14
Şekil 3.10. ABC algoritmasının akış diyagramı......................................................... 20
Şekil 4.1. Değiştirme komşuluk yapısı ...................................................................... 29
Şekil 4.2. Programın şeması....................................................................................... 31
Şekil 4.3. Programın genel görünüşü ......................................................................... 32
Şekil 4.4. Bölüm bilgileri penceresi........................................................................... 33
Şekil 4.5. Sınıf bilgileri penceresi .............................................................................. 33
Şekil 4.6. Ders bilgileri penceresi .............................................................................. 34
Şekil 4.7. Öğretim elemanı bilgileri penceresi........................................................... 34
Şekil 4.8. Görevlendirme penceresi ........................................................................... 35
Şekil 4.9. Öğretim elemanı istek penceresi................................................................ 36
Şekil 4.10. ABC penceresi ......................................................................................... 36
Şekil 4.11. Raporlar penceresi ................................................................................... 37
Şekil 4.12. Sert kısıtların iterasyonlara göre değişimi ............................................... 39
Şekil 4.13. Tüm kısıtların iterasyonlara göre değişimi .............................................. 40
vi
ÇİZELGELER D İZİNİ
Çizelge 4.1. Gelendost meslek yüksekokulu verileri ................................................. 37
Çizelge 4.2. Isparta meslek yüksekokulu verileri ......................................................38
Çizelge 4.3. Test sonuçları ......................................................................................... 38
vii
SİMGELER VE KISALTMALAR
P Polinomal
NP Polinomal olmayan
GA Genetik algoritmalar
TS Tabu arama
SA Tavlama benzetimi
ACO Karınca kolonisi optimizasyonu
ABC Yapay arı kolonisi
YSA Yapay sinir ağları
MCN Maksimum çevrim sayısı
SPP Kaşif arı üretme periyodu
MYO Meslek yüksekokulu
1
1. GİRİŞ
Çizelgeleme problemleri, belirli kaynakların belli kısıtlar altında kullanıcılara verimli
bir şekilde tahsis edilmesini amaçlar. Bir çizelgeleme problemi olan ders çizelgeleme
probleminde, açılacak olan dönem derslerinin çeşitli sert ve esnek kısıtlar altında
uygun sınıf ve zaman dilimine atanması hedeflenir.
Hesaplama teorisinde, bazı problemlerin çözümünde kullanılan en etkili
algoritmaların, çalışma süresinin girilen verinin değerine göre bir polinom cinsinden
bağlı olduğu bilinmektedir. Buna polinomal (P) zamanda çalışan algoritma
denmektedir. Örnek vermek gerekirse, bir sayının asal olup olmadığının bulunması
sırasında geliştirilen algoritma çalışma süresi içinde P kategorisinde bir algoritma
olacaktır (Özsağlam, 2009). Eğer bir problem yada sistem polinomal değilse (NP)
çözümlenmesi de zor bir problem olarak adlandırılır (Biroğul, 2005).
Gerçek hayattaki optimizasyon problemlerinin birçoğu matematiksel formül
geliştirilerek çözülemeyecek kadar karmaşıktır. Klasik yöntemleri kullanarak böyle
bir problem çözülmeye çalışıldığında, çözüm çok uzun sürebilir ve uzun sürmesine
rağmen bulunan sonuç istenilen sonuç olmayabilir. Bu durumda probleme çözüm
aranırken sezgisel (heuristic) yöntemler geliştirilmi ş ve en iyi sonuca ulaşmaya
çalışılmıştır (Gülcü, 2006).
Sezgisel yöntemler, bir problemi çözmek için, çeşitli çözüm hareketlerinden en iyi
olanına karar vermek için tanımlanan yöntemler olarak bilinmektedir (Gülcü, 2006).
Ayrıca sezgisel yöntemlerin çözüm zamanının kısa olması ve değişik problemlere
uygulanabilmesi tercih edilme nedenleri arasındadır. Ancak bu yöntemlerin çözümü
garanti edememesi ve çok parametrenin uygun şekilde tasarlanmasının gerekliliği bu
yöntemlerin dezavantajı olarak nitelendirilmektedir (Özsağlam, 2009).
Sezgisel yöntemlerin çok çeşitli alanlardaki problemlere uyarlanabilmeleri ilgi
uyandırmıştır. NP kategorisindeki problemlerin çözümünde Genetik Algoritmalar
(GA), (Çivril, 2009) Tavlama Benzetimi (SA), Tabu Arama (TS), Evrimsel
2
Hesaplama (EC), Karınca Kolonisi Optimizasyonu (ACO) gibi algoritmalar
kullanılmış ve başarılı çözümler elde edilmiştir (Blum ve Sampels, 2004).
Genetik algoritmalar, tavlama benzetimi gibi doğal olaylara dayandırılarak
geliştirilen algoritmalar, araştırmacıların başka doğa olaylarını da inceleyerek
bunların modellenmesi hususunda ilham kaynağı olmuşlardır. Sürü halinde yaşayan
varlıkların gösterdikleri zeki davranışlar bu doğa olaylarındandır. Sürülerin hayatta
kalma içgüdüleri ile yiyecek arama davranışlarının problemlere uyarlanması ile
geliştirilen Karınca Kolonisi Optimizasyonu (ACO), karıncaların yem kaynağı ile
yuvası arasındaki yolu minimum seviyeye indirgeme amacına dayalı bir algoritmadır
(Dorigo vd.., 1991). Yapay Arı Kolonisi (ABC) algoritması da Derviş Karaboğa
tarafından geliştirilen ve arı topluluklarının yiyecek arama davranışlarını örnek alan
bir algoritmadır (Karaboga, 2005).
Bu tez çalışmasında kullanılan Yapay Arı Kolonisi algoritması; Karaboğa’nın,
arılardaki yiyecek arama davranışlarını temel alarak geliştirdiği bir algoritmadır
(Karaboga ve Akay, 2007). Doğada arılar yiyecek kaynaklarından nektar toplama,
bulunan kaynakları verimi maksimum olacak şekilde kovana getirme ve bunun için
tüketilen enerjinin azaltılması işini içgüdüsel olarak yaparlar. Enerjinin azaltılması,
yiyecek kaynaklarından maksimum derecede nektar elde ederken, kovana getirmek
için zamanın veya yolun kısaltılması anlamındadır. Doğada arılar buldukları
kaynaklardan toplayabildiği miktardaki nektarı kovana getirdikten sonra tekrar
kaynağa dönmeden önce sallanım dansı ile kaynağı hakkındaki bilgileri diğer arılarla
paylaşırlar. Bu sayede kaynaklardan daha verimli şekilde faydalanmayı sağlarlar
(Kıran vd., 2009). ABC’de bu yem bulma faaliyetleri için bir koloni içinde üç grup
arı tanımlanmıştır. Bunlar işçi arılar, gözcü arılar ve kaşif arılar olarak
adlandırılmaktadır (Karaboga ve Akay, 2007). Bunlarla ilgili geniş açıklamalar
çalışmanın ileri safhalarında detaylı bir biçimde anlatılacaktır.
Eğitim kurumlarında ders programını elle hazırlamak, bu işle görevlendirilmiş
tecrübe sahibi, kurumu ve kurumdaki ihtiyaçları iyi bilen kimseler tarafından
hazırlanıyor olsa da zor, uzun zaman alan ve meşakkatli bir iştir. Her kurumun
3
müfredat programı, öğretmenlerin ve sınıfların sayısı ve derslerin tipleri gibi
özellikleri ya da eğitim kurumunun farklı olması gibi sistem farklılıkları olduğundan,
ders çizelgeleme problemleri her kuruma göre değişik boyutlarda ortaya çıkar (Taç,
2006). Bu bağlamda ders çizelgeleme problemi çözülmesi zor problemler
kategorisinde değerlendirilmektedir.
Bu çalışmada ABC kullanılarak ders programı hazırlanması için bir yazılım
geliştirilmi ştir. Bu yazılım için C# programı kullanılmış veritabanı olarak Microsoft
Sql Server 2008 kullanılmıştır. Yazılım ile girilen veriler doğrultusunda bölümlere
ait ders programı oluşturulmuş ve istenen raporlar alınmıştır.
4
2. KAYNAK ÖZETLER İ
Özcan ve Alkan (2002) tarafından yapılan çalışmada, çok kısıtlı üniversite ders
programı hazırlamaya yönelik kararlı hal genetik algoritması (SSGA) geliştirilmi ştir.
Yeni melezleme mutasyon uzmanları ile paralel genetik algoritmalardan
esinlenilerek çok nüfuslu SSGA denenmiştir. Üreme için eş seçiminde sıralama
stratejisi kullanılmıştır.
Engin ve Fığlalı (2002) tarafından yapılan çalışmada, çizelgeleme problemi için
Genetik Algoritma çaprazlama operatörünün belirlenmesi amacıyla bir çalışma
yapmışlardır. Bu çalışmada tamamlanma zamanlı akış tipi çizelgeleme
problemlerinin GA ile çözümünde uygun çaprazlama operatörü belirlenmeye
çalışılmıştır. Denemeler sonucunda, işlem süreleri yüksek olan çizelgeleme
problemlerinde çok makine-çok iş problemleri için en uygun çaprazlama
operatörünün lineer sıralı çaprazlama olduğu; iki makine-çok iş problemlerinde ise
sıralı çaprazlama yönteminin iyi performans gösterdiğini belirlemişlerdir. GA’nın
optimizasyon problemlerinde etkin bir şekilde kullanılabilmesi için GA’da kullanılan
parametrelerin optimize edilmesi gereği söylenmektedir. Bu sayede çözüm kalitesi
ve performansı önemli derecede iyileştirilebildiği belirtilmiştir. Yalnızca çaprazlama
yönteminin optimizasyonu yapılarak çok daha küçük nesil sayılarında veya daha
düşük Cmax değerli çözümlere ulaşılabileceği gözlenmiştir.
Daban ve Özdemir (2004) tarafından yapılan çalışmada, yapay zeka yöntemlerinden
biri olan genetik algoritma kullanılarak, öğretim elemanları ve öğrencilerin
ihtiyaçlarına göre daha etkin bir eğitim-öğretim sağlamak için, ders programı
hazırlayan ve optimize eden bir program geliştirilmi ştir. Ders programının
uygunluğunu, öğretim elemanı ve eğitim-öğretim verimliliği kriterlerine göre
belirlemişlerdir. Eğitimin verimliliğini artırmak amacı ile öğrencilerin algısının
haftanın günlerine ve gün içindeki saatlere göre değişimi göz önünde
bulundurmuşlardır. Algoritmada standart GA operatörlerinden farklı olarak,
probleme özgü GA operatörleri geliştirmişlerdir. Yapılan simülasyonların
sonuçlarında, pedagojik esaslara göre dizayn edilen ders programlarında belirlenen
kriterlerde başlangıca göre % 40-60 oranlarında iyileşme sağlandığını belirtmişlerdir.
5
Dasgupta ve Khazanchi (2005) tarafından yapılan çalışmada, akıllı ajanlar ile,
problemi çözmek için çalışan kullanıcı sorgu modülü, ajan yaratma modülü, ajan
çalıştırma platformu kullanarak ve ajana öğretim yaptırarak bu problemin çözümünü
gerçekleştirmişlerdir. Bu problemde karar desteği kullanan akıllı ajanlar vardır. Bu
katmanlar öğrenme motoru, eski verileri kullanarak karar vermeyi geliştirme ve
uzman applet tabanlı kullanıcı arayüzü kullanmışlardır. Kompleks çizelgelemeler
için dinamik olarak değişen karar verme mekanizması kullanmışlardır.
Yiğit (2006) tarafından yapılan çalışmada, meslek liseleri için haftalık ders
çizelgelerinin genetik algoritmalar yardımıyla oluşturulmasını sağlamıştır. Bu
çalışmada genetik algoritmada kullanılan mutasyon operatöründen sonra
kromozomların yapısında oluşan bozuklukların giderilmesi için “tamir operatörü”
kullanmıştır.
Gülcü (2006) yılında yaptığı çalışmada, genetik algoritmalar ve tabu arama,
tanımlanan çizelgeleme problemine uyarlamıştır Bu yöntemler için iki ayrı bilgisayar
programı yazmış ve bu programlar aynı veriler kullanılarak çalıştırmıştır. Genetik
algoritmayı, probleme uyarlarken bir takım değişiklikler yapmış algoritmanın
çalışma performansını artırmıştır. Çaprazlama olasılığının yüksek tutmanın
popülasyonu tahrif ettiği göstermiş olsa da çaprazlama olasılığı için verilebilecek en
büyük değer vermiştir. Ancak çaprazlama işlemini literatürde en çok rastlanan şekil
olan rastgele ilkesine göre yapmamış. Carrasco ve Pato (2001) tarafından gösterilen
çaprazlama işlemine benzer bir işlem yapmıştır. Çözümün uygunluk değerini,
çözümde yer alan her bir ders için hesaplanan değerin toplamıyla elde etmiştir. Ders
tabanlı bir hesaplama yapılan sistemde, çaprazlama işleminde seçilen ebeveyn
bireylerdeki dersler uygunluk değerlerine göre sıralanarak en iyi durumdaki dersler
sırasıyla yavru bireylere kopyalamıştır. Kopyalama işlemi aşamalı olarak yapılmış
olup mümkün olduğu kadar kısıtlamaya dikkat etmiştir. Bu şekilde bir çalışma ile iyi
özellikte yavru bireylerin üretilmesini garantilenmiş olduğunu ve algoritmanın
performansını artırdığını gözlemiştir.
6
Elde edilen çözümleri, zaman maliyeti açısından karşılaştırdığında; genetik
algoritmaların aynı probleme daha kısa sürede çözüm bulduğunu, tabu aramanın ise
daha uzun süre sonra aynı çözüme ulaştığı belirtmiştir. Algoritmanın uygulamaya
geçirilmesi açısından değerlendirdiğinde genetik algoritmaların daha fazla emek
harcamayı gerektirdiğini tespit etmiştir.
Balık vd. (2006) yılında yaptığı çalışmada, grafik renklendirme algoritması
kullanılarak otomatik ders programı yazılımı geliştirmişlerdir. Bu çalışmada graph
coloring algoritmalarından olan welch ve powel algoritmasını kullanmışlardır.
Dersleri düğüm olarak kabul etmişler, tüm dersleri ve bunların arasındaki
komşulukları gösteren graf oluşturmuşlardır. C++ Builder ve Paradox veritabanı
kullanarak ders programı yazılımını geliştirmişlerdir.
Temur (2006) tarafından yapılan çalışmada, eğitim kurumlarında ders çizelgeleme
problemi için tamsayılı programlama yazılımları kullanarak çizelgeleme yapmıştır.
Kurduğu modelde, blok ders kısıtları, öğretmenlerin ders ve gün istekleri ile diğer
bazı yönetimsel isteklerini dikkate almıştır. Tamsayılı modelleme programı olan
GAMS ve CPLEX çözücü olarak kullanılmıştır.
Lien-Fu vd. (2006) tarafından yapılan çalışmada, çizelgeleme probleminin çözümü
için yapay zeka ve uzman sistemler kullanmışlardır. Uzman sistemler kullanarak
çizelgelemenin daha esnek yapılabildiği söylemişlerdir. Çalışmada nesneye yönelik
yazılım mühendisliği metotları kullanmışlar ve bakımının da kolayca yapıldığını
bildirmişlerdir.
Kalender (2007) tarafından yapılan çalışmada, üst-sezgisel algoritmalar ile Yeditepe
Üniversitesi Bilgisayar mühendisliğinde kullanılmak üzere çözümlerin üretilebildiği,
değiştirilebildiği ve bilgilerin saklanılabildiği otomatik ders çizelgeleme programı
hazırlayan bir uygulama geliştirilmi ştir. Uygulama Java ve Xml teknolojileri
kullanılarak geliştirilmi ştir. Varolan bir üstsezgiselden yeni bir sezgisel yaratılmış ve
önerilen sezgiselin daha iyi çalıştığını gözlemlemişlerdir.
7
Karaboga ve Akay (2007) tarafından yapılan çalışmada, ABC algoritmasını yapay
sinir ağlarının eğitilmesinde kullanmışlardır. Farksal gelişim algoritması ve parçacık
sürüsü optimizasyon algoritmaları ile karşılaştırmışlardır. Çalışma ile yapay sinir
ağlarının eğitiminde ele aldıkları problemler için ABC algoritmasının üstün bir
performans sergilediğini göstermişlerdir.
Baykasoglu vd. (2007) tarafından yapılan çalışmada, genelleştirilmi ş atama problemi
için yapay arı kolonisi algoritması kullanmışlardır. Başlangıç popülasyonunu GRAH
algoritmasına göre oluşturmuşlardır. Komşuluk yapıları için de kaydırma, çift
kaydırma ve çıkarım zinciri komşuluk yapılarını kullanmışlardır.
Cura (2007) tarafından yapılan çalışmada, fakülte derslerinin çizelgelenmesi
problemi tavlama benzetimi temelli bir algoritma ile çözülmüştür. Problemde
öğretim üyesi kıdemlerini dikkate almıştır. Algoritmanın sonuçlarını genetik
algoritmalar ve tabu arama algoritmalarının sonuçları kıyaslamıştır.
Memiş (2008) tarafından yapılan çalışmada, Yarı Otomatik Ders Programı Sistemi
hazırlamıştır. Bu problemin çözümünde akıllı ajanlar kullanmıştır. Bu sayede çok
büyük olan dallanma sayısı akıllı ajanların isteklerine göre otomatik olarak
azaltmıştır. Akıllı ajanlar olarak öğrenci, öğretim üyesi, dekan, bölüm başkanı, bina
sorumlusu kullanılarak bu kişilerin istekleri anket ile almıştır. Bu istekler ile
atamanın oluşmasına yön vermiştir.
Çivril (2009) tarafından yapılan çalışmada, hemşire çizelgeleme probleminin
çözümünde genetik algoritmalar kullanmıştır. C# programı ve veritabanı olarak ta
Microsoft Access 2007 programını kullanmıştır.
Akay (2009) tarafından yapılan çalışmada ABC algoritmasını, tamsayı
problemlerinde kullanılacak şekilde geliştirerek, diğer algoritmalarla performansını
kıyaslamıştır. Sınırlamasız problemlerde algoritmanın performansını artırmak
amacıyla algoritmada yapısal değişiklikler yapmıştır. Sınırlamalı problemler için ise
8
ABC algoritmasının yeni versiyonunu önermiştir. Sınırlamalı bazı makine
mühendisliği tasarım problemlerine ABC algoritmasını uygulamıştır.
Ming ve Qi (2010) tarafından yapılan çalışmada, genetik algoritma kullanarak ders
çizelgeleme yapmışlardır. C++ programlama dilini ve veritabanı olarak da Oracle
veritabanını kullanmışlardır. Çalışmalarında yaptıkları test sonucunda uygun
çözümün, tüm sert kısıtları başarıyla elimine ettiğini belirtmişlerdir.
Fang Ming ve Hua (2010) tarafından yapılan çalışmada, opsiyon bazlı hiyerarşik
takviyeli öğrenme kullanarak ders çizelgeleme yapmışlardır. Geleneksel takviyeli
öğrenme ile opsiyon bazlı hiyerarşik takviyeli öğrenme algoritmalarının ders
çizelgeleme deki performansını karşılaştırmışlardır. Opsiyon bazlı hiyerarşik
takviyeli öğrenmenin daha etkili sonuçlar verdiğini tespit etmişlerdir.
Li ve Sun (2010) tarafından yapılan çalışmada, geliştirilmi ş karınca kolonisi
algoritması kullanarak ders çizelgeleme yapmışlardır. Henan Üniversitesi Bilgi
Bilimi ve Mühendisliği bölümleri 2008-2009 dönemine ait ders bilgilerini kullanarak
Java programlama dilinde bir yazılım geliştirmişlerdir. Geliştirdikleri yazılımda ikili
graf modeli veri yapısını kullanmışlardır. Çalışmalarının sonucunda kaynak
kullanımı, gerçekçilik, hız gibi konularda tatmin edici sonuçlar elde ettiklerini
bildirmişlerdir.
9
3. MATERYAL VE YÖNTEM
Yapay arı kolonisi algoritması (Artificial bee colony algorithm), bal arısı sürülerinin
kendilerine özgü zeki davranışlarını örnek alarak, arıların besin ararken kullandıkları
yöntemlerden esinlenerek oluşturulmuş bir optimizasyon algoritmasıdır. Sürü
zekasına dayanan bu algoritma, doğada sürü halinde hareket eden arıların besin
bulmada sergilemiş oldukları davranışları temel alarak optimizasyon problemlerini
çözmek için kullanılmaktadır.
Sürü zekası; karıncalar, kuşlar, termitler, arılar, balıklar gibi sosyal bir toplulukta
yaşayan bireylerin davranışlarını örnek alarak, problemlere çözüm getirmeyi
amaçlayan bir yapay zeka tekniğidir. Karıncaların gitmiş oldukları yollara kimyasal
madde bırakarak diğer karıncalara bilgi iletmeleri, kuş ve balık sürülerinin birlikte
hareket ederken konum ve hızlarını ayarlayarak ilerlemeleri, arı kolonilerinin kovan
etrafında yapmış olduğu salınım hareketiyle birbirlerine bilgi iletmeleri sürü
zekasının ortaya çıkmasında temel alınan zeki davranışlardır (Aybars ve Doğan,
2006; Karaboga ve Akay, 2007).
Sürü içindeki bireylerin kendi kendine organize olma ve iş bölümü yapabilme olmak
üzere iki önemli özellikleri vardır. Kendi kendine organize olma, sistemdeki
bireylerin diğer bireylerden aldığı bilgileri kullanıp kendi başına işlev görerek görev
yapması ve bu görev ile sistemi etkilemesi olarak tanımlanabilir. Bonabeau vd. kendi
başına organize olabilmeyi pozitif geri besleme (positive feedback), negatif geri
besleme (negative feedback), salınımlar (fluctuation) ve çoklu etkileşim olmak üzere
dört özellik ile karakterize etmişlerdir (Akay, 2009). İş bölümü, topluluktaki
bireylerin eş zamanlı olarak çeşitli i şlevleri gerçekleştiriyor olmasıdır.
3.1. Doğada Arılar
Sosyal bir düzen içinde yaşayan bal arıları, içgüdüsel olarak bu düzeni bilir ve
hayatını bu kurallara uygun olarak devam ettirir. Kovana ait olan her arının görevi
bellidir. Arılar bu görevlerin dışına çıkmazlar. Yiyeceklerin depolanması, balın
getirilmesi, iletişim ve besin arama gibi işler sosyal düzen içinde kendilerine biçilen
10
görevlerdir. Bu muazzam denge ve işleyiş araştırmacıların dikkatinden kaçmamış ve
onları bu davranışları modellemeye teşvik etmiştir.
Kolonide yaşayan arılar üç çeşit olarak sınıflandırılmışlardır. Bunlar: kraliçe arı
(queen), erkek arı (drone) ve dişi olan işçi arılardır (worker).
Kraliçe Arı (Queen Bee): Arı kolonilerinin her birinde sadece bir kraliçe bulunur ve
bu kraliçe arı diğer dişilere göre daha büyüktür. Temel görevi ise yumurtlamaktır.
Üreme sadece kraliçe arı vasıtasıyla olur, onun dışında diğer dişiler erkeklerle
çiftleşemezler. Kraliçe arı çiftleşmede depoladığı spermlerle iki yıl boyunca
yumurtlayabilirler. Yumurtlamadan başka, koloninin bütünlüğünü ve kovandaki
sistemin işleyişini sağlayan önemli maddeler de salgılarlar. Kraliçe arının salgıladığı
bu madde sayesinde bunu diğer arılar tanır, bu koku onun etrafında toplanan tüm arı
ailesine sirayet eder. Yabancı kraliçe arı ve onun ailesi bu şekilde fark edilir. Bu
sayede kraliçe arı koloninin bütünlüğünü sağlamış olmaktadır.
Erkek Arılar (Drones): Erkek arıların kolonideki görevi kraliçe arının
döllenmesidir. Görünüş itibariyle dişi arılardan iridirler ancak iğneleri ve besin
toplayacak organları yoktur.
İşçi Arılar (Workers): Arı kolonisinin sayıca çoğunluğunu teşkil eden işçi arılar
döllenmiş yumurtalardan çıkan üreme yeteneği olmayan dişilerdir. Koloninin
devamını sağlayan her türlü içgüdüsel ve yapısal yeteneklere sahiptir. Kendi
aralarında iş bölümü yapmak suretiyle çeşitli i şleri düzen içinde yürütürler. Besin
toplamak, bu besinleri saklamak, kovanın temizliği, ölü arılardan ve molozlardan
kurtulmak larvaların ve diğer arıların beslenmesi gibi bir çok görevi yerine getirirler.
Çiftleşme Uçuşu (Mating Flight): Kraliçe arı, genellikle kendisini çevreleyen,
temizliği ve beslenmesiyle ilgilenen bir grup işçi arı arasında görülür. Gelişimini
tamamladıktan sonra yaklaşık bir hafta içinde kovandan uzaklara çiftleşmek
amacıyla uçuş gerçekleştirir. Bu uçuşlar sırasında çiftleşme gerçekleşir. Spermler
kraliçe arının spermatica denilen keseciğinde toplanır ve koloninin devamı sağlanır.
11
Görev Paylaşımı (Task Selection): Bal arılarının kolonisinde çok sayıdaki farklı iş
için uygun sayıda bireyin bu işlere verilmesi gerekmektedir (Dornhaus vd, 1998), Bir
arının gelişim süreci, kraliçe arının yumurta olarak bırakmasıyla başlar. Yumurta
zamanla larva ve pupaya dönüşür. Yumurta ve larva sürecinde arıların beslenmesi
kendilerinin besin alanından çıktıktan sonraki görevlerinde de etkilidir. Larva
beslenirken hemşire arılar tarafından larvalara verilen arı sütünün zamanına göre arı
ya kraliçe arı olacaktır yada dişi bir arı olacaktır. Bu süreci takiben yumurtadan çıkan
arı kendine biçilen görevleri yapmak üzere hayata başlayacaklardır. Yetişkin arılar
yuva çıkışında dururken, genç arılar ve hemşire arılar beslenme alanında çalışırlar.
Yumurtadan çıkıp yetişkin birey oluncaya kadar geçen dönemde her arının besleme,
depolama, bal ve polenlerin elde edilmesi ve dağıtılması, iletişim ve yiyecek arama
gibi görevleri bulunur. Belli bir anda bir arının hangi işi gerçekleştireceği o anki
davranışsal rolüne, çevreden topladığı algılara ve bu algılara gösterdiği tepki eşiğine
bağlıdır. Şekil 3.8'de arılara ait görev paylaşımı verilmiştir (Akay, 2009).
Şekil 3.8. Arılarda görev dağılımı
12
3.2. Arıların Yem Bulma Davranışları
Arı kolonisinin yaşamının devamının sağlanması için en önemli işlerden birisi besin
aramadır. Kovan içinde biriktirilen kaynaklar ve ortamdaki bulunabilecek yem
kaynakları ve arıların etkileşimleri bu süreçteki önemli etkenlerdir.
Arının kovandan ayrılmasıyla başlayan arama süreci, başlangıçta rastgele yapılan
yiyecek araştırmaları ile devam eder. Bulunan kaynakta yiyecek miktarının azalması
neticesinde arılar yeni yem aramaya yada arılardan aldığı bilgiye göre başka
kaynaklara yönelmeye başlarlar. Bulunan kaynakların bilgilerinin arılarca birbirine
iletilmesi ve bulunan polen, su vb. kaynakların kovana getirilmesi bu süreç içinde
yapılan faaliyetlerdir.
Tereshko’nun öngördüğü yiyecek arama modelinde üç temel öğe vardır. Bunlar:
yiyecek kaynakları (Food Sources), görevli arayıcılar (Employed Foragers:), görevi
belli olmayan arayıcılar (Unemployed Foragers) dır (Tereshko ve Loengarov, 2005).
Akay çalışmasında bu öğeleri aşağıdaki gibi açıklamıştır (Akay, 2009).
Yiyecek Kaynakları: Arıların yiyecek aramak için gittiği kaynaklardır. Bir yiyecek
kaynağının değeri, kaynağın çeşidi, yuvaya olan uzaklığı, nektar miktarı veya
nektarın çıkarılmasının kolaylığı gibi birçok faktöre bağlı olmasına rağmen basitlik
açısından sadece kaynağın zenginliği tek bir kriter olarak alınabilir.
Görevi Belirli İşçi Arılar: Bu işçi arılar daha önceden belirlenmiş kaynaklardan
toplanan yiyeceğin kovana getirilmesi işi ile görevlendirilmişlerdir. Bir diğer görevi
ise gittikleri kaynağın konum ve kalite bilgilerini kovandaki diğer arılarla
paylaşmaktır.
Görevi Belirli Olmayan İşçi Arılar: Bu arılar yem toplanabilecek kaynakları arama
eğilimindedirler. Görevi belli olmayan iki çeşit işçi arı vardır. Bunlar rastgele kaynak
arayan kaşif arılar, kovanda bekleyen ve görevli arıları izleyerek bu arılar tarafından
gelen bilgiye göre yeni kaynaklara yönelen gözcü arılardır.
13
Arılar arasındaki bilginin iletilmesi, kolektif yapının ve ortak bilginin oluşmasındaki
en önemli konudur. Arıların yaşam alanı olan kovan bazı bölümlere ayrılabilir. Bu
alanlardan biri de bolum bilgi paylaşımının gerçekleştiği dans alanı (dancing area)
olarak adlandırılan alandır. Arılar arasında bilgi paylaşımı arıların yapmış olduğu
dansla (waggle dance) olur. Paylaşılan bilgi ile kaliteli yeni yiyecek kaynakları
keşfedilir (Grüter ve Farina, 2009).
Kaynaklardan yiyecek getiren arılar diğer arıları bu kaynaklara yönlendirmek için
kaynağın konum bilgisini diğer arılara iletmesi gerekir. Konumla ilgili bilgiyi alan
arı bu hedefe ulaşmak için güneş ışığından faydalanır. Yörüngeleri ile güneş
arasındaki açıyı hesaplayabilmektedirler. Enerji tüketimine göre uzaklık belirleyen
arılar, yüklerine göre farklı yükseklikte uçarak enerjilerini ayarlamaktadırlar (Akay,
2009).
14
Şekil 3.9. Arıların yem arama davranışları
Arıların yiyecek arama ve getirme davranışları Şekil 3.9’da gösterilmiştir. Bu
davranışlar şekil üzerinde incelemeyi ve açıklamaları Akay şöyle yapmıştır: A ve B
bulunmuş kaynaklar olarak farzedilmiştir. Başlangıçta görevi belli olmayan ve
kaynak bilgisinden yoksun arı aramaya başlayacaktır. Bu arı için iki durum
mevcuttur: Birincisi; S ile gösterilen bu arı kaşif arı olabilir ve yiyecek aramaya
başlayabilir İkincisi; Dans eden arıları izleyerek tarif edilen kaynaklara giden bir
gözcü arı olabilir. Bu arı R ile gösterilmiştir.
Kaynaklara giden arılar buldukları kaynaklardan nektar getirmeye başlarlar. Böylece
bu arılar görevli bir arı haline gelmişlerdir. Nektarı kovana getiren arı için bundan
sonra üç seçenek vardır:
15
i) Bilgi paylaşımında bulunmadan kaynaktan nektar getirmeye devam edebilir.
Bu arı EF2 ile gösterilmiştir.
ii) Kaynağa dönmeden önce dans ederek nektar kaynağının yeri ve miktarı
hakkında diğer arılara bilgi paylaşımında bulunarak diğer arıları bu kaynağa
yönlendirebilir. Bu arı EF1 ile gösterilmiştir.
iii) Kaynağı terk ederek dans alanında gözcü arı olabilir. Bu arı UF ile
gösterilmiştir.
3.3. Yapay Arı Kolonisi Algoritması ve Temel Adımları
Arı kolonilerinin zeki davranışları ve besin arama sürecindeki davranışlarını
modelleyen Karaboğa Yapay Arı Kolonisi (ABC) algoritmasını geliştirmiştir
(Karaboga, 2005). Algoritmada görevli arıların sayısı toplam yiyecek kaynağına
eşittir. İşçi arıların sayısı gözcü arıların sayısına eşittir. Kaynakta görevli arı
kaynaktaki nektar miktarı bitince kaşif arı olmaktadır. Arı kolonilerinin yiyecek
kaynaklarının konumları çözülmek istenen problemin muhtemel çözümlerine, nektar
miktarı ise çözümün kalitesini ifade etmektedir. ABC algoritması en fazla nektara
sahip kaynağın yerini bulmaya çalışarak arama uzaydaki çözümlerden problemin
minimumunu ya da maksimumunu veren noktayı (çözümü) bulmaya çalışmaktadır
(Akay, 2009).
Yiyecek aranırken başlangıç olarak kaşif arılar rastgele yiyecek aramaya başlarlar.
Kaynağı bulan kaşif arı artık görev sahibi olan bir arı haline gelmiştir ve kovana
nektar götürmeye başlarlar. Görevli arı kovana nektarını taşır ve yem getirdiği
kaynaklar ilgili bilgiyi dans alanında yaptığı dans ile bekleyen gözcü arılara iletirler.
Kaynaktaki nektar bitmiş ise kendisi de gözcü arı haline gelecektir. Gözcü arılar
dansları izledikten sonra yiyeceğin kalitesi doğrultusunda bir kaynağı tercih ederler.
16
ABC algoritmasının adımları:
• Başlangıç yiyecek kaynağı bölgelerini oluşturulması
• REPEAT
• İşçi arıları yiyecek kaynağına gönder ve nektar miktarının hesaplanması
• Gözcü arıların seçilimde kullanacakları olasılık değerlerinin hesaplanması
• Gözcü arıların hesaplanan olasılık değerlerine göre yiyecek kaynağı
bölgesi seçmeleri
• Kaynaktan ayrılma kriteri: limit ve kaşif arı üretilmesi
• UNTIL çevrim sayısı
3.3.1. Başlangıç kaynaklarının oluşturulması
ABC algoritmasında, besin kaynağının konumu, optimizasyon problemine olası bir
çözümü tarif eder dolayısıyla algoritma rastgele yiyecek kaynakları oluşturarak
başlamaktadır. Kaynakların üretimi sırasında parametrelerin alt ve üst limitleri
arasında rastgele değerler üretilir.
(3.1)
Denklem 3.1’deki eşitlikte i=1…SN ve j=1..D dir. SN yiyecek kaynağı sayısı, D
optimize edilecek parametre sayısıdır. minjx j. parametrenin alt sınırı, max
jx j.
parametrenin üst sınırıdır. Algoritma başlangıcında her kaynağa ait geliştirilememe
sayacı failurei sıfırlanmaktadır. Maksimum çevrim sayısı (MCN) veya tanımlanmış
bir durdurma kriteri, algoritmanın durdurma kriteri olarak kullanılabilir (Karaboga,
2008; Akay, 2009).
3.3.2. İşçi arıların yiyecek kaynaklarına gönderilmesi
Her kaynakta bir görevli arı bulunmaktadır. Yani kaynak sayısı kadar işçi arı
bulunmaktadır. İşçi arı aramalarında bulduğu kaynağın komşuluğunda yeni bir
kaynak belirleyerek bu kaynağın kalitesini değerlendirir ve seçime tabi tutar.
))(1,0( minj
xmaxj
xrandminj
xij
x −+=
17
Bulduğu kaynak eskisinden daha kaliteli ise yeni kaynağı hafızasına alır. İşçi arının
bu davranışı Karaboğa tarafından Denklem 3.2’deki eşitli ğe göre formülize edilmiştir
(Akay, 2009):
)
kjx
ij(x
ijφ
ijx
ijv −+=
(3.2)
Her bir ix kaynağı için [1,D] arasında rastgele seçilen j parametresinin değiştirilmesi
ile iv kaynağı bulunur. Mevcut kaynak ile bulunan kaynakların farkı alınıp [-1,1]
arasında rastgele seçilen ijφ sayısı ile ağırlıklandırıldıktan sonra mevcut kaynağın
çözümüne eklenerek komşuluğu bulunmaktadır.
Denklem 3.3’te, hesaplanan vij değerleri tanımlanan sınırları aşıyorsa, belirli olan alt
veya üst sınır değerlerine eşitlenir.
>
≤≤
<
=maxj
xij
vmaxj
x
maxj
xij
vminij
xij
v
minj
xij
vminj
x
ijv
,
,
,
(3.3)
Bulunan kaynağın kalitesine göre kaynağın uygunluk değeri ise Denklem 3.4’e göre
hesaplanmaktadır.
(3.4)
if değeri bulunan komşu çözümün yani iv kaynağına ait maliyet değeridir. Mevcut
kaynak ile bulunan kaynak arasında açgözlü (greedy) seleksiyon işlemi uygulanır.
Bulunan iv çözümünün kalitesi mevcut ix çözümünün kalitesinden daha nitelikli ise
<+≥+
=0),(1
0),1/(1
ffabs
fffitness
i
ii
18
eski kaynak bilgilerinden vazgeçerek hafızasına yeni iv çözümünü kaydeder ve
geliştirememe sayacını (failurei) sıfırlar. Eğer bulunan çözüm eskisinden daha
nitelikli değilse eski kaynağına döner ve geliştirememe sayacını bir artırır.
3.3.3. Gözcü arılar için olasılık değerlerinin hesaplanması
Kovana dönen görevli arılar buldukları kaynakla ilgili bilgiyi gözcü arılarla
paylaşırlar. Gözcü arı ise aldığı bilgilerden faydalanarak nektar kaynağının miktarı
ile ili şkili olarak bir kaynak seçer. Algoritmada bu işlem uygunluk değerleri baz
alınarak hesaplanmış ve seçim işlemi rulet çarkı kullanılarak yapılmıştır. Bir
kaynağın uygunluk değerinin, diğer tüm kaynakların uygunluk değeri toplamına
oranı olasılık değeri olarak belirlenmiştir (Akay, 2009).
∑=
=SN
ii
i
fitness
fitnessi
p
1
(3.5)
Denklem 3.5’ te görülmektedir ki uygunluk değerinin artması seçilme olasılığını da
artıracaktır. ifitness kaynağın kalitesini, SN ise görevli arı sayısını ifade etmektedir.
3.3.4. Gözcü arıların yiyecek kaynağı seçme işlemi
Gözcü arıların kaynak seçimleri için hesaplanan olasılık değerlerinden sonra her
kaynak için [0,1] arasında rastgele bir sayı üretilir. Hesaplanan olasılık değeri pi
üretilen rastgele sayıdan büyükse gözcü arılar yeni bir çözüm üretir ve kalitesi
hesaplanır. Mevcut çözüm ile yeni çözüm karşılaştırılır ve aç gözlü seleksiyon
uygulanır. Değişim gerçekleşmişse eski çözüm hafızadan silinir çözüm
gerçekleştirememe sayacı sıfırlanır aksi halde mevcut çözüm kullanılır çözüm
geliştirememe sayacı artırılır.
19
3.3.5. Kaynak bırakma ve kaşif arı üretimi
Arıların yaptığı faaliyetlerin döngüsü tamamlandıktan sonra kaynaktaki nektar
miktarının durumu yani kaynağın bitip bitmediği çözüm geliştirememe sayacı
aracılığıyla belirlenir. Bu sayaç belli bir değerin üstündeyse, bu kaynağın artık bitmiş
olduğuna karar verilir ve kaynak için görevli olan arı tarafından kaynak bırakılır ve
yeni kaynaklar aranmaya başlanır. Bu da demektir ki artık görevli arı yem arayacak
olan kaşif bir arı haline gelmiştir. Kayağın bittiğinin anlaşılması için algoritmada bir
“limit” parametresi tanımlanmıştır. Çözüm geliştirememe sayacı “limit” parametresi
ile karşılaştırılır, sayaç limitten büyükse kaynağın bırakılmasına karar verilir ve
görevli arı da kaşif arı haline dönüşür (Akay, 2009).
3.3.6. ABC algoritmasının özellikleri ve temel adımları
Akay ABC algoritmasının özelliklerini şöyle ifade etmektedir (Akay, 2009):
• Basit ve esnek bir algoritmadır.
• Arıların gerçek yiyecek arama davranışlarına çok yakın olarak tasarlanmıştır.
• Sürü zekasına dayalıdır.
• Başlangıçta nümerik problemler için tasarlanmış ancak ilerleyen süreçte geçek
tasarım problemleri içinde kullanılmıştır.
• Kontrol parametresi azdır.
20
Şekil 3.10. ABC algoritmasının akış diyagramı
Nektar miktarını hesapla
Görevli arıların kaynaklarının
komşularını belirle
Başlangıç yiyecek kaynakları pozisyonları
Nektar miktarlarını hesapla
Görevli arıların kaynaklarının
komşularını belirle
Nektar miktarlarını hesapla
Seleksiyon
Gözcü arılar dağıtıldı mı?
En iyi kaynak bilgilerini kaydet
Terk edilecek kaynakları belirle
Terk edilen kaynak
Durdurma kriteri sağlandı mı?
En son kaynak
E
H
E
H
21
Şekil 3.10’da verilen akış diyagramı ve anlatılanlar eşliğinde ABC algoritmasını
özetlemek ve daha iyi anlatılması açısından kod dizisi şeklinde açıklamaya çalışmak
yararlı olacaktır.
1: Başlangıç çözümlerinin oluşturulması; xij değerlerine Denklem 3.1 aracılığıyla
değerler üretilmesi ve failurei sayacının sıfırlanması
2: Uygunluk değerlerinin, fitnessi, hesaplanması
3: repeat
4: for i=1 to SN do
5: xi çözümünün komşuluğunda denklem 3.2’yi kullanarak yeni bir vi çözümü
üret ve bu çözümün uygunluğunu hesapla
6: vi ve xi çözümlerini aç gözlü seleksiyona tabi tut ve iyi olanı seç
7: vi çözümü daha iyi ise çözüm geliştirememe sayacını sıfırla (failurei=0),
değilse sayacın değerini artır (failurei= failurei+1)
8: end for
9: pi olasılık değerlerinin denklem 3.5 vasıtasıyla hesaplanması
10: k=0, i=1
11: repeat
12: if pi>random
13: xi çözümünün komşuluğunda denklem 3.2’yi kullanarak yeni bir vi çözümü
üret ve bu çözümün uygunluğunu hesapla
14: vi ve xi çözümlerini aç gözlü seleksiyona tabi tut ve iyi olanı seç
15: vi çözümü daha iyi ise çözüm geliştirememe sayacını sıfırla (failurei=0),
değilse sayacın değerini artır (failurei= failurei+1)
16: k=k+1
17: end if
18: until k=SN
19: if max(failurei)>limit
20: xi’yi hafızadan sil denklem 3.1 ile yeni bir çözüm oluştur
21: end if
22: En iyi çözümü sakla
23: until Durdurma kriteri (Akay, 2009).
22
3.3.7. ABC algoritması için matematiksel örnek
∑=
=D
i
xf1
2fonksiyonu ABC algoritması ile optimize edilmeye çalışıldığında
çözümün adımları aşağıdaki gibi olacaktır:
Başlangıç yiyecek kaynaklarının oluşturulması adımında D=4 ve SN=2 olarak
alınmış ve Denklem 3.1’e göre -100 ile 100 arasında rastgele üretilen yiyecek
kaynakları Foods ile ifade edilmiş ve aşağıda gösterilmiştir. Ayrıca limit parametresi
100 olarak alınmıştır.
Foods=48847368
63497482
−−−−
Bu kaynaklara ait kalite değerleri de fitness matrisi ile ifade edilmiş ve aşağıdaki gibi
hesaplanmıştır.
fitness=0000517.0
0000538.0
1. İşçi arı fazı: Denklem 3.2’ deki ağırlık değeri ijφ =(r-0.5)*2 olarak alınmıştır.
Ağırlık hesaplamasındaki r, rastgele üretilen bir sayıdır. Algoritmanın devam eden
adımında yiyecek kaynaklarından rastgele olarak seçilen 74 sayısı ile kaynağın
komşuluğundaki -73 sayısı Denklem 3.2’deki formüle göre işleme sokulmuştur.
( )( ) ( ) 44.15025.076.0737474 =×−×−−+ olarak hesaplanmış ve üst limit olan 100
den büyük olduğu için 100’e ötelenmiştir.
Çözüm[0]=
63
49
100
82
−−
−
23
Çözümün fitness değeri hesaplanmış ve 0,000432 olarak bulunmuş,
0.000432<0.0000538 olduğu için yeni çözümün kaliteli olmadığına karar verilerek
failure değeri artırılmıştır (failure=failure+1).
Foods=48847368
63497482
−−−−
Yiyecek kaynaklarında bir değişim olmamıştır.
1. Gözcü arı fazı: Denklem 3.5’e göre olasılık değeri hesaplanmış ve bu olasılığa
göre Foods matrisinin ilk satırı seçilmiş ve buradan rastgele olarak seçilen -82 sayısı
ile kaynağın komşuluğundaki 68 sayısı Denklem 3.2’deki formüle göre işleme
sokulmuştur.
( )( ) ( ) 7.4225.0369.0688282 −=×−×−−+− olarak hesaplanmıştır.
Çözüm[0]=
63
49
74
7.42
−−
−
Çözümün fitness değeri hesaplanmış ve 0.0000731 olarak bulunmuştur.
0.0000731>0.0000538 olduğundan bulunan kaynağın kaliteli olduğuna karar
verilmiş ve kaynak hafızaya alınmıştır. Kaynağın yeni görünümü aşağıdaki gibi
olmuştur.
fitness=0000517.0
0000731.0
Foods=48847368
6349747.42
−−−−
24
1. Kaşif arı fazı: failure<limit olduğundan tekrar işçi arı fazına geçilerek çevrimlere
devam edilmiştir.
2. İşçi arı fazı: Yiyecek kaynaklarından rastgele olarak seçilen 74 sayısı ile kaynağın
komşuluğundaki -73 sayısı Denklem 3.2’deki formüle göre işleme sokulmuştur.
( )( ) ( ) 82.8025.0532.0737474 =×−×−−+
Çözüm[0]=
63
49
82.80
7.42
−−
−
Çözümün fitness değeri hesaplanmış ve 0,000432 olarak bulunmuş,
0.0000678<0.0000731 olduğu için yeni çözümün kaliteli olmadığına karar verilerek
failure değeri artırılmıştır (failure=failure+1).
2. Gözcü arı fazı: Denklem 3.5’e göre olasılık değeri hesaplanmış ve bu olasılığa
göre Foods matrisinin ikinci satırı seçilmiş ve buradan rastgele olarak seçilen 68
sayısı ile kaynağın komşuluğundaki -42.7 sayısı Denklem 3.2’deki formüle göre
işleme sokulmuştur.
( )( ) ( ) 81.425.0214.07.426868 =×−×−−+
Çözüm[1]=
48
84
73
81.4
−−
Çözümün fitness değeri hesaplanmış ve 0.0000679 olarak bulunmuştur.
0.0000679>0.0000517 olduğundan bulunan kaynağın kaliteli olduğuna karar
verilmiş ve kaynak hafızaya alınmıştır. Kaynağın yeni görünümü aşağıdaki gibi
olmuştur.
25
fitness=0000679.0
0000731.0
Foods=48847381.4
6349747.42
−−−−−
2. Kaşif arı fazı: failure<limit olduğundan tekrar işçi arı fazına geçilerek çevrimlere
devam edilmiştir.
26
4. ARAŞTIRMA BULGULARI
Bu bölümde genel anlamda diğer çizelgeleme problemlerine benzeyen ders
çizelgeleme problemine ait yapılan uygulama ve uygulama sonucunda erişilen
bulgulara yer verilecektir.
4.1. Ders Çizelgeleme Probleminin Ortaya Konulması
Ders çizelgeleme problemleri çeşit olarak kurumların farklı ihtiyaçları nedeniyle
karşımıza çok çeşitli olarak gelmektedir. Kurumların ihtiyaçları doğal olarak kısıtlar
gerektirmektedir. Bu kısıtlardan bazıları uygulamalarda karşımıza gelmekle beraber
bazı uygulamalarda bunlara rastlanamamaktadır. Bu tez çalışmasın da kendine özgü
ihtiyaçları mevcut bir eğitim kurumu olan Süleyman Demirel Üniversitesi Gelendost
Meslek Yüksekokulu örnek alınmıştır.
Gelendost MYO iki yıllık önlisans eğitimi veren, Muhasebe ve Vergi Uygulamaları,
İnsan Kaynakları Yönetimi, Gıda Teknolojisi bölümlerine sahip olan bir
yüksekokuldur. Bu bölümlere ait haftalık ders çizelgesinin oluşturulması için
geliştirilen yazılımda öğretim elemanı, ders, derslik, bölüm bilgileri tanımlanmıştır.
Müfredat programına göre her bölümdeki öğrenciler 8-10 arasında değişen ders
almaktadırlar. Zaman çizelgesi, haftada 5 gün ve 8 saat olarak düzenlenmektedir.
4.2. Kısıtlar
Daha öncede değinildiği üzere kurumun ihtiyacına göre optimum çizelgenin
oluşturulması için bazı kısıtlamalar ortaya çıkmaktadır. Bu kısıtlar ikiye
ayrılmaktadır: sert kısıtlamalar ve yumuşak kısıtlamalar. Başlangıç durumunda
zaman kazanılması ve arama uzayını daraltmak amacıyla bazı ön tanımlamalar
yapılmıştır. Bu tanımlamalar:
1. Derse, dersi verecek olan öğretim elemanı atanır.
2. Ders, kendi için tanımlanan sınıfa atanır.
27
3. Dersin derslik türüne göre dersler kendi sınıfına yada dersin işleneceği ilgili
laboratuvara atanır.
Sert Kısıtlamalar:
1. Öğretim elemanının verdiği dersler aynı zaman dilimine atanmamalıdır.
2. Bir sınıfın dersleri aynı zaman dilimine atanmamalıdır.
3. Ders laboratuar vb. gibi özel dersliklerde işlenecekse ders bu dersliklere
atanmalıdır.
Yumuşak Kısıtlamalar:
1. Bir dersin farklı günlere ayrılmaması ve gün içinde ard arda atanmaya çalışılır.
2. Dersi veren öğretim elemanının istemediği günlere ders atanmamaya çalışılır.
3. Dersin işleneceği saat sayısı 4 olan dersler 2+2 şeklinde atanmaya çalışılır.
4. Öğretim elemanının gün içindeki dersleri arka arkaya atanmaya çalışılır.
4.3. Ders Çizelgeleme Problemi İçin Yapay Arı Kolonisi Algoritması
Problemi çözmek için ele alınan veriler aşağıdaki gibidir:
Öğretim elemanı sayısı: 18
Ders sayısı: 215
Sınıf sayısı: 10
Haftalık periyot: 5x8=40
Problem f(K ), K ∈ X (arama uzayı) olmak şartı ile X arama uzayında minimum
çözümü aramaktadır.
4.3.1. Çözümün gösterimi
Ele aldığımız çizelge probleminde çözümün gösteriminde 3 boyutlu bir matris
tanımlanmıştır.
Çözüm= derslik sayısı x haftadaki gün sayısı x gün içindeki periyot sayısı = 8x5x8
28
Çözüm matrisinde tanımlanan aralıklara dersler atanmaktadır. Örneğin;
Çözüm[1,2,3] = 25 şeklindeki gösterimle 1 numaralı dersliğe, 2. gün ve 3. saate 25
numaralı ders atandığı gösterilmektedir. Benzer bir gösterimi Burke vd, Aladağ ve
Hocaoğlu problem çözümünde kullanmışlardır (Burke vd, 2009; Aladağ ve
Hocaoğlu, 2007). Bu şekilde bir atamayla dersliklere göre çizelge
çıkarılabilmektedir. Atanan dersin hangi bölüme ait olduğu, atanan öğretim
elemanının hangisi olduğu bilindiği için, öğretim elemanına ve bölümlere göre de
ders çizelgesi çıkarılabilmektedir.
4.3.2. Başlangıç popülasyonunun oluşturulması
Başlangıç popülasyonu oluşturma işleminde, arama uzayındaki çözümlere karşılık
gelen yiyecek kaynaklarının oluşturulması gerekmektedir. Her bir yiyecek kaynağına
karşılık gelen çözümler oluşturulmuş ve yiyecek kaynağı sayısı 10 olarak
belirlenmiştir. Başlangıç çözümlerinin oluşturulması işleminde , rastgele seçilen
dersler, uygun sınıflara ve gün içerisindeki ders yoğunluğuna bağlı olarak, seçilen bir
günün boş periyotlarına atanmaktadır.
Atama işlemi sırasında uygun derslik; derse ait derslik türüne göre atanmaktadır.
Derslikler “Genel Derslik”, “Gıda Laboratuarı”, “Bilgisayar Laboratuarı” olarak
tanımlanmıştır. Derse ait olan derslik türü “Genel Derslik” ise o dersi alan bölümün
dersliğine, “Gıda Laboratuarı” ise gıda laboratuarına, “Bilgisayar Laboratuarı” ise
bilgisayar laboratuarına atanacaktır. Bu atamalar yapılırken diğer kısıtlamalar dikkate
alınmadan atamalar yapılmıştır.
4.3.3. Uygunluk değerinin hesaplanması
Yiyecek kaynaklarının nektar miktarlarının tespiti için bir uygunluk fonksiyonu
kullanılmıştır. Yiyecek kaynağının nektar miktarı uygunluk fonksiyonu göre,
kısıtlamalar baz alınarak hesaplanmıştır. Kısıtlamalara uyulan durumlarda kısıtların
ağırlığına bağlı olarak uygunluk düşürülmüş, kısıtlamalara uyulmayan durumlarda
uygunluk değeri artırılmıştır. Bu da demektir ki uygunluk değeri ne kadar yüksekse
29
yiyecek kaynağının nektar miktarı o kadar az, uygunluk değeri ne kadar düşükse
nektar miktarı da o kadar fazladır.
(4.1)
Kaynakların nektar miktarları, Denklem 4.1’de ifade edilmektedir. Burada n, kaynak
sayısını c, kısıtları, a ise kısıtlar için tanımlanmış ağırlık değerlerini ifade etmektedir
(Yiğit, 2006). Kaynağın kalitesine göre kaynağın uygunluk değeri ise;
(4.2)
Denklem 4.2’de gösterildiği gibi hesaplanmaktadır
4.3.4. İşçi arı fazı
İşçi arı fazında, işçi arı aramalarında bulduğu kaynağın komşuluğunda yeni bir
kaynak belirlemesi gerekmektedir. Bu amaçla “Değiştirme” komşuluk yapısı
kullanılmıştır (Tapkan vd, 2008). Değiştirme komşuluk yapısı; farklı iki periyotta
bulunan derslerin yer değiştirmesi olarak tanımlanabilir.
Ptesi Salı Çarş. Perş. Cuma Ptesi Salı Çarş. Perş. Cuma
1 1 2 Ders 1 2 Ders 5 3 Ders 1 3 Ders 5 4 Ders 5 4 Ders 1 5 Ders 5 5 Ders 1 6 6 7 7 8 8
Şekil 4.1. Değiştirme komşuluk yapısı
Şekil 4.1 de; Salı günü 2 ve 3. zaman dilimindeki Ders1 rastgele seçilmiş ve yine
rastgele seçilen Perşembe günü 4 ve 5. zaman dilimindeki Ders5 ile yer
değiştirmiştir.
∑=
=n
ijj acf
1
.
ii f
fitness+
=1
1
30
Değiştirme işleminden sonra yiyecek kaynağının kalitesi denklem 4.2 ye göre
hesaplanmış ve aç gözlü seleksiyona tabi tutulmuştur. Yeni bulunan kaynak daha
iyiyse hafızaya alınmış ve failurei sıfırlanmıştır aksi halde eski kaynak hafızada
kalmış ve failurei = failurei +1 olarak failurei artırılmıştır.
4.3.5. Gözcü arı fazı
Gözcü arı fazında, önce olasılık değerleri çeşitli denemeler sonucunda en optimum
sonuca ulaşmadaki başarısından dolayı denklem 4.3’e göre hesaplanmıştır.
(4.3)
Olasılık değeri hesaplandıktan sonra rastgele [0,1] arasında sayı üretilmiş ve bu sayı
pi değeri ile karşılaştırılmıştır. Eğer üretilen rastgele sayı pi değerinden küçükse
gözcü arı kaynaklara gönderilmiştir. Gözcü arılar da değiştirme komşuluk yapısını
kullanarak çözüm aramışlar ve işçi arı fazındaki seçme işlemini yerine getirmişlerdir.
4.3.6. Kaşif arı fazı
Kaşif arı fazında, işçi arı ve gözcü arama fazındaki çözüm geliştirememe sayacının
(failurei) durumuna göre kaynak terk mi edilecek mi yoksa kaynaktaki nektar
toplanmaya devam mı edilecek buna karar vermek amacıyla limit parametresiyle
karşılaştırılmıştır. Kısıtlı problemler de yeni çözümleri popülasyona katarak farklılığı
sağlamak amacıyla karşılaştırma her döngüde yapılmamış kaşif üretme periyodu
(SPP) kullanılarak yapılmıştır (Akay, 2009). limit parametresinin değeri 2500 olarak
alınmış ve her bir 5 çevrimde limit ve failurei karşılaştırılmıştır. Eğer failurei değeri
limit değerini aşmışsa mevcut çözüm hafızadan silinmiş ve yeni rastgele yeni bir
çözüm üretilmiştir.
∑=
+= SN
ii
i
fitness
fitness
1
6,0i
p
31
4.4. Geliştirilen Yazılımın Tanıtılması
Çalışmada bölüm, derslik, ders, öğretim elemanlarının, görevlendirmelerin
tanımlanabildiği bir yazılım geliştirilmi ştir. Yazılım Microsoft Visual Studio 2008
geliştirme ortamında, C# programlama dili kullanılarak geliştirilmi ştir. Bilgilerin
saklandığı ortam için ise Microsoft SQL Server 2008 veritabanı kullanılmıştır.
Programın akış şeması Şekil 4.2’de verilmiştir.
Şekil 4.2. Programın şeması
Girilen bilgilerin ve programın çalışması sonucunda elde edilen verilerin saklanması
amacıyla veritabanında 6 tane tablo oluşturulmuştur. Bunlar: “bolum”, “dersler”,
“derslikler”, “gunler”, “ogruye”, “ogruyeistek”, “dersdagilim” tablolarıdır. Genel
tanımlamalar ve algoritmada kullanılacak bilgilerden bölüm bilgileri bolum
tablosuna, okuldaki fiziki mekanların tanımlandığı derslikler tablosuna, dersi verecek
öğretim elemanları ogruye tablosuna, günlerle ilgili tanımlamalar gunler tablosuna,
öğretim elemanının tercih etmediği gün ve zaman bilgileri ogruyeistek tablosuna
girilmektedir. Algoritma çalışıp bittikten sonra da çizelgelere ait bilgiler dersdagilim
tablosuna kayıt edilmektedir. Çizelgeler bu tablodan okunan bilgilere göre
alınmaktadır.
Yapay Arı Kolonisi
Algoritması Sql
Server Girişler
32
Şekil 4.3. Programın genel görünüşü
Şekil 4.3’te görüldüğü gibi program 4 menüden oluşmaktadır. Giriş menüsünde
bölüm, sınıf, ders, öğretim elemanı gibi genel tanımlamalar yapılmaktadır.
Görevlendirme menüsünde derslere, dersleri verecek öğretim elemanları
atanmaktadır. Ayrıca öğretim elemanlarının istemediği gün ve zaman dilimleri
seçilmektedir. ABC menüsünde algoritma tanımlara göre çalışmakta ve çizelgeleri
oluşturmaktadır. Raporlar menüsünde ise istenen çizelgeler alınmaktadır. Bunlarla
ilgili açıklamalar örnek görüntüler eşliğinde aşağıda açıklanmıştır.
Bölümler menüsünde okuldaki mevcut bölümler ve bu bölümlerin kısa adları
tanımlanmaktadır. Bölüm kısa adı çizelgeler alınırken bölümün tam adının uzun
olabileceği durumlarda kısaltması kullanılması amacıyla oluşturulmuştur. Girilen
bilgiler bolum tablosuna kaydedilmektedir. Bölümler menüsü Şekil 4.4’te verilmiştir.
33
Şekil 4.4. Bölüm bilgileri penceresi
Okuldaki derslerin verileceği fiziki mekanlar Şekil 4.5’te, sınıf bilgileri penceresinde
tanımlanmaktadır. Her bir bölüme ait sınıf bulunduğundan her derslik o bölümlere
atanmaya çalışılmıştır. Derslikler türlerine göre sınıflandırılmıştır.
Şekil 4.5. Sınıf bilgileri penceresi
34
Ders bilgileri penceresinde derslerle ilgili bilgiler tanımlanmaktadır. Ders hangi
bölüme ve hangi sınıfa ait, ders ne tür bir sınıfta işlenecek, haftada kaç saat işlenecek
gibi bilgiler bu pencerede tanımlanmaktadır. Ders bilgileri penceresi Şekil 4.6’da
verilmiştir.
Şekil 4.6. Ders bilgileri penceresi
Öğretim elemanı ile ilgili bilgiler öğretim elemanı bilgileri penceresinde
tanımlanmaktadır. Öğretim elemanı penceresi Şekil 4.7’de verilmiştir.
Şekil 4.7. Öğretim elemanı bilgileri penceresi
35
Bölümlere ve sınıflara göre dersi verecek öğretim elemanı ile ilgili bilgiler derse
görevlendirme penceresinde tanımlanmaktadır. Şekil 4.8’e göre bölüm ve sınıf
seçildikten sonra göster butonuna tıklatılınca seçilen bölüm ve sınıfa ait dersler grid
içinde gösterilmekte ve buradan öğretim elemanı derse atanmaktadır.
Şekil 4.8. Görevlendirme penceresi
Öğretim elemanının tercih etmediği gün ve saatler öğretim üyesi istekleri
penceresinde tanımlanmaktadır. Öğretim elemanı seçildikten sonra öğretim
elemanına ait zaman tablosu gösterilmekte ve buradan girişler yapılabilmektedir.
Şekil 4.9’ da öğretim istekleri penceresi verilmiştir.
36
Şekil 4.9. Öğretim elemanı istek penceresi
ABC penceresinde algoritma tanımlanan değerlere göre çalıştırılmakta ve
iterasyonlara göre uygunluk (amaç) fonksiyonunun değerleri gösterilmiştir. Bulunan
sonuçlar dersdagilim tablosuna kaydedilmiştir. Şekil 4.10’da ABC penceresi
verilmiştir.
Şekil 4.10. ABC penceresi En son adım çizelgelerin gösterimi raporlar penceresinde gösterilmiştir. Öğretim
elemanı ve programların ders programları bu pencere vasıtasıyla alınabilmektedir.
37
Şekil 4.11’de raporlar penceresi verilmiştir. Ek-1’de öğretim elemanına göre, Ek-
2’de bölümlere göre alınan çıktılar ayrıntılı bir şekilde verilmiştir.
Şekil 4.11. Raporlar penceresi
4.4. Deneysel Çalışmalar
Bu tez çalışmasında Gelendost Meslek Yüksekokuluna ait veriler ışığında testler
yapılmıştır. Bunun yanı sıra geliştirilen yazılımı Süleyman Demirel Üniversitesi
birimlerinden olan Isparta Meslek Yüksekokulu dönem dersleri ve
görevlendirmelerini esas alarak teste tabi tutulmuştur. Çizelge 4.1’de Gelendost
Meslek Yüksekokulu ve Çizelge 4.2’de Isparta Meslek Yüksekokulu bilgileri
verilmiştir.
Çizelge 4.1. Gelendost meslek yüksekokulu verileri
Öğretim görevlisi sayısı 18
Bölüm sayısı 3
Derslik sayısı 10
Toplam ders saati 215
38
Çizelge 4.2. Isparta meslek yüksekokulu verileri
Öğretim görevlisi sayısı 43
Bölüm sayısı 9
Derslik sayısı 19
Toplam ders saati 396
Program core 2 duo 2.2 ghz işlemci ve 1 gb ram olan bir bilgisayarda 30 koşma
yapılarak çalıştırılmış ve test sonuçlarına ait bilgiler Çizelge 4.3’te gösterilmiştir.
Çizelge 4.3. Test sonuçları
Keskin Kısıtlar Tüm Kısıtlar
Ortalama Süre(sn)
Ortalama İterasyon
Ortalama Süre(sn)
Ortalama İterasyon
Gelendost MYO 22.86 170 43.90 448
Isparta MYO 41.3 290 60.09 508
39
5. TARTI ŞMA VE SONUÇ
Bu çalışmada Süleyman Demirel Üniversitesi Gelendost Meslek Yüksekokulu’na ait
bir ders çizelgeleme problemi ele alınmış ve yapay arı kolonisi algoritması
kullanılarak problem çözülmüştür. Program başarıyla ders çizelgelerini oluşturmuş
ve bu bilgileri kaydetmiştir. Program sert kısıtlama tanımlarına tamamen uygun ders
çizelgeleri oluşturmayı başarmıştır. Algoritma başlangıcında rastgele oluşturulan
ders çizelgelerinde 72 adet keskin kısıtla karşılaşılmış ve keskin kısıtların tamamı
yok edilmiş, %100 başarı elde edilmiştir. Yumuşak kısıtlarda ise; algoritma
başlangıcında rastgele oluşturulan ders çizelgelerinde 65 adet yumuşak kısıtla
karşılaşılmış ve bu yumuşak kısıtların 60 tanesi yok edilmiş, %92,5 oranında başarı
elde edilmiştir. Derslerin sayısı, öğretim elemanın sayısı düşünüldüğünde esnek
kısıtlardaki performansında kabul edilebilir olduğu gözlemlenmiştir. ABC
algoritmasının çalıştırılmasıyla elde edilen çözümün fonksiyon değerinde başlangıç
iterasyonundan itibaren hızlı bir şekilde iyileşme gözlemlenmiştir. Program yumuşak
kısıtlar dikkate alınmadan çalıştırılmış ve 143. iterasyonda sert kısıtlamaları çözmeyi
başarmıştır. Şekil 4.12’de sert kısıtların iterasyonlara göre değişimi verilmiştir. Şekil
4.13’de ise tüm kısıtların iterasyonlara göre değişimi verilmiştir.
Şekil 4.12. Sert kısıtların iterasyonlara göre değişimi
40
Şekil 4.13. Tüm kısıtların iterasyonlara göre değişimi
Bu çalışma ile eğitim kurumlarındaki ders çizelgeleme problemi çözülerek, ders
programını hazırlayan akademisyenlerin iş yükünün azaltılması hedeflenmiştir.
Geliştirilen yazılım ile amaçlanan hedeflere ulaşılmıştır.
41
6. KAYNAKLAR
Akay, B., 2009. Nümerik Optimizasyon Problemlerinde Yapay Arı Kolonisi
(Artificial Bee Colony) Algoritmasının Performans Analizi. Erciyes Üniversitesi Fen Bilimleri Enstitüsü, Doktora Tezi, 301s, Kayseri.
Aladağ, Ç.H., Hocaoğlu, G., 2007.A Tabu Search Algorithm To Solve A Course
Timetabling Problem. Hacettepe Journal of Mathematics and Statistics, 36(1), 53-64.
Aybars, U., Doğan, A., Ant System Algoritmasının Java İle Göreselleştirilmesi.
Akademik Bilişim 2006 + BilgiTek IV, Denizli. Bağış, A., 1996. Genetik Algoritma kullanarak Ders Programının Optimum Şekilde
Düzenlenmesi. Erciyes Üniversitesi Fen Bilimleri Enstitüsü, Yüksek Lisans Tezi, 76s, Kayseri
Balık, H.H., Akbal, A., Barut, İ.O., Solakoğlu, L., 2006. Grafik Renklendirme
Algoritması Kullanılarak Otomatik Ders Programı Geliştirme Yazılımı. Akademik Bilişim 2006 + BilgiTek IV, Denizli.
Baykasoğlu, A., Özbakır, L., Tapkan, 2007. Artificial Bee Colony Algorithm And Its
Application To Generalized Assignment Problem, Swarm Intelligence: Focus on Ant and Particle Swarm Optimization, Book edited by Felix T. S. Chan and Manoj Kumar Tiwari, ISBN 978-3-902613-09-7. Advanced Robotic Systems, Vienna, Austria, EU, 113-144.
Biroğul, S., 2005. Genetik Algoritma Yaklaşımıyla Atölye Çizelgeleme. Gazi
Üniversitesi Fen Bilimleri Enstitüsü, Yüksek Lisans Tezi, 95s, Ankara. Blum, C., Sampels, M., 2004. An Ant Colony Optimization Algorithm for Shop
Scheduling Problems. Journal of Mathematical Modelling and Algorithms, 3, 285-308.
Bonabeau, E., Dorigo, M. and Theraulaz, G., Swarm Intelligence: From Natural to
Artificial Systems. New York, NY: Oxford University Press, 1999. Burke, E.K., Marecek, Parkes, A.J., 2009. Decomposition, Reformulation, and
Diving in University Course Timetabling. Journal of Computers & Operations Research, 582-597.
Cura, T., 2007. Timetabling Of Faculty Lectures Using Simulated Annealing
Algorithm. İstanbul Ticaret Üniversitesi Fen Bilimleri Dergisi, 12, 1-20. Çivril, H., 2009.Hemşire Çizelgeleme Probleminin Genetik Algoritma İle Çözümü.
Süleyman Demirel Üniversitesi Fen Bilimleri Enstitüsü, Yüksek Lisans Tezi, 87s, Isparta.
42
Daban, F., Özdemir, E., 2004. Eğitimde Verimliliği Artıran Ders Programlarının Hazırlanması İçin Genetik Algoritma Kullanımı. Eğitim Bilimleri ve Uygulama Dergisi, 3 (6), 245-257.
Dasgupta, P., Khazanchi, D., 2005. Adaptive Decision Support For Academic Course
Scheduling Using Intelligent Software Agents, International Journal of Technology in Teaching and Learning,1(2), 63-78.
Dorigo, M., Di Caro, G., Gambardella, L.M.,1998, Ant Algorithms for Discrete
Optimization , Journal of Artificial Intelligence Research., 5(2), 137-172. Dornhaus, A., Klügl, F., Puppe, F., Tautz, J., 1998. Task Selection in Honeybees-
Experiments Using Multi-Agent Simulation. in Proc of GWAL'98. Engin, O., 2001. Akış Tipi Çizelgeleme Problemlerinin Genetik Algoritma İle
Çözümü Performansının Artırılmasında Parametre Optimizasyonu. İstanbul Teknik Üniversitesi, Doktora Tezi, 215s, İstanbul.
Engin, O., Fığlalı, A., 2002. Akış Tipi Çizelgeleme Problemlerinin Genetik
Algoritma Yardımı İle Çözümünde Uygun Çaprazlama Operatörünün Belirlenmesi. Doğuş Üniversitesi Dergisi, 6, 27-35.
Fang Ming, G., Hua, S., 2010. Course-Scheduling Algorithm of Option-Based
Hierarchical Reinforcement Learning. 2010 Second International Workshop on Education Technology and Computer Science, 288-291.
Grüter C., Farina M., 2009. The Honeybee Waggle Dance: Can We Follow The
Steps?. Trends in Ecology & Evolution ,24(5), 242-247. Gülcü, A., 2006. Yapay Zeka Tekniklerinden Genetik Algoritma ve Tabu Arama
Yöntemlerinin Eğitim Kurumlarının Haftalık Ders Programlarının Hazırlanmasında Kullanımı. Marmara Üniversitesi Fen Bilimleri Enstitüsü, Yüksek Lisans Tezi, 67s, İstanbul.
Kalender, M., 2007. Ders Çizelgeleme Programı. TMMOB Elektrik Mühendisleri
Odası İstanbul Şubesi, 2006-2007 Öğretim Yılı Proje Yarışması, İstanbul. Karaboga, D., 2005. An Idea Based On Honey Bee Swarm For Numerical
Optimization. Technical Report-TR06, Erciyes University Engineering Faculty Computer Engineering Department, Kayseri.
Karaboga, D., Akay, B., 2007. Artificial Bee Colony Algorithm on Training
Artificial Neural Networks. Signal Processing and Communications Applications, SIU 2007 IEEE 15th, 1–4.
Karaboga, D., Akay, B., 2008. On The Performance Of Artificial Bee Colony (ABC)
Algorithm. Applied Soft Computing, 8(1), 687-697.
43
Kıran, M.S., Gündüz, M., Şahman, M.A., 2009. Arı Kolonisi Optimizasyon Algoritması Kullanarak En Kısa Yol Bulma. İTUSEM 2009 IV. İletişim Teknolojileri ve Ulusal Sempozyumu, Adana.
Lien-Fu, L., Nien-Lin, H., Liang-Tsung, H., Tien-Chun, C., 2006. An Artificial
Intelligence Approach to Course Timetabling. 18th IEEE International Conference on Tools with Artificial Intelligence (ICTAI'06), 389-396.
Li, Z., Sun, Y., 2010. College Course Scheguling System Basing on Improved Ant
Colony Algorithm. Database Technology and Applications (DBTA) 2010 2nd International Workshop, Wuhan.
Memiş, G., 2008. Yarı Otomatik Ders Programı Sistemi. Başkent Üniversitesi Fen
Bilimleri Enstitüsü, Yüksek Lisans Tezi, 143s, Ankara. Ming, H., Qi, C., 2010. Course Scheduling System Design and Implementation
Based on Genetic Algorithm. 2010 International Conference On Computer Design And Appliations (ICCDA 2010), 611-614.
Özcan, E., Alkan, A., 2002. Çok Nüfuslu Kararlı Hal Genetik Algoritması
Kullanarak Otomatik Çizelgeleme. TBD 19. Bilisim Kurultayı, 149-155. Özsağlam, M.Y., 2009. Parçacık Sürü Optimizasyonu Algoritmasının Gezgin Satıcı
Problemine Uygulanması ve Performansının İncelenmesi. Selçuk Üniversitesi Fen Bilimleri Enstitüsü, Yüksek Lisans Tezi, 119s, Konya.
Taç, K.C., 2006. Genetik Algoritma Kullanılarak Haftalık Ders Programı Zaman
Çizelgeleme Yazılımının Geliştirilmesi. Marmara Üniversitesi Fen Bilimleri Enstitüsü, Yüksek Lisans Tezi, 87s, İstanbul.
Tapkan, P., Özbakır, L., Baykasoğlu, A., 2008. Arı Algoritması ve Genelleştirilmi ş
Atama Problemi: Farklı Komşuluk Yapılarının Karşılaştırılması. YA/EM?2008 28. Ulusal Kongresi, İstanbul.
Tereshko, V., Loengarov, A., 2005. Collective decision making in honey-bee
foraging dynamics. Computing and Informaton Systems, 9(3), 1-7. Temur, B., 2006.Investigating The Usability Of Integer Programming For The
Scheduling Process In An Educatıonal Institute. Marmara University The Institute For Graduated Studies In Pure And Applied Sciences, Master Thesis, 61p, Istanbul.
Yiğit, T., 2006. Meslek Liseleri Haftalık Ders Çizelgelerinin Genetik Algoritmalar
Yardımıyla Oluşturulması. Gazi Üniversitesi Endüstriyel Sanatlar Eğitim Fakültesi Dergisi, 19, 25-39.
44
EKLER
EK-1
Öğretim elemanlarına ait ders programları:
45
46
EK-2
Bölümlere ait ders programları:
47
48
49
50
51
52
53
ÖZGEÇM İŞ
Adı Soyadı : Mahmut TOKMAK
Doğum Yeri ve Yılı : Yalvaç, 1978
Medeni Hali : Evli
Yabancı Dili : İngilizce
Eğitim Durumu (Kurum ve Yıl)
Lise : Yalvaç Atatürk Lisesi, 1992-1995
Lisans : Selçuk Üniversitesi Mühendislik-Mimarlık Fakültesi
Bilgisayar Mühendisliği, 1995-2000
Çalıştığı Kurum
Süleyman Demirel Üniversitesi, Gelendost Meslek Yüksekokulu, 2003-…