62
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

ders çizelgeleme

Embed Size (px)

Citation preview

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