GENETĠK ALGORĠTMALAR ĠLE HAFTALIK DERS PROGRAMININ HAZIRLANMASI



Benzer belgeler
YZM 5257 YAPAY ZEKA VE UZMAN SİSTEMLER DERS#6: GENETİK ALGORİTMALAR

GENETİK ALGORİTMALAR. Araş. Gör. Nesibe YALÇIN BİLECİK ÜNİVERSİTESİ

Zeki Optimizasyon Teknikleri

GENETİK ALGORİTMA ÖZNUR CENGİZ HİLAL KOCA

GENETİK ALGORİTMALAR BÜŞRA GÜRACAR

Gezgin Satıcı Probleminin İkili Kodlanmış Genetik Algoritmalarla Çözümünde Yeni Bir Yaklaşım. Mehmet Ali Aytekin Tahir Emre Kalaycı

METASEZGİSEL YÖNTEMLER. Genetik Algoritmalar

Fonksiyon Optimizasyonunda Genetik Algoritmalar

Google Maps ve Genetik Algoritmalarla GSP Çözümü İçin Öneri

Serdar BİROĞUL YÜKSEK LİSANS TEZİ (ELEKTRİK EĞİTİMİ) GAZİ ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ ANKARA

Genetik Algoritmalar (GA) Genetik Algoritmalar Đçerik Nesin Matematik Köyü E rim Ç lı l ş ı ta t yı Nisan, 2012 Mustafa Suphi Erden

GENETİK ALGORİTMALARA GİRİŞ (V)

GENETİK ALGORİTMALARA GİRİŞ (III)

EMM4131 Popülasyon Temelli Algoritmalar (Population-based Algorithms)

Genetik Algoritmalar. Bölüm 1. Optimizasyon. Yrd. Doç. Dr. Adem Tuncer E-posta:

EMM4131 Popülasyon Temelli Algoritmalar (Population-based Algorithms) Genetik Algoritma

Ev Tipi Yenilenebilir Hibrit Sistem İçin Mikro-Genetik Algoritma ile Optimal Yük Planlaması

İLERİ ALGORİTMA ANALİZİ GENETİK ALGORİTMA

GENETİK ALGORİTMALARA GİRİŞ (II) BİNARİ KODLANMIŞ GA

PARALEL MAKĠNALARIN GENETĠK ALGORĠTMA ĠLE ÇĠZELGELENMESĠNDE MUTASYON ORANININ ETKĠNLĠĞĠ

GridAE: Yapay Evrim Uygulamaları için Grid Tabanlı bir Altyapı

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

THE EFFECT OF PRODUCT NUMBER ON SOLVING THE JOP-SHOP SCHEDULING PROBLEM BY USING GENETIC ALGORITHM

DOĞRUSAL OLMAYAN REGRESYON ANALİZİNDE GERÇEK DEĞER KODLAMALI GENETİK ALGORİTMA

Bilgisayar Programı Nedir?

9. ULUSAL ÜRETĠM ARAġTIRMALARI SEMPOZYUMU Ekim 2009 ÜAS 2009 BĠLDĠRĠLER KĠTABI. Editörler: Prof.Dr. Nihat YÜZÜGÜLLÜ Yrd.Doç.Dr.

GEZGİN SATICI PROBLEMİ İÇİN BİR MEMETİK ALGORİTMA ÖNERİSİ

DNA VE GENETİK KOD KAZANIM KONTROL SINAVI

Algoritma ve Programlamaya Giriş

FORMÜLLER VE FONKSİYONLAR

AYRIK YAPILAR ARŞ. GÖR. SONGÜL KARAKUŞ- FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ BÖLÜMÜ, ELAZIĞ

10. Sınıf II. Dönem Biyoloji Dersi 1. Yazılı Sınavı

MAHMUT ASLAN - FEN BİLİMLERİ ÖĞRETMENİ

ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Hardy Weinberg Kanunu

GENETİK ALGORİTMALARA GİRİŞ (II) BİNARİ KODLANMIŞ GA

Hülya Özdağ (YTÜ Matematik Bölümü Ö.Ü.) Nilgün Aygör (YTÜ Matematik Bölümü Ö.Ü.) Aykut Parlak (YTÜ Matematik Mühendisliği)

TABAKALI RASTGELE ÖRNEKLEMEDE ÖRNEKLEM BÜYÜKLÜKLERİNİN GENETİK ALGORİTMA İLE BELİRLENMESİ

3) Aşağıda verilen ifadelerden hangisi mayoz bölünmenin sebep olduğu faydalardan değildir?

Web Madenciliği (Web Mining)

Yıldız Teknik Üniversitesi Fen Bilimleri Enstitüsü Bilgisayar Mühendisliği Bölümü. Şekil Tanıma Final Projesi. Selçuk BAŞAK

Ana ekran: EKDERS2000, Eskişehir Osmangazi Üniversitesi. Mühendislik Mimarlık Fakültesi Fen Edebiyat Fakültesi Fen Bilimleri Enstitüsü

IENG 227 Modern Üretim Yaklaşımları

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Simpleks Yönteminde Kullanılan İlave Değişkenler (Eşitliğin yönüne göre):

ALAN YOK / ALAN SEÇMELİ SINIF SİSTEMİ TASDİKNAME GİRİŞİ Açık Öğretim Lisesi

MATEMATİK MÜHENDİSLİĞİ BÖLÜMÜ

Gezgin Satıcı Probleminin Karınca Kolonisi ve Genetik Algoritmalarla Eniyilemesi ve Karşılaştırılması

Temel ve Uygulamalı Araştırmalar için Araştırma Süreci

SIMÜLASYON DERS SORUMLUSU: DOÇ.DR. SAADETTIN ERHAN KESEN. Ders No:2 Simülasyon Örnekleri

ERCİYES ÜNİVERSİTESİ KİMYA ANABİLİM DALI

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Mekatronik Mühendisliği Uygulamalarında Yapay Zekâ. Ders 1- Yapay Zekâya Giriş. Erhan AKDOĞAN, Ph.D.

Dosyalarda Farklı Yaklaşımlar. Kütük Organizasyonu 1

ÜÇ BOYUTLU KARAYOLU GÜZÂRGAH OPTİMİZASYONUNDA KARAR DESTEK SİSTEMİ OLARAK GENETİK ALGORİTMALARIN KULLANIMI

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

Genetik Algoritma ile Elde Edilen Uyumlu Renklerin Web Şablonları Üzerinde Gerçeklenmesi

Biyoloji, İleri Biyoloji derslerinde; Talim ve Terbiye Kurulunun tarih ve 12 sayılı

ÖZEL EGE LĠSESĠ. ġeklġndekġ ĠFADELERĠN. SADELEġTĠRĠLEMEZ VEYA SADELEġTĠRĠLEBĠLĠR OLMASI ĠÇĠN GEREKEN KOġULLAR

BİLGİSAYAR PROGRAMLAMA MATLAB

30 m 2 30 m m 2. Koridor. 42 m 2 42 m m 2

Dosya Saklama Ortamları (Devam) Kütük Organizasyonu 1

DOSYA ORGANİZASYONU. Çarpışma çözümleme yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

Zeki Optimizasyon Teknikleri

.. LİSESİ /.. ÖĞRETİM YILI SINIFI BİLGİSAYARDA OFİS PROGRAMLARI DERSİ 1.DÖNEM 2. SINAV SORULARIDIR Adı ve Soyadı: Sınıf ve No : 10 MUH.

AKBİM-KOÇ AKPRO DERS DAĞILIM PROGRAMI

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

TrizSOFT. S.P.A.C Altı Sigma Danışmanlık

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Projenin Adı: İstatistik yardımıyla YGS ye hazırlık için soru çözme planlaması

TEOG1 DENEME SINAVI 1 ( DNA, Mitoz, Mayoz Kapsamlı)

3. Bölüm Algoritmalar

GÜNEŞ ENERJİSİ VE RÜZGÂR ENERJİSİ DÂHİL OLAN HİBRİT GÜÇ SİSTEMİNDE FARKLI ALGORİTMALAR İLE EKONOMİK YÜK DAĞITIMININ İNCELENMESİ

AST416 Astronomide Sayısal Çözümleme - II. 6. Monte Carlo

CBS ve Coğrafi Hesaplama

XII. ÜRETİM ARAŞTIRMALARI SEMPOZYUMU

ADIM ADIM YGS LYS Adım EKOLOJİ 15 POPÜLASYON GENETİĞİ

Aşağıda mitoz bölünme safhaları karışık olarak verilmiştir.

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

ULAŞTIRMA MODELİ VE ÇEŞİTLİ ULAŞTIRMA MODELLERİ

Genetik Algoritmalar. Prof.Dr.Adem KALINLI

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

DESTEK DOKÜMANI. Tablolu Malzeme Sınıfları

Yerel Arama Teknikleri ve Optimizasyon (Local Search and Optimisation)

Gevşek Hesaplama (COMPE 474) Ders Detayları

Yöneylem Araştırması I (IE 222) Ders Detayları

AMUSE A MUSICAL EXPERT

FEN VE TEKNOLOJİ FİZİK KİMYA - BİYOLOJİ BİLİM DANIŞMANLIĞI ÇALIŞTAYI

Akıllı Mekatronik Sistemler (MECE 404) Ders Detayları

Bu ekrana Kullanıcı adı ve şifre ile giriş yapıldığında ekranda giriş yapabilmeniz için yetki almanız

Arama metodlarında temel işlem anahtarları karşılaştırmaktır.

Programlama Dilleri 1. Ders 3: Rastgele sayı üretimi ve uygulamaları

GENETĐK ALGORĐTMA VE UYGULAMA ALANLARI

T.C. MİLLÎ EĞİTİM BAKANLIĞI ÖLÇME, DEĞERLENDİRME VE SINAV HİZMETLERİ GENEL MÜDÜRLÜĞÜ SINIF DEĞERLENDİRME SINAVI - 1

B unl a r ı B i l i yor mus unuz? MİTOZ. Canlının en küçük yapı biriminin hücre olduğunu 6. sınıfta öğrenmiştik. Hücreler; hücre zarı,

Proje Yönetimi Uygulamaları Görev Tanımlama

ÖZEL EGE İLKÖĞRETİM OKULU

KARLISU SOSYAL BİLİMLER LİSESİ OKUL REHBERLİK VE PSİKOLOJİK DANIŞMA SERVİSİ

a2 b3 cij: birim başına ulaşım maliyeti xij: taşıma miktarı

GENETİK ALGORİTMA İLE RÜZGAR TÜRBİNİ KANAT SAYISI SEÇİMİ

Transkript:

ÖZEL EGE LĠSESĠ GENETĠK ALGORĠTMALAR ĠLE HAFTALIK DERS PROGRAMININ HAZIRLANMASI HAZIRLAYAN ÖĞRENCĠLER: Berkin ĠNAN Doğa YÜKSEL DANIġMAN ÖĞRETMEN: Aslı ÇAKIR ĠZMĠR 2014

ĠÇĠNDEKĠLER 1. PROJENĠN AMACI. 3 2. GĠRĠġ.... 3 3. YÖNTEM.. 6 4. SONUÇ.......... 12 5. TARTIġMA... 12 KAYNAKLAR..... 13 2

1. PROJENĠN AMACI Haftalık ders programı oluşturma, çizelgeleme (timetabling) problemlerinden biridir. Bu projede, bir liseye ait haftalık ders programlarının, genetik algoritmalar aracılığıyla otomatik olarak hazırlanması amaçlanmıştır. 2. GĠRĠġ Bu bölümde, projede geliştirilen yöntemde kullanılan genetik algoritmalar ve özellikleri anlatılmaktadır. Genetik Algoritmalar Genetik algoritma, doğadan ilham alınarak yapılmış bir en iyiyi bulma yöntemidir. Doğada en güçlünün yaşaması kanunu burada da geçerlidir. Uygun bireyler yaşar, kötü bireylerin soyu tükenir. En uygun bireyi bulurken kullandığı yöntem evrimdeki aşamalara benzetilebilir. Bu aşamalar sırasıyla populasyonun üretilmesi, çaprazlama(cross-over), mutasyon ve değerlendirmedir. İlk populasyon üretildikten sonraki populasyonlarda elitizm, yani oluşan bireylerin en uygunlarının yeni populasyona aktarılması, devreye girer [1]. Bir bireyin uygunluğu populasyondaki yeri ile belli olur ve bu bireylerin çoğalması için onlara daha çok şans tanınır. Genetik algoritma ilk kez John Holland tarafından ortaya atılmıştır. Genetik algoritma matematik, fizik, mühendislik ve daha birçok alanda kullanılır. Genetik algoritmaların temel akış şeması Şekil 1 de görülmektedir. Başla Başlangıç popülasyonunun oluşturulması Dur Popülasyonu değerlendir E Elitizm Çaprazlama Mutasyon Popülasyonu değerlendir Uygun sonuca ulaşıldı mı? H Şekil 1 Genetik Algoritma 3 Akış Şeması

2.1 Kromozom Kodlama Teknikleri Genetik algoritmada kromozom, çözümlerdir. Her kromozomun içeriği çözüm ile ilgili bilgiler içerir. Sonuca ulaşmak için ise bu kromozomlar üstünde çaprazlama, mutasyon gibi işlemler yapılır. Kromozomları genel olarak üç farklı şekilde kodlanmaktadır [2][3][4]. Ġkili Kodlama: İkili (binary) kodlama en yaygın kromozom temsillerindendir. Bir özelliğin olma durumu 1, olmama durumu 0 ile gösterilir. Örnek: Kromozom 1 01101101010110 Kromozom 2 11001010101001 Permütasyon Kodlama: Gezgin satıcı problemi ve çizelgeleme gibi çözüm içerisinde sıralamanın olduğu problemlerde kullanılır. Örnek: Kromozom 1 1 9 8 3 4 6 5 2 7 Kromozom 2 6 4 8 2 7 3 1 9 5 oluşur. Değer Kodlama : Değer kodlamada kromozom çözüm hakkındaki değerlerden Kromozom 1 Kromozom 2 (DUR), (İLERLE), (DUR), (ZIPLA) (ZIPLA), (DUR), (DUR), (ZIPLA) 2.2 Çaprazlama Çaprazlama, iki ebeveynden yavru bireylerin oluşturulma işlemidir. Populasyondaki bireyler çaprazlama işlemine tabi tutularak yeni nesil elde edilir. Çaprazlama işlemiyle yeni nesil oluşturulmadan önce, populasyondaki uygunluk değeri yüksek olan bireylerden bir kısmı doğrudan yeni nesile aktarılır. Bu işlem elitizm olarak adlandırılır ve elitizm işlemiyle bir önceki nesilde elde edilen kazanım korunmuş olur. 4

Çaprazlama işleminde kullanılan ebeveynlerin uygunluk değerleri, çaprazlama sonucunda oluşacak olan bireylerin uygunluğunu etkilemektedir. Çaprazlama işleminde ebeveyn seçimi için farklı yaklaşımlar literatürde yer almaktadır: Rulet Tekerleği: Rulet tekerleği seçiminde tüm bireyler uygunluk değerlerine göre bir rulet tekerleğine yerleştirilir. Böylece uygunluk değeri yüksek olan bireylerin çaprazlama işleminde kullanılma olasılıkları diğer bireylere göre daha fazla olur. Turnuva Yöntemi: Turnuva yönteminde populasyondan rastgele seçilen bireyler arasında uygunluk değerine göre turnuva yapılır. Bu bireyler arasından en iyi olanı çaprazlama için seçilir. Çaprazlama işlemi için de farklı teknikler yer almaktadır: Tek Noktalı Çaprazlama Tek noktalı çaprazlamada ebeveynlerdeki kromozomlar rastgele seçilen bir noktadan iki parçaya bölünür. Farklı ebeveynlerden gelen bölünmüş parçalar birleştirilerek yeni bireyler oluşturulur. Örnek: Ebeveyn 1 0 1 1 1 0 1 1 1 0 1 Ebeveyn 2 1 1 0 1 0 0 0 1 0 1 Çocuk 1 0 1 1 1 0 1 0 1 0 1 Çocuk 2 1 1 0 1 0 0 1 1 0 1 Çok Noktalı Çaprazlama Çok noktalı çaprazlamada ebeveynlerdeki kromozomlar rastgele seçilen noktalardan alt parçalara bölünür. Farklı ebeveynlerden gelen bölünmüş parçalar birleştirilerek yeni bireyler oluşturulur. Örnek: Kromozom 1 0 1 1 1 0 1 1 1 0 1 Kromozom 2 1 1 0 1 0 0 0 1 0 1 5

Çocuk 1 0 1 1 1 0 0 1 1 0 1 Çocuk 2 1 1 0 1 0 1 0 1 0 1 2.3 Mutasyon Mutasyon, çaprazlama sonucunda elde edilen bireyler üzerinde rastgele bir genin değiştirilmesi işlemidir. Mutasyon işlemi ile genetik çeşitlilik sağlanmaktadır. Tersine çevirme, sıra değiştirme, değer ekleme/çıkarma gibi işlemler mutasyon operatörleri olarak kullanılmaktadır. Örnek: Birey 01101110101 Mutasyonlu Birey 01101010101 3. YÖNTEM Bu bölümde, genetik algoritma kullanılarak haftalık ders programı hazırlayan yöntem anlatılmaktadır. Yöntemde kullanılan genetik algoritma yapıları bir önceki bölümde yer almaktadır. Kromozom Temsili Projede, bireyler (çözümler) her bir hoca için, o hocanın bir haftada gireceği dersleri gösteren haftalık ders listeleri olarak temsil edilmektedir. Haftalık ders programı her hoca için haftalık ders sayısı kadar hücresi olan bir ders tablosudur. Popülasyondaki her birey, Java programlama dilindeki [5] Map yapılarıyla kodlanmıştır. Bu map yapıları ders verecek olan hocalarla bu hocalara ait haftalık ders listelerini eşleştirmektedir. Örnek olarak Özel Ege Lisesi nin haftalık ders sayısı 40 tır. Şekil 2 de görüldüğü üzere her bir hoca, 1 den 40 a kadar numaralandırılmış bir listeye sahiptir. Bu listenin her bir hücresinde hocanın o saatte girmesi gereken dersin adı bulunmaktadır. Ders adları sınıfları birbirinden ayırt edecek şekilde tanımlanmıştır. Örneğin, MAT_11A 11-A sınıfının matematik dersini, MAT_10B ise 10-B sınıfının matematik dersini göstermektedir. Şekil 3 te, popülasyonda yer alan bir bireydeki iki hocaya ait ders listesi yer almaktadır. 6

Hocalar Hoca 1 Hoca 2 Hoca 3 Hocaya Ait Ders Listesi Hoca 1 için ders listesi Hoca 2 için ders listesi Hoca 3 için ders listesi MAT_11A MAT_11A Şekil 2 Map yapısını gösteren şema Ruşen Sönmez MAT_10A MAT_10B MAT_11A MAT_11A MAT_10B MAT_10B MAT_10A MAT_10A BİY_10A BİY_10A BİY_10B BİY_10B Mesut Esen BİY_10D BİY_10D BİY_10C BİY_11A BİY_11A BİY_11A BİY_10C Şekil 3 Örnek bir birey. BaĢlangıç Populasyonunun OluĢturulması Başlangıç populasyonunun oluşturulması, hocalara atanan derslerin rastgele bir şekilde haftalık ders listesi üzerinde yerleştirilmesi işlemidir. Bu işlemde ilk olarak, daha önceden hazırlanmış olan ve içerisinde hocalara ait dersler ve ders saatlerini içeren dosya okunur. Dosya okunmasıyla elde edilen ders ve ders saatleri bilgileri daha sonra rastgele atama yapılırken ulaşılacaktır. Rastgele atama için ilk adım bir hocadan başlayarak onun bir dersini seçip rastgele bir sayı üretmektir. Bu sayı o hocanın listesinde kaçıncı ders saatinde seçilen dersin yerleştireceğini belirler. Aynı ders saatine tekrar ders yazılmayacak şekilde seçilen dersin haftalık ders sayısı kadar bu tekrar edilir. Daha sonra varsa aynı hocanın diğer 7

dersleri için de hocanın programındaki bir ders saatinin üzerine tekrar ders yazılmayacak şekilde bu işlem yapılır. Bu şekilde tüm hocalar için hoca sayısı kadar ders listesi oluşturulmuş olur. Her adımda bu listeyle hoca eşlenerek Map yapısına eklenir. Bu şekilde bir birey oluşturulur. Bu popülasyonun her bir bireyi için tekrarlanır. Bu yüzden kalabalık popülasyonlar üzerinde algoritmanın yavaşladığı görülür. Şekil 4 te 2 bireyden oluşan örnek bir popülasyon gösterimi yer almaktadır. Gösterimde renkli olarak belirlenen yerlerde hocalara ait dersler yer almaktadır. Ruşen Sönmez Mesut Esen Ruşen Sönmez 8

Mesut Esen Şekil 4 2 bireyden oluşan bir popülasyon Çaprazlama Projede geliştirilen yöntemde çaprazlama işlemi bir önceki bölümde anlatılan tek noktalı çaprazlama kullanılmaktadır. Çaprazlama işleminde, birinci ebeveynde yer alan ilk (K/2) hocanın ders listeleri birinci çocuğa, son (K/2) hocanın ders listeleri ise ikinci çocuğa kopyalanır. Daha sonra ikinci ebeveyndeki ilk (K/2) hocanın ders listeleri ikinci çocuğa, son (K/2) ders listeleri ise ilk çocuğa kopyalanır. Şekil 5.1 ve Şekil 5.2 de sırasıyla, Şekil 4 te gösterilen 2 bireyin çaprazlanması sonucu elde edilen bireyler yer almaktadır. 1. bireyin 1. hocası Ruşen Sönmez Mesut Esen 2. bireyin 2. hocası Şekil 5.1 9

2. bireyin 1. hocası Ruşen Sönmez Mesut Esen 2. bireyin 1. hocası Şekil 5.2 Şekil 4 te verilen bireylerden oluşan iki yavru birey Yeni nesile aktarılacak olan bireylerin bir kısmı bu çaprazlama yöntemiyle oluşturulurken bir kısmı da elitizm yöntemiyle elde edilmektedir. Elitizm yönteminde, uygunluk değeri yüksek olan bireyler doğrudan bir sonraki nesile aktarılmaktadır. Mutasyon Projede geliştirilen yöntemde mutasyon işlemi için bir önceki bölümde anlatılan sıra değiştirme yöntemi kullanılmaktadır. Mutasyon işleminde, birey içerisinden rastgele seçilen bir hocaya ait ders listesinden rastgele seçilen iki günün yerleri değiştirilmektedir. Birey üzerinde mutasyon işleminin uygulanması kararı daha önceden belirlenen bir olasılığa göre verilmektedir. Şekil 6.1 ve Şekil 6.2 de yer alan örnekte sırasıyla bir bireyin mutasyona uğramadan önce ve uğradıktan sonraki durumları gösterilmektedir. Hca Mesut Esen olsun. Örnekte, mutasyon olasılığına göre seçilen bireyde, rastgele seçilen bir hocanın ve günlerinin mutasyona uğraması yapılmaktadır. 10

Mesut Esen Şekil 6.1 Mutasyona uğratılacak bireyde hangi günlerin değişeceği gösterilmiştir Mesut Esen Şekil 6.2 Mutasyon sonucu oluşan birey Değerlendirme Yaratılan ve birçok şekilde değişikliğe uğrayan bu bireylerin yapılan uygulama için uygun olup olmadığını test etmek gerekir. Bizim ders programı problemimizde istenen şey aynı sınıfa birden fazla hocanın aynı anda ders vermemesidir. Bu yüzden yapılan değerlendirme fonksiyonu her bireydeki aynı anda aynı sınıfa giren hoca çakışmalarını hesaplar. Bu çakışmalar için her bireye ceza puanı verilir. Bu şekilde ceza puanları karşılaştırılarak hangi bireyin daha iyi olduğu anlaşılabilir. Elitizm yapılırken de en iyi olan bireyler bu ceza puanlarına göre en az puana sahip bireyler seçilir. Eğer ceza puanı 0 olan, hiç ceza almamış, bir birey bulunursa bu istenilen ders programının üretildiği anlamına gelir. 11

4. SONUÇ Bu bölümde, projede geliştirilen yönteme ait simülasyon altyapısı, parametreleri ve elde edilen sonuçlar anlatılmaktadır. Altyapı Projede geliştirilen yöntem Java programlama dili kullanılarak Eclipse[6] geliştirme ortamında kodlanmıştır. Simülasyonlar, Intel Core 2 Quad CPU Q6600 2.40 GHz özelliklere sahip işlemciye ve 8 GB belleğe sahip 64 bitlik bir bilgisayarda çalıştırılmıştır. Parametreler Geliştirilen yöntem farklı parametreler ile test edilmiştir. Elde edilen test sonuçlarına göre en iyi sonucu veren parametreler Tablo 1 de yer almaktadır. Tablo 1. En iyi sonucu veren parametreler Nesil Sayısı 1000 Birey Sayısı 10000 Elitizim Oranı(%) 5 Mutasyon Oranı (%) 0.1 Popülasyondaki birey sayısı arttırıldığında, programın çalışması yavaşlamakta ve çok geç sonuçlar vermektedir. Hatta işlemci ve bellek kullanımının artmasıyla bilgisayarda kilitlenmeler yaşanmaktadır. Mutasyon oranı arttırıldığında uygun bireylerde de bozulmalar gözlenmektedir. Elitizim oranı arttırıldığında, nesiller arası çeşitlilikte azalma gözlenmekte ve çözüme ulaşılamamaktadır. 5.TARTIġMA Bu bölümde proje hazırlanırken karşılaşılan sorunlar, proje hakkındaki fikirlerimiz ve projenin geleceği hakkındaki düşüncelerimizi aktaracağız. Proje çalışmalarına başlamadan önce projemizin belirli bir kitlenin sorununu çözmesi üzerine yoğunlaştık ve baktığımızda en yakınımızdaki öğretmenlerimizi ve okul çalışanlarını gördük. 12

Uygun bir ders programı hazırlamak için haftalarca çalışmak zorundaydılar. Hazırladıkları ders programı hem öğretmen hem de öğrenci açısından tatmin edici düzeyde değildi. Bu sebeplerden dolayı bu projeyi yapmaya karar verdik. Projeyi yaparken, genetik algoritma basamaklarını birbirinden bağımsız olarak ele alıp modüler bir yapı ortaya koyduk. Java programlama dilinde yer alan hazır veri yapıları işimizi oldukça kolaylaştırmasına rağmen, özellikle veri yapılarının referans ile çağırılmasından dolayı bazı zorluklarla da karşılaştık. Bu zorlukları aşmak için farklı çözüm yöntemleri denedik. Projede sonucunda, hedeflediğimiz maddelerin büyük bir bölümünü gerçekleştirdik. Gelecek çalışmalarda; öğretmenlerin istedikleri günlere dersleri yerleştiren, zor derslerin arka arkaya gelmesini engelleyen vb.. gibi birtakım kısıtları da eklemeyi planlamaktayız. Bu eklemelerle birlikte, projemizin ülkemizdeki okullarda ders programlarının hazırlanması için kullanılmasını hedeflemekteyiz. KAYNAKLAR [1] Mitchell, Melanie (1996). An Introduction to Genetic Algorithms. Cambridge, MA: MIT Press. [2] Michalewicz, Zbigniew (1996). Genetic Algorithms + Data Structures = Evolution Programs. Springer-Verlag. [3] İşçi Ö. ve Korukoğlu, S., (2003), Genetik Algoritma Yaklaşımı ve Yöneylem Araştırmasında Bir Uygulama, Yönetim ve Ekonomi, 2003, Cilt:10, Sayı:2. [4] Genetik Algoritmalar, İleri Algoritma Analizi Ders Notları, http://www.ibrahimcayiroglu.com/dokumanlar/ilerialgoritmaanalizi/ilerialgoritmaanalizi- 7.Hafta-GenetikAlgoritma.pdf, Erişim tarihi: 20.01.2014. [5] Java Technology, http://www.java.com/en/, Erişim tarihi: 20.01.2014. [6] Eclipse IDE, http://www.eclipse.org/, Erişim tarihi: 20.01.2014. 13