genetik algoritma kullanılarak ders çizelgeleme yazılımının

advertisement
GENETİK ALGORİTMA KULLANILARAK DERS ÇİZELGELEME
YAZILIMININ GELİŞTİRİLMESİ
MUHAMMED MUTLU YAPICI
YÜKSEK LİSANS TEZİ
ELEKTRONİK BİLGİSAYAR EĞİTİMİ
GAZİ ÜNİVERSİTESİ
BİLİŞİM ENSTİTÜSÜ
EKİM 2012
ANKARA
GENETİK ALGORİTMA KULLANILARAK DERS ÇİZELGELEME
YAZILIMININ GELİŞTİRİLMESİ
MUHAMMED MUTLU YAPICI
YÜKSEK LİSANS TEZİ
ELEKTRONİK BİLGİSAYAR EĞİTİMİ
GAZİ ÜNİVERSİTESİ
BİLİŞİM ENSTİTÜSÜ
EKİM 2012
ANKARA
TEZ BİLDİRİMİ
Tez içindeki bütün bilgilerin etik davranış ve akademik kurallar çerçevesinde elde
edilerek sunulduğunu, ayrıca tez yazım kurallarına uygun olarak hazırlanan bu
çalışmada orijinal olmayan her türlü kaynağa eksiksiz atıf yapıldığını bildiririm.
Muhammed Mutlu YAPICI
iv
GENETİK ALGORİTMA KULLANILARAK DERS ÇİZELGELEME
YAZILIMININ GELİŞTİRİLMESİ
(Yüksek Lisans Tezi)
Muhammed Mutlu YAPICI
GAZİ ÜNİVERSİTESİ
BİLİŞİM ENSTİTÜSÜ
EKİM 2012
ÖZET
Bu
çalışmada kaynak kısıtlı ders çizelgelemeye yönelik
olarak
genetik
algoritma temelli bir çizelgeleme yazılımı geliştirmek amaçlanmaktadır.
Üniversitelerde otomatik ders çizelgesi hazırlamak, bir öğrencinin, öğretim
elemanın veya şubenin derslerinin çakışmaması, herhangi bir derslikte aynı
saate birden fazla dersin konmaması
gibi bir çok kısıt altında çözülmesi
gereken zor bir optimizasyon problemidir. Çözümü
zor
olan
bu
tür
problemlerde, kesin çözüm veren bir algoritmanın hazırlanması oldukça
güçtür. Bunun için bu tip problemlerde yalın optimal çözümü veren sezgisel
algoritmalara ihtiyaç bulunmaktadır. Genetik bilimi ve doğal seçme mantığına
dayalı olan genetik algoritmalar, bu tipten algoritmalar olup, çözülmesi zor
problemler için kullanılan ve iyi sonuçlar elde edilen bir algoritmadır.
Bu çalışmada kısıtların kolayca girilebildiği, çözümlerin üretilebildiği,
değiştirilebildiği ve bilgilerin saklanabildiği, otomatik ders programı hazırlayan
bir yazılım genetik algoritma kullanılarak geliştirilmiştir. Yazılım MS Visual
Studio 2010 programı kullanılarak C# programlama dilinde geliştirilmiştir. En
uygun yaklaşımı en kısa sürede bulmak için, tam genetik algoritma ve yarı
genetik algoritma birlikte test edilmiştir. Testler için gerçek ve rastgele
oluşturulmuş veriler kullanılmıştır. Problemin çözümünde kullanılan tam
v
genetik algoritma, rastgele oluşturulan başlangıç popülasyonundan itibaren
kullanılmaya başladığında uygun çözümün
bulunması oldukça zaman
almaktadır. Kullanılan yarı genetik algoritma ile uygun çözüme çok daha hızlı
bir şekilde ulaşılmıştır.
Bilim Kodu
Anahtar Kelimeler
Sayfa Adedi
Tez Yöneticisi
: 702.3.006
: genetik algoritma, ders çizelgeleme.
: 89
: Prof. Dr. Ömer Faruk BAY
vi
DEVELOPMENT OF A TIMETABLING SOFTWARE USING GENETIC
ALGORITHM
(M.Sc. Thesis)
Muhammed Mutlu YAPICI
GAZİ UNIVERSITY
INFORMATICS INSTITUTE
OCTOBER 2012
ABSTRACT
In this study, it is aimed to develop scheduling software based on genetic
algorithm for the resource constrained course scheduling. In the Universities,
preparing the lesson program (schedule) is a difficult NP-hard optimization
problem that must be solved under the a lot of constraints as without a student,
lecturer, or class conflict. Preparation of an algorithm that gives the exact
solution is quite difficult for this kind of NP-hard optimization problems.
Therefore, we need to heuristic algorithms that gives the simple and optimal
solution to solve this kind of NP-hard optimization problem. Genetic algorithms
which are based on the logic of science and subjected to genetic selection, are
these kind of algorithms which use to solve NP-hard optimization problem and
give the good results.
In this study, a software for preparing automatic course scheduling has been
developed to obtain optimal results using genetic algorithm. The Software was
developed via MS Visual Studio 2010 using the C # programming language. To
find the most appropriate approach as soon as possible, full genetic algorithm
vii
and part-genetic algorithm has been tested together. Real and randomly
generated data has been used for the tests. Observed that when full genetic
algorithm has been used since the start population that was randomly
generated, is taking quite some time to find the appropriate solution. With part
genetic algorithm which is used, appropriate solution is obtained much more
quickly.
Science Code
Key Words
Page Number
Advisor
: 702.3.006
: genetic algorithm, lesson scheduling.
: 89
: Prof. Dr. Ömer Faruk BAY
viii
TEŞEKKÜR
Çalışmalarım boyunca değerli yardım ve katkılarıyla beni yönlendiren tez danışmanı
hocam Prof. Dr. Ömer Faruk BAY’ a, başarılı olabilmem için yardımlarını
esirgemeyen hocalarım ve araştırma görevlisi arkadaşlarıma, sabırla beni destekleyen
aileme teşekkürü borç bilirim.
ix
İÇİNDEKİLER
ÖZET ...................................................................................................................................... iv
ABSTRACT............................................................................................................................ vi
TEŞEKKÜR.......................................................................................................................... viii
ÇİZELGE LİSTESİ ............................................................................................................... xii
ŞEKİLLER LİSTESİ ........................................................................................................... xiii
RESİMLER LİSTESİ .......................................................................................................... xiv
KISALTMALAR LİSTESİ ................................................................................................... xv
1.
GİRİŞ ............................................................................................................................... 1
2.
GENETİK ALGORİTMA VE ÇALIŞMA PRENSİBİ ................................................... 5
2.1.
Kromozom ............................................................................................................... 5
2.2.
Gen ........................................................................................................................... 6
2.3.
Popülasyon (Toplum)............................................................................................... 7
2.4.
Uygunluk Oranı ....................................................................................................... 8
2.5.
Seçim İşlemi............................................................................................................. 9
2.5.1.
Rulet tekerleği seçim mekanizması .................................................................. 9
2.5.2.
Turnuva seçim mekanizması .......................................................................... 11
2.5.3.
Rastgele seçim mekanizması ......................................................................... 12
2.6.
Elitist Seçim ( Elitism ) .......................................................................................... 13
2.7.
Çaprazlama Operatörü ........................................................................................... 13
2.8.
Mutasyon Operatörü .............................................................................................. 16
2.8.1.
Ters mutasyon ................................................................................................ 17
2.8.2.
Komşu iki geni değiştirme ............................................................................. 17
2.8.3.
Keyfi iki geni değiştirme................................................................................ 17
2.8.4.
Keyfi üç geni değiştirme ................................................................................ 18
2.9.
Kararlı Şekilde Tekrar Üreme (Steady Stade Reproduction) ................................. 18
x
Genetik Algoritmanın Çalışma Prensibi ............................................................ 19
2.10.
2.10.1. Başlangıç popülasyonun oluşturulması .............................................................. 20
2.10.2. Uygunluk değerinin hesaplanması ..................................................................... 21
2.10.3. Genetik algoritma akış şeması ........................................................................... 22
3.
4.
KAYNAK KISITLI DERS ÇİZELGELEME PROBLEMİNE GENETİK
ALGORİTMA YÖNTEMİNİN UYGULANMASI....................................................... 24
3.1.
Probleme Uygun Genetik Algoritmanın Tasarlanması .......................................... 25
3.2.
Kromozom Yapısı .................................................................................................. 26
3.3.
Gen Yapısı ............................................................................................................. 28
3.4.
Seçim İşlemi........................................................................................................... 33
3.5.
Çaprazlama İşlemi ................................................................................................. 34
3.6.
Mutasyon İşlemi ..................................................................................................... 35
3.7.
Uygunluk Değer Fonksiyonu ................................................................................. 36
3.8.
Yarı Genetik Çözüm Fonksiyonu .......................................................................... 39
GELİŞTİRİLEN PROGRAMIN ANALİZİ ................................................................... 41
4.1.
Analizde Kullanılan Veriler ................................................................................... 41
4.2.
Program Kısıtları .................................................................................................... 42
4.2.1.
Ana kısıtlar ..................................................................................................... 42
4.2.2.
Özel kısıtlar .................................................................................................... 42
4.3.
5.
Program Arayüz Kullanımı ve Menülerin Tanıtımı ............................................... 44
4.3.1.
Veri girişi menüsü .......................................................................................... 45
4.3.2.
Aktivite ve kısıt düzenle menüsü ................................................................... 48
4.3.3.
Çizelge menüsü .............................................................................................. 53
4.3.4.
Bilgi menüsü .................................................................................................. 56
BENZETİM ÇALIŞMALARI VE GENETİK ALGORİTMA PERFORMANSININ
İNCELENMESİ ............................................................................................................. 57
5.1.
Popülasyon Büyüklüğü .......................................................................................... 57
5.1.1.
Popülasyon büyüklüğüne bağlı tam genetik çözüm sonuçları ....................... 58
5.1.2.
Popülasyon büyüklüğüne bağlı kısmi genetik çözüm sonuçları .................... 59
xi
5.1.3.
5.2.
Popülasyon büyüklüğüne bağlı tam genetik çözüm ve kısmi genetik çözüm
sonuçlarının karşılaştırılması ......................................................................... 60
Mutasyon Oranı ..................................................................................................... 61
5.2.1.
Tam genetik çözüm mutasyon oranı sonuçları............................................... 61
5.2.2.
Kısmi genetik çözüm mutasyon oranı sonuçları ............................................ 63
5.3.
Mutasyon Nokta Sayısı .......................................................................................... 64
5.3.1.
Tam genetik çözüm mutasyon nokta sayısı ................................................... 65
5.3.2.
Kısmi genetik çözüm mutasyon nokta sayısı ................................................. 66
6.
PROGRAM SONUÇLARI VE İRDELEME................................................................. 68
7.
SONUÇ .......................................................................................................................... 71
KAYNAKÇA......................................................................................................................... 73
EKLER................................................................................................................................... 75
EK – 1. Programa ait veri tabanı dosyaları ...................................................................... 76
EK – 2. Programa ait sistem dosyaları ............................................................................. 84
EK – 3. Programa ait çıktı dosyaları ................................................................................ 86
ÖZGEÇMİŞ ........................................................................................................................... 89
xii
ÇİZELGE LİSTESİ
Çizelge
Sayfa
Çizelge 2.1. Gen stringlerinde parametrelerin kodlanması .......................................... 6
Çizelge 2.2. Turnuva seçim yöntemine göre uyumlu kromozomların seçilmesi ....... 12
Çizelge 3.1. Kullanılabilirlik karşılaştırması ............................................................. 28
Çizelge 3.2. Durum örneklemesi ................................................................................ 29
Çizelge 3.3. Durum örneklemesi ................................................................................ 30
Çizelge 5.1. Tam genetik çözüm popülasyon ile uygunluk değerlerinin değişimi .... 58
Çizelge 5.2. Kısmi genetik çözüm popülasyon ile uygunluk değerlerinin değişimi .. 59
Çizelge 5.3. Tam genetik çözüm mutasyon oranı – hata değerleri değişimi ............. 62
Çizelge 5.4. Kısmi genetik çözüm mutasyon oranı – hata değerleri değişimi ........... 63
Çizelge 5.5. Tam genetik çözüm mutasyon sayısı – hata değerleri değişimi ............ 65
Çizelge 5.6. Kısmi genetik çözüm mutasyon sayısı – hata değerleri değişimi .......... 66
xiii
ŞEKİLLER LİSTESİ
Şekil
Sayfa
Şekil 2.1. İkili ve gray kodlama için hamming mesafesi ............................................. 7
Şekil 2.2. Rulet tekerleği seçme operatörü................................................................. 10
Şekil 2.3. Tek noktalı çaprazlama .............................................................................. 14
Şekil 2.4. İki noktalı çaprazlama ................................................................................ 15
Şekil 2.5. Çok noktalı çaprazlama.............................................................................. 15
Şekil 2.6. Tekdüze çaprazlama................................................................................... 16
Şekil 2.7. Komşu iki geni değiştirme ......................................................................... 17
Şekil 2.8. Keyfi iki geni değiştirme ........................................................................... 18
Şekil 2.9. Keyfi üç geni değiştirme ............................................................................ 18
Şekil 2.10. Genetik algoritma akış şeması ................................................................. 23
Şekil 3.1. Modellenen birinci kromozom yapısı ........................................................ 27
Şekil 3.2. Modellenen ikinci kromozom yapısı ......................................................... 27
Şekil 3.3. Modellenen kromozoma ait gen yapısı ...................................................... 29
Şekil 3.4. Kullanılan iki noktalı çaprazlama modeli .................................................. 34
Şekil 3.5. Dört noktalı mutasyon yapısı ..................................................................... 36
Şekil 5.1. Tam genetik çözüm popülasyon sayısı - uygunluk değer grafiği .............. 58
Şekil 5.2. Kısmi genetik çözüm popülasyon sayısı - uygunluk değer grafiği ............ 59
Şekil 5.3. Tam ve kısmi genetik çözüm popülasyon sayısı - uygunluk değer
karşılaştırması grafiği ................................................................................ 60
Şekil 5.4. Tam genetik çözüm mutasyon oranı – hata değerleri grafiği .................... 62
Şekil 5.5. Kısmi genetik çözüm mutasyon oranı – hata değerleri grafiği .................. 64
Şekil 5.6. Tam genetik çözüm mutasyon sayısı – hata değerleri grafiği.................... 65
Şekil 5.7. Genetik çözüm mutasyon sayısı – hata değerleri grafiği ........................... 67
xiv
RESİMLER LİSTESİ
Resim
Sayfa
Resim 4.1. Ders çizelgeleme programı şifreli veri girişi menüsü arayüzü ................ 45
Resim 4.2. Kullanıcı şifresi girilmiş veri girişi menüsü arayüzü ............................... 46
Resim 4.3. Ders çizelgeleme programı aktivite ve kısıt düzenle menüsü arayüzü .... 49
Resim 4.4. Ders çizelgeleme programı çizelge menüsü arayüzü ............................... 53
Resim 4.5. Ders çizelgeleme programı bilgi menüsü arayüzü ................................... 56
xv
KISALTMALAR LİSTESİ
Bu çalışmada kullanılan bazı kısaltmalar açıklamaları ile birlikte aşağıda
sunulmuştur.
Kısaltmalar
Açıklama
GA
Genetik Algoritma
KKPÇP
Kaynak Kısıtlı Proje Çizelgeleme Problemi
NP-Hard
Non-Deterministic Polynomial-Time Hard
1
1. GİRİŞ
Bir okulda (üniversite, fakülte, lise) ders programının düzenlenmesi karar
ağacında çok sayıda dallanma içeren bir konudur. Öğrencilerin ve öğretim
elemanlarının memnun olacakları bir ders programı hazırlama her üniversitede
problem olmaktadır. Bu problemin çözülmesi genelde üniversitelerde birden fazla
görevlinin günlerce çalışması sonucunda mümkün olabilmektedir. Çizelgeleme
problemleri belirlenen kullanıcı
atanmasını
kısıtları
göz
önüne
alınarak optimal ders
gerektirir. Üniversitelerde otomatik ders programı
hazırlama bir
çizelgeleme problemidir. Amaç, belirli kısıtlar kapsamında ilgili dönemde açılan
bütün
derslerin, dersi verecek öğretim elemanı ve dersin verileceği şube ile
eşleştirilerek zaman çizelgesine belirlenen dersliklere göre yerleştirilmesidir. Bu
çizelgeleme problemi çözülmesi zor (deterministtik olmayan polinomal –tam) bir
problemdir.
Tepeye tırmanma algoritması hesaplamaya dayalı popüler araştırma teknikleri
çizelgeleme problemlerinin çözümünde yeterli olamamaktadır. Tepeye tırmanma
algoritması hesaplamaya dayalı yerel bir arama tekniğidir. Araştırma uzayı
genişlediğinde böyle metotlar kolaylıkla yerel en iyiye takılır. Bunun sonucunda
diğer daha iyi çözümleri kaçırırlar. Yani bu tür algoritmalar, karmaşık bir sistemin
sadece belirli bir kısmını en iyilemek için uygundurlar. Bu nedenle bu tür metotlar
geniş araştırma uzayında kullanım için uygun değildirler. Çünkü tüm çözümlerin
değerlendirilmesi oldukça uzun sürecektir. Dolayısıyla en iyi çözümün bulunması
oldukça uzun bir süre gerektirecektir [1]. Sonuç olarak çizelgeleme probleminin
çözümünde bu tür algoritmalar yetersiz kalmaktadır ve çok fazla zaman almaktadır.
Ders çizelgeleme problemleri, Kaynak Kısıtlı Proje Çizelgeleme Problemidir
(KKPÇP). KKPÇP, kaynakları kısıtlı olan proje çizelgeleme problemidir. KKPÇP’
lerin başlıca özelliği olan, kaynak kısıtı ve faaliyetlerin öncüllük ilişkileri,
özellikle çok faaliyetli olmaları halinde, çizelgelenmesini daha da güçleştiren
unsurların başında gelmektedir. Geleneksel programlama teknikleriyle çözülmesi
güç problemlerden olan KKPÇP’ler, ortaya çıkışından bu yana uygulamacıların
ve araştırmacıların ilgisini çekmektedir. Son yıllarda, KKPÇP’lerin çözümüne
2
yönelik,
hem
sezgisel
hem
de
yöntemler
optimal
geliştirilmeye
çalışılmaktadır [2 3].
Bu tür KKPÇP‘in çözümü için daha kullanışlı olan sezgisel algoritmalar
kullanılmaktadır. Schmidt, bildirisinde bu konudaki ilk çalışmalardan bahseder [4].
Zaman çizelgeleme problemleri için geliştirilen modeller genelde
birbirinden
oldukça farklıdır. Bu sebeple literatürde bulunan sonuçları karşılaştırmak zordur. Son
yıllarda, birçok araştırmacı çözüm yaklaşımlarını Tavlama Benzetimi (Simulated
Annealing), Tabu Arama (Tabu Search) ve Genetik Algoritmalar (Genetic
Algorithms) gibi yapay zeka yöntemlerine dayandırmaktadır. Bu nedenle bu
çalışmada diğer yapay zeka algoritmalarına oranla çizelgeleme problemlerinde daha
başarılı olan genetik algoritma tercih edilmiştir.
Genetik Algoritmalar (G.A.), geleneksel yöntemlerle çözümü zor ya da hemen
hemen imkansız olan problemlerin çözümünde kullanılan sayısal optimizasyon
yöntemlerinden
biridir [5]. Çözümü zor problemlerde
GA’yı
uygulayarak,
problemin çözümüne yönelik, kapsamlı ve karmaşık hesaplama işlemlerine olan
ihtiyaç ortadan kalkacaktır. GA, geleneksel hesaplama işlemleri kullanmadan,
problemi evrimsel aşamalardan geçirerek, ürettiği çözümler arasından en iyi çözümü
bulma çabası gösteren yöntemdir [2]. GA’lar da başlangıç popülasyonunda
oluşturulan bireyler ne kadar iyi uygunluk değerine sahipse optimal çözüme ulaşmak
o kadar hızlı olmaktadır.
Evrimsel
teknikler,
dolayısıyla
GA’lar,
stokastik
yöntemlerden
ya
da
programlardan oluştuğu için, genellikle optimum çözüme yakın çözümler
üretmektedirler [2].
Literatürde KKPÇP’lerle ilgili bir çok çalışma mevcuttur. Yapılan
incelendiğinde,
KKPÇP’lerinde deneme
amaçlı
olarak
GA’nın
çalışmalar
uygulandığı
görülmüştür. Birçok problem, daha önce başka yöntemlerle kesin çözümleri elde
edilmiş olsun ya da olmasın GA ile çözülmüş ve diğer yöntemlerle kıyaslama
yapılarak
değerlendirilmiştir. Değerlendirme sonuçlarının, genellikle GA ile
çözümünden yana olduğu saptanmıştır. Başka bir deyişle, problem başka yöntemlerle
daha önce çözülmüş olsa bile, GA ile daha hızlı global/yerel çözüme ulaşılmaktadır
3
Literatürde KKPÇP’lerde GA kullanımı ile ilgili birçok teorik ve pratik çalışma
bulunmaktadır. Bu çalışmalarda bir çok farklı kromozom temsili, yöntemler ve
algoritmalar kullanılarak yerel ya da global (en iyi) sonuç elde edilmeye
çalışılmaktadır [2].
Genetik algoritmaların çizelgeleme problemine ilk uygulama çalışması, Davis
tarafından 1985 yılında yapılmıştır. 1987’de Liepins ve arkadaşları, belirli
teslim
tarihleri ve işlem süreleri
olan işlerin çizelgelenmesi problemini
araştırmışlardır. Bu problem en basit çizelgeleme problemi adlandırılmaktadır.
1993’de Gupta ve arkadaşları, akış zamanını minimize etme amacını taşıyan tek
makine modeli üzerindeki çalışmalarını yayınlamışlardır [6].
Cheng ve Gen [7], çalışmalarında diğer çizelgeleme problemlerinden daha zor
olan KKPÇP ’ye
yönelik
bir
uygulama
geliştirmişlerdir. Modifiye
edilmiş
çaprazlama ve mutasyon işlemleri ile genetik işlemler sonucunun da uygun çizelge
vermesi sağlanmıştır. Yani uygulanan genetik işlemler, projenin kaynak ve öncüllük
ilişkilerini ihlal etmeyecek
şekilde
edilmiştir. Geliştirilen algoritma;
düzenlenerek,
literatürde bilinen
proje
uygunluğu
temin
iki probleme uygulanarak,
bilinen optimum değere etkin ve hızlı bir şekilde ulaşmıştır. Araştırmacılar
geliştirdikleri
evrimsel
programın,
diğer
hesaplanması
güç
optimizasyon
problemlerine uygulanabileceğini öne sürmektedirler.
Ikeuchi ve diğerleri [8], çalışmalarında planlama problemlerinde yoğun kullanılan
G’larda genetik parametrelerin optimal değerlerini konu almışlardır. Bir problem
için optimum olan genetik parametre değerleri, başka bir problem için uygun
olamamaktadır. Bu nedenle çalışmalarında; problem değiştikçe probleme uygun
olabilen yani kendi kendini ayarlayabilen ve değişebilen genetik parametreler
kullanarak bir GA geliştirmişlerdir. Geliştirilen yöntemde, bir çözüm araştırılmakta
ve genetik parametre değeri artırılarak yeni toplum üretilmektedir. Böylece
etkin parametre değeri araştırılmaktadır. Araştırmacılar geliştirdikleri algoritma
sonucunu, elle ayarlanan yöntemlerle kıyaslamışlardır. Çalışma sonucunda, kendi
kendini probleme göre ayarlayabilen ve uygun genetik parametreler üretebilen
ilave yordamların GA’larda kullanılmasını önermektedirler.
4
Bu çalışmada genetik algoritmaya ek olarak, Yarı GA kullanılmaktadır. Böylece
GA’nın daha hızlı bir şekilde optimum sonuca ulaşabilmesi için popülasyon bireyleri
belirli bir uygunluk değerine kadar geliştirilerek GA’ ya katılmaktadır. Çalışmada
Tam GA ve Yarı GA sırası ile çalıştırılarak optimum sonuca ulaşma düzeyleri ve
zamanları açıkça gözlemlenmiştir.
Ayrıca, gerçek bir uygulamada, göz önüne alınması gereken kısıt sayısının ve
derslik, öğretmen, ders, sınıf gibi programın çalışması için girilmesi gereken veri
sayısının fazla olması nedeniyle, bu verilerin rahatlıkla girilebilmesi için, kullanıcı
dostu bir ara yüze de ihtiyaç duyulmaktadır. Kullanıcıların rahatlıkla kullanabileceği
kullanıcı dostu bir ara yüzün geliştirilmesi için bu çalışmada Microsoft Visual Studio
2010 programı kullanılmıştır.
Bu çalışma yedi bölümden oluşmaktadır. Giriş bölümünde gerçekleştirilen çalışma
ve problem karmaşıklığı hakkında bilgi verilmektedir. Daha önce yapılan çalışmalar
bu bölümde incelenerek literatür taraması da bu bölümde verilmektedir.
İkinci
bölümde çalışmada kullanılan yöntemler, genetik algoritma ve çalışma prensibi
hakkında bilgi verilmektedir. Üçüncü bölümde genetik algoritmanın kaynak kısıtlı
ders çizelgeleme problemine uygulanması ve aşamaları hakkında detaylı bilgi
verilmektedir. Geliştirilen yazılımın çalışma mantığı bu bölümde anlatılmaktadır.
Dördüncü bölümde geliştirilen programın analizi yapılarak, programın özellikleri
detaylı bir şekilde ele alınmaktadır. Geliştirilen programın tüm menüleri, alt
menüleriyle birlikte bu bölümde anlatılmaktadır. Beşinci bölümde gerçekleştirilen
program çalıştırılarak sonuçlar incelenmektedir. Aynı koşullarda, farklı mutasyon ve
çaprazlama oranlarında defalarca gerçekleştirilen denemelerle, tam genetik algoritma
ile kısmi genetik algoritma arasındaki performans sonuçları karşılaştırılarak elde
edilen sonuçlar bu bölümde verilmektedir. Altıncı bölümde program elde edilen
verilere göre değerlendirilmektedir. Son bölümde ise sonuç kısmı bulunmaktadır.
Programın daha çok geliştirilebilmesi için öneriler bu bölümde sunulmaktadır.
5
2. GENETİK ALGORİTMA VE ÇALIŞMA PRENSİBİ
Genetik algoritmalar kromozom, gen, popülasyon, uygunluk oranı, seçilim,
çaprazlama ve mutasyon gibi bir dizi parametreler ile karakterize edilmektedir. Bu
bölümde parametrelerin tanımı, kullanılan yöntemlerden en önemlileri ve genetik
algoritmanın çalışma prensibi anlatılmaktadır.
2.1. Kromozom
Problemin çözümlenebilmesi için gerekli olan problemin tanımlandığı birey dizisidir.
GA’ya,
optimize
tanımlanarak
edilecek
başlanır.
parametre
Kromozom,
dizileri
Npar
ve
adet
kromozomlar
parametreye
(bireyler)
sahip
ise
optimizasyon problemi Npar boyutlu olur. Parametreler P1, P2, P3,.......PNpar ise;
Kromozom = [P1, P2, P3,.......PNpar] olarak tanımlanır [6].
Kromozom üzerinde yer alacak parametreler; GA’nın, çözüm uzayında en iyi
çözümü araması için gerekli olan bilgilerin tümünü içerecek şekilde tasarlanmalıdır
[9]. Böylece
genetik işlemler
ile
daha
etkili
sonuçları üretmek mümkün
olmaktadır [2].
Bilgilerin anlam bütünlüğü açısından, kodlamanın önceden belirlenen bir
sisteme göre yapılması gerekmektedir. Kromozom kodlamasının, GA’nın ilk
uygulamalarında, ikili sayı (binary) sistemine göre yapıldığı gözlemlenmektedir [2].
Kromozomların kodlanması, genellikle ikili sayı sistemi temel alınarak kodlansa
da, tamsayı ve reel sayılar da kullanılmaktadır [10]. Özellikle, karar değişkeni
sayısı fazla ve değişkenin ikili sistemdeki karşılığı uzun olan problemlerde onlu
sistemde yapılan kodlama tercih edilmektedir [2]. Çizelgeleme problemlerinde ikili
sisteme nazaran onluk sistemin çok daha kullanışlı olduğu görülmektedir.
6
2.2. Gen
Kromozom içindeki anlamlı en küçük bilgidir. Kromozomdaki her bir parametre bir
geni meydana getirmektedir.
Optimizasyon döngüsü başlamadan önce, optimize edilmesi gereken parametreler
istenilen şekle dönüştürülmek zorundadır. Buna kodlama (encoding) denir.
Kodlama GA için önemli bir konudur. Çünkü sistemden gözlemlenen bilgiye bakış
açısı büyük ölçüde sınırlandırılabilir. Gen stringi probleme özel bilgiyi depolar. Gen
olarak adlandırılan her bir öğe, genellikle değişkenler stringi olarak ifade edilir.
Değişkenler ikili veya reel sayı şeklinde gösterilebilir ve aralığı probleme özel olarak
tanımlanır [11].
İkili kodlama
1
0
0
1
1
0
1
1
1
0
56
7
0
89
11
1
77
Reel sayı kodlaması
19
30
89
Çizelge 2.1. Gen stringlerinde parametrelerin kodlanması
İkili kodlama sıklıkla kullanılırken, Şekil 2.1.’de gösterildiği gibi Hammimgcliffs
dezavantajına sahiptir. Bir Hammingcliff, iki bitişik sayısal değer ayrı bit
gösterimlerine sahip olduğunda şekillenir. Mesela onluk sayılar 7 ve 8 i
düşünün. İkili gösterimlerle ilgili olarak (4 bit gösterimini kullanan) 7=0111 ve
8=1000 4 hamming mesafesidir. (Hamming mesafesi birbirine benzemeyen ilgili
bitlerin sayısıdır.)
7
Şekil 2.1. İkili ve gray kodlama için hamming mesafesi
Değişkenlerdeki küçük bir değişim uygunluktaki küçük bir değişiklikte sonuç
vermesi gerektiği zaman, bir problemi ortaya koyar. Örneğin, uygun çözüm 7
olsun. Fakat yeni en iyi çözüm 8 olduğunda; 8 i elde etmek için birçok bitin
değiştirilmeye ihtiyaç duyulduğu aşikârdır. Hâlbuki uygunluk değerinde küçük
bir değişim söz konusudur [11].
2.3. Popülasyon (Toplum)
GA da işleme koyulacak tüm kromozomlar (bireyler) birleşerek popülasyonu
(toplumu) oluşturmaktadır. Yani kromozomların (bireylerin) tamamına popülasyon
(toplum) denilmektedir.
Toplum büyüklüğünün ne olacağını belirlemek, tüm GA kullanıcıları açısından
oldukça önemli bir aşamadır. Toplum büyüklüğü, başka bir deyişle kromozom
ya da birey sayısı, GA ’nın başarısını ya da optimum sonuca erişim süresini
etkileyen önemli unsurlardan biridir [11].
Toplum büyüklüğünün gereğinden küçük alınması, GA arama tekniğinin dar bir
çözüm uzayında uygulanması anlamını taşımaktadır. Dar çözüm uzayı ise,
problemin
optimum
çözümünün
çözüm
uzayı dışında
kalma
artıracaktır. Gereğinden büyük alınması ise, GA’nın anlamlı
ihtimalini
sonuçlara geç
8
ulaşmasına ve yavaş çalışmasına neden olacaktır [12]. Büyük toplumda çözüm uzayı
daha iyi örneklenebileceğinden arama daha etkin yapılırken, arama süresi artacaktır
[11].
2.4. Uygunluk Oranı
Uygulama oranı popülasyondaki (toplumdaki) her bir kromozom (birey) için
uygulama fonksiyonundan geçirilerek hesaplanır. Genetik Algoritma ile çözülmesi
planlanan bir problem için, popülasyondaki (toplumdaki) her bir kromozom (birey)
problem için bir çözümü ifade etmektedir. Uygunluk fonksiyonu da bu çözümlerin
kısıtlara göre ne kadar uygun olduğunu hesaplamaya yaramaktadır. Bunun için
kromozomun uygunluk oranını belirten bir değer üretir. Bir kromozom popülasyonu
için bu değerler gelecek jenerasyonun (neslin) elde edilmesinde bireylerin seçimi
açısından önem taşır. Yeni popülasyon için bireyler seçilmesinde, bir önceki
popülasyondaki uygunluk oranı yüksek olan bireylerin seçilme oranı da yüksek olur.
Bir çözümün uygunluk değeri ne kadar yüksekse, yaşama ve çoğalma şansı o
kadar fazladır ve bir sonraki kuşakta temsil edilme oranı da o kadar yüksektir
[6 13].
Toplumu
oluşturan
bireylere
ait
uygunluk
değerlerinin
belirlenmesi
için
genellikle bir fonksiyona ihtiyaç duyulmaktadır. Uygunluk fonksiyonları, türev
ya da başka analitik işlemler gerektirmezler ve istenilen şekilde oluşturulabilirler
[14]. Bazı araştırmacılar, her bir kromozoma doğrudan bir uygunluk değeri
atarken,
bazıları da
uygunluk
değerini
bir
fonksiyon
kullanarak
hesaplamaktadırlar [2 15]. Genel olarak başlangıçta belirlediğimiz ve problemimizin
geçerli olması için olmazsa olmazımız olan her bir kısıt, uygunluk fonksiyonunun bir
kısmını oluşturmaktadır.
Algoritmanın hazırlık aşamasında belirlenen uygunluk fonksiyonu ile toplumdaki
tüm bireylerin uygunluk değerleri hesaplanır. Böylece
n elemanlı toplumda,
fi…fn olmak üzere n adet uygunluk değeri hesaplanmaktadır [2]. Uygunluk değerleri
ceza puanı ya da ödül puanı olmak üzere uygunluk fonksiyonuna göre hesaplanır.
9
Tercih edilen uygunluk oranı değeri cezalandırmaya dayanıyorsa, uygunluk
fonksiyonundan geçirdiğimiz her bir kromozom için toplam hatalı gen sayısı
hesaplanır ve hata sayısı oranınca bir ceza puanı verilir. Tercih edilen uygunluk oranı
değeri ödüllendirmeye dayanıyorsa, uygunluk fonksiyonundan geçirdiğimiz her bir
kromozom için kısıtlarımıza uygun toplam doğru gen sayısı hesaplanır ve doğru
sayısı oranınca ödül puanı verilir.
2.5. Seçim İşlemi
Seçim işlemi, var olan popülasyondan yeni bir popülasyon oluşturmak için üretilecek
kromozomların (bireylerin) seçilmesi işlemidir. Ayrıca ileride anlatacağımız
çaprazlama
ve
mutasyon
işlemlerine
girecek
kromozomların
(bireylerin)
seçilmesinde de kullanılmaktadır. Kısacası üzerinde işlem yapılacak yeni bireyin
seçilmesi için kullanılmaktadır. Aşağıda genel olarak çok kullanılan seçim
yöntemleri anlatılmaktadır.
2.5.1. Rulet tekerleği seçim mekanizması
Rulet tekerleği ebeveyn seçme operatörü, iyi bilinen ebeveyn belirleme
metotlarından biridir. Bir sonraki jenerasyon için ebeveynlerin A kromozomlarından
F’ye belirlendiği bir örnek şekil 2.2.‘de verilmiştir. Seçme operatörü birkaç
kademede çalışır. İlk olarak her bir kromozomun uygunlukları toplanarak
popülasyonun toplam uygunluğu bulunur. Seçilen her ebeveyn için bu prosedür
kullanılır. Sonra her bir kromozom uygun1uğunun toplam uygun1uğun yüzde kaçını
temsil ettiği bulunur. Böylece her biri bir çözümü ifade eden kromozomların
uygunlukları oranında bunlara tekerlek üzerinde bir parça verilir.
Şekil 2.2.‘de tekerlek toplam uygunluk değeri olan 20 eşit parçaya ayrı1mış ve her
kromozom bu tekerlek üzerinde ağırlıkları (uygunlukları) oranında yerleşmişlerdir.
Tekrar üreme için rulet tekerleğinin döndürülmesi gerekir. Bunun için sıfırla toplam
uygunluk değeri arasında rastgele bir sayı üretilerek bu sayının tekerleğin hangi
10
parçasına karşılık geldiğine ve dolayısıyla hangi kromozomun seçildiğine bakılır.
Artık tekerlek bir kere dönmüştür ve ilk kromozom be1irlenmiştir Benzer şekilde
diğer kromozomların da belirlenmesinden sonra uygunluk değerleri en başarılı olan
adaylar eşleştirme havuzu (mating pool) olarak anılan bir havuzda toplanarak diğer
genetik operatörlerin uygulanması için hazırlanırlar.
Şekil 2.2. Rulet tekerleği seçme operatörü
Şekil 3.2.‘ye göre A-F kromozomları için kromozom uygunluğu f ve toplam
uygunluk ise 20’dir. Yani şekildeki daire 20 eşit parçaya ayrılmış ve f=2
uygunluğuna sahip olan A kromozomu bu parçalardan ikisini almıştır. Benzer olarak
B kromozomu bu parçalardan altısına, C kromozomu üçüne, D kromozomu dördüne,
E kromozomu birine ve F kromozomu ise yine dördüne sahiptir. Şekle göre A’nın 1
ve 2, B ’nin 3-8, C ’nin 9-11, D ’nin 12-15, E ’nin 16 ye F ’nin 17-20 nolu parçalara
sahip olduğu düşünülürse, 8, 17, 3, 12, 9 ye 19 değerlerine sahip rastgele sayıların
üretilmesi durumunda seçilen ebeveynler sırasıyla B, F, B, D, C ye F olacaktır.
Kolaylıkla gorüebi1ecegi gibi f=6 ile en yüksek uygunluk değerine sahip olan B
kromozomunun diğerlerine göre seçilme şansı daha fazla olacaktır [1].
11
2.5.2. Turnuva seçim mekanizması
Yığından rastsal olarak bir grup dizi seçilir. Bu grup içindeki en iyi uygunluk
değerine sahip dizi yeni yığına kopyalanır. Bu işlem kullanıcı tarafından
önceden kararlaştırılan
çevrim
sayısı kadar
tekrarlanır [5]. Genellikle, grup
genişliği ikidir. Ancak, bu sayının arttırılması da mümkündür [12 16].
Turnuva seçim yönteminde, yerine koyarak ya da koymayarak rastgele seçilen t
adet bireyden oluşturulan gruba turnuva genişliği denir [5]. Bu grupta bulunan
en iyi birey yeni topluma aktarılır. Bu işlem kullanıcının önceden belirlediği
işlem sayısı kadar tekrarlanır.
Turnuva seçim yönteminde uyumluların seçilmesi (yeteneklilerin yaşaması) ve
uyumsuzların yaşamaması ilkesi temel alınmıştır ve değişik şekillerde seçimler
söz konusudur. Örneğin, çizelge 2.2.’de gösterilen örnekte olduğu gibi, maliyet
en küçükleme (minimizasyon) problemi ele alındığında, bireylerin maliyetleri
uygunluk değeri olarak kullanılabilmektedir [17].
Uygunluk değeri belirlenen ve rastgele seçilen t adet bireye, 1 den başlayarak sıra
numarası atanır. Daha sonra, sıra numaralarının alt ve üst sınırları içerisinde
olmak üzere, rastgele sayılar üretilir. çizelge 2.2.’de 1. ve 2. Sütunlarda gösterilen
sıra numarası ve rastgele sayılardan yararlanarak belirlenen iki bireyin uygunluk
değerleri kıyaslanmakta ve en uyumlu olan seçilmektedir. Böylece bireyler arasında
en az uyumlu olanlar elenerek optimuma yaklaşım hızlandırılmaktadır [2].
12
Çizelge 2.2. Turnuva seçim yöntemine göre uyumlu kromozomların seçilmesi [17]
Sıra No
Rastgele Sayılar
Uygunluk Değeri ( fi – Maliyet )
Seçilenler
1
6
10222 $
1
2
3
13667 $
3
3
1
9886 $
3
4
8
12443 $
4
5
7
11563 $
7
6
2
14788 $
2
7
4
10587 $
7
8
5
13213 $
5
Örnekte de görüldüğü gibi, sıra no’su 6 olan bireyin maliyeti en fazla
olduğundan en uyumsuz bireydir. Sıra no’su 3 olan birey ise en uyumlu olanıdır. 6
numaralı kromozom sadece kendisi ile kıyaslandığı durumda yaşama şansına
sahip olacaktır. Benzer şekilde, 3 numaralı birey sadece kendisi ile kıyaslansaydı,
sağ kalanlar arasında tekrarlı bir şekilde seçilemeyecekti. Buna rağmen 3 numaralı
birey, turnuva seçim yöntemine göre yaşamını garantilemektedir. İkinci en uyumlu
birey 1 numaralı kromozomdur. 1 numaralı birey, 3 numaralı ile kıyaslandığında
daha az uyumlu olduğundan seçilemeyecektir. 2 no’lu birey oldukça uyumsuz
olmasına rağmen, kendisinden daha uyumsuz olan 6 no’lu bireyle kıyaslandığından
yaşama şansına sahip olmaktadır [2].
2.5.3. Rastgele seçim mekanizması
Kromozomların eşleştirilmesinde rastgele sayı üreteci kullanılır. Kromozomlar 1’den
başlayarak Niyi‘ye kadar sıralanır. Birinci eşleştirmeyi bulmak için iki adet rastgele
sayı üretilir.
Kromozom= roundup {Niyi x rastgele sayı}
13
Burada roundup fonksiyonu, sayıları en yüksek sayıya yuvarlar. Örneğin;
rastgele olarak üretilen 6 sayı 0.1535, 0.6781, 0.0872, 0.1936, 0.7021 ve
0.3933 ise bu sayılar, 6 ile çarpılıp bir üst tamsayıya yuvarlanarak; 1, 5, 1, 2, 5, 3
değerleri elde edilir. Buna göre kromozom1-kromozom5, kromozom1-kromozom2
ve kromozom5 - kromozom3 eşleştirilecektir [11].
2.6. Elitist Seçim ( Elitism )
Her bir jenerasyonda mevcut en iyi bireyin kopyalanarak bir sonraki jenerasyona
saklanmasıdır. Elitism, ardışık, jenerasyonların yüksek kaliteli genetik materyallere
ulaşmasını sağlamak için kullanılır. Bu, her bir jenerasyondaki en uygun
kromozomun daha ilerisi için otomatik olarak kopyalanması yoluyla yapılan basit bir
prosestir. Buna rağmen bulunan en iyi çözümün nihai jenerasyona kadar korunmasını
sağlayan oldukça önemli bir yöntemdir [1].
Uyumlu bireylerin seçiminde “elitist
seçim” yöntemi
kullanılmaktadır. Her
iterasyonda; bir önceki toplumun en iyi olarak seçilen bir kromozomu, bir
sonraki topluma doğrudan, hiç bir işlem yapılmadan aktarılmaktadır. Daha
sonra toplum iki eşit parçaya bölünerek ebeveynlerden biri sırası ile en iyilerde
seçim yapılırken, diğer ebeveyn ikinci gruptaki kromozomlardan rastgele bir
şekilde seçilmektedir.
Bu işlemlerin gerçekleştirilebilmesi için her toplum,
iyiden kötüye doğru sıralanmaktadır [2].
2.7. Çaprazlama Operatörü
Mevcut gen havuzunun potansiyelini araştırmak üzere, bir önceki kuşaktan daha
iyi nitelikler içeren yeni kromozomlar yaratmak amacıyla çaprazlama operatörü
kullanılmaktadır. Çaprazlama genellikle, verilen bir çaprazlama oranına eşit bir
olasılıkla seçilen aile çeşitlerine uygulanmaktadır [6 18].
Problemin
tipine göre kullanılması gereken dört
bulunmaktadır [5]:
farklı çaprazlama operatörü
14

Tek noktalı çaprazlama

İki noktalı çaprazlama

Çok noktalı çaprazlama

Tekdüze (Uniform) çaprazlama
Tek noktalı çaprazlamada, rastgele seçilen kromozom çiftinde, çaprazlama
yapılacak bölge rastgele seçilerek çaprazlama yapılmaktadır [2]. Genelde tek noktalı
çaprazlama kullanılır. Şekil 2.3.‘te böyle bir tek noktalı çaprazlama işlemi
gösterilmiştir.
Seçilmiş
Nokta
1.Ebeveyn
12 1 71 3 6 15 4 98
1. Çocuk
12 1 71 3 44 1 7 0
2.Ebeveyn
33 5 9 22 44 1 7 0
2. Çocuk
33 5 9 22 6 15 4 98
Şekil 2.3. Tek noktalı çaprazlama
Bunun için eşleştirme havuzunda bulunan yapıların birer çifti rastgele olarak seçilir
ve çaprazlama operatörü bu iki yapıdan yeni iki yapı meydana getirmek için
kullanılır. Çaprazlamaya tabi tutulacak iki kromozom üzerinde yine rastgele şekilde
bir çaprazlama noktası belirlenir. Bu çaprazlama bölgesinde yer alan tüm genetik
materyaller karşılıklı yer değiştirerek iki yeni çocuk kromozomu elde edilir.
Oluşturulan çocuklar ebeveynlerinden tamamen farklı olabilir. Bu yüzden her bir
jenerasyonda oldukça farklı çözümler incelenebilir. Çaprazlama operatörünün amacı,
iyi çözümlerden daha iyi çözümler üretmek için yapıların elemanlarını birleştirmektir
[1, 19, 20].
İki noktalı çaprazlamada, kromozom eşleri iki farklı yerden kesilerek üç parçaya
ayrılmaktadır.
Parçalar
karşılıklı
olarak
yer
değiştirilerek
çaprazlama
yapılmaktadır. Çaprazlama tek bir parçaya uygulanırsa iki yeni kromozom elde
edilmektedir. Rastgele seçilen iki parçaya uygulanırsa, dört yeni kromozom
15
elde edilmektedir. Çaprazlama üç parçaya da uygulanırsa altı yeni kromozom
elde edilmektedir. Şekil 2.4.’te iki noktalı çaprazlama modeli görülmektedir.
1. nokta
1.Ebeveyn
2.nokta
1.Çocuk 12 1 71 3 44 1 7 98
12 1 71 3 6 15 4 98
2.Ebeveyn 33 5
2.Çocuk
9 22 44 1 7 0
33 5 9 22 6 15 4 0
Şekil 2.4. İki noktalı çaprazlama
Çok
noktalı
çaprazlama
yöntemi
ise,
iki
nokta
çaprazlama
mantığına
dayanmaktadır ve daha fazla noktalardan dolayı kromozomlar daha fazla
parçalara ayrılmaktadır. Parçalar, çiftler arasında karşılıklı değiştirilerek yeni
kromozomlar elde edilmektedir. Bu çaprazlama yönteminde de çok sayıda yeni
kromozom elde edilebilmektedir. Eğer parça sayısı n ise, n2 kadar yeni
kromozom elde edilebilmektedir [21].
Çok
noktalı
çaprazlama
yöntemleri
ile
elde
edilebilecek
kromozomların
tamamını oluşturmak ya da kullanmak bir zorunluluk değildir. Bunlardan bir kısmı,
rastgele seçimle yeni topluma aktarılabilmektedir. Ya da sadece, kromozomlar
arasında belirlenen sayıda parçalara çaprazlama uygulanarak, yeni oluşturulan birey
sayısı
denetlenebilmektedir.
Şekil
2.5.’te
çok
noktalı
çaprazlama
modeli
görülmektedir.
2.nokta
1. nokta
3.nokta
1.Ebeveyn 12 1 71 3
2.Ebeveyn 33 5
6 15 4 98
9 22 44 1 7 0
4.nokta
1.Çocuk
12 5 9 3 44 1 7 98
2.Çocuk 33 1 71 22 6 15 4 0
Şekil 2.5. Çok noktalı çaprazlama
Tekdüze (Uniform) çaprazlama yöntemi, kromozomda rastgele seçilen bitlerin
karşılıklı olarak yer değiştirmesi mantığına dayanmaktadır. Rastgele değişimi
16
sağlamak amacıyla, kromozomların bit sayısına eşit uzunlukta çaprazlama
maskesi kullanılmaktadır. Maske,
ikili sayı sisteminde rastgele oluşturulan bir
dizidir. Tekdüze çaprazlama, çaprazlama maskesinin ilgili geni yerine, birinci
ve ikinci kromozoma karşılık gelen genlerin kopyalanması mantığına dayanmaktadır.
Tekdüze çaprazlamada birinci kromozom, maskede 1 kodu görüldüğü yere, 1.
Kromozomda karşılık gelen gen kopyalanırken; 0 (sıfır) kodu görüldüğü yere ikinci
kromozomdaki karşılığı kopyalanarak oluşturulmaktadır. İkinci kromozom da
benzer şekilde oluşturulmaktadır. Bu kromozom için, maskedeki 1’lerin karşılığı
ikinci kromozomdan, sıfırların karşılığına da birinci kromozomdaki karşılıkları
taşınarak oluşum sağlanmaktadır [5].
Tekdüze çaprazlama yöntemi, yeni oluşturulan kromozomlar üzerindeki bütün
genlerin,
ebeveyn
kromozomlardan
taşınma
olasılıklarının eşitliği
ilkesine
dayanmaktadır. İkili sayı sisteminde ve tekdüze çaprazlama yönteminde oluşturulan
maske yerine, 0–1 arasında rastgele olasılık değerlerinden oluşan diziler
kullanılabilmektedir. Çaprazlama ile oluşturulan kromozomun geni, olasılık
değeri 0,5’in altında ise anneden, 0,5’in üstünde ise babadan taşınmaktadır [23].
Şekil
2.6.’da
tekdüze
Maske
çaprazlama
modeli
görülmektedir.
0 1 1 0 0 1 0 1
1.Ebeveyn
1 0 1 0 1 0 1 0
1. Çocuk
1 1 0 0 0 1 1 0
2.Ebeveyn
1 1 1 1 0 0 0 0
2. Çocuk
1 0 1 1 0 0 1 0
Şekil 2.6. Tekdüze çaprazlama
2.8. Mutasyon Operatörü
Mutasyonun amacı, popülasyonda çeşitliliğin sağlamaktır. Mutasyon işlemi, genetik
algoritmada mutasyon oranı değerince ara sıra gerçekleştirilerek, kromozomda
17
rastgele seçilmiş gen noktalarının karşılıklı olarak değiştirilmesi şeklinde
çalışmaktadır. Mutasyon oranı programın çözümünde önemli bir yere sahiptir.
Problemin çeşidine göre farklı mutasyon oranları kullanılmaktadır. Problemin çözüm
şeklini mutasyon oranı kadar bir anda kaç farklı genin mutasyona uğrayacağını
temsil eden mutasyon nokta sayısı da önemlidir. Bir mutasyon işlemi sırasında
rastgele seçilmiş iki gen karşılıklı olarak değiştirilebileceği gibi, ikiden fazla gen de
seçilerek rastgele değiştirir. Bazı mutasyon çeşitleri aşağıda anlatılmıştır.
2.8.1. Ters mutasyon
Bir kromozomda rastgele iki pozisyon seçilir, bu iki pozisyondaki alt diziler ters
çevrilir [22].
2.8.2. Komşu iki geni değiştirme
Rastgele olarak seçilen iki komşu gen değiştirilebilir [22]. Şekil 2.7.‘de komşu iki
gen değiştirme mutasyon işlemi gösterilmiştir.
19 20 34
2
98 121
5
0
19 20 34
2
121
98
5
0
Şekil 2.7. Komşu iki geni değiştirme
2.8.3. Keyfi iki geni değiştirme
Rastsal seçilen iki gen değiştirilebilir. Özel bir durum olarak, değiştirilebilen iki
komşu gen bu mutasyon içerir [22].
Şekil 2.8.‘de keyfi iki geni değiştirme mutasyon işlemi gösterilmiştir :
18
19 20 34 2 98 121 5 0
5
20 34 2 98 121 19 0
Şekil 2.8. Keyfi iki geni değiştirme
2.8.4. Keyfi üç geni değiştirme
Rastsal olarak seçilen üç gen keyfi olarak değiştirilir. Şekil 2.9.‘da keyfi üç işi
değiştirme mutasyon işlemi gösterilmiştir [22].
19 20 34 2
98 121 5
0
19
5
34
2
20
121 98
0
Şekil 2.9. Keyfi üç geni değiştirme
Mutasyon işleminde mutasyon nokta sayısınca seçilmiş genler aralarında rastgele
olarak değiş tokuş yoluyla mutasyona uğratılır. İkili sistemde mutasyon
işlemlerinden biriside rastgele seçilmiş genlerin içerilerindeki bitlerin tersine
çevrilmesi şeklinde olmaktadır. Yani bir geninin bitleri 1001 ise mutasyon sonucu
tersine çevrilerek 1’ler 0 ve 0’lar da 1 yapılarak 0110 değerini almaktadır. Bu işlem
ikili sayı sistemine göre tasarlanmış kromozomlar için geçerlidir.
2.9. Kararlı Şekilde Tekrar Üreme (Steady Stade Reproduction)
Her bir jenerasyonda GA tarafından üretilen tüm bir popülasyon, yeni bir popülasyon
ile yer değişir. Kararlı olarak tekrar üreme kavramı Davis (1991) tarafından ele
alınmıştır. Bunun temel prensibi, her bir tekrar üreme periyodundaki bir
jenerasyonda kromozomların sadece bir kısmının yer değiştirmesidir. Böyle bir anda
popülasyon içine belirli sayıda (genelde bir ya da iki) çocuk girer ye bunlar en kotu
popülasyon üyelerinin yerini alır [23, 24].
19
Kararlı şekilde tekrar üremenin avantajlı, jenerasyonlar arasında meydana
gelebilecek, popülasyondan iyi bireylerin kaybını önlemesidir. Böylece popülasyon
içine daha iyi yeni bireyler de katılmış olur. Dolayısıyla algoritma performansı
jenerasyon sayısı arttıkça kararlı şekilde düzelir. Bir algoritmada Üretilen bireylerin
çoğu diğerinin aynısı olabilir. Bu durumda gelecek jenerasyonlarda aynı bireylerin
yerleşimini önlemek performansta bir iyileşme sağlayacaktır [1].
2.10. Genetik Algoritmanın Çalışma Prensibi
Tipik bir GA aşağıdaki aşamaları gerçekleştirmektedir [25] :
1. N kromozomdan oluşan başlangıç toplumunun rastgele oluşturulması.
2. Toplumdaki her bir kromozoma ait f(i) uygunluk değerinin hesaplanması.
3. Yeni toplum oluşuncaya kadar (n-birey oluşuncaya kadar) aşağıdaki adımları
izleyerek çözümlerin yapısının genetik işlemlerle değiştirilmesi gerekmektedir.
i) Bir ebeveyn çiftinin mevcut toplumdan seçimidir. Seçilme olasılığı,
uygunluk fonksiyonuna bağlı olarak artar ya da azalır.
ii) Yeni bir bireyi oluşturmak için, bir ebeveynin bir çaprazlama
olasılığı ile çaprazlanması. Eğer çaprazlanma olmazsa, yeni ürün anne ya da
babanın bir kopyası olacaktır.
iii) Yeni ürünün mutasyon olasılığına göre kromozom içindeki konumu
(lokus) değiştirilir ve bu yeni ürün, yeni topluma dâhil edilir. Örnek
olarak ikili sayı sisteminde kodlanan kromozomda mutasyon, mevcut 0
değerini 1 olarak değiştirmek demektir.
4. Yeni popülasyona (toplumu) oluştururken mevcut toplumun en iyi birkaç
kromozomunu (bireyini ) çaprazlama ya da mutasyon işlemine sokmadan ( hiçbir
değişime uğratmadan) yeni popülasyona ( topluma ) eklemek.
5. Mevcut toplumun, oluşturulan yeni toplum ile değiştirilmesi.
20
6. 2. Adıma gidilmesi.
2. – 6. Adımlar arasında gerçekleştirilen her bir yineleme, bir jenerasyon ya da yeni
toplumu oluşturan bir üreme sürecidir. Her bir üreme sürecinde bir ya da daha fazla
uygun kromozom oluşacaktır. Bu oluşum ise, her yeni toplumun bir öncekinden daha
iyi olacağını göstermektedir [2].
2.10.1. Başlangıç popülasyonun oluşturulması
Olası çözümlerin kodlandığı bir çözüm grubu oluşturulur. Çözüm grubu
popülasyon, çözümlerin kodları da kromozom olarak adlandırılır. İkili alfabenin
kullanıldığı kromozomların gösteriminde, ilk popülasyonun oluşturulması için
rastsal sayı üreticileri kullanılabilir. Rastsal sayı üreticisi çağrılır ve değer
0,5’den küçükse konum 0’a değilse 1 değerine ayarlanır [17]. Birey sayısının
ve kromozom uzunluğunun az olduğu problemlerde yazı-tura ile de konum
değerleri belirlenebilmektedir. Genetik algoritmalarda ikili kodlama yöntemi
dışında, çözümü aranan probleme bağlı olarak farklı kodlama yöntemleri de
kullanılmaktadır [6 12].
Onluk tabanda kodlan kromozomlar için başlangıç popülasyonun üretilmesi de yine
rastgele olarak üretilen sayılar şeklinde olmaktadır. GA’nın
çalışmaya
başlayabilmesi için, Nipop kromozomdan oluşan başlangıç popülâsyonuna ihtiyaç
vardır. Popülâsyonun kromozomları Npar*Nipop’luk bir matris ile temsil edilir.
Kromozomlar denklem (3.1) kullanılarak rastgele üretilir.
IPOP=(PH-PL) x rastgele{Nipop , Npar}+PL (3.1)
Burada;
PH → Parametrenin üst sınır değeri
PL → Parametrenin alt sınır değeri
rastgele{Nipop , Npar}+ Nipop* Npar olacak şekilde matris formunda 0-1 arasında
üretilen rastgele sayıdır.
21
Bu
tanımlamalar her parametre
için kullanılabilir. Parametrelerin bu
şekilde
değerleri belirlendikten sonra amaç fonksiyonunda yerlerine konularak fertlerin
uygunluk değerleri hesaplanır. Amaç
fonksiyonu biraz
karmaşık
olduğundan,
başlangıç popülâsyonunun yüksek tutulması iyi sonuç vermektedir. Başlangıç
popülâsyonun büyüklüğü araştırma uzayının daha geniş seçilmesini sağlar [11].
Burada dikkat edilmesi gereken nokta probleme bağlı olarak başlangıç popülasyon
boyutunun değişebileceğidir. Başlangıç popülasyonunun çok büyük olması
problemin çözümünün bulunmasını zorlaştıracaktır. Bu sebeple probleme en uygun
başlangıç popülasyonu iyi bir şekilde analiz edilerek seçilmelidir.
2.10.2. Uygunluk değerinin hesaplanması
Başlangıç popülasyonu oluşturulduktan sonra yapılması gereken ilk adım,
popülasyondaki her bir bireyin, problemin çözümü için belirlenen kısıtlara ne kadar
uygun olduğunu hesaplamaktır. N adet bireye sahip bir popülasyonda f(0) dan f(n) ‘e
kadar tüm bireyler için f(i) uygunluk değeri hesaplanmalıdır.
Kromozomların uygunluk değerleri, problem için tanımlanan bir uygunluk
fonksiyonundan
ya
da
bazı
problemlerde,
doğrudan
amaç
fonksiyonu
değerinden saptanabilir. Uygunluk fonksiyonu, kromozomların amaç fonksiyonu
değerleri kullanılarak belirlenmektedir. Dolayısıyla bu iki fonksiyon arasında
mutlaka bir ilişkiye ihtiyaç duyulmaktadır. F(x) uygunluk fonksiyonu ve h(x)
amaç fonksiyonu olmak üzere, iki fonksiyon arasındaki ilişki,
f(x)=F[h(x)]
(3.2)
şeklinde tanımlanır. Formül (3.2) ’deki F dönüşümü tüm karar değişkenleri için
negatif olmamalıdır. Buradan i. karar değişkeninin uygunluk fonksiyonu;
( )
şeklinde hesaplanır.
( )
∑
(
)
(3.3)
22
Formül (3.3)’den elde edilen uygunluk değeri; o karar değişkeninin, toplam içinde
bulunma olasılığını (yüzdesini) vermektedir. Belirtilen fonksiyonda negatif
değerli
amaç
fonksiyonu
değerlerinin
toplama
katkıda
bulunmadığı
görülmektedir. Bu nedenle bu fonksiyon, tüm karar değişkenlerinin amaç
fonksiyonlarının pozitif olduğu durumlarda kullanılabilmektedir.
Amaç fonksiyonlarının negatif değer içermesi durumunda, f(xi) uygunluk değeri,
f(xi)=a.h(xi) + b
(3.4)
şeklinde, doğrusal fonksiyon ile hesaplanabilir. Formül (3.4)’de, a ve b sırası
ile ölçekleme
ve
küçükleme olması
öteleme
katsayılarıdır.
durumunda
Optimizasyon
a’nın işareti
eksi
(-),
problemlerinde
en
en
büyükleme
problemlerinde ise artı (+) olmaktadır [21].
Uygunluk değerlerinde kullanılan bir başka yaklaşımda, amaç fonksiyonu
değerlerinin amaca göre sıralanması ve bu sıraya göre üstün olanların seçilmesidir.
Genetik Algoritmanın probleme uygulanmasında bireylerin uygunluk değerleri
hesaplandıktan sonra, yeni popülasyon için bireyler oluşuncaya kadar elitism,
çaprazlama ve mutasyon işlemleri tekrarlanır. Yeni popülasyon oluşturulduktan
sonra eskisi ile yer değiştirilir ve optimum çözüm bulunana kadar uygunluk
değerlerinin hesaplanma aşamasından itibaren olan adımlar tekrar gerçekleştirilir.
2.10.3. Genetik algoritma akış şeması
Aşağıda şekil 2.10.‘da Genetik Algoritma ’nın çalışma prensibini anlatan akış şeması
verilmiştir.
23
Başla
Başlangıç
Popülasyonunu Oluştur
Uygunluk Değerlerini
Hesapla
Genetik İşlemlerin
Uygulanacağı Bireyleri
Seç
Çaprazlama İşlemi
Mutasyon İşlemi
Elitism ve Yeni
Popülasyonu
Oluşturma
Hayır
Sonlandırma
Kriterine
Uygun mu?
Evet
Sonlandır
Şekil 2.10. Genetik algoritma akış şeması
24
3. KAYNAK KISITLI DERS ÇİZELGELEME PROBLEMİNE
GENETİK ALGORİTMA YÖNTEMİNİN UYGULANMASI
Geliştirilen ders çizelgeleme programı, farklı dersliklerdeki zaman boşluklarının,
öğrenci
şubelerinin,
öğretim
elemanlarının
ve
derslerin
koordinasyonunu
içermektedir. Derslerin çizelgeye yerleştirilmesi ve problemin çözümü, şube
sayısına, öğretim elemanı sayısına, derslik sayısına, her bir öğretim elamanının özel
kısıtlarına, gün sayısına ve her bir gündeki saat sayısına bağlı olarak
şekillenmektedir.
Bu çalışmada ele alınan ders programı özelde Gazi Üniversitesi Teknik Eğitim
Fakültesi Elektronik - Bilgisayar bölümü için geliştirilmiştir. Ancak kolaylıkla diğer
bölüm veya fakülteler için de uygulanabilecek özellikte geliştirilmiştir. Test amaçlı
gerçekleştirilen ders programında Elektronik – Bilgisayar bölümüne ait toplamda 36
dersliğe (22 sınıf+ 14 laboratuvar), 27 adet akademik personele ait 257 dersin
yerleştirilmesi sağlanmıştır. Ayrıca Bilgisayar bölümünde 9 normal öğretim, 8 ikinci
öğretim, Elektronik bölümünde de 10 normal öğretim, 9 ikinci öğretim olmak üzere
toplamda 36 şube bulunmaktadır. Tüm bu veriler “cizelgeleme.accdb” veri tabanı
dosyasında bulunmaktadır.
Program performansı programdaki derslik ve zaman sayısı ile doğru orantılı bir
şekilde değişmekteyken, yerleştirilecek ders sayısıyla, öğretim elemanı özel kısıt
sayısıyla ve şube sayısıyla ters orantılı bir şekilde değişmektedir. Bu sebeple
derslerin ve özel kısıtların çok olduğu ve derslik sayılarının az olduğu durumlarda
optimum çözümü bulması zaman alacaktır.
Çalışmada belirlenen kısıtların tamamı Gazi Üniversitesi Elektronik – Bilgisayar
Eğitimi
Bölümünün
ihtiyaçlarını
karşılayacak
şekilde
düzenlenmiş
ve
değerlendirilmiştir. Her bölümün ihtiyaç ve kısıtları değişebileceği için programda
ders, derslik, öğretim elemanı, şube, gün, saat ve diğer kısıtlar isteğe göre
düzenlenebilecek şekilde geliştirilmiştir.
25
Bu verilere baktığımızda ilk yerleştirmede program karmaşıklığı toplam atanacak
ders sayısı * derslik sayısı * gün sayısı * saat sayısı * şube sayısı * öğretim elemanı
sayısı
olmak üzere 257 * 36 * 5 * 11 * 36 * 27 = 494 611 920 olarak
hesaplanmaktadır. Oluşturulan aktiviteler ( ders, öğretim elemanı ve şube
eşleştirmeleri ) ile birlikte bu oran 257 * 36 * 5 * 11 = 508 860 olarak
hesaplanmaktadır. Yine programa eklenecek derslik, zaman ve özel kısıtlar ile
birlikte bu oran daha da azalmaktadır.
Ayrıca çalışmada verilerin rahat bir şekilde girilebilmesi, derslerin ve kısıtların kolay
bir şekilde oluşturulabilmesi ve gerektiğinde kaydedilerek verilerin başka dönemler
için de kullanılmasına olanak sağlayan kullanıcı dostu bir ara yüz tasarlanmıştır.
3.1. Probleme Uygun Genetik Algoritmanın Tasarlanması
Çözülmesi zor ve yüksek karmaşıklığa sahip bu tür kaynak kısıtlı proje çizelgeleme
programlarda, programın genetik algoritmaya uyarlanması mümkün olan çözümün
bulunması için hayati önem arz etmektedir.
Genetik algoritma ile çözülmesi
planlanan problemlerde kromozom yapısının, gen yapısının ve uygunluk değer
fonksiyonunun iyi bir şekilde analiz edilerek tasarlanması çok önemlidir.
Oluşturulacak kromozom yapısı problemde tüm çözüm uzayını kapsayacak şekilde
tasarlanmalıdır.
Kaynak kısıtlı proje çizelgeleme problemi için, tasarlanan kromozom yapısı tüm
dersliklerin mevcut çalışma günleri içindeki her bir saatini kapsayacak şekilde
tasarlanmıştır. Tasarlanan kromozomdaki her bir gen bir ders saati dilimini temsil
etmektedir. Böylece bir kromozomda ders çizelgeleme programı için tüm çözüm
uzayını kapsayan bir yapı elde edilmektedir. Kromozom yapısı bir dizi halinde
düşündüğünde, bu dizinin her bir elemanı da, dersliklere ait bir ders saatini temsil
eden genler olmaktadır. Bu dizi elemanlarına (genlere) oluşturulan aktivitelerin (ders,
öğretim elemanı ve şube eşleştirmelerinin) kimlik (id) numaralarını atayarak
çizelgedeki derslik, öğretim elemanı, ders, şube, gün ve saat eşleştirmesi
26
gerçekleştirilmiş olunmaktadır. Bu şekilde tüm aktiviteleri uygun gen yapılarına
atanarak çizelgenin oluşturulması amaçlanmaktadır.
3.2. Kromozom Yapısı
Kromozom olarak iki farklı yapının modellemesi gerçekleştirilmiş ve bu kromozom
modellerinin karşılık değerlendirilmesi sonucunda programın performansını en iyi
yönde değiştiren model elitism, çaprazlama ve mutasyon gibi genetik algoritma
aşamalarında kullanılmıştır. Her iki kromozom modeli de aşağıda anlatılmaktadır.
Kullanılan birinci kromozom modeli dersliklerin sayısına, gün sayısına ve saat
sayısına göre tasarlanmıştır. Bu modele göre, her bir kromozom derslik sayısının,
gün sayısının ve her bir günde bulunan ders saati sayısının çarpımı adedince gen’den
oluşmaktadır. Böylece her bir dersliğin her bir saati bir gen tarafından temsil edilmiş
olmaktadır. Diğer bir deyişle kromozom yapısındaki her bir gen bir dersliğe ait
zaman boşluğunu temsil etmektedir. Oluşturulan kromozom, programsal olarak bir
diziyi ve kromozomda bulunan her bir gen de bir dizi elemanını temsil etmektedir.
Bu kromozom modellemesinin çalışma şekli her bir genin içerisine (dizi elemanına)
bir aktivitenin kimlik (id) bilgisinin atanması mantığına dayanmaktadır. Böylece
derslik, gün, saat, şube, ders ve öğretim elemanı eşleştirmesi gerçekleşmektedir. Bu
şekilde tasarlanan bir kromozom yapısı sayesinde ders çizelgeleme programının ana
kısıtlarından olan her hangi bir dersliğin aynı saatine iki farklı dersin atanması
olasılığı ortadan kaldırılmaktadır. Çünkü ders saatlerini temsil eden her bir genin
içerisine sadece bir derse ait kimlik (id) bilgisi atılabilmektedir.
Yukarıda anlatılan kromozom modeline ait temel kromozom yapısı Şekil 3.1.‘de açık
bir şekilde görülmektedir. Aşağıdaki kromozom yapısı N adet derslik, Pazartesi –
Cuma 5 gün ve her bir gün için 11 saati modelleyecek şekilde tasarlanmıştır.
Kromozom Uzunluğu= derslik sayısı * 5 * 11
27
Pazartesi
Gen
Cuma
Derslik1
Derslik N
….
1
2
….
……..
11
……..
Derslik1
….
1
2
….
……..
11
……..
Derslik N
….
1
2
….
……..
11
……..
….
1
2
.....
11
Şekil 3.1. Modellenen birinci kromozom yapısı
Modellenen ikinci kromozom yapısı, kromozomdaki her bir genin bir aktiviteyi
temsil etmesi ve bu genlerin değerlerinin de o aktiviteye ait gün, saat, derslik adı
bilgileri temsili olarak tasarlanmıştır. Aslında bu model birinci modelin tam tersi
olarak düşünülebilir, birinci modelde genler derslik, gün ve saat ’i temsil edip ve
genlerin değeri de aktivitelerin kimlik (id) bilgilerini temsil etmekteyken, ikinci
modelde genler aktivite kimlik (id) bilgilerini ve genlerin içindeki değerler de
derslik, gün, saat bilgilerini temsil etmektedir. Tasarlanan ikinci kromozom modeline
göre her bir gen bir aktiviteyi temsil ettiği için, bir ders çizelgeleme programının ana
kısıtlarından olan bir aktivitenin iki farklı dersliğe atılması şeklinde ortaya çıkan
aktivite çakışması sorunu ortadan kaldırılmaktadır. Bu kromozom yapısına ait
modelleme Şekil 3.2.‘de görülmektedir.
Aşağıdaki kromozom yapısı N adet aktivite temel alarak modellenmiştir.
N adet Gen ( aktivite Sayısı )
Gen
...................................
Kromozom =
1
2
3
4
................................... n-1
N
Şekil 3.2. Modellenen ikinci kromozom yapısı
Oluşturulan iki kromozom yapısının da kullanılabilirlik karşılaştırması çizelge
3.1.‘de görülmektedir. İki kromozom yapısını kıyaslamak amacıyla oluşturulan
çizelge 36 adet derslik, 257 adet aktivite, haftanın 5 günü, her gün için 11 saat ve
kontrol edilen 8 kısıt temel alınarak düzenlenmiştir.
28
Çizelge 3.1. Kullanılabilirlik karşılaştırması
Birinci Kromozom Modeli
İkinci Kromozom Modeli
Kromozom Boyutu (Gen Adeti)
36 * 5 *11 = 1980
257
Bir İterasyon İçin Tahmini İşlem
Adeti (Kısıt Sayısı * Gen Sayısı)
8 * 1980 = 15 840
8 * 257 = 2056
Bir dersliğe aynı saat için
Kromozom Modelinin Artıları
iki farklı aktivite atılması
olasılığı yok. Yani derslik
çakışması sorunu olmuyor.
Bir aktivitenin aynı anda
iki
ya
da
daha
dersliğe atılması olasılığı
yok.
Yani
bu modelin her bir iterasyon için daha fazla işlem yaptığı görülmektedir. Bunun
sebebi kullanılmayacak bile olsa her bir dersliğin her saatini modellemiş olmasıdır.
Programın daha verimli çalışabilmesi açısından ikinci kromozom modeli, uygun
çözümün bulunması için genetik algoritma işlem sürecinde kullanılmak üzere tercih
edilmiştir. Birinci kromozom modeli ise daha fazla veriyi ayrıntılı olarak üzerinde
olmasından
dolayı,
uygun
çözüm
bulunduktan
sonra
çözümüm
çizelgelenmesinde kullanılmıştır.
3.3. Gen Yapısı
Modellenen iki farklı kromozom yapısında iki farklı gen modeli bulunmaktadır.
Birinci modelde her bir gen içerisinde bir aktivitenin id numarasını, ders saati
adetince kendisinden sonra gelen ardışık genler içerisinde tutmaktadır. Durumun
örneklemesi Çizelge 3.2.’de gösterilmiştir.
aktivite
çakışması sorunu olmuyor.
Çizelge 3.1. incelendiğinde birinci kromozomun gen yapısının çok büyük olduğu ve
tutuyor
fazla
29
Çizelge 3.1. Durum örneklemesi
İd No
Ders
Aktivite Adı
Saati
Prof. Dr. Ömer Faruk BAY EBE -212 T Elektronik 2 A1
3
1
İ.Ö
2
Doç. Dr. Mutlu YAPICI EBE-414 T Bilgisayar 4 A1 İ.Ö
4
3
Doç. Dr. Yaser YAPICI EBE -252 T Bilgisayar 2 A1 N.Ö
3
Yrd. Doç. Dr. Davut ÖZDEMİR YAD-302 T Elektronik 3
4
.......
....................
.....
N numaralı İd ye sahip aktivite
N
k
Pazartesi
Cuma
Derslik1
4
4
4
4
1
2
3
4
4
A1 N.Ö
Derslik N
….
5
….
11
…….
2
2
….
……..
1
2
…
4 numaralı İd ‘ye ait Aktivite Pazartesi
Günü birinci Saat’ ten itibaren ders
saati kadar 1. Dersliğe yerleştirilmiş
Derslik1
……..
11
……..
1
3
….
2
….
11
Derslik N
……..
N
N
….
……..
1
2
.....
3 numaralı İd ‘ye ait Aktivite Cuma
Günü ikinci Saat’ ten itibaren ders
saati kadar 1. Dersliğe yerleştirilmiş
Şekil 3.3. Modellenen kromozoma ait gen yapısı
İkinci modelde ise her bir gen bir aktiviteyi temsil etmekte ve içerisinde o aktiviteye
atanmış derslik id, gün ve saat bilgilerini tutmaktadır. Durumun örneklemesi Çizelge
3.3.‘te gösterilmiştir.
1
1
11
30
Çizelge 3.2. Durum örneklemesi
İd No
Ders
Aktivite Adı
Saati
8
Prof. Dr. Ömer Faruk BAY EBE-446 T Elektronik 4 A2 İ.Ö
3
14
Yrd. Doç. Mutlu YAPICI EBE-476 T Bilgisayar 4 A1 N.Ö
4
23
Yrd. Doç. Dr. Yaser YAPICI EBE -250 T Bilgisayar 2 A1N.Ö
4
34
Doç. Dr. Can ÖZDEMİR EBE-412 T Bilgisayar4 A1 N.Ö
5
.......
....................
.....
N numaralı İd ye sahip aktivite
N
k
N Adet Aktivite
74
5
....
1248
....
0
33
....
58
896
....
23
....
---
---
1
2
....
8
....
14
15
....
22
23
....
34
....
n-1
N
8. gen’in değeri olan 1248 numarası o gene ait aktivitenin yani veri tabanında 8.
Sırada kayıt edilmiş olan aktivitenin atandığı derslik, gün ve saat bilgilerini
tutmaktadır. Bu bilgiler belirli bir formül çerçevesinde düzenlenerek 1248 rakamı
bulunmuştur. Genlerin değerlerini belirleyen formül Eşitlik 3.1.‘de görülmektedir.
Gen değerlerini belirlemede kullanılan formül :
Pozisyon =gün * derslik sayısı * saat sayısı + derslik * saat sayısı + saat
Formüldeki değişkenlerin anlamları :
Pozisyon : Gen için üretilen değer.
Gün : Aktivite için belirlenen gün numarası.
Derslik sayısı : Toplam derslik adeti.
Saat sayısı : Toplam saat sayısı.
Derslik : Aktivite için belirlenen derslik sıra numarası.
Saat : Aktivite için belirlenen başlangıç saati.
(3.1)
31
Aynı formül gen değeri için tersten işleme koyduğunda, o genin (aktivitenin)
atandığı derslik, gün ve saat verileri elde edilmektedir. Formülün tersten uygulanma
şekli aşağıda formülize edilmiştir. Burada 1. Dersliğin değeri 0 dır, 2. Dersliğin
değeri 1 ve N. Dersliğin değeri de N-1 dir. Aynı şekilde Pazartesi gününün değeri 0,
Salı günü 1, Çarşamba 2, Perşembe 3, Cuma 4, Cumartesi 5, Pazar 6 dır.
Pozisyon : Gen değeri(3.2)
Gün : Tam Kısım( Pozisyon / (Saat sayısı * Derslik sayısı ))
X : Pozisyon Mod( Saat sayısı * Derslik sayısı )
Derslik : X / Saat sayısı
Saat : X Mod( Saat sayısı)
Çizelgedeki dersler için gen değerleri aşağıda hesaplanmıştır.
8. Gen (8 numaralı ID’ ye sahip aktivite) için:
Saat sayısı : 11
Derslik sayısı : 36
Pozisyon : 1248
Gün :1248 / (11 *36) = 3 ( Perşembe )
X :1248 ≡ 60 (Mod (11 * 36)) = 60
Derslik : 60 / 11 = 5 (6 numaralı derslik)
Saat : 60 ≡ 5 (Mod 11) = 5 ( 6. Saat )
Yukarıdaki bilgiler doğrultusunda 8 numaralı kimlik (id) bilgisine sahip aktivitenin
6. Dersliğe Perşembe günü 6. Saatten itibaren ders saati sayısınca atandığı
anlaşılmaktadır.
14. Gen (14 numaralı ID’ ye sahip aktivite) için:
Saat sayısı :11
Derslik sayısı : 36
32
Pozisyon : 0
Gün : 0 / (11 *36) = 0 ( Pazartesi )
X : 0 ≡ 0 (Mod (11 * 36)) = 0
Derslik: 0 / 11 = 0 (1 numaralı derslik)
Saat : 0 ≡ 0 (Mod 11) = 0 ( 1. Saat )
Yukarıdaki bilgiler doğrultusunda 14 numaralı kimlik (id) bilgisine sahip aktivitenin
1. Dersliğe Pazartesi günü 1. Saatten itibaren ders saati sayısınca atandığı
anlaşılmaktadır.
23. Gen (23 numaralı ID’ ye sahip aktivite) için:
Saat sayısı : 11
Derslik sayısı : 36
Pozisyon : 896
Gün : 896 / (11 *36) = 2 ( Çarşamba )
X : 896 ≡ 104 (Mod (11 * 36)) = 104
Derslik : 104 / 11 = 9 (10 numaralı derslik)
Saat : 104 ≡ 5 (Mod 11) = 5 ( 6. Saat )
Yukarıdaki bilgiler doğrultusunda 23 numaralı kimlik (id) bilgisine sahip aktivitenin
10. Dersliğe Çarşamba günü 6. Saatten itibaren ders saati sayısınca atandığı
anlaşılmaktadır.
34. Gen (34 numaralı ID’ ye sahip aktivite) için:
Saat sayısı : 11
Derslik sayısı : 36
Pozisyon : 23
Gün : 23 / (11 *36) = 0 ( Pazartesi )
X : 23 ≡ 23 (Mod (11 * 36)) = 23
33
Derslik : 23 / 11 = 2 (3 numaralı derslik)
Saat : 23 ≡ 1 (Mod 11) = 1 ( 2. Saat )
Yukarıdaki bilgiler doğrultusunda 34 numaralı kimlik (id) bilgisine sahip aktivitenin
3. Dersliğe Pazartesi günü 2. Saatten itibaren ders saati sayısınca atandığı
anlaşılmaktadır.
Temel olarak yukarıda anlatılan sebeplerden dolayı problemin çözümünde ikinci
kromozom modeli tercih edildiğinden ikinci modele uygun olan gen yapısına göre
işlemleri gerçekleştirilmiştir.
3.4. Seçim İşlemi
Bu çalışmada tam genetik algoritma ve yarı (kısmi) genetik algoritma olarak iki
farklı çözüm yöntemi kullanılmıştır. Bu nedenle de iki farklı seçim yöntemi
kullanılmıştır.
Tam genetik çözüm için kullanılan seçim yöntemi rastgele (random) seçim
yöntemidir. Bu yöntemde çaprazlama işlemine tabi tutulacak kromozomlar
popülasyon içerisinden rastgele olarak seçilmektedir. Yine seçilen kromozomlardan
mutasyona
uğratılacak
genler
rastgele
olarak
seçilerek
mutasyon
işlemi
gerçekleştirilmektedir. Çaprazlama ve mutasyon işlemlerinden sonra yeni kromozom
var olan popülasyon içerisinden rastgele olarak seçilen bir kromozomla (bireyle) o
kromozomdan daha iyi bir uygunluk değerine sahip olması durumunda yer
değiştirmektedir. Bu yer değiştirme işlemi sırasında elitism işlemi uygulandığından
en iyi 5 kromozoma kesinlikle dokunulmamaktadır. Yer değiştirme sadece bu en iyi
kromozomların dışında kalan diğer kromozomlar arasında gerçekleşmektedir.
Yarı genetik çözüm için kullanılan seçim yöntemi ise yine rastgele olmakla birlikte
sadece sorunlu genler arasından rastgele seçim yapılmaktadır. Böylece sorunlu
genlerin hata oranlarının düşürülme olasılığı artmaktadır. Yeni oluşturulan birey yine
yukarıdaki yöntemle, rastgele seçilen bir birey ile yer değiştirme yolu ile
popülasyona eklenmektedir.
34
3.5. Çaprazlama İşlemi
Çaprazlama işlemi olarak en az iki noktalı olmak şartıyla interaktif olarak
değiştirilebilir bir yöntem seçilmiştir. Program ara yüzünden çaprazlama oranı ve
çaprazlama nokta sayısı değiştirilebilmektedir. Çaprazlama işlemine gönderilen iki
kromozom çaprazlama işlemine girmeden önce 0 ile 100 arasında rastgele bir sayı
üretilmektedir. Üretilen bu değer çaprazlama oranına eşit ya da daha küçük ise
kromozomlar çaprazlanmaktadır. Eğer üretilen değer çaprazlama oranından daha
büyükse seçilen kromozomlara çaprazlama işlemi uygulanmadan içlerinden rastgele
birisi seçilerek mutasyon işlemine gönderilmektedir. Çaprazlama oranı sayesinde
popülasyonun çeşitliliğinin sağlanarak daha fazla çözüm uzayının taranması
amaçlanmaktadır.
Temel olarak çaprazlama işleminin çalışma şekli yukarıda anlatılan yöntemle
aynıdır. Seçilen iki kromozomdan çaprazlama nokta adetince gen noktası
seçilmektedir. Seçim işlemi rastgele olarak yapılmaktadır. Seçilen noktalar
arasındaki genler iki kromozom arasında karşılıklı olarak değiştirilerek çaprazlama
işlemi gerçekleştirilmektedir. Şekil 3.4.‘de programda kullanılan iki noktalı
çaprazlama modeli görülmektedir.
1. nokta
1.Ebeveyn
2.nokta
23 1 55 3 6 15 4 18 1.Çocuk
2.Ebeveyn 33 8
7 12 44 1 7 0
2.Çocuk
23 1 55 3 44 1 7 18
33 8 7 12 6 15 4 0
Şekil 3.4. Kullanılan iki noktalı çaprazlama modeli
Yukarıdaki gibi çaprazlama işlemine tabi tutulan iki farklı kromozomdan, iki farklı
kromozom elde edilmektedir. Bu aşamadan sonra üretilen her bir yeni kromozom
(çocuk birey) için uygunluk değer fonksiyonuna göre uygunluk değerleri
hesaplanmaktadır. Daha sonra bu iki çocuk birey arasından en iyi uygunluk değerine
35
sahip olan birey seçilerek, mutasyon işlemi yapılmak üzere mutasyon fonksiyonuna
gönderilmektedir.
3.6. Mutasyon İşlemi
Mutasyon işlemi için de yine çaprazlamada olduğu gibi en az iki noktalı olmak
şartıyla interaktif olarak değiştirilebilir bir yöntem seçilmiştir. Program ara yüzünden
mutasyon
işlemi
için
de
mutasyon
oranı
ve
mutasyon
nokta
sayısı
değiştirilebilmektedir. Mutasyon işlemine gönderilen kromozomun genleri arasında
mutasyon işleminin gerçekleştirilip gerçekleştirilmeyeceği yine mutasyon oranına
bağlı olarak değişmektedir. Kromozom genleri arasında mutasyon işlemi yapılmadan
önce 0 ile 100 arasında rastgele bir sayı üretilmektedir. Üretilen bu değer mutasyon
oranına eşit ya da daha küçük ise kromozom içinden seçilen genler mutasyona tabi
tutulmaktadır. Eğer üretilen değer mutasyon oranından daha büyükse seçilen
kromozoma mutasyon işlemi uygulanmadan popülasyona eklenmek üzere uygunluk
değerinin hesaplanması için uygunluk değeri fonksiyonuna gönderilmektedir.
Mutasyon oranı sayesinde yine çaprazlamada olduğu gibi popülasyonun çeşitliliğinin
sağlanarak daha fazla çözüm uzayının taranması amaçlanmaktadır.
Mutasyon işlemi uygulanacak kromozomun genleri arasından rastgele olarak
mutasyon nokta sayısı adedince gen seçilmektedir. Seçilen bu genlerin değerleri
rastgele olarak yeniden üretilerek oluşturulmaktadır. Mutasyonun oluşturulması
aşamasında yeni gen değeri pozisyon formülüne göre üretilmektedir. Rastgele olarak
derslik kimlik (id) bilgileri arasından bir derslik kimlik (id) bilgisi üretilmektedir.
Yine gün ve saat için de rastgele olarak bir değer üretildikten sonra bu verilerden
pozisyon formülüne göre yeni bir aktivite pozisyonu üretilip genin içerisine
atanmaktadır. Programda uygulanan mutasyon işlemi için dört noktalı mutasyon
yapısı şekil 3.5. ‘de görülmektedir.
Pozisyon : gün * derslik sayısı * saat sayısı + derslik * saat sayısı + saat
36
Çocuk Kromozom
Ebeveyn Kromozom
19 20 34 2 98 121 5 0 70
19 39 34 2 7956 121 1585 0 16
Üretilen 1. Pozisyon:
Üretilen 2. Pozisyon:
Derslik= rastgele(3)
Derslik= rastgele(20)
Saat = rastgele(6)
Saat = rastgele(1)
Gün = rastgele(0)
Gün = rastgele(4)
Yeni Pozisyon = 0*36*11 + 3 * 11 + 6 = 39
Yeni Pozisyon = 4*36*11+20 *11 +1= 7956
Üretilen 3. Pozisyon:
Üretilen 4. Pozisyon:
Derslik= rastgele(0)
Derslik= rastgele(16)
Saat = rastgele(2)
Saat = rastgele(0)
Gün = rastgele(4)
Gün = rastgele(0)
Yeni Pozisyon = 4*36*11+ 0 *11 + 1= 1585
Yeni Pozisyon = 0* 36 *11+ 0* 11+ 16 = 16
Şekil 3.5. Dört noktalı mutasyon yapısı
Yukarıdaki gibi mutasyon işlemine tabi tutulan kromozomun, uygunluk değer
fonksiyonuna göre uygunluk değerleri hesaplanmaktadır. Daha sonra var olan
popülasyondan rastgele bir kromozom seçilerek, yeni üretilen kromozom ile
karşılaştırılmaktadır. Bu karşılaştırma sonucunda eğer yeni üretilen kromozomun
uygunluk değeri daha iyi ise popülasyonda seçilen kromozomla yer değiştirerek
popülasyona eklenmektedir.
3.7. Uygunluk Değer Fonksiyonu
Algoritmada
bireyler oluşturulduktan sonra,
kromozomlar (bireyler)
yeni
popülasyona
uygunluk
değeri
aktarılmaktadır.
yüksek
olan
Çözüm uzayının
37
değişik
noktalarından oluşan
popülasyonda,
her bir
kromozomun
aranılan
çözüme ne kadar yaklaştığını belirlemek için mutlaka bir fonksiyon gereklidir. Bu
fonksiyon problemin çözümü için belirlediğimiz tüm kısıtları kapsayan uygunluk
(değerlendirme) fonksiyonudur. Uygunluk fonksiyonu sayesinde popülasyondaki
tüm bireylerin çözüm kriterine ne kadar uygun olduğu belirlenmektedir. Böylece
bireyleri çözüme uygunluklarına göre sıralama olanağı elde edilmektedir.
Bir ders çizelgeleme programında ana kısıtlar ve özel kısıtlar olmak üzere iki tip kısıt
vardır. Ana kısıtlar problemin çözümünde
kesinlikle sağlanması gereken
değerlendirme kriterleridir. Özel kısıtlar ise problemin çözüm kalitesini artıran
kısıtlardır. Problemin çözümünde özel kısıtlarında karşılanıyor olması çözüm
kalitesini artırır ancak karşılanamaması çözümü geçersiz kılmaz. Anlaşılacağı üzere
birinci önceliğe sahip kısıtlar ana kısıtlardır ve özel kısıtlar ikinci önceliğe sahip
kısıtlardır. Uygunluk değer fonksiyonu kısıt önceliğine göre ana ve özel kısıtların
tamamını içermektedir.
Kaynak kısıtlı proje çizelgeleme problemi olan, ders çizelgeleme problemine ait tüm
kısıtlar “Proje Kısıtları” bölümünde verilmektedir. Temel olarak üniversite ders
çizelgeleme programı için 3 ana kısıt bulunmaktadır. Bu kısıtları şöyle sıralanabilir:
1. Şubelerin Çakışması
2. Dersliklerin Çakışması
3. Öğretim Elemanlarının Çakışması
Uygunluk değer fonksiyonu içinde bu ana kısıtlar ve özel kısıtlarının her biri için
öncelik sırasına göre puanlama sistemi bulunmaktadır. Uygunluk değer fonksiyonları
için puanlama sistemleri temel olarak cezalandırmaya dayalı puanlama ve
ödüllendirmeye dayalı puanlama olmak üzere ikiye ayrılmaktadır.
Cezalandırmaya dayalı puanlama sistemlerinde, uygunluk değeri hesaplanacak
kromozom, her bir uygunluk kısıt’ı için değerlendirir. Eğer kısıt sağlanmıyorsa,
kromozomun toplam uygunluk değerine kısıt’a ait belirlenen ceza puanı eklenir.
Böylece tüm kısıtlar için değerlendirilen kromozomun toplam uygunluk ceza puanı
hesaplanır. Cezalandırma sistemine dayalı uygulama değer fonksiyonlarında amaç
38
değeri minimize etmektir. Toplam ceza puanı küçük olan kromozom en uygun
kromozom olarak nitelendirilir.
Ödüllendirmeye dayalı puanlama sistemlerinde yine, uygunluk değeri hesaplanacak
kromozom, her bir uygunluk kısıt ’ı için değerlendirir. Eğer kısıt sağlanıyor ise,
kromozomun toplam uygunluk değerine kısıt ’a ait belirlenen ödül puanı eklenir.
Böylece
tüm
kısıtlar
için
değerlendirilen
kromozomun
toplam
uygunluk
ödüllendirme puanı hesaplanır. Ödüllendirme sistemine dayalı uygulama değer
fonksiyonlarında amaç değeri maksimize etmektir. Toplam ödül puanı büyük olan
kromozom en uygun kromozom olarak nitelendirilir.
Bu çalışmada uygunluk değer fonksiyonu için puanlama sistemi olarak
cezalandırmaya dayalı puanlama sistemi kullanılmıştır. Bu sebeple uygunluk değeri
en küçük olan kromozom en iyi çözüm olarak değerlendirilmektedir. Uygunluk
fonksiyonun formül olarak gösterimi Eşitlik 3.2 ‘deki gibidir.
Tüm
kısıtlar için popülasyondaki bir kromozoma ait ceza puanları toplamı; .
( )
∑∑
( )
(3.2)
( ) : k. Kromozoma ait toplam uygunluk değeri
Kromozomdaki toplam gen sayısı
Uygunluk değer fonksiyonundaki toplam kısıt sayısı
( )
i. Gen için j. Kısıt’ına ait cezalandırma puanı
Bir kromozoma ait uygunluk değer fonksiyonu yukarıdaki formülden de
anlaşılabileceği gibi, kromozomda bulunan tüm genlerin, uygunluk fonksiyonunda
bulunan tüm kısıtlara göre değerlendirilmesi ve her bir genin uygunluk ceza
puanlarının toplanması sonucunda elde edilmektedir.
39
3.8. Yarı Genetik Çözüm Fonksiyonu
Bu çalışmada KKPÇP olan ders çizelgeleme problemine tam genetik ve yarı genetik
(kısmi genetik) çözüm olmak üzere iki farklı çözüm yöntemi geliştirilmiştir. Tam
genetik çözüm için genetik algoritma aşamaları başlangıç popülasyonunun
oluşturulmasından itibaren yukarıda anlatıldığı gibi uygulanmaktadır. Kısmi genetik
çözümde ise başlangıç popülasyonu oluşturulduktan sonra kısmi genetik çözüm
fonksiyonu popülasyona bir süre uygulanmaktadır ve daha sonra genetik işlemler
(çaprazlama ve mutasyon) devreye konulmaktadır. Kısmi genetik çözümde
popülasyon
bireylerinin
uygunluk
değerleri
belirli
bir
değere
kadar
iyileştirilmektedir, böylece genetik algoritmanın çözüme ulaşmasının hızlandırılması
amaçlanmaktadır. Bu iyileştirme oranı Gazi Üniversitesi Teknik Eğitim Fakültesi
için geliştirilen bu programda, üniversitenin şartları göz önünde bulundurularak
15000 olarak ele alınmıştır. Üretilen başlangıç popülasyonu yarı genetik çözüm
fonksiyonu
tarafından
15000
cezalandırma
puanına
kadar
iyileştirmeyi
gerçekleştirmektedir. Bu değerden sonra daha iyi sonuçların bulunabilmesi için
genetik algoritma devreye girmektedir. Bu şekilde çözüme daha hızlı bir şekilde
ulaşıldığı aşağıda analiz bölümündeki verilerde de açıkça görülmektedir.
Yarı genetik çözüm fonksiyonunun çalışma şekli mutasyon fonksiyonu ile benzerlik
göstermektedir. Fonksiyona popülasyondaki en iyi uygunluk değerine sahip
kromozom seçilerek gönderilmektedir. En iyi değere sahip bireyin daha iyi değerlere
ulaşması bu fonksiyonun temel amacını oluşturmaktadır. Fonksiyona gönderilen
kromozomdan, öncelikle uygunluk değer fonksiyonumuza göre cezalı (hatalı) genler
seçilerek hatalı genler adında bir dizi içerisinde tutulmaktadır. Daha sonra bu hatalı
genler arasından bir gen seçilerek, mutasyon işleminde olduğu gibi yeni bir pozisyon
değeri üretilmektedir. Yeni pozisyon değeri üretilirken Derslik, Gün ve Saat bilgileri
rastgele üretilmek yerine gene ait (her bir gen bir aktiviteyi temsil ettiği için
aktiviteye ait) kısıtlar göz önünde bulundurularak yeni değerler üretilmektedir. Bir
bakıma kontrollü mutasyon işlemi gerçekleştirilmektedir. Üretilen yeni Derslik, Gün
ve Saat değerleri Pozisyon bulma formülü kullanılarak gen için yeni pozisyon değeri
oluşturulmaktadır. Bu şekilde en iyi uygunluk değerine sahip kromozom daha da
40
iyileştirilmektedir. Bu uygunluk değeri yukarıda belirtildiği gibi 15000 değerine ya
da daha iyi bir değere ulaştığında tüm popülasyona genetik algoritma
uygulanmaktadır. Yarı genetik çözüm fonksiyonuna gönderilen kromozoma
kontrollü mutasyon işlemi uygulandıktan sonra kromozomun uygunluk değeri
hesaplanarak popülasyona eklenmektedir.
Genetik algoritmada başlangıç popülasyonunda üretilen bireyler ne kadar iyi ise bu
bireylerden oluşturulacak yeni bireylerin uygunluk değerinin daha iyi olma olasılığı
o kadar artmaktadır. Bu mantıktan yola çıkılarak bu fonksiyon geliştirilmiştir. Yine
genetik algoritmanın çözüm uzayının kısıtlanmaması için tüm bireylere bu fonksiyon
uygulanmayarak sadece en iyi bireye uygulanmıştır. Bu şekilde popülasyonun çözüm
uzayındaki farklı noktalara örnekleme özelliği korunmaya çalışılmıştır.
41
4. GELİŞTİRİLEN PROGRAMIN ANALİZİ
Program analizi tam genetik algoritma ve yarı genetik algoritmaya göre ayrı ayrı
değerlendirilerek iki yöntemde elde edilen sonuçlara göre karşılaştırılma yapılmıştır.
Algoritma yöntemleri aynı kısıtlar altında ve aynı veri tabanındaki verilere göre
gerçekleştirilmiştir. Kısıtlara ve veri tabanı özelliklerine ait bilgiler aşağıda
verilmiştir.
4.1. Analizde Kullanılan Veriler
Bu çalışmada ele alınan ders çizelgeleme programı Gazi Üniversitesi Teknik Eğitim
Fakültesi Elektronik – Bilgisayar Eğitimi Bölümü’nün 2010-2011 bahar dönemi
verilerine göre analiz edilmiştir. Toplamda 36 dersliğe (22 sınıf + 14 laboratuvar), 27
adet akademik personele ait 257 dersin çizelgelemesi yapılmıştır. Ayrıca bilgisayar
öğretmenliği programında
9
normal öğretimle, 8 ikinci öğretimle, Elektronik
öğretmenliği programında da 10 normal öğretimde, 9 ikinci öğretimde olmak
üzere toplamda 36 şube bulunmaktadır. Tüm bu veriler “cizelgeleme.accdb” veri
tabanı dosyasında bulunmaktadır.
Çizelge programının çözümünde kullanılan zaman kısıtları, laboratuvar kısıtları,
derslik kısıtları, daha önce oluşturulmuş, diğer bölümlere ait çizelgeleme kısıtları,
aktivite kilitleme kısıtları gibi özel kısıtlar da yine “cizelgeleme.accdb” veri tabanı
dosyasında bulunmaktadır.
Tüm bu kısıt ve veriler programın başlatılması anında, diziler içerisine alınarak
belleğe
yüklenmektedir.
Böylece
sürekli
veri
tabanı
ile
veri
alışverişi
yapılmamaktadır. Veri tabanından veri okumak ve yazmak işlemleri programın
yavaşlamasına ve zaman kaybına yol açtığı için bu yöntem kullanılmıştır.
42
4.2. Program Kısıtları
Ders çizelgeleme kısıtları, Gazi Üniversitesi Teknik Eğitim Fakültesi Elektronik –
Bilgisayar Eğitimi Bölümü’nün ihtiyaçlarına göre, diğer bölümlerin ihtiyaçları da
gözetilerek, düzenlenmiştir. Kısıtlar, eğitim kalitesinin iyileştirilmesi, öğrenci ve
öğretim elemanlarının performansının yükseltilmesi, öğretim elemanı isteklerinin
karşılanması ve idari ihtiyaçlara cevap verilebilmesi esas alınarak oluşturulmuştur.
Tüm kısıtlar, ana kısıtlar ve özel kısıtlar olmak üzere iki grupta toplanabilir.
Herhangi bir kısıt, program çalıştırılmadan önce aktif ya da pasif edilebilir. Aktif
olan her kısıt sistem tarafından öncelik sırasına göre gerçekleştirilmeye çalışılır.
Sistemde bulunan ana ve özel kısıtlar aşağıda verilmektedir.
4.2.1. Ana kısıtlar
Ana kısıtlar sistem tarafından en yüksek önceliğe sahip kısıtlardır. Bu kısıtlar ders
çizelgeleme programın çözüme ulaşmasında olmazsa olmazlarındandır. Ana kısıtlar
sistemde her zaman açık konumdadır.
Ana kısıtla aşağıda sırlanmaktadır.
1) Bir öğretim elemanına ait iki farklı ders aynı gün ve aynı saate atanamaz.
Yani öğretim elemanın ders saatleri çakışmamalıdır.
2) Bir şubeye ait dersler aynı gün ve aynı saate atanamaz. Yani şubenin ders
saatleri çakışmamalıdır.
3) Bir dersliğe aynı gün ve saate yalnızca bir ders atanabilir. Dersliğe atanan
dersler çakışmamalıdır.
4.2.2.
Özel kısıtlar
Özel kısıtlar sistemde öğretim elemanlarına ya da dersliklere ait ekstra kısıtlardan
oluşmaktadır. Bu kısıtlar öğretim elemanlarının özel istekleri doğrultusunda aktif ya
da pasif edilmektedir. Özel kısıtlar sistemde her zaman açık konumda
43
bulunmamaktadır. Öğretim elemanlarının istekleri doğrultusunda aktif edilmektedir
ve her öğretim elemanı için farklı öncelik değerlerine sahiptir.
Özel kısıtlar aşağıda sırlanmaktadır.
4) Öğretim elemanları, kendilerine ait derslerin atanmamasını istedikleri gün ve
saate, cezalandırma puanı vererek kapatabilirler. Bu işleme zaman kısıtı
ekleme denmektedir. Böylece öğretim elemanına ait dersler, öğretim
elemanının istediği günlere yerleştirilir. Ceza puanı yüksek olan saatlere
mümkün olduğu kadar az ders atılmaya çalışılır. Bu kısıt her zaman aktif
değildir. Öğretim elemanın isteği doğrultusunda aktif edilir.
5) Öğretim elemanı zaman kısıtlarını isime göre vererek o öğretim elemanının
tüm dersleri için bu kısıtı aktif edebilir. İsterse sadece belirli bir aktiviteye
zaman kısıtı ekleyerek, zaman kısıtını belirli bir şubenin dersi için de
ekleyebilir.
6) Zaman kısıtları istenilirse dersin adına göre de aktif edilir. Böylece zaman
kısıtı derse eklenmiş olur ve o derse ait tüm şube ve öğretim elemanları için
aktif edilir.
7) Zaman kısıtları öğretim türüne göre de aktif edilebilir. Bu kısıt sayesinde
normal öğretime ve ikinci öğretime ait dersler, öğretim türüne göre günün
uygun saatlerine yerleştirilir. Örnek olarak normal öğretim dersleri sabah
saatlerine, ikinci öğretim dersleri ise akşam saatlerine yerleştirilir.
8) Öğretim elemanları, herhangi bir şubeye ait girdikleri bir derse derslik kısıtı
ekleyerek, o dersin sadece istediği dersliklere atanmasını sağlayabilirler.
9) Laboratuvarda uygulama şeklinde yapılması gereken derslere laboratuvar
kısıtı eklenerek bu derslerin laboratuvarda yapılması sağlanır. Ayrıca bu kısıt
44
derslik kısıtından da, derse sadece laboratuvarların atanması şeklinde
gerçekleştirilir.
10) Laboratuvarda
yapılması
laboratuvarlarda teori
planlanan
derslerin
kısımları ise sınıflarda
uygulama
kısımları
yapılabilmektedir. Bu
durumdaki derslere laboratuvar kısıtı eklenerek teori ve uygulamanın
hangisinin önce yapılacağı ayarlanabilmektedir. İstenirse tüm uygulama ve
teori derslerine otomatik olarak laboratuvar kısıtı eklenmesi sağlanabilir.
11) Aktiviteler istenirse belirli bir gün ve saat için istenilen bir dersliğe
kilitlenerek dersliğin istenilen gün ve saatte, istenilen derslikte yapılması
sağlanabilir. Bu kısıt aktif edildiğinde aktiviteye ait varsa zaman, derslik ve
laboratuvar kısıtları kaldırılır.
12) Farklı bölümlerin kullandığı ortak derslikler için, bölümlerin oluşturduğu
çizelgelerden dersliklere ait zaman kısıtları alınarak oluşturulacak çizelgeye
eklenebilmektedir. Böylece bölümler arasında derslik çakışmasının önüne
geçilmesi planlanmaktadır.
13) Üniversite’de, eğitim birden fazla binada yapılıyor olabilir. Eğer binalar
birbirinden uzaksa, bir öğretim elemanının binalar arası sürekli gidip gelmesi
sıkıntı doğurabilir. Bu problemin giderilmesi için eklenen derslik kısıtları,
öğretim elemanlarının derslerinin mümkün olduğunca aynı binadaki
dersliklere atanmasını sağlamaktadır.
4.3. Program Arayüz Kullanımı ve Menülerin Tanıtımı
Bu çalışmada geliştirilen ders çizelgeleme programında dört farklı ana menü
bulunmaktadır. Bunlar :
1) Veri Girişi Menüsü
2) Aktivite ve Kısıt Düzenle Menüsü
45
3) Çizelge Menüsü
4) Bilgi Menüsü
Bu menülere ait alt menüler ve görevleri detaylı bir biçimde aşağıda anlatılmaktadır.
4.3.1.
Veri girişi menüsü
Programda çizelgeleme probleminin çözümü için değerlendirilecek verilerin girişinin
yapıldığı menüdür. Tüm kullanıcıların kolay bir şekilde veri girişi yapabilmeleri için
kullanıcı dostu bir arayüz geliştirilmiştir. Programın veri girişi menüsüne ait arayüz
Resim 4.1.‘de görülmektedir. Bu menüden gelişmiş genetik çözüm ayarlarının
yapılabilmesi için kullanıcı şifresi girilmelidir. Kullanıcı şifresi girilmiş veri giriş
menüsü arayüzü Resim 4.2. de görülmektedir
Resim 4.1. Ders çizelgeleme programı şifreli veri girişi menüsü arayüzü
46
Resim 4.2. Kullanıcı şifresi girilmiş veri girişi menüsü arayüzü
Veri giriş menüsünden programın çözüm için başlatılabilmesi ve genetik algoritma
çözüm işleminin başlatılabilmesi için temel verilerin giriş yapılmaktadır. Veri giriş
menüsünde bulunan alt menülere ait bilgi aşağıda verilmektedir.
Genetik çözüm ayarları menüsü
Genetik çözüm ayarları menüsü sadece şifre ile giriş yapmış kullanıcılar tarafından
görülür ve düzenleme yapılır. Genetik algoritma için başlangıç popülasyonu
sayısının, çaprazlama olasılığı değerinin, çaprazlama nokta sayısının, mutasyon
olasılığı değerinin ve mutasyon nokta sayısının ayarlandığı menüdür. Bu menüden
genetik algoritma için başlangıç popülasyonu sayısı değiştirilir. Varsayılan değeri 25
olarak ayarlanmıştı. Çaprazlama olasılığı değeri ayarlanarak genetik algoritmada
bireylerin çaprazlama işlemine girme olasılığı artırılır ya da azaltılır. Bu değer için de
varsayılan yüzde 80 olarak ayarlanmıştır. Çaprazlama işlemine giren bireyler için,
çaprazlama nokta sayısı ayarlanabilmektedir. Bu değerde varsayılan olarak 2
47
alınmıştır. Yine çaprazlama işleminde olduğu gibi mutasyon işlemi olasılığı ve
mutasyon nokta sayısı da bu menüden ayarlanır.
Veri tabanı Ayarları Menüsü
Bu menü ile işlem yapılan veri tabanı kaydedilerek daha sonra kullanılır ya da
düzenlenir. Bu menü aracılığı ile yeni veritabanı oluşturularak farklı bölümlere ait ya
da farklı dönemlere ait çizelgeleme verileri saklanır. Üzerinde işlem yapılması
istenen veritabanı bu menüden seçilerek aktif veri tabanı olarak ayarlanır ve istenilen
veritabanı bu menüden silinir.
Öğretmen kaydı menüsü
Öğretim elemanı ismini ekleme, eklenen isimleri düzenleme ve silme işlemlerinin
gerçekleştirildiği menüdür.
Ders kaydı menüsü
Çizelgeleme işleminde yerleştirilecek derslere ait bilgilerin girildiği menüdür. Ders
adlarının, derse ait ders kodunun, ders saatinin ve dersin türünün girildiği menüdür.
Bu
menüden
giriş
yapılan
ders
saati
temel
alınarak
ders
programına
yerleştirilmektedir. Ayrıca derslere ait verilerin güncellemesi ve silme işlemleri de bu
menü aracılığı ile yapılmaktadır.
Sınıf kaydı menüsü
Bölümlere ve sınıflara ait veri girişinin yapıldığı menüdür. Giriş yapılan bölümlere
göre yeni sınıf kaydı yapılmaktadır. Kaydı yapılacak sınıfın bölümü, adı, şube adı,
sınıf mevcudu, öğretim türü ve o sınıfa ait farklı şube sayısı gibi verilerin girildiği
menüdür. Bu menü ile eklenen sınıflara ait güncellemeler ve sınıf silme işlemleri de
bu menüden gerçekleştirilmektedir.
48
Derslik kaydı menüsü
Derslik adı, derslik kodu, derslik kapasitesi, derslik türü gibi verilerin girişinin
yapıldığı menüdür. Kaydı yapılan dersliklerin güncelleme ve silme işlemleri de bu
menüden gerçekleştirilmektedir. Bu menüye herhangi bir dersliğin eklenmesi ya da
silinmesi durumunda, programda kullanılan kromozom yapısından dolayı, yapılan
değişiklerin aktif olabilmesi için bu menüdeki “Genleri Yeniden Oluştur” butonuna
basılması gerekmektedir.
Zaman ayarı menüsü
Zaman ayarı menüsü aracılığı ile çizelgelemede esas alınacak çalışma günleri ve bu
günlere ait çalışma saatlerinin sayısı ayarlanabilmektedir. Bu menüde yapılan
değişiklerin aktif olabilmesi için, programda kullanılan kromozom yapısından dolayı,
bu menüdeki “Genleri Yeniden Oluştur” butonuna basılması gerekmektedir.
Aktivite ve kısıt düzenle menüsü
Programda veri giriş ekranından girilen veriler doğrultusunda aktivite ve kısıtların
belirlendiği menüdür. Tüm kullanıcıların kolay bir şekilde veri girişi yapabilmeleri
için kullanıcı dostu bir arayüz geliştirilmiştir. Programın aktivite ve kısıt düzenle
menüsüne ait arayüz Resim 4.3.‘de görülmektedir.
49
Resim 4.3. Ders çizelgeleme programı aktivite ve kısıt düzenle menüsü arayüzü
Aktivite ve kısıt düzenleme menüsünden eklenen aktivitelere, yine bu menüdeki alt
menüler aracılığı ile kısıt ve aktivite kilitleme işlemleri gerçekleştirilir. Bu menüde
var olan alt menüler aşağıda anlatılmaktadır.
Aktivite ekle menüsü
Veri girişi menüsünden girilen, derslik, ders ve şube bilgilerinin eşleştirilmesi ile
oluşan veri kümesine aktivite denmektedir. Örnek olarak, öğretim elemanları
içerisinden seçilen A öğretim elemanı ile eklenen dersler arasından seçilen B dersini
ve C şubesini eşleştirerek, A öğretim elemanının B dersini C şubesine verdiği bir
aktivite oluşturulmuş olunmaktadır.
Aktivite ekle menüsü ile bu eşleştirmeler kolaylıkla gerçekleştirilmektedir. Bu
menüden yeni aktiviteler oluşturulur, eklenen aktiviteler değiştirilir ve silinir. Arzu
edilirse aktivite ekle menüsünden eklenen bütün aktiviteler “Tüm Aktiviteleri Sil”
butonuna basarak silinir.
50
Aktivite kilitle menüsü
Aktivite kilitle menüsü ile eklenen herhangi bir aktivite seçilerek istenilen herhangi
bir güne, herhangi bir saate ve istenilen herhangi bir dersliğe kilitlenebilir. Kilitlenen
aktivite kesin olarak kilitlenen derslik, gün ve saate atanmaktadır. Kilitlenen
aktivitelere daha önceden eklenen derslik kısıtları, zaman kısıtları ve laboratuvar
kısıtları kaldırılır. Bu menüden istenirse kilitlenen aktiviteler tek tek silinir. Yine
istenirse kilitlenen tüm aktiviteler “Tüm Aktivitelerin Kilitlerini Kaldır” butonuyla
toplu halde silinir.
Zaman kısıtı ekle menüsü
Zaman kısıtı ekle menüsü kullanılarak aktivitelere zaman kısıtları eklenebilir. Bu
menüden dört farklı şekilde zaman kısıtı eklenebilir.
Bunlardan ilki, aktiviteye göre zaman kısıtı eklemedir. Öğretim elemanları,
kendilerine ait derslerin atanmamasını istedikleri gün ve saate, cezalandırma puanı
vererek kapatabilirler. Bu şekilde aktivitelerine zaman kısıtı eklemiş olurlar. Böylece
öğretim elemanına ait dersler, öğretim elemanının istediği günlere yerleştirilebilir.
Ceza puanı yüksek olan saatlere mümkün olduğu kadar az ders atılmaya çalışılır.
İkinci yöntem ise öğretim elemanına zaman kısıtı eklemedir. Bu şekilde, öğretim
elemanı zaman kısıtlarını isime göre vererek o öğretim elemanının tüm dersleri için
bu kısıtı aktif edebilir. Bu şekilde öğretim elemanının tüm şubelere ve tüm derslerine
tek tek kısıt eklemesi önlenerek, hem zaman kazanmaları hem de kolay bir şekilde
işlemi gerçekleştirmeleri amaçlanmıştır.
Üçüncü zaman ksıtı ekleme yöntemi derse göre zaman kısıtı eklemektir. Zaman
kısıtının eklenmesi istenilen dersin adı seçilerek dersin tüm aktivitelerine zaman
kısıtının eklenmesi sağlanabilir. Bu şekilde daha kolay ve kullanışlı bir zaman kısıtı
eklenebilir.
51
Dördüncü yöntem ise öğretim türüne göre zaman ksııtı eklenebilir. Öğretim türüne
göre seçeneği işaretlendikten sonra zaman kısıtının ekleneceği öğretim türü seçilerek,
seçilen öğretim türünün tüm aktivitelerine zaman ksıtının uygulanması sağlanabilinir.
Bu kısıt sayesinde normal öğretime ve ikinci öğretime ait dersler, öğretim türüne
göre günün uygun saatlerine yerleştirilir. Örnek olarak normal öğretim dersleri sabah
saatlerine, ikinci öğretim dersleri ise akşam saatlerine yerleştirilir.
Oluşturulan zaman kısıtlarına önem katsayısı verilerek zaman kısıtlarının önem
derecesi
belirlenebilir.
Bu
şekilde
zaman
kısıtlarına
öncelik
tanımlanmış
olunmaktadır.
Zaman kısıtı menüsü kullanılarak eklenen tüm zaman kısıtlarının kaldırılması da
sağlanabilir.
Derslik kısıtı ekle menüsü
Derslik kısıtı ekle menüsünden istenilen aktivitelere derslik kısıtı eklenebilir. Derslik
kısıtları sayesinde kısıtın eklendiği aktiviteler sadece eklenen dersliklere atanabilir.
Aktivitelere atanan dersler, aktivite seçilerek görülebilir ve istenilen derslik
kaldırılabilir. Yine istenirse bu menüdeki “Tüm Kısıtları Sil” butonuna basarak bütün
derslik kısıtları kaldırılabilir.
Laboratuvar kısıtı ekle menüsü
Derslik kısıtı ekle menüsünden istenilen derslerin varsa uygulama dersleri ile
eşleştirilmeleri sağlanabilir ve laboratuvar olarak uygulama dersleri ayarlanabilir.
Laboratuvarda uygulama şeklinde yapılması gereken derslere laboratuvar kısıtı
eklenerek bu derslerin laboratuvarda yapılması sağlanabilir. Ayrıca bu kısıt derslik
kısıtından da, derse sadece laboratuvarların atanması şeklinde gerçekleştirilir.
Laboratuvarda yapılması planlanan derslerin uygulama kısımları laboratuvarlarda
teori kısımları ise sınıflarda yapılabilir. Bu durumdaki derslere laboratuvar kısıtı
52
eklenerek teori ve uygulamanın hangisinin önce yapılacağı ayarlanabilir. İstenirse
tüm uygulama ve teori derslerine otomatik olarak laboratuvar kısıtı eklenmesi
sağlanabilir.
Aktif çizelgeden kısıt al menüsü
“Aktivite ve Kısıt Düzenle” ana menüsünde bulunan bu menüden, daha önceden
oluşturulan ve diğer bölümlere ait ders çizelgelerinden ortak dersliklere ilişkin
kısıtları almak mümkündür. Bu menü butonuna basıldığında aktif olan veri
tabanındaki tüm derslikler için, oluşturulan çizelgeye göre bir kısıt oluşturulur.
Dersliklere aktivite atanan saatler 1 değerini boş olan saatler ise 0 değerini alır. Bu
şekilde bu kısıtlar daha sonra oluşturulacak çizelgelere aktarılarak 1 olan saatler için
o dersliklerin kullanılması engellenir. Bu kısıt sayesinde farklı bölümler arasında
ortak kullanılan dersliklerde çakışmalar önlenmektedir.
Çizelge kısıtı ekle menüsü
“Aktif Çizelgeden Kısıt Al’ menü butonu, önceki çizelgelere ait olan derslik
kısıtlarını, o anda aktif olan çizelgeye kısıt olarak yükleyen menü butonudur. Bu
şekilde yeni oluşturulacak çizelgede bu kısıtlar göz önüne alınarak bölümler arası
derslik çakışmaları önlenmektedir.
Çizelge kısıtlarını sil menüsü
Bu menüye ait buton ile, aktif olan veri tabanına eklenilen ve diğer bölümlerin
çizelgelerine ait olan kısıtların tamamı kaldırılır.
53
4.3.2. Çizelge menüsü
Çizelgeleme probleminin çözüm işleminin başlatıldığı, oluşturulan çizelge
sonucunun görüldüğü ve elle düzenlemelerin yapıldığı, alt menülerin bulunduğu ana
menüdür. Bu menü Resim 4.4.‘de görülmektedir. Bu menüde bulunan alt menüler
aşağıda anlatılmaktadır.
Resim 4.4. Ders çizelgeleme programı çizelge menüsü arayüzü
Başlat menüsü
Başlat menü butonuna basarak düzenlenen kısıt ve veriler doğrultusunda çizelgeleme
probleminin çözüm işlemi başlatılır. Bu işlem başlatıldıktan sonra menü butonunun
adı “Durdur” olarak değişmektedir. Bu konumda aynı butona tekrar basarak işlemin
durdurulması sağlanır. Durdurulan işlem yine aynı butona “Devam” basılarak devam
ettirilir. O anki çözümün geçerli çözüm olarak aktarılabilmesi için bir kez durdur ve
devamet işleminin gerçekleştirilmesi gerekmektedir. Böylece o anki uygun çözüm
aktif çözüm olarak “cizim.hm” dosyasına kaydedilir.
54
Çizelge göster menüsü
Çizelge Menüsü altında bulunan çizelge göster menü butonuna basarak aktif olan
çözüme ait çizelge görülebilir. Açılan ekrandan tüm dersliklere ait oluşturulan
çizelge görülebilir. İstenirse derslik adına göre dersliğe ait çizelge görülebilir. Yine
istenirse öğretim elemanı adına göre seçilen öğretim elemanına ait oluşturulan
çizelge görülebilir. Şubeye göre göster seçeneği seçilerek, istenilen şubenin ders
çizelgesi gösterilebilir. Bu menüden yapılan çizelgelerde dersler öğretim türüne göre
mavi ve açık kırmızı renklerde görülmektedir. Böylece öğretim türüne göre normal
öğretim ve ikinci öğretime ait oluşturulan derslerin konumları kolay bir şekilde
analiz edilebilir. Yine bu menüde çizelgeleme yapıldığında kısıtlara uymayan veya
çakışma olan dersler görülür. Öğretim elemanı çakışması olması durumunda çakışan
derslerin hemen üstünde kırmızı renkte “Ö” harfi görünmektedir. Şube çakışmasında
bu harf kırmızı renkte “S”, Derslik çakışmasında “D” olarak çakışmanın bulunduğu
derslerin üzerinde görünmektedir. Yine laboratuvar kısıtları olan derslerde kısıt
sağlanamamış ise dersin üzerinde kırmızı “L” harfi, Zaman kısıtlarının
sağlanamadığı derslerde “Z” harfi ve Sınıf mevcudu kısıtlarının sağlanamadığı
derslerde “M” harfi görüntülenmektedir. Bu şekilde bu menüden çakışan ya da
sağlanamayan kısıtlara ait dersler kolay bir şekilde görülüp analiz edilir. Bu menüde
kilitli olan tüm aktivitelerin üzerinde kilit simgesi de görüntülenmektedir. Bu da
kullanıcıların kilitli aktiviteleri ve onların atandığı konumları rahatlıkla görüp
değerlendirmelerine olanak sağlamaktadır.
Çizelge düzenle menüsü
Çizelge düzenleme menüsünden oluşturulan aktivitelerin konumları elle (manuel)
değiştirilir. Konumu değiştirilmek istenilen aktivitenin üzerine çift tıklayarak gelen
menüden konumu değiştirilecek aktivite seçilir. Daha sonra seçilen aktivitenin
taşınmak istendiği konuma tıklanarak aktivitenin konumu değiştirilir. Bu menüde
Derslik,
Şube
ve/veya
Öğretim
elemanı
olan
aktiviteler
kırmızı
renkte
görünmektedir. İstenirse önce “M” tuşuna basıp sonra herhangi bir aktivitenin
55
üzerine tıklayarak o aktivitenin hiç çakışma olmadan taşınabileceği konumlar
görülebilir. Boş bir yere “M” tuşuna basarak tıklandığında çakışmaların göründüğü
varsayılan görünüm düzenine dönülmektedir. Bu menü ile herhangi bir aktivite kolay
bir şekilde uygun konumlar analiz edilerek taşınabilir.
Çözüm şeklini seçin menüsü
Çözülmesi planlanan çizelgeleme probleminin çözüm türü bu menü aracılığı ile
seçilebilir. Tam genetik çözüm şeklini bu menüden seçerek daha önce anlatıldığı gibi
çözümün her aşamasında genetik algoritma proseslerini devreye koyarak çözüme
ulaşılabilir. İstenirse bu menüden kısmi genetik çözüm seçeneği seçilerek daha hızlı
bir çözüme kısmi genetik algoritma kullanılarak ulaşılabilir.
Çizelgeyi veri tabanına kaydet menüsü
Bu menü butonunu kullanılarak o anda aktif olan çözüm veritabanına eklenir.
Böylece birkaç farklı çözüm veri tabanına kaydedilerek daha sonra istenildiğinde
kullanılır. “Çizelgeyi veri tabanına kaydet” butonuna basıldığında ekrana gelen
menüden, “Aktif Çizelgeyi Veri Tabanına Ekle” butonuna basarak ve çizelgeye bir
isim vererek, çizelge veri tabanına eklenir. Aynı menüden eklenen herhangi bir
çizelge seçilip aktif edilerek tekrar kullanılır.
Düzenlenen çizelgeyi popülasyona ekle menüsü
Çizelge menüsü altında bulunan “Düzenlenen Çizelgeyi Popülasyona Ekle”
butonuna basarak, “Çizelge Düzenle” menüsünde elle düzenlenen çizelge
popülasyona eklenerek, genetik çözümleme işlemine dahil edilir. Böylece genetik
çözüme istenilen noktalarda elle müdahale edilir. Genetik çözüme bu şekilde
müdahale edilerek daha hızlı ve istenen çözüme daha uygun bir çözüm sağlanması
56
amaçlanmaktadır. Genetik çözüm başlatıldıktan sonra bu şekilde düzenlenen bireyler
popülasyona katılarak çözümün iyileştirilmesine yardımcı olunabilir.
4.3.3. Bilgi menüsü
Program hakkında bilgi verilen menüdür ayrıca bu menüdeki kullanım kılavuzu
butonuna ya da F1 tuşuna basarak, programa ait kullanım kılavuzuna ulaşılabilir. Bu
menüye ait ekran görüntüsü Resim 4.5. ‘te görülmektedir.
Resim 4.5. Ders çizelgeleme programı bilgi menüsü arayüzü
57
5. BENZETİM ÇALIŞMALARI VE GENETİK ALGORİTMA
PERFORMANSININ İNCELENMESİ
Yapılan çalışmada, algoritmaya ait değişik sayıda operatör kullanılmıştır. Kullanılan
çaprazlama, mutasyon ve kısmi genetik çözüm operatörleri 3. bölümde
anlatılmaktadır. Ayrıca çözümde daha üstün performans gösteren elitist bir yeniden
üreme
stratejisi
izlenmektedir.
Kullanılan
elitist
strateji
de
3.
Bölümde
anlatılmaktadır. Bu bölümde, farklı popülasyon büyüklüklerinin, farklı mutasyon
olasılıklarının ve farklı mutasyon nokta sayılarının problemin çözümüne olan etkileri
incelenmiştir. Ayrıca kısmi GA ve tam GA çözümleri için bulunan sonuçlar
kıyaslanarak, performans karşılaştırmaları yapılmıştır.
5.1. Popülasyon Büyüklüğü
Benzetim sonuçları program analizi bölümünde belirtilen kaynaklar doğrultusunda
elde edilmiştir. Bu kaynak verileri doğrultusunda programın defalarca kez
çalıştırılması sonucunda popülasyon büyüklüğüne bağlı olarak, tam genetik çözüm
için ve kısmi genetik çözüm için olmak üzere iki farklı sonuç elde edilmiştir.
Sonuçları daha sonra karşılaştırabilmek için iki çözüm yolunun da test sonuçları aynı
koşullar altında gerçekleştirilmiştir. Popülasyon büyüklüğüne bağlı olarak yapılan
denemelerde, sonraki bölümde anlatılan ve birden çok denemeler sonucunda elde
edilen veriler doğrultusunda, programın çaprazlama oranı yüzde 80, çaprazlama
nokta sayısı 2, mutasyon oranı yüzde 30, mutasyon nokta sayısı 2 olarak alınmıştır ve
belirlenen bu oranlar altında program sonuçları sırasıyla 10, 25, 50, 75 ve 100
popülasyon sayıları için elde edilmiştir. Sonuçlar her bir deneme için 10 000
jenerasyonda elde edilmiştir. Bu sonuçlar tam genetik çözüm ve kısmi genetik için
aynı koşulla altında ayrı ayrı elde edilmiştir.
58
5.1.1. Popülasyon büyüklüğüne bağlı tam genetik çözüm sonuçları
Yapılan denemeler neticesinde tam genetik çözümde elde edilen sonuçlar Çizelge 5.1
ve Şekil 5.1.‘de gösterilmiştir.
Jenerasyon sayısı :10 000
Popülasyon Büyüklüğü
Hata Değerleri
10
31762
25
40768
50
58529
75
67804
100
77851
Çizelge 5.1. Tam genetik çözüm popülasyon ile uygunluk değerlerinin değişimi
Şekil 5.1. Tam genetik çözüm popülasyon sayısı - uygunluk değer grafiği
Çizelge 5.1. ve Şekil 5.1. incelendiğinde programın en iyi çözümü tam genetik
çözüm için 10 popülasyon büyüklüğünde olduğu görülmüştür. Toplamda 10 000
jenerasyonda 10 popülasyon sayısı için uygunluk değer hata oranını 31 762 değerine
59
kadar indirebilmiştir. Program bu şekilde optimum bir sonuç elde edilinceye kadar
defalarca kez çalışılmıştır. Denemeler sonucunda en iyi değerlerin tam genetik
çözüm için 10 ile 25 popülasyon değeri arasında olduğu görülmüştür.
5.1.2. Popülasyon büyüklüğüne bağlı kısmi genetik çözüm sonuçları
Kısmi genetik çözüm için yapılan denemelerde elde edilen sonuçlar aşağıdaki çizelge
ve grafikte gösterilmiştir.
Jenerasyon sayısı :10 000
Popülasyon Büyüklüğü
10
25
50
75
Hata Değerleri
6457
5512
5615
5614
100
5606
Çizelge 5.2. Kısmi genetik çözüm popülasyon ile uygunluk değerlerinin değişimi
Şekil 5.2. Kısmi genetik çözüm popülasyon sayısı - uygunluk değer grafiği
60
Kısmi genetik sonuçları Çizelge 5.2. ve Şekil 5.2. incelendiğinde, programın en iyi
çözümü 25 popülasyon büyüklüğünde elde ettiği görülmüştür. Toplamda 10 000
jenerasyonda 25 popülasyon sayısı için uygunluk değer hata oranını 5 512 değerine
kadar küçültebilmiştir. Program bu şekilde optimum bir sonuç elde edilinceye
çalışılmıştır. Denemeler sonucunda en iyi değerlerin kısmi genetik çözüm için 25
popülasyon değerinde olduğu görülmüştür.
5.1.3. Popülasyon büyüklüğüne bağlı tam genetik çözüm ve kısmi genetik
çözüm sonuçlarının karşılaştırılması
Yapılan denemeler sonucunda tam genetik çözüm ve kısmi genetik çözüm için elde
edilen veriler karşılaştırıldığında iki çözüm içinde optimum popülasyon sayısı 25
olarak elde edilmiştir. Her iki çözüm yolu da 25 popülasyon sayısında optimum
oranda iyileştirme yapmıştır. Her iki çözüm yolu için popülasyon sayısı
karşılaştırması şekil 5.3 da görülmektedir.
Şekil 5.3. Tam ve kısmi genetik çözüm popülasyon sayısı - uygunluk değer
karşılaştırması grafiği
61
Daha öncede ifade edildiği gibi bu testler Gazi Üniversitesi Elektronik – Bilgisayar
Eğitimi Bilgisayar Sistemleri Öğretmenliği ve Elektronik Öğretmenliği bölümlerinde
kayıtlı olan birinci ve ikinci öğretim sınıfları için girilen veriler doğrultusunda
gerçekleştirilmiştir. Optimum sonuçlar elde edilene kadar her bir aşama için program
defalarca kez çalıştırılmıştır. Sonuç olarak her iki çözüm yöntemi için en iyi
popülasyon sayısı 25 olarak belirlenmiştir. Yapılan denemeler sonucunda
görülmüştür ki, her iki çözüm yolu için de popülasyon sayısındaki artış çözümü
olumsuz yönde etkilemektedir ve performans genel olarak düşmektedir. Bu olumsuz
etkilenme tam genetik çözüm için çok daha yüksektir. Kısmi genetik çözümde ise
popülasyon değeri belirli bir oranın altındayken hata oranı yüksek olmaktadır.
5.2. Mutasyon Oranı
Yapılan test denemelerinde mutasyon oranları değiştirilerek program performansı
ölçülmüştür.
Böylece
farklı
mutasyon
oranlarındaki
performans
verilerine
ulaşılmıştır. Daha sonra karşılaştırılmak üzere tam genetik çözüm ve kısmi genetik
çözüm için iki ayrı mutasyon oranı verisi elde edilmiştir.
5.2.1. Tam genetik çözüm mutasyon oranı sonuçları
Elde edilen sonuçlar Çizelge 5.3.’ te görülmektedir. Sonuçlara ait grafik Şekil 5.4.’ te
verilmiştir.
62
(Jenerasyon Sayısı : 10 000)
Mutasyon Oranları (%)
1
2
5
10
15
20
25
30
40
50
65
80
Hata Değerleri
0
58217
52376
46744
42130
43110
42884
41115
40660
41639
42071
44228
99
49297
Çizelge 5.3. Tam genetik çözüm mutasyon oranı – hata değerleri değişimi
Şekil 5.4. Tam genetik çözüm mutasyon oranı – hata değerleri grafiği
Elde edilen sonuçlar incelendiğinde, bu ders çizelgeleme probleminin çözümüne
mutasyon oranı değişiminin etkisinin şu şekilde olduğu görülmüştür. Mutasyon
63
olasılığı değeri belirli bir oranın altında olduğunda problemin optimum çözümünün
bulunmasının zorlaştığı ve hata oranlarının 10 000 jenerasyon için çok yüksek
olduğu görülmüştür. Aynı şekilde tam genetik çözüm modunda program çalışırken,
mutasyon oranlarının belirli bir oranın üzerinde olduğunda yine optimum çözümünün
bulunmasının zorlaştığı ve hata oranlarının 10 000 jenerasyon için çok yüksek
olduğu görülmüştür. Bu program için tam genetik çözüm modunda elde edilen
verilere göre problemin çözümünde optimum değer, en iyi %30 - %40 mutasyon
oranı aralığında elde edilmiştir.
5.2.2. Kısmi genetik çözüm mutasyon oranı sonuçları
(Jenerasyon Sayısı : 10 000)
Mutasyon Oranları (%)
1
2
5
10
15
20
25
30
40
50
65
80
99
Hata Değerleri
0
6387
5880
6380
5431
5594
6024
5400
5735
4320
6355
6983
6435
Çizelge 5.4. Kısmi genetik çözüm mutasyon oranı – hata değerleri değişimi
64
Şekil 5.5. Kısmi genetik çözüm mutasyon oranı – hata değerleri grafiği
Kısmi genetik çözüm için mutasyon oranlarının değişiminin optimum çözümün
bulunmasına etkisinin şu şekilde olduğu görülmüştür. Ders çizelgeleme probleminin
çözümü için defalarca yapılan testlerde mutasyon oranının optimum çözüme olan
etkisinin, tam genetik çözümde de olduğu gibi yine belirli bir oranın altında veya
üstünde olumsuz yönde olduğu görülmüştür. Mutasyon oranlarının belirli bir oranın
üzerinde veya altında olduğunda yine optimum çözümünün bulunmasının zorlaştığı
ve hata oranlarının 10 000 jenerasyon için çok yüksek olduğu görülmüştür. Yapılan
denemelerde kısmi genetik çözüm için en iyi mutasyon oranı değerinin %50
civarında olduğu gözlemlenmiştir. Çizelge 5.4.’te mutasyon oranlarının
hata
değerlerine etkisi görülmektedir. Şekil 5.5.’te bu değerlerin grafiksel görünümü
verilmiştir.
5.3. Mutasyon Nokta Sayısı
Bu çalışmada mutasyon nokta sayıları da değiştirilerek program performansına olan
etkileri ölçülmüştür. Çeşitli mutasyon nokta sayılarında uygulama bir çok kez
denenerek sonuçlar elde edilmiştir. Tam genetik çözüm ve kısmi genetik çözüm için
iki ayrı mutasyon nokta sayısı verisi elde edilmiştir.
65
5.3.1. Tam genetik çözüm mutasyon nokta sayısı
Tam genetik çözüm için, mutasyon oranındaki değişimin problemin çözümüne olan
etkisi Çizelge 5.5.’te verilmiştir. Bu veriler Şekil 5.6.’da grafik olarak gösterilmiştir.
(Jenerasyon Sayısı : 10 000)
Mutasyon Nokta Sayısı
Hata Değerleri
1
0
2
41115
3
46439
4
49405
5
51225
7
51218
9
53583
10
55827
Çizelge 5.5. Tam genetik çözüm mutasyon sayısı – hata değerleri değişimi
Şekil 5.6. Tam genetik çözüm mutasyon sayısı – hata değerleri grafiği
Elde edilen sonuçlar incelendiğinde, bu ders çizelgeleme probleminin çözümüne
mutasyon nokta sayısının değişiminin etkisinin olumsuz yönde olduğu görülmüştür.
Mutasyon olasılığı değeri belirli bir oranın üzerinde olduğunda optimum çözümünün
66
bulunmasının zorlaştığı ve hata oranlarının 10 000 jenerasyon için çok yüksek
olduğu görülmüştür. Bu program için tam genetik çözüm modunda elde edilen
verilere göre problemin çözümünde optimum hata değeri, 2 mutasyon nokta
sayısında elde edilmiştir.
5.3.2. Kısmi genetik çözüm mutasyon nokta sayısı
Tam genetik çözümde olduğu gibi kısmi genetik çözüm için de farklı mutasyon
nokta sayılarında program defalarca çalıştırılarak hata oranlarındaki değişim
gözlemlenmiştir. Elde edilen mutasyon nokta sayısı – hata değerleri Çizelge 5.6.’da
görülmektedir. Verilerin grafiksel görünümü Şekil 5.7.’de verilmiştir. Çizelge ve
grafik incelendiğinde mutasyon nokta sayıları arttıkça problemin optimum
çözümünün zorlaştığı da görülmektedir. En iyi çözüm test edilen bu çizelgeleme
problemi için 2 mutasyon nokta sayısında gerçekleşmiştir. Tam genetik çözümde
olduğu gibi kısmi genetik çözümde de mutasyon nokta sayıları arttıkça optimum
çözüme ulaşmak zorlaşmış ve hata oranlarında 10 000 jenerasyon için artış
görülmüştür.
(Jenerasyon Sayısı : 10 000)
Mutasyon Nokta Sayısı
Hata Değerleri
1
0
2
5400
3
5920
4
6862
5
6297
7
6250
9
6460
10
6270
Çizelge 5.6. Kısmi genetik çözüm mutasyon sayısı – hata değerleri değişimi
67
Şekil 5.7. Genetik çözüm mutasyon sayısı – hata değerleri grafiği
68
6. PROGRAM SONUÇLARI VE İRDELEME
Gerçekleştirilen bu çalışmada Gazi Üniversitesi Teknik Eğitim Fakültesi Elektronik
Bilgisayar Eğitimi Bölümü’ ne ait ders programı girilen veriler ve kısıtlar
doğrultusunda en uygun şekilde düzenlenmeye çalışılmıştır. Yapılan çalışma C#
programlama dilinde, MS Access veritabanı kullanılarak genetik algoritma ile
geliştirilmiş bir ana programdan ve bu program tarafından kullanılan 17 veritabanı
tablosu ile 5 adet bilgi dosyasından oluşmaktadır. Programa ait veri tabloları
dosyalarının bir bölümü Ek – 1‘de, bilgi dosyaları Ek – 2‘de ve program sonucunda
elde edilen ders programının çıktısı Ek – 3‘te sunulmaktadır. Bu veri tabloları ve
bilgi dosyaları doğrultusunda genetik algoritmanın temel prosedürleri uygulanarak
üretilen
her
ulaşılmaktadır.
bir
jenerasyonda
Programın
belirli
çalışma
uygunluk
mantığı
değerlerindeki
doğrultusunda
elitist
çözümlere
bir
yapı
izlendiğinden her bir jenerasyondaki en iyi uygunluk değerindeki (en düşük hata
değerine sahip) çözümler saklanarak yeni üretilen jenerasyonlara aktarılmakta ve bu
yeni jenerasyonlarda daha iyi çözümlere ulaşılmaktadır. Program belirli bir
jenerasyon sayısına ulaşana kadar, en iyi uygunluk değeri bulunana kadar ya da tüm
kısıtları gerçekleyene kadar çalıştırılabilir.
Problemin çözümü için test aşamasında program farklı popülasyon sayılarında farklı
mutasyon oranlarında ve farklı mutasyon nokta sayılarında defalarca test edilmiştir.
Oldukça fazla sayıda gerçekleştirilen bu testler sonucunda elde edilen veriler
doğrultusunda bu parametreler için, daha öncede belirtildiği gibi optimum değerler
elde edilmiştir. Bu değerler problem ilk çalıştırıldığında temel olarak optimuma göre
ayarlanmış olarak gelmektedir. İstenilirse geliştirilen kullanıcı dostu program
arayüzünden bu parametreler değiştirilir.
Elde edilen çözümler öncelikle, her biri sayısal değerler taşıyan genlerden oluşan,
kromozom olarak tanımlanmıştır. Bu kromozomlar daha sonra çaprazlamaya ve
mutasyona uğratılarak popülasyonda çeşitlilik sağlanmış ve bu sayede çözüm
uzayının her yerine ulaşılarak programa yüksek oranda etkinlik kazandırılmıştır. Elde
edilen her bir çözümün uygunluk (hata) değeri hesaplanarak jenerasyonların çözüm
69
kalitesi kontrol altında tutulmuştur. Jenerasyonların uygunluk değerine artırmak için
elitist bir yeniden üreme yöntemi kullanılmıştır. Böylece popülasyondaki en iyi
bireyler bir sonraki popülasyona aktarılmıştır.
Genetik algoritmanın çalışma şeklinden dolayı, genetik üreme işlemine girecek
bireyler ne kadar iyi ise, bu bireylerden elde edilecek yeni bireylerin de daha iyi olma
oranı o kadar iyi olmaktadır. Bu mantıktan yola çıkılarak genetik algoritmanın
performansını artırmak için bu çalışmada, kısmi genetik çözüm yöntemi
kullanılmıştır. Kısmi genetik çözüm sayesinde genetik algoritma işlemlerine girecek
popülasyon
bireyleri
rastgele
oluşturulmak
yerine
uygunluk
fonksiyonu
doğrultusunda oluşturulmaktadır. Böylece popülasyondaki bireylerin en iyi çözüme
olan yakınlığı artırılmış olunmakta ve genetik işleme girecek popülasyon bireyleri iyi
bireyler olarak üretildiği için program performansında artış sağlanmaktadır. Kısmi
genetik çözüm yönteminde, popülasyon bireyleri rastgele üretilmek yerine uygunluk
fonksiyonuna göre üretildiği için arama uzayı biraz daraltılmış olunur. Arama
uzayının daralması uzayın farklı noktalarındaki daha iyi çözümlere ulaşma olasılığını
ortadan kaldırsa da, kısmi genetik çözüm yöntemi ile çözüme yaklaşık on kat daha
hızlı bir şekilde ulaşıldığı görülmüştür.
Bu çalışmada genetik algoritmanın en önemli elemanlarından biri olan mutasyon
operatörünün, tekrar üreme ve çaprazlama ile dikkatli kullanıldığında algoritmanın
başarısına büyük katkı sağladığı görülmüştür. ‘Bir dizinin herhangi bir konumundaki
gen değerinin belirli değere sahip bir olasılıkla değişimini ifade eden mutasyon; yeni,
görülmemiş ve araştırılmamış çözüm elemanlarının bulunması için kullanılmaktadır.
Bu operatör algoritmanın alt optimal bir çözümü bulmasını engellemektedir ve
çalışmanın yerel bir noktada takılıp kalmamasını sağlamaktadır. Yine bu çalışmada,
bir kromozomdaki rastgele noktalar arasında gerçekleştirilen mutasyon işlemine göre
hatalı olan noktalar arasında gerçekleştirilen mutasyon işleminin, çözüme ulaşmada
performansı oldukça yüksek bir oranda artırdığı görülmüştür. Gerçekleştirilen testler
doğrultusunda bu çalışmada en iyi mutasyon olasılığı oranının %30 - %40 aralığında
olduğu görülmüştür. Bu veriler doğrultusunda mutasyon oranlarının belirli bir oranın
üzerinde veya altında olduğunda yine optimum çözümünün bulunmasının zorlaştığı
ve hata oranlarının 10 000 jenerasyon için çok yüksek olduğu görülmüştür.
70
Çalışmada, gerçekleştirilen testler ile mutasyon nokta sayısının da problemin
çözümüne olan etkileri incelenmiştir. Bu doğrultuda, farklı mutasyon nokta
sayılarında
program
defalarca
çalıştırılarak
hata
oranlarındaki
değişim
gözlemlenmiştir. Gözlemler sonucunda mutasyon nokta sayıları arttıkça problemin
optimum çözümünün zorlaştığı
da görülmektedir. En iyi çözüm test edilen bu
çizelgeleme problemi için 2 mutasyon nokta sayısında gerçekleşmiştir. Tam genetik
çözümde olduğu gibi kısmi genetik çözümde de mutasyon nokta sayıları arttıkça
optimum çözüme ulaşmak zorlaşmış ve hata oranlarında 10 000 jenerasyon için artış
görülmüştür.
Genetik algoritma uygulamalarında genelde karşılaşılan, popülasyon büyüklüğü
arttıkça elde edilen çözümlerin performansının da artmasıdır. Ancak bu tezde ele
alınan problem için durum farklı olmuştur. Problemde tam genetik çözüm için
popülasyon sayısı arttıkça optimum çözümün bulunmasının zorlaştığı yani hata
değerlerinin arttığı görülmüştür. Denemeler sonucunda en iyi değerlerin tam genetik
çözüm için 10 ile 25 popülasyon değeri arasında olduğu görülmüştür. Kısmi genetik
çözümde ise yine tam genetik çözümde olduğu gibi popülasyon değerleri belirli bir
değerin üzerinde artırıldığında çözümün bulunmasının zorlaştığı ve hata değerlerinin
arttığı gözlemlenmiştir. Kısmi çözümde buna ek olarak hata oranlarının belirli bir
popülasyon değerinin altına inildiğinde de arttığı görülmüştür. Denemeler sonucunda
en iyi çözüm değerleri kısmi genetik çözüm için 25 popülasyon değerinde elde
edilmiştir.
71
7. SONUÇ
Bu tezde çözülmesi zor (NP-hard) bir optimizasyon problemi olan ders çizelgeleme
problemi, bir yapay zeka algoritması olan genetik algoritma ile çözülmeye
çalışılmıştır. Bu tip problemler belirli kısıtlar doğrultusunda önceden belirlenmiş
olan kaynakların yine önceden belirlenmiş konumlara en uygun şekilde
yerleştirilmesini gerektiren problemler olduğu için çözümü zor olan (NP-hard)
optimizasyon problemi olarak adlandırılmaktadır. Bu tip çözümü zor problemlerde
tam algoritmalarla çözüme ulaşması oldukça zor olduğundan, optimuma yakın
çözümü veren sezgisel algoritmalara ihtiyaç duyulur. Temelini biyolojik evrim
mekanizmasından alan genetik algoritmalar sezgisel nitelik taşıdıkları için bu tür
çözümü zor problemlerde iyi bir çözüme ulaşmada çok uygundurlar. Özellikle ders
çizelgeleme problemlerinde olduğu gibi çok miktarda bölgesel en iyi noktası
bulanan, doğrusal olmayan ve alışılmış algoritmalarla çözülemeyen problemlerin
çözümünde iyi bir performans göstermektedirler.
Gerçekleştirilen bu çalışma ile başta üniversiteler olmak üzere tüm okulların ders
çizelgeleme problemlerine çözüm getirilmek için bir yazılım geliştirilmiştir.
Geliştirilen yazılımda genetik algoritma tekniği kullanılmıştır. Tam ve kısmi genetik
çözüm olmak üzere iki farklı genetik çözüm yönteminin, farklı popülasyon sayıları,
farklı çaprazlama oranları ve farklı mutasyon oranları altındaki performansları
incelenerek karşılaştırılmıştır. Elde edilen veriler doğrultusunda, geliştirilen
yazılımın en iyi performans gösterdiği genetik çözüm yöntemi, popülasyon sayısı,
mutasyon oranı ve çaprazlama oranı belirlenmiştir.
Bu tezde ele alınan uygulama yine genetik algoritma ile ancak çok daha az kapsamlı
olarak daha önce gerçekleştirilmeye çalışılmıştır. Ancak daha önce geliştirilen ders
çizelgeleme programları bu kadar esnek bir yapıya sahip olamamıştır. Daha önceki
çalışmalarda sınırlı olmak üzere başarılı sonuçlar alınmasına rağmen bu tez çalışması
ile esneklik, etkinlik, elde edilen sonuçlar ve bu sonuçlara ulaşmak için harcanan
zaman kısalığı bakımından oldukça yüksek bir performans elde edilmiştir. Beşinci
bölümde de kapsamlı olarak açıklandığı gibi, geliştirilen bu program sayesinde
kaynak kısıtlarına göre yerleştirilecek, aktivitelerin derslik ve zaman gibi
72
parametrelerine büyük oranda esneklik kazandırılmıştır. Her öğretim elemanına
istediği dersini programın elverdiği koşullar düzeyinde istediği gün ve saatte istediği
derslikte
yapabilme
esnekliği
kazandırılmıştır.
Yine
çizelgeleme
işlemi
gerçekleştikten sonra ya da devam ederken istenirse el yordamıyla programa
müdahale edilip aktivitelerin konumları değiştirilebilmektedir. Bu şekilde programa
daha fazla esneklik kazandırılması hedeflenmiştir.
Gazi Üniversitesi Teknik Eğitim Fakültesi için geliştirilen bu program, istenirse
sadece giriş verilerinde değişiklik yapılarak diğer fakülte ve üniversiteler için de
rahatlıkla kullanılacak şekilde geliştirilmiştir. Geliştirilen yazılımın kullanıcı dostu
arayüzü sayesinde bir çok kısıt eklenebilmektedir. Programa girilen verilerin fazlalığı
ve bu verilerden istenilen kısıt sayısının fazlalığına göre program performansı
düşmektedir ve optimum çözüme ulaşması zorlaşabilmektedir. Buna rağmen oldukça
yüksek hızda optimum çözümler elde edilmektedir. Elde edilen çizelgeleme
çözümleri istenilirse daha sonra kullanılmak üzere kaydedilebilmekte ya da üzerinde
el yordamıyla değişiklik yapılabilmektedir.
Sonraki çalışmalarda, geliştirilen bu yazılıma daha fazla kısıt eklenerek farklı
durumlara uyum sağlaması ve daha fazla esneklik kazanması sağlanabilir.
73
KAYNAKÇA
1.
Bağış, A. , (1996) “Genetik Algoritma Kullanılarak Ders Programının Optimum
Şekilde Düzenlenmesi”, Kayseri.
2.
Paksoy, S. , (2007), “Genetik Algoritma ile Proje Çizelgeleme”, Adana.
3.
Hartmann, S. ve Rainer, K., (2000),“Experimental Evaluation of State-of-Art
Heuristics forthe Resource Constrained Project Scheduling Problem”,
European Journal of Operational Research,127, ss.394-407.
4.
Schmidt, G., ve Strohlein, T., 1979. Time table construction-an annotated
bibliography, The Computer Journal, 23(4):307-316
5.
Bolat, B., Erol, K.O. ve İmrak, C.E., (2004), “Mühendislik Uygulamalarında
Genetik Algoritma ve Operatörlerin İşlevleri”, Mühendislik ve Fen Bilimleri
Dergisi, Sigma 2004/4, ss.264-271.
6.
Emel, G. G., Taşkın, Ç. , “Genetik Algoritmalar ve Uygulama Alanları”, Uludağ
Üniversitesi İktisadi ve İdari Bilimler Fakültesi Dergisi Cilt XXI, Sayı 1, 2002,
s.129-152
7.
Cheng, R. ve Mitsuo, G., “Evolution program for resource constrained project
scheduling problem”, Evolutionary Computation, IEEE World Congress on
Computational Intelligence, Proceedings of the First IEEE Conference ,27-29
June 1994, Vol.2, ss.736 – 741.
8.
Ikeuchi, T., Ikkai, Y., Araki, D., Ohkawa, T. ve Komoda, N. (1998), “Project
scheduling using a genetic algorithm with adaptable changing genetic
operators”, Electrial Engieering in Japan, Vol. 124, No.2, ss.36-42.
9.
Mori, M. ve Tseng, C.C., (1997), “A Genetic Algorithm for Multi-Mode
Resource Constrained Project Scheduling Problem”, European Journal of
Operational Research, Volume 100, No. 1, 1 July, ss.134-141.
10. Mitchell, M. ve Taylor, C.E. (1999), “Evolutionary computations:
overview”, Annual Review of Ecology ad Systematics, 30: ss.593-616.
an
11. Cunkaş, M. , “Genetik Algoritmalar ve Uygulamaları”,Selçuk Üniversitesi
Teknik Eğitim Fakültesi Elektronik-Bilgisayar Eğitimi.
12. Goldberg, D., E., 1989, Genetic Algorithms in Search Optimization And
Machine Learning, Addison Wesley Publishing Company U.S.A.
13. Yeniay, Ö. , (2001), “An Overview of Genetic Algorithms”, Anadolu
Üniversitesi Bilim ve Teknoloji Dergisi, Cilt: 2, Sayı: 1, s. 37-49.
74
14. Chen, M. ve Zalzala, Ali M. S., (1997), “A Genetic Approach to Motion
Planning of Redundant Mobile Manipulator Systems Considering Safety
and Configuration”, Journal of Robotic Systems, 14(7), ss.529-544.
15. Chan, F.T.S., Chung, S.H ve Wadhwa, S. (2005), “A Hybrid Genetic
Algorithm for Production and Distribution”, The International Journal of
Management Sciense, Omega 33, ss.345-555.
16. Ceran, G. , (2006), “Esnek Akış Tipi Çizelgeleme Problemlerinin Veri
Madenciliği Ve Genetik Algoritma Kullanılarak Çözülmesi”, Konya.
17. Yeo, M. F. ve Agyei, E. O. (1998), “Optimising engineering problems using
genetic algorithms”, Engineering Computations, Vol.15, No.2, ss.268-280.
18. Jang, J. S. R. (1997), Neuro-Fuzzy and Soft Computing: A Computational
Approach To Learning and Machine Intelligence, Chapter 7: DerivativeFree Optimization, Prentice-Hall, USA, s. 173-196.
19. Holland, J. H., (1992), “Adaption in Natural and Artificial Systems (2nd
Edition)”, MIT Press, Massachusetts.
20. Mansfield, R. A.,(1990), “Genetic Algorithms. MSc Thesis. University of
Wales”, Collage of Cardiff.
21. Şen, Z. (2004), Genetik Algoritmalar ve En İyileme Yöntemleri, İstanbul:
Su Vakfı.
22. Murata, T., Ishibuchi, H., Tanaka, H., 1996b, Multi-Objective Genetic
Algorithms and Its Applications to Flow Shop Scheduling. Computers
and Industrial Engineering, vol 30, No 4, pp 957–968.
23. Davis, L., (1991), “Handbook of Algorithms.“, Van Nostrand Reinhold. New
York.
24. Davis, L.,(1985) “Job Shop Scheduling with Genetic Algorithms in 33.
GREFENSTETTE, (ed) Procedings of the 1st International Conference on
Genetic Algorithms and their Applications. June 24-26 1985 at CarneigeMellon University, Pittsburgh Lawrence Eribaum Assoc, Publishers.
25. Mitchell, M., (1999), An Introduction
Massachusetts Institute of Technology.
to
Genetic
Algorithms,
USA:
75
EKLER
76
EK – 1. Programa ait veri tabanı dosyaları
Veritabanı Öğretmen Kayıt Tablosu
77
EK – 1 (Devamı). Programa ait veri tabanı dosyaları
Veritabanı Ders Kayıt Tablosu
Veritabanı Gün – Saat Kayıt Tablosu
78
EK – 1 (Devamı). Programa ait veri tabanı dosyaları
Veritabanı Derslik Kayıt Tablosu
79
EK – 1 (Devamı). Programa ait veri tabanı dosyaları
Veritabanı Şube (Sınıf) Kayıt Tablosu
80
EK – 1 (Devamı). Programa ait veri tabanı dosyaları
Veritabanı Genler Tablosu
81
EK – 1 (Devamı). Programa ait veri tabanı dosyaları
Veritabanı Derslik Kısıt Tablosu
82
EK – 1 (Devamı). Programa ait veri tabanı dosyaları
Veritabanı Laboratuvar Kısıt Tablosu
Veritabanı Bölüm Adları Kayıt Tablosu
83
EK – 1 (Devamı). Programa ait veri tabanı dosyaları
Veritabanı Aktivite Kayıt Tablosu
Veritabanı Genel Bilgi Kayıt Tablosu
Veritabanı Oluşturulan Çizelgeler Kayıt Tablosu
84
EK – 2. Programa ait sistem dosyaları
Çizelgeleme Çizim.hm Sistem Dosyası
Çizelgeleme Çizelge_kisit.hm Sistem Dosyası
85
EK – 2(Devamı). Programa ait sistem dosyaları
Çizelgeleme Bölümler_arasi_derslik_kisit.hm Sistem Dosyası
86
EK – 3. Programa ait çıktı dosyaları
Çizelgeleme Programı İle Oluşturulan Devre Analizi Laboratuvarı Haftalık
Ders Programı EXCEL Dosyası
87
EK – 3 (Devamı). Programa ait çıktı dosyaları
Çizelgeleme Programı İle Oluşturulan Öğretim Elemanına Ait Haftalık Ders
Programı PDF Dosyası
88
EK – 3 (Devamı). Programa ait çıktı dosyaları
Çizelgeleme Programı İle Oluşturulan Bilgisayar Bölümüne Ait Haftalık
(Çarşaf) Ders Programı EXCEL Dosyası
89
ÖZGEÇMİŞ
Kişisel Bilgiler
Soyadı ,Adı
: YAPICI , Muhammed Mutlu
Uyruğu
: TC
Doğum Yeri ve Yeri
: 15/10/1985 Gölbaşı
Medeni Hali
: Bekȃr
E-Posta
: altinoran1.618@hotmail.com
Eğitim
Derce
Eğitim Birimi
Lisans
: Gazi Üniversitesi / Elkt. Bilg. Eğt. Böl.
2010
Lise
: Balgat End. Mes. Lisesi
2006
Yabancı Dil
İngilizce
Mezuniyet Tarihi
Download