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