T.C. ÇUKUROVA ÜNİVERSİTSİ
SOSYAL BİLİMLER ENSTİTÜSÜ İŞLETME ANABİLİM DALI
GENETİK ALGORİTMA İLE PROJE ÇİZELGELEME
Semin PAKSOY
Danışman : Yrd. Doç. Dr. Arzu UZUN
DOKTORA TEZİ
ADANA 2007
i
ÖZET
GENETİK ALGORİTMA İLE PROJE ÇİZELGELEME
Semin PAKSOY
Doktora Tezi, İşletme Anabilim Dalı
Danışman : Yard. Doç. Dr. Arzu UZUN
Aralık 2007, 202 sayfa
Bu çalışmada Delphi 6 kullanılarak, kaynak kısıtlı proje çizelgelemeye
yönelik olarak genetik algoritma hazırlanmıştır. Kaynak kısıtlı proje çizelgeleme
problemleri, karmaşık yapısı gereği çözümü zor ( NP-hard ) problemler arasında yer
almaktadır. Çözümü zor olan bu tür problemlerde, kesin çözüm veren bir
algoritmanın hazırlanması oldukça zordur.
Geliştirilen sezgisel algoritma ile parametrik olarak verilebilen toplum
sayıları ve iterasyonlar sonucunda, minimum proje süresine sahip çizelge tespit
edilebilmektedir. Algoritmada rastgele ve öncelik kuralına dayanan kromozom
temsillerinden ikisi de kullanılmıştır. Proje çizelgeleme aşamasında, faaliyetler
rastgele seçilen öncelik kuralına göre çizelgelenmektedir.
Çizelgeleme problemlerinde, öncül/ardıl olarak farklı iki şekilde verilen
faaliyet öncelikleri göz önünde bulundurularak, algoritmanın her iki problem tipi
için çalışması sağlanmaktadır. Böylece, problem ne şekilde verilirse verilsin,
kullanıcı tarafından hangi bir dönüşüm işlemi yapılmaksızın, algoritmada test
edilebilecektir.
Algoritma; literatürde bulunan dört veri kümesi üzerinde, toplam 2040
çizelgeleme problemleri ile test edilmiştir. 2040 problemin her biri, farklı
iterasyonlarda olmak üzere ikişer kez test edilerek, iterasyon sayısının etkisi
araştırılmaya çalışılmıştır.
ii
Algortimanın performansını ölçmek ve değerlendirmek amacıyla; her bir veri
kümesinin ortalama standart sapması hesaplanarak, literatürde yayınlanmış olan
diğer çalışmalarla karşılaştırılmaktadır.
Test edilen problemler neticesinde; elde edilen proje bitirme sürelerinin
tatmin edilebilir düzeyde olduğu gözlenmiştir. Geliştirilen algoritma, basit
problemlerde evrensel(global) sonuçlar verirken, karmaşık problemlerde genellikle
yerel sonuçlar üretebilmektedir.
Anahtar Kelimeler: Genetik Algoritma, Proje Çizelgeleme, Kaynak Kısıtlı Proje
Çizelgeleme, Kromozom Temsili, Öncelik Kuralları
iii
ABSTRACT
A GENETIC ALGORITHM FOR PROJECT SCHEDULING
Semin PAKSOY
Ph.D. Dissertation, Department of Business Administration
Supervisor : Ass. Prof. Dr. Arzu UZUN
Decmber 2007, 202 pages
This study presents a genetic algorithm for the resource constrained project
scheduling problem using Delphi 6. Resource constrained project scheduling is one
of the NP-hard classes because of the complexity of their combinatorial nature. Any
exact algorithm are difficult to handle such a problem.
The heuristic algorithm generates parameterized active schedules and selects
the best one which has minimum project completion time among the generated
schedules. The chromosome representation of the problem is based on the both
random key and priority rule represantation. The schedule is constructed using
randomly selected heuristic priority rule.
Priorities of activities of scheduling problems are given by two types such as
proccessors/successors of any activities. The algorithm works for two types of
scheduling problems. So there is no need any conversion process for successors to
proccessors ( or vice versa ) by human being.
The algorithm was tested on the four sets of standard problems from the
literature. Each set has many project scheduling problems. Total number of
scheduling problems is 2040. Each of these scheduling problems are tested twice to
observe the effects of different iteration number.
To measure and evaluate the performance of the algorthm; the average
deviation of each problem set is calculated to compare the algorithm with other
approaches in the literature. The computational results are reported.
iv
Computational results relatively validate the effectiveness of the generated
algortihm. Generally, the algorithm gives global results for simple problems and
gives local results for complex problems.
Keywords: Genetic Algorithm, Project Scheduling, Resource Constrained Project
Scheduling, Chromozom Representation, Priority Rules
v
ÖNSÖZ
Proje çizelgeleme faaliyeti, örgütlerde genellikle yönetsel faaliyetler olarak
değerlendirilip, yöneticilerin belirttiği takvimler çerçevesinde proje tamamlanmaya
çalışılmıştır. Ancak günümüzde faaliyetlerin belli bir sırada sıralanması yani
çizelgelenmesi oldukça güç bir hale gelmiştir. Özellikle faaliyet sayısının fazla
olduğu projelerde, birde kullanılan kaynakların dikkate alınmasının gerekliliği;
yöneticilerin bu görevlerini yaparken yardımcı araçlara ihtiyacı doğurmuştur.
Etkin ve uygulanabilir kaynak kısıtlı proje çizelgelemenin gittikçe güç bir hal
alması nedeniyle; gerek akademisyenler gerekse ticari yazılım firmaları bir çok
çalışma yapmışlardır. Yapılan çalışmalar, ne yazık ki, hala yöneticilerin ihtiyacını
tam karşılar boyutlara ulaşamamıştır. Bunun başlıca nedenleri de; artan faaliyet ve
kısıt sayılarının, optimum bir şekilde çizelgelenmesinde tek bir yöntemin veya
kuralın uygulanabilir olmamasıdır. Bu nedenle, mümkün çözümler üzerinde genetik
işlemlerle değişim yapılarak daha farklı çözümlerin hızlı bir şekilde üretilmesi ve bu
çözümlerin etkinliğinin araştırılması gündeme gelmiştir.
Her ne kadar, genetik algoritma ile elde edilen çözümler her zaman optimum
sonuç vermese de, yöneticilere global bir fikir sağlayacağından kullanımının yararlı
olduğu söylenebilir. Genetik algoritmada amaçlanan da budur. Zira doğası gereği,
yapılan işlemlerle rastgelelik ön plana çıkarılmıştır.
Yapılan bu çalışma ile kaynak kısıtlı proje çizelgeleme konusunda alternatif
bir araç geliştirilmeye çalışılmıştır.
Bu çalışmanın tamamlanmasında yakın ilgi ve desteğini esirgemeyen, değerli
hocam Yard. Doç Dr. Arzu UZUN’a teşekkürlerimi sunmayı bir borç bilirim. Ayrıca
çalışmamın çeşitli aşamalarında göstermiş oldukları katkılar nedeniyle değerli
hocalarım Prof. Dr. Hüseyin ÖZGEN’e ve Yard. Doç Dr. Ersin KIRAL’a
teşekkürlerimi sunarım.
Ayrıca tıkandığım yerde desteklerini hep hissettiğim değerli arkadaşlarım
Yard. Doç. Dr. Ebru Özgür GÜLER’e ve Yard. Doç. Dr. Neslihan Coşkun
vi
KARADAĞ’a ve çalışmam boyunca; yaşından ve sağlığından kaynaklanan
zorluklara rağmen performansını zorlayarak, dördüzlerimin yükünü üstüne almaya
çalışan canım annem Hatice TOPALOĞLU’ na, her zaman desteğini benden
esirgemeyen sevgili eşim Ersin PAKSOY’a, sevgili oğlum Engin PAKSOY’a ve
uygulama aşamasında desteğini esirgemeyen Fatih KILIÇ’a ve Sosyal Bilimler
Enstitüsü’nün tüm personeline teşekkür ederim.
Bu çalışma, Çukurova Üniversitesi Araştırma Fonu tarafından İİBF2006D2
numaralı proje kapsamında finansal olarak desteklenmiştir.
Aralık 2007, Adana
Semin PAKSOY
vii
İÇİNDEKİLER
ÖZET……………………………………………………………………............... i
ABSTRACT……………………………………………………………................ iii
ÖNSÖZ…………………………………………………………………................ v
KISALTMALAR LİSTESİ………………………………………….…................ xi
TABLOLAR LİSTESİ…………………………………………………................. xii
ŞEKİLLER LİSTESİ….………………………………………………...................xiii
EKLER LİSTESİ………………………………………………………..................xiv
BİRİNCİ BÖLÜM
GİRİŞ
1.1. Çalışmanın Amacı…………………………………………………................. 1
1.2. Çalışmanın Önemi…………………………………………………................ 4
1.3. Çalışmanın Yöntemi………………………………………………................. 5
1.4. Çalışmanın Planı………………………………………………….................. 6
İKİNCİ BÖLÜM
KONUYLA İLGİLİ ÇALIŞMALAR 8
ÜÇÜNCÜ BÖLÜM
GENETİK ALGORİTMA VE KAVRAMSAL BİLGİLER
3.1. Genetik Algoritma ve Önemi ……………………………………................. 20
3.2. Genetik Algoritmanın Temel Kavramları ………………………................. 20
3.2.1. Kromozom (DNA Dizileri) ………………………………................. 21
3.2.2. Gen…………………………………………………………............... 21
3.2.3. Toplum Büyüklüğü………………………………………….............. 22
3.2.4. Uygunluk Değeri (fi) ve Uygunluk Fonksiyonu…....……................... 22
3.2.5. Uygun Olanların Seçilmesi…………..……………………................. 23
3.3. Genetik İşlemler ve Genetik Parametreler……………………….................. 28
3.3.1. Üreme (Reproduction)……………..….……………………............... 29
viii
3.3.2. Çaprazlama (Crossover)……………………………………............... 29
3.3.3. Mutasyon (Mutation)………………………………………................ 32
3.4. Genetik Algoritma ve Sonlandırma Koşulu……...………………................. 35
3.5. Genetik Algoritma Aşamaları ve Akış Şeması………...…………................ 37
3.5.1. Genetik Algoritma ve Aşamaları…..………………………................ 37
3.5.2. Genetik Algoritmanın Akış Şeması………..………………............... 39
3.6. Genetik Algoritmanın Yararları ve Sakıncaları……………..……............... 41
3.7. Genetik Algoritmanın Diğer Metotlarla Kıyaslanması …….……................ 43
3.8. Genetik Algoritmanın Uygulama Alanları …………….………….............. 43
3.9. Genetik Algoritmayı Kullanma Nedenleri …………….…………............... 45
DÖRDÜNCÜ BÖLÜM
İKİ VE ON TABANLI GENETİK ALGORİTMALAR
4.1. İki Tabanlı Genetik Algoritmalar ……………..…………………............... 47
4.1.1. Değişkenler ve Amaç Fonksiyonu Seçimi………….………............. 48
4.1.2. Amaç Fonksiyonu ve Uygunluk Kriteri..……….……….................. 51
4.1.3. İki Tabanlı Sistemden On Tabanlı Sisteme Dönüşüm……................ 52
4.1.4. Değişken Temsili …………………………………………............... 53
4.1.5. Gri Kodlama………………………………………………................ 55
4.1.5.1. İki Tabanlı Sayı ile Gri Kod Arasında Dönüşüm................. 56
4.2. On Tabanlı Genetik Algoritmalar ………..……………………….............. 58
4.2.1. Değişken Temsili ve Amaç Fonksiyonu…………………................ 59
4.2.2. Başlangıç Toplumu ………………………………………............... 59
4.2.3. Seçme İşlemi……………………………………………….............. 61
4.2.4. Genetik İşlemler…………………………………………….............. 65
4.3. Yakınsama…………………………………………………………............ 68
4.4. Problemin Genetik Algoritmaya Uyarlanması……..…………….............. 69
4.5. On Tabanlı Genetik Algoritmalarda Özel Durumlar.……….……............. 70
4.5.1. Kodlama sistemi……………………………………………............ 70
4.5.2. Genetik İşlemler ………………………………………….............. 71
4.6. Genetik Algoritmanın Optimizasyon Problemine Uygulanması…............. 73
ix
BEŞİNCİ BÖLÜM
PROJE ÇİZELGELEME PROBLEMLERİ VE SEZGİSEL YÖNTEMLERİN
KULLANIMI
5.1. Proje Çizelgeleme………………………………………………….............. 78
5.1.1. Proje Ağının (Network) Oluşturulması…….....……………............... 79
5.1.2. Faaliyetlerin Öncüllük İlişkileri (Precedence Relations)…................. 81
5.2. Kaynak Kısıtlı Proje Çizelgeleme ve Özellikleri ..………………................. 84
5.3. Kaynak Kısıtlı Proje Çizelgeleme Problemlerinde Kullanılan Yöntemlerin
Sınıflandırılması............................................................................................... 87
5.3.1. Deterministik Yöntemler…………………………………................... 87
5.3.2. Stokastik Yöntemler……………………………………...................... 88
5.3.3. Sezgisel Yöntemler…………………………………………................ 88
5.4. Sezgisel Yöntemler ve Özellikleri.................…………………….................. 90
5.4.1. Faaliyetleri Etiketleme...............…………………………................... 90
5.4.2. Öncülleri Tamamlanan Faaliyetler ve Öncelik Kuralları….................. 91
5.4.3. Çizelge Oluşturma Şemaları(SGS)....................................................... 96
5.4.3.1. Seri Çizelgeleme (Seri SGS)….…………………................ 97
5.4.3.2. Paralel Çizelgeleme(Paralel SGS)..…………….................... 97
5.4.4. X-Geçişli Yöntem (X-Pass Method)..…………………….................. 99
5.4.4.1. Tek Geçişli Yöntem (Single Pass Method).……................... 99
5.4.4.2. Çok Geçişli Yöntem(Multi Pass Method)….......................... 100
5.5. Kaynak Kısıtlı Proje Çizelgeleme Problemlerinde Kromozom Temsili….... 102
5.5.1. Faaliyet Listesi……………………………………………................. 103
5.5.2. Rastgele Anahtar Temsili…………………………………................. 104
5.5.3. Öncelik Kuralı Temsili……………………………………................. 105
ALTINCI BÖLÜM
KAYNAK KISITLI PROJE ÇİZELGELEMEDE GENETİK ALGORİTMA
YÖNTEMİNİN UYGULANMASI VE ANALİZİ
6.1. Genetik Algoritmalarda Kullanılan Yapay Kaynak Kısıtlı Proje Çizelgeleme
Problemleri ve Özellikleri……….………..…….…...................................... 106
6.1.1. Proje Ağının Büyüklüğü…………………........................................... 108
x
6.1.2. Proje Kaynak Kullanım Durumu…..…………………….................... 108
6.1.2.1. Kaynak Faktörü (Resource Factor)………………........................... 108
6.1.2.2. Kaynak Gücü (Resource Strength)................................................... 109
6.2. Uygulamanın Veri Tabanı Yapısı..….……………………………............... 111
6.3. Uygulamanın Temel Varsayımları…….…………………………............... 112
6.3.1. Proje Varsayımları……………………………………….................. 113
6.3.2. Genetik Algoritma Varsayımları…………......................................... 114
6.4. Uygulamaya Veri Giriş Yaklaşımları….………………………….............. 118
6.5. Uygulama Sonuç Bilgileri………………………………………................ 122
6.6. Performans Ölçümüne İlişkin Yaklaşımlar………………………............... 126
6.6.1. En İyi Çözümü Bilinen Problem ile Test Edilmesi………................. 127
6.6.2. Değişik Genetik Parametreler ile Test Edilmesi………….................. 128
6.6.3. İstatistiksel Analizlerin Kullanılması…………................................... 129
6.7. Algoritma Performansının Değerlendirilmesi……….…............................... 130
6.7.1. J30 Veri Kümesi ile Elde Edilen Sonuçların Değerlendirilmesi .......... 131
6.7.2. J60 Veri Kümesi ile Elde Edilen Sonuçların Değerlendirilmesi……... 135
6.7.3. J90 Veri Kümesi ile Elde Edilen Sonuçların Değerlendirilmesi……... 138
6.7.4. J120 Veri Kümesi ile Elde Edilen Sonuçların Değerlendirilmesi..…... 140
YEDİNCİ BÖLÜM
SONUÇ 144
KAYNAKÇA…………………………………………………………................ 151
EKLER………………………………………………………………................. 160
ÖZGEÇMİŞ…………………………………………………………................. 202
xi
KISALTMALAR LİSTESİ
GA : Genetik Algoritma
KKPÇ : Kaynak Kısıtlı Proje Çizelgeleme
KKPÇP : Kaynak Kısıtlı Proje Çizelgeleme Problemi
KYM : Kritik Yol Metodu
Paralel SGS : Paralel Proje Çizelgeleme
PSPLIB : KKPÇ’de kullanılan yapay problemlerin elde edildiği İnternet ortamı
(Project Scheduling Problems Library)
Seri SGS : Seri Proje Çizelgeleme
SGS :Çizelge Oluşturma Şeması (Schedule Generation Scheme)
xii
TABLOLAR LİSTESİ
Tablo 3.1 Turnuva Seçim Yöntemine Göre Uyumlu Kromozomların Seçilmesi.. 25
Tablo 4.1 ℓ= 3 Uzunluğundaki Sayıların Gri Kodlar……………….................... 56
Tablo 4.2 Başlangıç Toplumu ve Uygunluk Değerleri……………….................. 75
Tablo 4.3 Çaprazlama Bilgileri……………………………………….................. 76
Tablo 4.4 Yeni Toplum ve Uygunluk Değerleri ……………………................... 77
Tablo 5.1 Proje Faaliyet Bilgileri………….……………………….…................. 83
Tablo 5.2 Sezgisel Modellerde Kullanılan Etiketlendirme Kuralları…................. 91
Tablo 6.1 Sezgisel Yöntemlerin Performansları (j30 veri kümesi)….................. 133
Tablo 6.2 Sezgisel Yöntemlerin Performansları (j60 veri kümesi)...................... 137
Tablo 6.3 Sezgisel Yöntemlerin Performansları (j90 veri kümesi)...................... 139
Tablo 6.4 Sezgisel Yöntemlerin Performansları (j120 veri kümesi)…................ 141
xiii
ŞEKİLLER LİSTESİ
Şekil 3.1 Tek Noktalı Çaprazlama İşlemi……………………………................... 30
Şekil 3.2 Çaprazlama Çeşitleri ve Örnekleri…………………………...................32
Şekil 3.3 Mutasyon Çeşitleri ve Örnekleri……………………………..................34
Şekil 3.4 Genetik Algoritma Akış Şeması…………………………...................... 40
Şekil 4.1 İki Tabanlı Sayının Gri Koda Dönüşümü………………..….................. 57
Şekil 4.2 Gri Kodun İki Tabanlı Sayıya Dönüşümü…………………....................58
Şekil 4.3 Ardışık Toplumların Geçiş İşlemi ile Oluşturulması………..................65
Şekil 5.1 Faaliyetlerin Düğümlerde Gösterilmesi……………………...................80
Şekil 5.2 Faaliyetlerin Ok Üzerinde Gösterilmesi…………………….................. 81
Şekil 5.3 Örnek Düğüm Bilgileri…………………………………….................... 83
Şekil 5.4 Tamamlanmış Proje Ağı.....…………………………………................. 84
Şekil 5.5 Çizelgeleme Aşamasında Faaliyetlerin Sınıflandırılması….................. 98
Şekil 6.1 Projede Kullanılan Tablolar ve İlişkileri……………….…...................112
Şekil 6.2 Projenin Tanıtılması..…………………..…………………...................119
Şekil 6.3 Kaynakların Tanıtılması………………………………….....................119
Şekil 6.4 Parametrelerin Tanıtılması………………………………….................120
Şekil 6.5 Faaliyetlerin Tanıtılması………………………………….................... 121
Şekil 6.6 Geliştirilen Algoritmanın Sonuç Bilgileri…………………................. 122
Şekil 6.7 Kritik Yol Metodu Sonuç Bilgileri…….………………….................. 123
Şekil 6.8 Toplumlar ve Çözüm Alternatifleri………………………................... 124
Şekil 6.9 Optimum Çözüm Bilgileri…………………………………................. 125
xiv
EKLER LİSTESİ
Ek.1 30 Faaliyetli Proje Çizelgeleme Sonuçları(500 iterasyon)…..................... 160
Ek.2 30 Faaliyetli Proje Çizelgeleme Sonuçları(1000 iterasyon)…................... 166
Ek-3 60 Faaliyetli Proje Çizelgeleme Sonuçları(500 iterasyon)……................. 172
Ek-4 60 Faaliyetli Proje Çizelgeleme Sonuçları(1000 iterasyon)…................... 177
Ek-5 90 Faaliyetli Proje Çizelgeleme Sonuçları(500 iterasyon)…..................... 183
Ek-6 90 Faaliyetli Proje Çizelgeleme Sonuçları(1000 iterasyon)…................... 188
Ek-7 120 Faaliyetli Proje Çizelgeleme Sonuçları(500 iterasyon)….................. 193
Ek-8 120 Faaliyetli Proje Çizelgeleme Sonuçları(1000 iterasyon)…................ 198
1
BİRİNCİ BÖLÜM
GİRİŞ
1.1. Çalışmanın Amacı
Günümüzde karmaşık problemlerin çözümünde geleneksel yöntemlerin
yetersiz kalması, yeni çözüm teknikleri arayışlarını gündeme getirmiştir. Evrimsel
hesaplama teknikleri, bu arayışların sonucu olarak ortaya çıkan tekniklerdir ve 19.
yüzyılda Charles Darwin tarafından ileri sürülen evrim teorisinden esinlenerek
geliştirilmiştir. Evrimsel hesaplama teknikleri, doğadaki evrimsel süreçleri model
olarak kullanan bilgisayara dayalı problem çözme teknikleridir. Geleneksel
programlama teknikleriyle çözülmesi güç olan, özellikle sınıflandırma, çizelgeleme
ve çok boyutlu optimizasyon problemleri, evrimsel hesaplama teknikleri ile daha
kolay ve hızlı olarak çözülebilmektedir.
Evrim, kavramsal olarak kontrollü bir süreç değildir. Çevre koşullarının
farklı/aynı olduğu bir ortamda, farklı genetik bilgilere sahip canlılar, yaşamak için
yarışırlar ve güçlü/uyumlu olanlar hayatta kalıp çoğalarak/üreyerek genetik
bilgilerini bir sonraki kuşağa (jenerasyona) geçirme şansını yakalarlar. Evrimin
devamını sağlayan unsur ise, üreme sonucu oluşan farklılıktır.
Üreme, doğada eşeyli ve eşeysiz üreme olmak üzere iki şekilde olmaktadır
(Atalağ,2001,s.1):
1. Eşeysiz üreme, basit canlılarda rastlanan üremedir. Yeni oluşan canlı bir
öncekinin aynısıdır. Eşeysiz canlılar arasındaki farklılık, üreme sırasında genlerde
oluşan istemsiz hatalar ya da değişim sonucu oluşmaktadır.
2. Eşeyli üreme, yüksek canlılarda görülen üreme şeklidir ve seksüeldir. Yani
değişik genetik malzemeye sahip iki canlı birleşerek tamamen farklı yeni bir canlı
oluşturmaktadır. Farklılık, çoğalma sırasında hem mutasyonlar hem de yeniden
birleşimler (recombination) sonucu oluşmaktadır. Her iki canlının genetik olarak
farklı ama işlevsel olarak eş kromozomları üst üste gelerek bilgi değiş tokuşu
(crossover) olmaktadır.
2
Üreme sonucunda oluşan farklı canlılardan bir kısmı, bir önceki kuşağa göre
değişen çevreye daha iyi uyum gösterip (adapte olup) daha güçlü olabilmektedir.
Bunların yaşaması ve üreyerek soyunu devam ettirmesine doğal seleksiyon
denilmektedir.
Evrimsel hesaplama tekniği kullanılan problemler, çözüm için oldukça fazla
olasılık ya da kurallar dizisi içeren problemlerdir. Bu nedenle, probleme ait
çözümlerin, biyolojik evrim sürecinde olduğu gibi, değişen çevre koşullarına uyumlu
olup olmadıklarını anlamak için bir sisteme ihtiyaç duyulmaktadır (Mitchell ve
Taylor, 1999,s.593). Evrimsel süreç için gerekli olan bu sistem, evrimsel hesaplama
tekniğini kullanan algoritmaların temelini oluşturmaktadır.
Evrimsel algoritmalar, bulunduğu çevrede en fazla güçlü olanları seçme,
yeniden birleşme, üreme ve mutasyon gibi temel evrimsel süreçlerden yararlanarak
bir sistem oluşturmaktadır. Üremelerden sonra yapılan mutasyon işlemleri, evrimin
gereksinimi olan farklılığı sağlamaktadır.
En yaygın kullanılan evrimsel algoritma ise genetik algoritma (GA)’dır
(Mitchell ve Taylor,1999,s.594). GA, evrim sürecini kullanarak bir bilgisayara,
anlayamadığı çözüm yöntemlerinin öğretilebileceği fikri ile ortaya çıkmıştır.
Evrimsel hesaplama psikolojisinden etkilenen John Holland, GA’yı bilgisayar
ortamında uygulayan, ilk araştırmacı olmuştur ve yapay problemlerin çözümünde
evrimsel süreçlerin uygulanabileceğini, 1975 yılında “Doğal ve Yapay Sistemlerde
Uyumlaştırma (Adaption in Naturel and Artifical Systems)” kitabında açıklamıştır
(Koza,1995,s.287).
Darwin’in evrim teorisinden etkilenen GA ile bir problemi çözmek, problemi
sanal evrimden geçirmek anlamına gelmektedir (Kurt ve Semetay,2001,s.1). GA,
karmaşık problemlerin çözüm alternatifleri arasından optimum (global) çözümü
bulmak için kullanılan bir arama yöntemidir (Mori ve Tseng,1997,s.135). Ancak
GA’lar her zaman global çözümü bulamamaktadır. GA ile üretilen çözüm, global
olmayan alternatif çözüm ise bu çözümün optimuma yakın (lokal) çözüm olduğu
söylenebilmektedir (Yeo ve Agyei,1998,s.268).
3
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 (Brochmann,2005,s.1).
GA’lar, 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 (Bolat vd.,2004,s.264). Çö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.
GA’lar, biyolojik ortamlarda olduğu gibi, en iyi çözümü arayacağı toplumları
oluşturmak zorundadır. Sadece başlangıçta ve bir kez olmak üzere, gerçek çözüm
alternatiflerine ihtiyaç duymaktadır. Bu çözüm alternatifleri, problemin başlangıç
toplumunu oluşturmaktadır. Toplumun bireylerini temsil eden çözüm alternatifleri
ise, uzun ve karmaşık hesaplama işlemleri kullanılmadan, rastgele yöntemlerle de
oluşturulabilmektedir. Algoritmanın başında, kaç adet çözüm alternatifi olması
gerektiği, başka bir deyişle toplumdaki birey sayısı, problemin yapısına ve
araştırmacıya bağlıdır.
Bir sonraki toplum ise, evrimsel süreçten geçen başlangıç toplumundan
oluşturulmaktadır. Bu şekilde, kendinden bir önceki toplumun, evrim geçirerek yeni
toplum oluşumu algoritmada hep devam edecektir (Huang vd.,2005,s.267-290). GA,
bu toplumlar içerisinde en iyi olan çözümü aramaktadır.
Çözüm yöntemleri ya da algoritmaları belli olmayan problemlerin çözümünde
de, GA kullanılabilmektedir. Çünkü GA, problemin uygun çözümünü elde etmek
için, evrim ve doğal seleksiyon mantığında hazırlanan bir bilgisayar programıdır
(Brochmann,2005,s.1). Geleneksel optimizasyon yöntemlerinde, bir amaç
fonksiyonuna ihtiyaç duyulmaktadır. Oysa, GA’lar amaç fonksiyonu hazırlanamayan
optimizasyon problemlerinde de uygulanabilmektedir. GA’nın bu tür problemlere
uygulanabilmesi ve en iyi çözümün seçilelebilmesi için, sadece bir uygunluk kriteri
ya da uygunluk fonksiyonun tanımlanması yeterli olacaktır. Ancak, bu tarz
4
problemlerde dikkat edilmesi gereken en önemli unsur, uygunluk kriterinin
problemin amacı ile tamamen örtüşmesidir.
25 yıldan fazla bir süredir üzerinde çalışılan GA’lar, çözümü zor
problemlerde hala karşılaşılan sorunlar nedeniyle, özellikle son 5 yıldır,
araştırmacıların ilgisini üzerine çekmektedir (Wall,1996,s.10). Bilgisayar bilimi,
işletme, mühendislik, eğitim, matematik, tıp ve ziraat gibi alanlarda uygulama
örnekleri ile karşılaşılmaktadır. Ülkemizde de birçok alanda uygulama örneklerine
rastlanmaktadır.
Bu çalışmanın amacı, geleneksel yöntemlerle çözülmesi zor problemlerde
etkin sonuçlar elde edilen GA’ları tüm yönleriyle incelemek ve GA ile proje
çizelgeleme konusunda bir uygulama yapmaktır. GA’ların, karmaşık problemlerde
optimuma yakın çözüm üretmeleri, geliştirilen algoritmanın etkinliğini artıracak
faktörleri belirlemeye yönelik çalışmaları da, amaç kapsamına dâhil etmeyi
gerektirmiştir.
1.2. Çalışmanın Önemi
GA’lar, algoritmanın başlangıcında oluşturulan çözüm kümesinden
başlayarak, sonraki aşamalarda bu çözümlere rastgele değişim uygulanması ile
oluşturulan yeni çözüm kümeleri içerisinden amaç fonksiyonunu en iyileyen
çözümlere erişmeye çalışmaktadır. Başlangıçta kullanılan çözümler hariç hiçbir
çözümü, uzun hesaplama işlemlerine ihtiyaç duymadan evrimsel işlemlerle hızlı bir
şekilde hesaplamaktadır.
Algoritmanın doğası gereği, en iyi çözümleri rastgele bir şekilde araması
nedeniyle çok büyük ve karmaşık optimizasyon problemlerinde etkili bir şekilde
kullanılmaktadır. Karar değişkeni sayısının fazla olduğu karmaşık problemlerde,
değişkenlerin her bir olası değerleri için yeni çözümlerin hesaplanması oldukça güç
ve zaman alıcı olmaktadır. Bu nedenle çözümü zor olan problemlerde GA kullanma
ihtiyacı artmaktadır.
5
En iyi çözümleri, çözüm kümesinde aradığından, diğer optimizasyon
yazılımlarından yararlanamayacak büyüklük ve karmaşıklık içeren problemlerde
rahatlıkla kullanılabilmektedir.
Evrimsel bir algoritma olarak doğasında barındırdığı bu özellikler ise, GA’ ya
ilginin artmasına ve her alanda uyarlanmaya çalışılmasına neden olmaktadır.
Gerçekleştirilen literatür araştırmasıda, teoride çok karşılaşılan bu söylemin
doğruluğunu güçlendirmektedir.
Kaynak kısıtlı proje çizelgeleme problemi (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 dahada 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 yönelik, hem sezgisel hem de optimal yöntemler
geliştirilmeye çalışılmaktadır (Hartmann ve Kolisch,2000,s.395).
Günümüzde, KKPÇP’ler için faaliyet sayıları açısından herhangi bir kısıt ile
karşılaşılması arzu edilmemektedir. Çözümü zor problemlerde, GA gibi sezgisel
yöntemleri kullanma ihtiyacı, KKPÇP’leri GA ile çizelgeleme çalışması yapmamıza
ve literatüre katkıda bulunma isteğimizin oluşmasına neden olmuştur.
1.3. Çalışmanın Yöntemi
GA ile kaynak kısıtlı proje çizelgeleme (KKPÇ) amacıyla yapılan bu
çalışma, teorik ve uygulama olmak üzere iki temel bölümden oluşmaktadır.
Çalışmanın teorik bölümü, yurtdışında ve yurtiçinde yayınlanmış olan kitap,
tez, makale ve diğer çalışmalardan faydalanarak hazırlanmıştır. Teorik bölüm için
yapılan literatür araştırmasında, yurtiçindeki üniversite kütüphanelerinden, YÖK
(Yüksek Öğrenim Kurumu) kütüphanesinden, İnternet bilgi ağı üzerindeki veri
tabanlarından, yabancı üniversiteler ile kar amacı gütmeyen kurumların İnternet bilgi
ağı üzerinde oluşturdukları web sitelerinden yararlanılmıştır.
6
Çalışmanın ikinci kısmında ise, KKPÇP’lerin GA yöntemi ile çözümü için bir
algoritma geliştirilmiştir. Geliştirilen algoritmanın test edilebilmesi ve etkinliğinin
tartışılması amacıyla literatürde j30, j60, j90 ve j120 olarak sınıflandırılan
KKPÇP’ler kullanılmaktadır. Çalışmamızda bu problemlerin seçilmesinin başlıca
nedenleri:
1- Faaliyet sayılarının fazla olması.
2- Çözümü zor problemler olması.
3- Örnek problem sayısının fazla olması.
4- Literatürde bu konuda daha önce yapılan çalışmalarda bu problemlerin
kullanılmasıdır.
Yukarıda bahsedilen KKPÇP’ler PROGEN (Project Generator) adı verilen bir
program tarafından üretilen problemlerdir. Bu problemler Kiel Üniversitesinin,
ftp://ftp.bwl.uni-kiel.de/pub/operations-research/psplib
İnternet adresinden temin edilmiştir.
1.4. Çalışmanın Planı
GA ile proje çizelgeleme başlıklı tez çalışması yedi bölümden oluşmaktadır.
Çalışmanın giriş kısmı olan birinci bölümde, çalışmanın amacının ne olduğu, ne gibi
faydalar sağlayacağı ve nasıl yapılacağı konuları ele alınmıştır.
İkinci bölümde, ilk olarak, GA ile yöneylem araştırması alanında yapılan
yurtiçi/yurtdışı çalışmalarına yer verilmektedir. Daha sonra da KKPÇP’lerde GA
yaklaşımının kullanıldığı çalışmalar ve yapılan araştırmalar hakkında bilgi
verilmektedir.
Çalışmanın üçüncü bölümünde, GA’nın tanımı, temel kavramları, genetik
işlemlerin ne olduğu, GA’nın aşamaları ve algoritması, GA’nın faydaları ve olumsuz
yönleri, nerelerde kullanılabileceği ve algoritmayı sonlandırma koşulları gibi temel
konular kavramsal olarak ele alınmıştır.
7
Çalışmanın dördüncü bölümünde, GA’nın başlangıcında karar verilmesi
gereken algoritma türlerine, GA uygulamalarında kromozomların nasıl
oluşturulacağına, kromozom içerisinde bulunan karar değişkenlerinin kendi sınırları
içerisinde nasıl tanımlanacağına, genetik işlemlerin nasıl yapılabileceğine ve
yorumlanabilmesi için gerçel (reel) sayılara nasıl dönüştürülebileceği gibi temel
konulara yer verilmiştir. Çalışmanın uygulama kısmı on tabanlı algoritmaya göre
yapılması düşünüldüğünden, gerek genetik işlemler gerekse karşılaşılabilecek olası
problemlere yönelik araştırma sonuçları bu bölümde daha detaylı olarak
incelenmiştir.
Çalışmanın beşinci bölümünde, çalışmada baz alınan çözümü zor problemin
kavramsal tanımına, KKPÇ problemlerinde kullanılan yöntemlerin
sınıflandırılmasına, çizelgeleme işlemlerinde kullanılması mümkün olabilecek
sezgisel yöntemlere; öncelik kuralları ve çizelge oluşturma şemalarına, bu
yöntemlerle yakından ilişkili olan ve GA’ların yapısı gereği oluşturulması gereken
kromozomların kromozom temsili ya da kodlanmasına yönelik bilgilere yer
verilmektedir.
Çalışmanın altıncı bölümünde, önce KKPÇP’lerinin çözümüne yönelik
olarak; Delphi 6.0 programı ile geliştirilen GA’nın varsayımlarına yer verilerek,
bilgisayar programının, veri giriş yapısı, menü çubuğu komutları ve ekran
görüntüleri tanıtılmaktadır. Daha sonra, GA’ların performansının ölçümünde
kullanılan yaklaşımlardan bahsedilerek, algoritmanın çözüm üretme performansı,
literatürde daha önce yayınlanan algoritmalarla karşılaştırılarak değerlendirilmiştir.
Çalışmanın yedinci ve son bölümünde, altıncı bölümünde elde edilen
bulgular neticesinde, geliştirilen GA’nın performansının ve işlevselliğinin
artırılmasına yönelik yapılan değerlendirmeler ve önermeler yer almaktadır.
8
İKİNCİ BÖLÜM
KONUYLA İLGİLİ ÇALIŞMALAR
Çalışmanın bu bölümünde, KKPÇP’lerde GA yaklaşımının kullanıldığı
uygulamalara yer verilmektedir. KKPÇP’ler, değişken sayısı arttığında çözümü
zorlaşan ve zaman alan problemlerdir. Şimdiye kadar geliştirilen paket programların,
her zaman mevcut problem tipi ile örtüşmemesi ve varsaydığı kısıtların
uyarlanmasının zorluğu nedeniyle GA denemeleri ilgi çekici olmaktadır. Bunun yanı
sıra paket programların tek bir yöntem kullanması, GA’nın sezgisel yöntemlerine
ilgiyi daha fazla artırmıştır. Özellikle büyük ve karmaşık KKPÇP’lerin çözümünde
halen deterministik bir yöntemin bulunmaması, farklı amaç fonksiyonları ve sezgisel
modeller içeren GA’ları geliştirme çalışmalarının devam etmesine neden olmaktadır.
Yapılan çalışmalar incelendiğinde, KKPÇP’lerde deterministik yöntemlerle
çözülebilen problemler için, deneme amaçlı olarak da GA’nın 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.
Literatürde KKPÇP’lerde GA kullanımı ile ilgili birçok teorik ve pratik
çalışma vardır. Bu çalışmalarda bir çok farklı kromozom temsili (representation),
yöntemler ve algoritmalar kullanılarak yerel (local) ya da global (optimum) sonuç
elde edilmeye çalışılmaktadır.
Talbot (1982), çalışmasında zaman ve maliyet kısıtlı KKPÇP’lerin zaman-
maliyet denge durumunu göz önüne alarak formülize etmeye ve çözmeye yönelik bir
çalışma hazırlamıştır. Bu tür problemlerin amaç fonksiyonları; proje tamamlanma
süresini, proje maliyeti, ceza maliyeti ya da kritik kaynak tüketim maliyetlerini en
küçükleme şeklindedir.
9
Çalışmada iki türlü soruna odaklanılmıştır. Biri, kısıtlı kaynaklar altında proje
tamamlanma süresini ve maliyetini en küçüklemek iken, diğeri de kaynak kısıtlı
problemlerde zaman-maliyet dengesini (tradeoffs) kurmaktır. Deneysel sonuçlar,
hazırlanan bilgisayar programının küçük problemler için optimum proje maliyetini
bulduğunu, büyük problemlerde de optimuma yakın sezgisel çözümler bulduğunu
göstermektedir. Hazırlanan çözüm algoritması göreceli olarak basit düzeydedir ve
orta düzey hesaplama işlemleri yapabilen küçük bilgisayar sistemi gerektirmektedir.
Cheng ve Gen (1994), ç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 düzenlenerek, proje uygunluğu temin edilmiştir.
Geliştirilen algoritma; literatürde bilinen iki probleme uygulanarak, bilinen optimum
değere etkin ve hızlı bir şekilde erişmiştir. Araştırmacılar geliştirdikleri evrimsel
programın, diğer hesaplanması güç optimizasyon problemlerine uygulanabileceğini
öne sürmektedirler.
Pet-Edwards ve Mollaghasemi (1995), stokastik faaliyet süreli KKPÇP’yi
GA ile çözmeye çalışmışlardır. Algoritmalarında, ele aldıkları tek bir problemi altı
farklı sezgisel yöntem kullanarak, her bir yöntem için proje tamamlanma süresini
hesaplamışlar ve yöntemler arasında fark bir z değerinden büyük olduğu sürece
algoritmayı tekrar çalıştırmışlardır. Yöntemlerin sonuçları arasındaki fark, z değerine
eşitlendiğinde ya da daha küçüldüğünde algoritmayı durdurmuşlardır. Çalışma
sonuçlarına göre, optimal sonucu elde etmek için altı elemanlı başlangıç
toplumundaki eleman sayısını ve iterasyon sayısını artırmak gerektiğini öne
sürmektedirler.
Düğenci (1996), çalışmasında GA’nın iş sıralama problemlerine
uygulanmasını göstermiştir. Oluşturulan örnek problemler, hem GA hem de
geleneksel sezgisel yöntemlerle çözülmüş ve sonuçların bir karşılaştırması
yapılmıştır. Özellikle iş ve makine sayısısın arttığı durumlarda GA’ların diğer
yöntemlerden daha başarılı sonuçlar verdiği gözlenmiştir.
10
Kolisch (1996a), çalışmasında, klasik KKPÇ problemlerinde seri ve paralel
SGS yöntemlerini uygulayarak, her iki yönteme yönelik teorik sonuçlar
çıkarmışlardır. Her iki yöntem için, tek geçiş (pass) yöntemi ve örnekleme arasında
ilişki araştırılmıştır. Örneklemin, tek geçiş çizelgeleme yönteminin performansını
anlamlı bir şekilde artırdığı gözlenirken, paralel yöntemin daha iyi olduğu sonucuna
varılmamıştır.
Hoşşerbetçi (1997), çalışmasında GA’ların, yöneylem araştırması alanında
gelişimini ve kullanımını anlatarak Omluksa Firması için sıralama-çizelgeleme
uygulamasını ele almıştır.
Icmeli-Tukel ve Rom (1997); 1995 yılında Amerika’da yaptıkları alan
araştırmasında proje yöneticilerinin, o dönemdeki proje çizelgeleme literatüründeki
sorunlardan daha fazlasını yaşadığını ortaya çıkarmışlardır. Bu çalışma %90 proje
yöneticisinin, müşteri memnuniyetini sağlayabilecek ve proje bütçesine uyabilecek
kaliteli proje çizelgeleme ihtiyacını göstermiştir. Bu nedenle araştırmacılar bu
çalışmalarında, KKPÇ problemlerinde kaliteyi en büyüklerken, literatürdeki
geleneksel amaç fonksiyonlarına ilaveten proje faaliyetlerinin net bugünkü nakit
akışlarını (NPV-Net Present Value) da en büyüklemeyi amaçlamışlardır.
Çalışmada, PROGEN ile üretilmiş KKPÇ problemleri kullanılmıştır.
Problemler, faaliyet süreleri ve proje tamamlanma süresini bütünleştirilmesi baz
alınarak iki farklı şekilde ve tamsayılı (mixed integer) olacak şekilde modellenmiştir.
Her iki şekilde de kurulan modellerde, kalite ölçümleri amaç fonksiyonuna dâhil
edilerek, amaç fonksiyonu kaliteyi en büyüklemek şekline getirilmiştir. Konu edilen
problem kümesi üzerinde yapılan testler sonucunda, çalışmada önerilen ikinci
modelin daha etkin olduğu saptanmıştır. Böylece, bu çalışma ile üç amacı da en
büyükleyecek şekilde etkin sonuçlar elde edilebileceği gösterilmiştir.
Mori ve Tseng (1997), yenilenebilir kaynak kullanan faaliyetleri içeren çok
aşamalı (mod) kaynak kısıtlı proje çizelgeleme problemleri için bir stokastik
algoritma geliştirmişlerdir. Araştırmacılar geliştirdikleri GA’da; doğrudan kromozom
temsilini tercih etmişlerdir. Başlangıç toplumunu ise, Min LFT (bakınız alt başlık
5.4.1.Öncelik Kuralları) öncelik kuralını kullanarak, her bir kromozomu rastgele bir
11
şekilde seçilen ileri ya da geri çizelgeleme yöntemleri ile oluşturmaktadırlar.
Araştırmacılar stokastik çizelgeleme sonuçlarını, Drexl ve Gruenewald (1993)’ın
stokastik çalışma sonuçları ile kıyaslayarak geliştirdikleri algoritmanın daha iyi
olduğu sonucuna varmışlardır.
Naphade vd. (1997)’nın, KKPÇ problemlerine yönelik geliştirdikleri GA,
daha önce KKPÇ problemlerine yönelik geliştirilen sezgisel ve kesin (exact)
yöntemlerin performans değerlendirmesinden oldukça farklı ve daha iyi test
sonuçları oluşturmaktadır. Bu algoritma ile elde edilen çözümler Demuelemeester ve
Herreolen (1992)’in dal sınır algoritması ile elde edilen sonuçlarla kıyaslanmış ve
tatmin edici sonuçların elde edildiği görülmüştür. Çalışmada başlangıç çözüm
kümesi, başka bir sezgisel yöntem ile elde edilen çözümlerin, her bir karar
noktasındaki serbestlik (slack) değerlerinin ∈ miktarı kadar başkalaştırılması ile elde
edilmiş ve çözüm uzayı modifiye edilmiş MINSLACK (bakınız alt başlık 5.4.1.
Öncelik Kuralları) öncelik kuralı ile araştırılmaya çalışılmıştır.
Nutdasomboon ve Randhawa (1997), çalışmalarında KKPÇP’yi 0–1
tamsayılı program modeli olarak kurmuşlardır. Model, proje çizelgelemenin birçok
özelliğini ve amaçlarını kapsayacak şekilde hazırlanmıştır. Bunlar; kesintisiz
faaliyetler, yenilenebilir ve yenilemeyen kaynaklar, zaman-kaynak ödünleşmesi
(trade off), çoklu amaç fonksiyonu (proje tamamlama süresinin en küçüklenmesi,
proje maliyetinin en küçüklenmesi ve kaynakları ayarlama) şeklindedir.
Geleneksel yöntemlerle proje çizelgelemede bahsedilen bu amaçlar genellikle
birbirinden bağımsız olarak değerlendirilmektedir. Araştırmacılar çalışmalarında
proje çizelgelemede konu olan amaçları, amaç programlama modeli (goal
programming model) kullanarak tek bir amaç olarak modellemişler ve projeyi
çizelgelemişlerdir. Kaynak kullanımının optimum bir şekilde ayarlanması (resource
leveling) için, kritik olmayan faaliyetlerin yeniden çizelgelenmesi, sezgisel
yöntemler kullanılarak yapılmaktadır.
Aytaç (1998), bu çalışmada tek makinede toplam iş akış zamanı ile
maksimum erken bitirmeyi en azlayan çözümü zor bir probleme ve tek makinede
toplam iş akış zamanı ile geciken iş sayısını en azlayan çözümü zor bir probleme GA
12
yaklaşımı uygulanmıştır. Toplam iş akış zamanı ve maksimum erken bitirmeyi en
azlayan problemde elde edilen sonuçlar bir alt sınırla kıyaslanmıştır. Toplam iş akış
zamanı ve geciken iş sayısını en azlayan problemde elde edilen sonuçlar ise rastgele
yaratılan çizelgelerle kıyaslanmıştır.
Ikeuchi vd. (1998), çalışmalarında planlama problemlerinde yoğun
kullanılan GA’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.
Reyck ve Herroelen (1998), bu çalışmada KKPÇ problemini genelleştirilmiş
faaliyet öncüllük kısıtları ve iskontolu nakit akışlar ile birlikte değerlendirmeye
almışlardır. İskontolu nakit akışları ile birlikte değerlendirilen bu tür problemler,
KKPÇP kısıtlarına;
1)faaliyetlerin başlama ve tamamlanma süreleri arasında keyfi (arbitrary)
olarak asgari ve azami zaman farkını,
2)faaliyetlerinde negatif/pozitif nakit akışlar içeren projenin net bugünkü
değerini en büyükleyen düzensiz amaç fonksiyonunu
ilave etmektedir.
Araştırmacılar çalışmalarını, bu tarz KKPÇ problemlerine yönelik yapılan
GA’ların olmaması nedeniyle gerçekleştirmişlerdir. Çalışmada kapsamlı bir dal-sınır
algoritması hazırlanmıştır. Geliştirilen dal-sınır algoritmasında, kaynak çatışmasını
ortadan kaldırmak amacıyla, projeyi temsil eden arama ağacındaki her bir düğüme ek
öncelik ilişkileri ilave edilmiştir.
13
Keha (1999), çalışmada tek makinede toplam iş akış zamanı ile geciken iş
zamanını en azlayan ve tek makinede toplam iş akış zamanını ve maksimum erken
bitirmeyi en azlayan iki kriterli çizelgeleme problemine GA uygulanmıştır. Toplam
iş akış zamanı ile toplam geciken iş zamanını en azlayan problem için yaklaşık etkin
sonuçlar bulan bir sezgisel yöntem önerilmiştir. Buna ilaveten GA’nın bu sezgisel
yöntemden elde edilen sonuçları geliştirme miktarı incelenmiştir. Toplam iş akış
zamanı ile maksimum erken bitirmeyi en azlayan problemde elde edilen sonuçlar bir
alt sınırla ve bazı çalışmalarla karşılaştırılmıştır. Aytaç (1998)’in sonuçlarına oldukça
yakın sonuçlar elde edildiği görülmüştür.
Özdamar (1999), GA’yı çok işlemcili faaliyetlerin çizelgelenmesinde
kullanmıştır. Algoritmada kromozomlar dolaylı bir şekilde kodlanmıştır.
Kromozomlar, her bir faaliyetin işlemci numarasını ve çizelgeleme kuralı bilgilerini
içermektedir. Algoritma aşamalı bir şekilde projeyi çizelgelerken, kromozomda
bulunan çizelgeleme kurallarına bağlı kalarak projeyi çizelgelemektedir. Çalışmada,
çizelgeleme kuralı olarak öncelik kuralları kullanılmıştır. Araştırmacı, geliştirdiği
algoritmanın rasyonel kabul edilebilir bir süre sonunda optimuma yakın çözüm
ürettiğini saptamıştır.
Şerifoğlu ve Ulusoy (1999), çalışmalarında erken ve gecikme ceza puanlı
çok işlemcili işlemcili işleri (paralel makine) çizelgeleme problemlerinde GA’yı
uygulamışlardır. İşlerin zamanında tamamlanmasının yanı sıra, ceza maliyetlerinin
de en küçüklenmesi problemin karmaşıklığını daha da artırmaktadır. Probleme
yönelik iki GA geliştirilmiştir. Algoritmanın biri çaprazlama operatörü kullanılarak,
diğeri de çaprazlama operatörü kullanılmadan hazırlanmıştır. 960 adet rastgele
üretilen problemler üzerinde yapılan testler sonunda, her iki GA’nın da küçük
problemlerde etkin sonuçlar verdiği görülmüştür. Ancak problemin büyüklüğü ve
karmaşıklığı arttığı durumda çaprazlama operatörlu GA’nın daha cazip olduğu
gözlenmiştir.
Güvenç (2000), bu çalışmada çok modlu, kesintisiz, kaynak kısıtlı proje
planlaması problemleri için bir GA yaklaşımı anlatılmaktadır. Önerilen yöntemi
uygulayabilmek için GARCS adında bir bilgisayar programı yazılmıştır. GARCS
programının ana amacı inşaat problemlerindeki kaynak tahsisi problemlerini
14
çözmektir. Problemin hedefi toplam proje süresinin ve mevcut kaynak profilindeki
sapmaların minimize edilmesidir. GARCS bir örnek problem üzerinde denenmiş ve
sonuçlar GA’nın geleneksel yöntemlere göre; çok modlu kaynak kısıtlı planlama
problemlerine daha hızlı ve iyi sonuçlar verdiğini göstermiştir.
Hartmann ve Kolisch (2000), çalışmalarında sezgisel yaklaşımların temel
özelliklerine değinmişler ve öncelik kurallarına dayanan X-Geçiş (pass) yöntemini
detaylı anlatmışlardır. Çalışmalarında; literatürde standart test örneklerini kullanarak
ustaca geliştirilen sezgisel (state of art heuristics) algoritmalarının performansını;
iterasyon sayısı, optimal değerden ortalama sapma ve hesaplama süresi gibi bir çok
açıdan değerlendirerek daha sonraki araştırmacılara yol göstermeye çalışmaktadırlar
Hartmann (2001), çalışmasında her faaliyeti çok aşamalı olan proje
çizelgeleme problemini ele almış ve proje bitirme zamanını en küçüklemek amacıyla
bir algoritma geliştirmiştir. Genetik kodlama, faaliyet listesi ve faaliyetlere atanan
aşamalar temel alınarak hazırlanmıştır. Standart örnek problemler üzerinde uygulama
yapan araştırmacılar, geliştirdikleri algoritmanın diğer sezgisel yordamlarla elde
edilen sonuçları aşarak optimum proje bitirme zamanından çok az bir sapma gösteren
sonuçlar elde etmişlerdir.
Vanhoucke vd. (2001); çalışmalarında, erken- geç ceza (penalty) maliyetleri
ile ağırlıklandırılmış KKPÇP’leri konu almışlardır. Çalışmada tüm faaliyetlerin
süresi, bir birim erken ve geç ceza maliyetleri ve yenilenebilir kaynak gereksinimleri
gibi değişkenlerin sabit (deterministik) olduğu varsayılmaktadır. Çalışmanın amacı,
ağırlıklandırılmış erken-geç ceza maliyetlerini minimize edecek şekilde projeyi
çizelgelemektir. Problemin bu özellikler ile çizelgelenmesi, özellikle tam zamanlı
uygulamalar açısından çalışmanın önemini daha da artırmaktadır. Araştırmacılar
geliştirdikleri algoritmayı rastgele üretilen problem seti üzerinde test ederek etkin
sonuçlar elde etmişlerdir.
Zamani (2001), çalışmasında geliştirdiği ve yüksek performans gösteren
algoritma, projenin bölümlere ayrılarak çizelgelenmesi ve daha sonra çizelgelenen bu
bölümlerin bir ağaç şeklinde birleştirilmesi mantığına dayanmaktadır (Dal–sınır
algoritması). Probleme ait her bir kısmi çizelge, kendi bünyesindeki faaliyetlerin
15
öncüllük ilişkileri ve kaynak kısıtlarını karşılayarak hazırlanmaktadır ve
tamamlanmayan faaliyetlerin alt sınırları her bir kısmi çizelgeyle birleştirilerek ve bir
ağaç halinde birbirine bağlanmaktadır. Dallanma işlemi (branching process), en
küçük alt sınırlı kısmi çizelgelerin yer alması ile yapılmaktadır ve dallanma işlemi,
optimal çizelge elde edilinceye kadar devam etmektedir.
En küçük alt sınırlı kısmi çizelgelerde dallanma yapılmasına rağmen,
algoritmadaki kısmi çizelgeler birbirinden bağımsız veri grubu gibi ele alındığından,
dallanmak için kısmi çizelge seçiminde büyük bellek ve işlem süresi ihtiyacı
duyulmamaktadır. Bu özelliği ile algoritma, 100 faaliyetli ve 6 farklı kaynak tipi
içeren kapsamlı KKPÇ problemlerinin çözümüne imkân verebilmektedir.
Çetin (2002), çalışmasında GA’yı ele alarak, uygulama alanlarından ve bir
araştırma algoritması olarak kullanma nedenlerinde bahsetmiştir. Çalışmada, GA ve
işleyişi ana hatları ile ele alınmıştır ve GA özellikleri özetlenmiştir.
Fığlalı ve Engin (2002), optimum çözümü zor olan, çok makinalı akış tipi
çizelgeleme problemlerinde GA ile çözüm performansının artırılmasında, etkili
çözüm parametre setini belirlemeye çalışmıştır.
Hindi vd. (2002), KKPÇP’ ni evrimsel algoritma ile çözmüşlerdir.
Çizelgeleme algoritmasında, karşılaştırmalı değerlendirme yapmak amacıyla iki
farklı problem kümesi kullanmışlardır. Birinci problem kümesinde 330 problem,
diğerinde 2040 problem hazırlamışlardır. Çalışmalarında önerdikleri algoritmanın,
en iyi çözümler ve bu çözümlerin ortalama hatalarının etkin olduğunu ileri
sürmektedirler. Ayrıca geliştirilen algoritmanın hesaplama süresinin orta düzeyde
olduğunu söylemektedirler.
Şerifoğlu ve Ulusoy (2002), her birinin birden fazla işlemcide işlenmesi
gereken n adet işin m katmanlı paralel işlemcili akış atölyesinin çizelgeleme
problemini optimize eden çalışmalarında, tüm işlerin tamamlanma sürelerini en
küçüklemeyi amaç edinmişlerdir. Önerdikleri algoritmada, 100 iş, 10 katman ve her
katmanda 5 işlemciye kadar işlemci içeren 400 problemi test ederek algoritmanın
etkin sonuçlar verdiğini göstermişlerdir.
16
Uçaner ve Özdemir (2002), içme suyu şebekelerinde ek klorlama
optimizasyon çalışması ile ek klorlamanın yapılacağı yerler, klor miktarı ve
düzeninin belirlenmesinde GA kullanılarak mevcut klorlama stratejisinin
geliştirilebileceğine yönelik bir çalışma yapmışlardır. Böylece su kalitesini artırırken
maliyetlerin azaltılacağına işaret edilmektedirler.
Wang ve Lu (2002), KKPÇP’lere yönelik geliştirdikleri algoritmayı,
literatürde karşılaşılan kıyaslamalı bir örnek üzerinde uygulayarak
değerlendirmişlerdir. 20 faaliyetten oluşan örnek problemin proje bitirme süresi;
kritik yol metoduyla yani kaynak kısıtı göz önüne alınmadan, 32 gün olarak
belirlenmiştir. Problemin sonucu, MS Project 2000 programı ile 49 gün olarak
belirlenirken, araştırmacılar kendi algoritmaları ile çözümü 46 gün olarak
bulmuşlardır. Algoritmanın çalışma süresi 2–3 saniyeden 6–7 saniyeye çıkarıldığında
ise proje tamamlama süresi 43 gün olarak belirlenmiştir.
Artigues vd. (2003), KKPÇP’leri statik ve dinamik ortamlarda
yorumlamaktadırlar. Dinamik ortamdaki bir KKPÇP’nin, başlangıç konumunda söz
konusu edilen parametrelerdeki değişime uyum sağlayabilmesi amacıyla yeni bir
algoritma geliştirmişlerdir. Bu uyumlaştırma iki şekilde olmaktadır. Birincisi,
değişim olduğunda projenin yeniden çizelgelenmesi, ikincisi ise cari çizelgede
değişimi yansıtarak kısmi değişim uygulanmasıdır. Çalışmada değişim; beklenmeyen
bir faaliyetin ortaya çıkması olarak ele alınmaktadır. Beklenmeyen bu faaliyetin,
statik ve dinamik KKPÇP’lere, proje bitirme zamanını optimum edecek şekilde
eklemek için, ekleme tekniği (insertion techniques) geliştirmişlerdir.
Debels vd. (2003), bu sezgisel çalışmalarında modifiye edilmiş rastgele
anahtar temsilini kullanmışlardır. Faaliyetlerin öncüllük ilişkileri göz ardı edilen bu
temsilde, öncelik kuralları uygunluğunu sağlamak için, seri SGS kullanarak
faaliyetlerin RK (random key-rastgele anahtar) değerini dizi sıra (rank order)
değerleri ile değiştirerek öncelik kısıtına uygunluğu sağlanmıştır. Literatürde j30, j60
ve j90 olarak adlandırılan, 30, 60 ve 90 faaliyetli projeler ele alınmıştır.
Algoritmanın, j30 problem kümesi için yerel çözümü kısa sürede verdiği
17
gözlenmiştir. Diğer büyük problemler kümesi olan j60 ve j90 problemleri için, başka
algoritmalarla yarışabilir nitelikte sonuçlar elde edilmiştir.
Taşkın (2003), rotalama problemlerini çözmede kullanılan yaklaşımları
incelemiş ve GA ile bir uygulama yapmıştır. Yapılan bir dizi deneysel çalışmanın
sonunda, literatürü doğrulayan sonuçlar bulunmuştur. Elitist strateji
kullanılmadığında, her toplumda bulunan en iyi çözüm değerlerinin bazen
kaybedilerek, toplumdaki çözümlerin inişli çıkışlı bir seyir izlediği belirlenmiştir.
Çözüme ulaşma zamanının azaltılması ve çözüm kalitesinin daha erken toplumlarda
yakalanabilmesi için özellikle büyük ölçekli GSP (Gezgin Satıcı Problemi )
problemlerinde elitist strateji (bakımız alt başlık 3.2.5. Uygun Olanların Seçilmesi)
oldukça büyük önem taşımaktadır. Genetik parametreler üzerinde çalışma yapılarak,
daha iyi çözümlere daha az sayıda toplumlarda ulaşmayı gerçekleştiren parametreler
belirlenmiştir.
Ke ve Liu (2004); çalışmalarında proje çizelgeleme problemini, faaliyetlerin
stokastik faaliyet süreli olduğu ve her bir faaliyetin tamamlanma sınırını aşmayacak
varsayımı ile ele almışlardır. Farklı yönetim ihtiyaçlarını karşılayabilecek şekilde
çizelgeleme problemini çözmek için, üç farklı stokastik model (beklenen maliyet
modeli, α-maliyet modeli ve olasılığı en büyükleme modeli) geliştirilmiştir.
Benzetim ve GA modelleri bütünleştirilerek (integrated) melez ve akıllı bir
algoritma (hybrid intellgent algorithm) geliştirmeye çalışmışlardır. Algoritmanın
etkinliğini göstermek içinde bazı sayısal örnekler tanımlanarak kullanılmıştır.
Çalışma sonucu elde edilen bulgular, melez ve akıllı algoritmanın proje çizelgeleme
problemlerinde etkin bir şekilde kullanılabileceğini göstermektedir.
Kılıç vd. (2004), çalışmalarında risk altında proje çizelgeleme problemi için
GA üzerine kurulu sezgisel çözüm yaklaşımları sunmaktadır. Problemde her
faaliyetle ilgili olarak tanımlanmış ve gerçekleştiğinde, sadece ilgili faaliyetlerin
süresini etkileyen riskler bulunmaktadır. Kaynak kısıtlarının olmadığı varsayılmış ve
algoritma iki amacı en iyilemek amacıyla hazırlanmıştır. Bu amaçlar, beklenen proje
süresini ve dört bileşenden oluşan beklenen toplam maliyeti en küçüklemektir.
Maliyet bileşenleri ise; genel giderler, işçilik maliyeti, risk azaltıcı önlemlerin
maliyeti ve gecikme maliyeti olarak ele alınmıştır.
18
Kromozomlar üzerinde toplam risk sayısı kadar gen bulunmakta, her bir gen,
ilgili risk için seçilmiş olan durumu temsil etmektedir. Rulet tekerleği seçimi, tek-
nokta çaprazlama ve bit mutasyonu operatörleri kullanılmıştır.
GA sonuçlarında etkinliği artırmak üzere, iyileştirme algoritmaları
geliştirilmiştir. Amaç, kritik olmayan faaliyetlerin risk seviyelerini düşürmek için
gereğinden fazla harcama yapmayı engellemektir. Kritik yol üzerindeki faaliyetlerin
risk seviyelerini ve dolayısıyla proje süresini değiştirmeden, kritik olmayan
faaliyetler için daha az maliyetli risk seviyelerinin seçilmesi sağlanmaktadır.
Karşılaştırma yapmak amacıyla GAMS kullanılarak her problem için bir yaklaşık
baskın çözümler kümesi oluşturulmuştur. GA koşumlarının sonuçları, 15 faaliyetlik
problemler için çok iyidir. Uygulama sonucunda; problem büyüklüğü arttıkça
GA’nın performansında düşme olduğu, iyileştirme algoritmalarının performansında
da gelişme olduğu sonucu çıkarılmıştır.
Debels ve Vanhoucke (2005), çalışmalarında GA’nın geleneksel başlangıç
toplumu yerine iki farklı başlangıç toplumu oluşturarak genetik işlemleri
uygulamışlardır. Her iki toplum da seri SGS ile oluşturulmaktadır. Toplumun biri
ileriye doğru çizelgeleme, diğeri de geriye doğru çizelgeleme tekniği kullanılarak
oluşturulmuştur. Toplumlar, faaliyet listesi şeklinde temsil edilmektedir. Seri SGS ile
çizelgeleme esnasında toplumun biri, diğer toplumun bilgisinden yararlanarak
değiştirilmektedir. Çalışma sonuçları, şimdiye kadar yapılan sezgisel algoritmalarla
kıyaslandığında en iyisi olarak görülebilmektedir.
Kim vd. (2005), çözümü zor problem olarak bilinen KKPÇP’lerin çözümü
için bulanık mantık denetleyicisi (fuzzy logic controller) ile birlikte melez bir GA
sunulmuştur. Problemin amaç fonksiyonu, proje tamamlama süresini ve toplam
gecikme cezasını en küçüklemek olarak tanımlanmıştır. Bu nedenle, probleme
geleneksel en iyileme (optimizasyon) teknikleri ile yaklaşmak oldukça güç olacaktır.
Çalışmada problem çözümüne yönelik sunulan yeni yaklaşım, bulanık mantık
denetleyicisi ile genetik operatörlerin tasarlanması temeline dayanmaktadır.
19
Çalışma sonunda elde edilen bulgular, bu yaklaşımın geleneksel GA ve
uyarlanmış GA’lardan elde edilen sonuçlardan daha iyisinin elde edildiğini
göstermektedir.
Kolisch ve Hartmann (2005), çalışmalarını 2000 yılında yine birlikte
yaptıkları ve yayınladıkları araştırmalarını (Hartmann ve Kolish,2000) güncellemek
amacıyla yapmışlardır. Bu çalışmalarında, literatürde çok sayıda yer alan
KKPÇP’lere yönelik sezgisel yöntemleri özetlemek ve sınıflandırmak istemişlerdir.
Araştırmacılar, böylece özetlenen ve sınıflandırılan sezgisel çalışma sonuçlarının,
bundan sonra yapılacak çalışmaların karşılaştırılması ve değerlendirilmesinde
kullanılarak nitelikli tartışmaların ve çalışmaların yapılmasını sağlamaya
çalışmaktadırlar.
Mendes vd. (2005), çalışmalarında kromozomları rastgele anahtar ile temsil
etmişlerdir. Çizelgelenecek faaliyetler, sezgisel öncelik kuralları kullanılarak
belirlenmektedir. Önerdiği algoritmanın etkinliğini, algoritmanın hesaplama
sonuçlarını literatürdeki çalışmalarla kıyaslama yaparak geçerli kılmaktadır.
20
ÜÇÜNCÜ BÖLÜM
GENETİK ALGORİTMA VE KAVRAMSAL BİLGİLER
Çalışmanın bu bölümünde GA’nın tanım ve temel kavramlarına, evrimsel
genetik işlemlere, bir problemin GA ile çözüm aşamalarına, GA’nın yarar ve
sakıncalarına yönelik bilgiler verilmektedir.
3.1. Genetik Algoritma ve Önemi
GA, deterministik yöntemlerle çözümü zor veya imkânsız olan problemlerin,
evrimsel aşamalardan geçirilerek çözülmesini sağlayan bilgisayar programıdır.
Karmaşık, kısıt sayısı fazla, amaç fonksiyonu kurulamayan ve kesin çözüm yöntemi
olmayan optimizasyon problemleri GA’nın ilgi alanına girmektedir. GA’lar, çözümü
zor optimizasyon problemlerinde, kesin çözüm olmasa bile yaklaşık bir çözümü kısa
sürede bulma özelliğine sahiptir.
.
GA en iyi çözümü, doğal seleksiyon ve doğal genetik aşamalara benzetim
yapılmış stokastik bir arama yöntemi ile bulmaktadır. Algoritma, kromozom adı
verilen ve rastgele çözüm kümelerinden oluşan bir toplum ile başlar. Başlangıç
toplumu daha sonraki üremelerde elde edilen başarılı kromozomlar ile sürekli
değişime uğramaktadır (Huang vd.,2005,s.267-290). GA’larda değişim, problemin
çözüm alternatiflerini artırmak açısından önemlidir. Böylece çözüm uzayı
genişletilerek, amaçlanan en iyi çözümü bulma olasılığı artırılmaktadır.
GA’lar rastgele örneklenen çözüm uzayı ile çalışmaya başlamaktadır. Doğal
evrimsel süreç de olduğu gibi; başlangıçta rastgele seçilebilen veriler üzerinde
üreme, çaprazlama ve mutasyon şeklinde üç temel işlem yapılmaktadır. Temel
işlemler, belirsiz (deterministik olmayan) işlemlerdir, sezgisel ya da rastgele olma
özelliği taşımaktadırlar. Dolayısıyla GA’lar sezgisel ve stokastik yöntemler olarak
kabul edilmektedir.
3.2. Genetik Algoritmanın Temel Kavramları
Bu alt başlık altında, GA’nın temel kavramlarına yer verilerek açıklanmaya
çalışılmıştır.
21
3.2.1. Kromozom (DNA Dizileri)
GA, problemin çözüm (kromozom) alternatiflerini içeren çözüm kümesi ile
başlatılmaktadır. Her kromozom, temsil ettiği çözüme ait bilgileri içermektedir ve
bilgiler bir dizi halinde kodlanmaktadır.
Kromozom üzerinde yer alacak bilgiler; 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
(Mori ve Tseng,1997,s.135). Böylece genetik işlemler ile daha etkili sonuçları
üretmek mümkün olmaktadır.
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. İkili
sayı sisteminde hazırlanan bir kromozomda, her bir bit, çözümün bir karakteristiğini
temsil etmekte (Chan vd.,2005,s.345) ve bilgisayar tarafından daha rahat ve hızlı bir
şekilde işleme tabii tutulmaktadır (Kurt ve Semetay,2001,s.3). Karar değişkenlerinin
tamsayı ya da reel olduğu problemlerde, ikili sistemde kodlanan kromozomlarda
bitlerden oluşan bir alt dizi, çözümün bir karakteristiği temsil etmektedir.
Kromozomların kodlanması, genellikle ikili sayı sistemi temel alınarak
kodlansada, tamsayı ve reel sayılar da kullanılmaktadır (Mitchell,1999,s.67).
Ö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.
3.2.2. Gen
Gen, bir canlının (bireyin) kalıtsal özelliklerinden herhangi birini taşıyan
parçadır. Bu nedenle kalıtımın fiziksel ve işlevsel birimi olmaktadır. Her gen, özel
bir işlev taşıyan kromozomların belli konumunda bulunan dizilerden/değerlerden
oluşmaktadır.
Kromozom üzerinde, belli bir konumda bulunan genler, temsil edilen
değişkenin değerini ifade etmektedir (Koza,1995,s.287). Her bir karar değişkeninin
22
sayısal değeri, bir geni temsil eder. Bir problemde kaç adet karar değişkeni varsa o
kadar da gen vardır.
Genlerin bir dizi halinde sıralanması ile ortaya çıkan genler dizisine
“kromozom” adı verilmektedir Böylece bir kromozomda, problemdeki karar
değişkenlerinin her birinin bir arada bir dizi halinde bulunduğu anlaşılmaktadır
(Şen,2004,s.25).
Algoritmanın başlangıcında, kromozomlara yerleştirilmesi karar verilen
genlerin sırasının GA işlemleri esnasında asla değiştirilmemesi gerekmektedir.
3.2.3. Toplum Büyüklüğü
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.
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 ihtimalini artıracaktır.
Gereğinden büyük alınması ise, GA’nın anlamlı sonuçlara geç ulaşmasına ve yavaş
çalışmasına neden olacaktır (Goldberg,1992,s.20; Kurt ve Semetay,2001,s.5). Büyük
toplumda çözüm uzayı daha iyi örneklenebileceğinden arama daha etkin yapılırken,
arama süresi artacaktır.
3.2.4. Uygunluk Değeri (fi ) ve Uygunluk Fonksiyonu
Mevcut toplumda bulunan iyi özelliklere sahip kromozomların bir sonraki
aşama için kullanılacak yeni topluma aktarılması, belirlenen kriterler dâhilinde
değerlendirilerek yapılmaktadır. GA’da uygunluk değerlendirmesi, bir uygunluk
fonksiyonu sonucu elde edilen uygunluk değeri, fi, ile yapılmaktadır.
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 (Chen
23
ve Zalzala,1997,s.531). 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 (Chan vd.,2005,s.348).
Algortimanı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.
Bireylerin uygunluk değerlerine göre üreme, çaprazlama ya da mutasyon
işlemleri uygulanmaktadır (Koza,1995.s.287). Çünkü kromozomların kalitesi,
uygunluk değerlerine göre ölçülmektedir. Uygunluk değeri en iyi olan kromozom,
problemin optimum çözümünü veren kromozomdur (Mori ve Tseng,1997,s.137).
Uygunluk değeri yüksek bireylerin seçilerek, yeni oluşturulacak topluma
aktarılması, GA’nın gücünü oluşturan başlıca faktörlerden biridir (Buckles ve
Petry,1992,s.2).
3.2.5. Uygun Olanların Seçilmesi
Seçim işlemi, “yetenekli olanın yaşaması” ilkesine uygun olarak
çalışmaktadır. Başlangıç toplumundaki kromozomlar arasından, en iyi uygunluk
değerine sahip olanlardan bazıları yeni topluma aktarılmakta, bazıları da ebeveyn
olarak seçilmektedir. Yeni toplumun diğer kromozomları, ebeveyn olarak seçilen
bireylere uygulanan genetik işlemler ile oluşturulmaktadır. Uygunluk değeri en iyi
olanların seçilme ve yeni topluma aktarılma şansı daha yüksektir.
Seçim yöntemi olarak geliştirilmiş birçok yöntem bulunmaktadır. Ancak
elitist strateji, rulet çarkı ve turnuva seçim yöntemleri en yaygın kullanılanlardandır
(Yeo ve Agyei,1998,s.271).
Elitist strateji kullanılarak uygunluk değeri en iyi olan birey, en kötü birey
ile yer değiştirerek yeni toplumun daha iyi bireylerden oluşması sağlanır. Böylece bir
yandan en yüksek uygunluk değerine sahip bireyin bir sonraki kuşağa aktarılamama
olasılığı ortadan kaldırılırken (Mendes vd.,2005,s.10; Kurt ve Semetay,2001,s.4),
24
diğer yandan maksimum ya da ortalama uygunluk değerinde beklenen artışın
optimum değere yansıması söz konusu olacaktır (Chen ve Chen,1997,s.1324).
Rulet çarkı, ilk defa Holland tarafından ortaya çıkarılmış bir yöntemdir. Bu
yöntemde, toplumdaki tüm bireylerin uygunluk değerleri, fi, hesaplanır. Bireylerin
uygunluk değerleri toplanarak toplumun uygunluk değeri elde edilir. Her bireyin
uygunluk değerleri, toplumun uygunluk değerine bölünerek, bireyin seçilme
olasılıkları elde edilir.
∑= n
jj
ii
f
fF (3.1)
Bireyler, seçilme olasılıkları (Fi) ölçüsünde rulet çarkında yer alırlar. Böylece
rulet çarkı üzerinde yüksek olasılık değeri ile temsil edilen bireylerin seçilme
olasılıkları artmaktadır. Bu durumda, bireylerin seçilme olasılıkları (Fi), uygunluk
değeri olarak kullanılmaktadır.
Ebeveynler, rulet çarkı üzerinden farklı yöntemlerle seçilebilmektedir. Seçim,
rastgele (Buckles ve Petry,1992,s.2), en yüksek olasılık değerine göre ya da eklemeli
oranlardan yararlanılarak yapılabilmektedir. Eklemeli oranlar, seçilme olasılıklarının
toplanması ile elde edilmektedir. Uygulamada, rastgele bir sayıya erişinceye kadar
eklemeli oranlar elde edilir ve son eklenen sayının ait olduğu çözüm seçilmek
suretiyle de işlem tamamlanabilir.
Turnuva seçim yöntemi, kolaylığı ve uygunluğu açısından en yaygın
olanıdır. Turnuva seçim yönteminde, önce toplumu oluşturan kromozomlardan
bazıları, belli kriterlere göre seçilmektedir. Daha sonra, bu kromozomlar
kıyaslanarak aralarında uygunluk değeri yüksek olan bir kromozom yeni topluma
aktarılmak üzere seçilmektedir. Böylece oluşturulan yeni toplum, bir önceki
toplumun kötü bireylerinden arındırılmaya çalışılmaktadır. Optimum çözüme hızlı
erişim sağlaması açısından önemli bir yöntemdir.
25
Turnuva seçim yönteminde, yerine koyarak ya da koymayarak rastgele
seçilen t adet bireyden oluşturulan gruba turnuva genişliği denir (Bolat
vd.,2004,s.267). 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, Tablo 3.1’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 (Yeo ve Agyei,1998,s.271).
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. Tablo 3.1’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.
Tablo 3.1. Turnuva Seçim Yöntemine Göre Uyumlu Kromozomların Seçilmesi
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
Kaynak: Yeo ve Agyei,1998,s.271
Ö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ğ
26
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.
Yukarıda bahsedilen ve GA uygulamalarında yaygın olarak kullanılan seçim
yöntemlerinden hiçbiri, henüz literatürde en iyi seçim stratejisi olarak
belirlenememiştir. Bu nedenle, son yıllarda yapılan çalışmalarda bazı araştırmacıların
bu seçim stratejilerinden bir karma oluşturdukları gözlenmektedir. Örneğin, çözümü
zor (global optimum çözümü olmayan) optimizasyon problemlerinde, rulet çarkı ve
elitist stratejinin birlikte uygulandığı bir GA çalışması gerçekleştirilmiştir (Nakamura
vd.,2005,s.924).
Bazı GA çalışmalarında ise, uyumlu ve uyumsuz ebeveynlerin seçilmesi yolu
ile oluşturulan yeni toplumlarda en iyi çözüm aranmaktadır. Bunların dışında, yeni
yöntemler geliştirilerek seçme işlemi ve seçilen ebeveynlerden oluşturulacak yeni
birey sayısı belirlenmektedir.
GA’nın doğası gereği, yeni topluma aktarılan en iyi bireyler, toplumlar
arasındaki değişimi yansıtmak amacıyla belli sayıda tutulmaktadır. Toplum
büyüklüğü sabit tutulan GA’larda, genetik işlemlerden yaralanılarak oluşturulacak
birey sayısı, k;
k = Toplum büyüklüğü (n) - aktarılan uyumlu birey sayısı
kadardır.
k adet yeni birey, rastgele veya yukarıda belirtilen seçim stratejileri ile seçilen
ve eşlenen bireylerden (ebeveynlerden) oluşturulmaktadır. Bu durumda, bir bireyin,
tekrarlı bir şekilde ebeveyn oluşumuna olan katkısı denetim altına alınabilmektedir.
Bu amaca yönelik olarak kullanılan yöntemlerden biri belirgin (deterministik)
27
örnekleme tekniğidir. Bir diğeride, uyumlu (iyi) ve uyumsuz (kötü) kromozomları
eşlemektir.
Belirgin örnekleme (deterministic sampling) tekniğinde her birey için rastgele
Ci değeri hesaplanmaktadır. Bireyler, RANDOM fonksiyonundan elde edilen Ci
sayısı kadar farklı ebeveyn oluşumuna katkıda bulunabilmek amacıyla
seçilebilmektedir. Fi, i. bireyin bulunduğu toplumdan seçilme olasılığı, ℓ kromozom
uzunluğu olmak üzere,
Ci = RANDOM(Fi. ℓ) + 1
şeklindedir (Buckles ve Petry,1992,s.2). Fi olasılık değeri, formül (3.1)’den
hesaplanmaktadır. Burada Ci sayısının tamsayı olması önem kazanmaktadır. Bu
nedenle tamsayı dönüşümünün yapılması gerekmektedir.
Pratikte bazı çalışmalarda, N kromozomlu bir toplumda, uyumlu (iyi) ve
uyumsuz (kötü) kromozomlar yarı yarıya ayrılmaktadır. İyi ve kötü kromozom
sayıları, Niyi ve Nkötü olmak üzere,
Niyi = Nkötü =N/2
olarak belirlenmektedir. GA çalışmalarında Niyi sayısını, bir sonraki alt başlık
(3.3.2)’de anlatılan çaprazlama oranına bağlı olarak belirlemek daha uygun olacaktır.
Çaprazlama oranı, Pc’ ye bağlı olarak Niyi sayısı,
Niyi = Pc N
ile hesaplanmaktadır. Yukarıdaki örnekte, çaprazlama oranının Pc =0,50 olarak
seçilerek iyi ve kötü kromozomların yarı yarıya ayrıldığı görülmektedir (Haupt ve
Haupt,2004,s.38).
Toplumun daha da iyileştirilmesi için, topluma ait bireylerin kendi aralarında
eşlenerek GA işlemlerinin rastgele uygulanması gerekmektedir. Bu aşamada
28
uygulanabilecek değişik yöntemler kullanılabilmektedir. Bu yöntemlerden başlıcaları
aşağıdadır:
• Niyi adet uygunluk değeri yüksek kromozomlar içerisinden sırası ile en iyisini
seçmek ve diğer eşi de Nkötü adet uygunluk değeri düşük kromozomlar
arasından ratgele seçimle eşleşme yapmak (Mori ve Tseng,1997,s.138).
• Niyi adet iyi kromozomları olduğu gibi bırakmak ve Nkötü adet kötü
kromozomlar arasından ratgele seçimle eşleşme yapmak.
• Böyle bir ayırıma gitmeden kromozomlar arasında sıralı eşleşme yapmak
(Şen, 2004,s.80).
Kromozomların eşlenmesinde, yukarıda sıralanmayan ve uygulamaya yönelik
geliştirilmiş olan daha farklı sezgisel yöntemlerde kullanılabilmektedir.
3.3. Genetik İşlemler ve Genetik Parametreler
Birçok problemin çözümünde iyi sonuçlar veren GA, üç temel genetik
işlemin uygulanması ile sonuçlandırılmaktadır. Bunlar üreme, çaprazlama ve
mutasyon işlemleridir. GA’ların vazgeçilemez unsurları olan genetik işlemler; yeni
toplumun oluşturulması, uyumlu kromozomların iyi özelliklerinin oluşturulan
topluma aktarılması, toplumların bir öncekilerden farklılaştırılması ve çözüm
uzayında farklı noktalara erişilmesi amacıyla gerçekleştirilen işlemlerdir. Bu
amaçları gerçekleştirebilmek için, seçilen ebeveyn kromozomlara ve bunlardan elde
edilen yeni kromozomlara uygulanmaktadır.
Algoritmanın, üzerinde genetik işlemler gerçekleştireceği kromozomlar, her
bir yeni toplum oluşturma aşamasının başlangıcında seçilmektedir. Bu nedenle
seçme işlemi, GA çalışmalarında önemli bir yer tutmaktadır.
Genetik işlemler, genetik parametre olarak adlandırılan ve toplum büyüklüğü,
çaprazlama oranı ve mutasyon oranı şeklinde sıralanabilen parametrelerden fazlası
ile etkilenmektedir. Genetik parametreler, genetik işlemler için bir sınır oluşturma
özelliğine sahiptirler. Bu nedenle genetik parametreler genetik işlemlerin etkinliği
üzerinde büyük etkiye sahiptirler.
29
Bir problem için uygun olarak belirlenen genetik parametre değerleri başka
bir problem için etkin sonuç vermeyebilir (Ikeuchi vd.,1998,s.36). Uygun
parametreler seçilerek yapılan genetik işlemler sonucunda, global sonuca ulaşma
olasılığı artmakta, buna rağmen algoritma global sonucu garanti edememektedir.
3.3.1. Üreme (Reproduction)
Üreme, uygunluk kriterlerine uyan bir kromozomun özelliklerinin, yeni
jenerasyona aktarılmasını sağlayan işlemdir. Uygun olarak seçilen kromozom çifti,
yeni toplumun bir ya da daha fazla kromozomunun oluşumuna katkıda
bulunabilmektedir. Ebeveyn olarak adlandırılan bu kromozom çiftinin özellikleri,
üreme sonucunda yeni topluma aktarılmaya çalışılmaktadır. Üreme işlemi
sonrasında yeni kromozomlar üzerinde tekrarlı bir şekilde işlem yapılmaması ve
yeni toplumda yeni bireylerin ebeveynlerinin birer kopyası olmasını engellemek
amacıyla çaprazlama ve gerekirse mutasyon işlemleri uygulanır.
3.3.2. Çaprazlama (Crossover)
Çaprazlama, biyolojik evrimsel süreçte olduğu gibi, ebeveynlerde bulunan
genlerin yeni oluşturulan bireylere aktarılmasıdır (Kurt ve Semetay,2005,s.3; Bolat
vd.,2004,s.267). İşlem, ebeveyn olarak seçilen kromozomlar üzerinde rastgele
belirlenen konum/konumlarda, bilgilerin çapraz bir şekilde yer değiştirilmesi yolu
ile gerçekleştirilmektedir. Böylece ebeveynlerin genleri yeni bireylere (çocuklara)
kalıtsallaştırılmakta, kromozomlar arasındaki genetik bilgi sürekli olarak
değişmektedir.
Toplumda bulunan uyumlu kromozomlardan daha uyumlu bireyler elde
etmek için çaprazlama ve mutasyon işlemlerinin uygulanması gerekmektedir (Mori
ve Tseng,1997,s.138). Çaprazlama işlemi, toplumda bulunan kromozomların belirli
bir oranına uygulanmaktadır. Çaprazlama oranı olarak adlandırılan bu oran,
algoritmanın başında ya da her yeni toplumu oluşturmadan önce belirlenmektedir.
Böylece seçilen ebeveyn kromozomlar, çaprazlama oranı ölçüsünde yeni bireyler
oluşturmak üzere çaprazlanırlar.
Çaprazlama oranının yüksek olması, toplumda değişime uğrayan kromozom
sayısının fazla olacağını diğer bir deyişle, yeni kromozom sayısının artacağını
30
göstermektedir (Kahvecioğlu,2004,s.48). Gereğinden yüksek olarak belirlendiği
durumda, mevcut toplumda bulunan iyi kromozomların bir sonraki topluma
taşınamama riskini doğurması beklenmektedir.
Yüksek çaprazlama oranı, çözüm uzayını hızlı bir şekilde aramayı sağlarken
diğer yandan da iyi sonuçlar verecek kromozomların atlanmasını ya da GA’nın
performansının düşmesine neden olabilecektir (Nearchou,1998,s.579). Çaprazlama
oranın düşük olarak belirlenmesi halinde ise, değişime uğrayacak kromozom sayısı
azalacak ve dolayısıyla algoritma yavaşlayarak sonuca geç ulaşılacaktır.
Toplumda N üye varsa, Pc çaprazlama oranı olmak üzere, PcN kadar üye
çaprazlama için seçilmelidir (Şen,2004,s.92). Bu üyelerin seçimleri, tüm üyeler
arasından rastgele bir şekilde yapılabildiği gibi, uyumluların seçilmesi yöntemleri
(elitist strateji, rulet çarkı gibi) kullanılarak da yapılabilmektedir.
Çaprazlama işleminde ebeveyn olarak seçilen iki kromozomun, çaprazlama
konumundan itibaren kromozomdaki karakter/karakterler yer değiştirilebilmektedir.
Böylece ebeveynin genlerinden oluşan iki yeni birey oluşturulmaktadır. Aşağıda
Şekil 3.1’de verilen çaprazlama örneği, j konumunda tek noktalı çaprazlamadır.
Çaprazlama öncesi
1. kromozom [X1 X2….......XjXj+1Xj+2 ..……Xn] ve
2. kromozom [Y1 Y2……...YjYj+1Yj+2……..Yn] ebeveyn olmak üzere
seçilir.
Çaprazlama sonrası
1. yeni kromozom [X1 X2….......XjYj+1Yj+2 ….....Yn] ve.
2. yeni kromozom [Y1 Y2….......YjXj+1Xj+2 ….....Xn] şeklinde oluşmaktadır.
Şekil 3.1 : Tek Noktalı Çaprazlama İşlemi
Problemin tipine göre kullanılması gereken dört farklı çaprazlama operatörü
bulunmaktadır (Bolat vd.,2004,s.267):
• Tek noktalı çaprazlama
• İki noktalı çaprazlama
• Çok noktalı çaprazlama
31
• Tekdüze (Uniform) çaprazlama
Tek noktalı çaprazlamada, rastgele seçilen kromozom çiftinde, çaprazlama
yapılacak bölge rastgele seçilerek çaprazlama yapılmaktadır.
İ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 elde
edilmektedir. Çaprazlama üç parçaya da uygulanırsa altı yeni kromozom elde
edilmektedir.
Ç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 (Şen,2004,s87).
Ç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.
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
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
32
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 (Bolat vd.,2004,s.268).
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.
Yukarıda anlatılan çaprazlama operatörleri, aşağıdaki Şekil 3.2’de örneklerle
gösterilmektedir.
Çaprazlama öncesi seçilen kromozomlar:
1.kromozom : [0010101100]
2.kromozom : [0111110000]
Çaprazlama çeşitlerine göre oluşan kromozomlar:
Tek noktalı
çaprazlama
İki noktalı
çaprazlama
Çok noktalı
çaprazlama
Tekdüze çaprazlama
maske: [0011011000]
[0010100000] [0011111100] [0011010000] [0011110100]
[0111111100] [0110100000] [0110111100] [0110101000]
Şekil 3.2 : Çaprazlama Çeşitleri ve Örnekleri Kaynak : Bolat vd.,2004,s.268
Yapılan araştırmalarda, tekdüze çaprazlama yönteminin tek ve iki noktalı
çaprazlamadan daha etkin olduğu saptanmıştır. İki noktalı çaprazlamanın da tek
noktalı çaprazlamadan daha etkin olduğu saptanmıştır (Haupt ve Haupt,2004,s.112).
Bunun nedeni, tekdüze çaprazlamanın diğer çaprazlama yöntemlerinin genel bir hali
oluşudur.
3.3.3. Mutasyon (Mutation)
GA’da kullanılan mutasyon (değişim), doğal genetik mutasyon fikrinden
ortaya çıkmıştır. Kromozomların başkalaştırılması ya da farklılaştırılması için
33
kullanılan bir operatördür (Chan vd.,2005,s.349). Çaprazlama işlemi ile elde
edilemeyecek farklılıkları oluşturmak amacıyla yapılmaktadır. Böylece
ebeveynlerden oluşan bireylerin, daha önceki bireyleri temsil etmesi önlenerek,
sonuca daha hızlı bir şekilde erişme imkânı sağlanabilmektedir (Kurt ve
Semetay,2001,s.3).
Mutasyon, kromozomdaki genlerin değişimidir (Buckles ve Petry,1992,s.2)
ve problemin yapısına bağlı olarak aşağıdaki mutasyon operatörlerinden biri
seçilebilir (Bolat vd.,2004,s.268):
• Ters çevirme
• Yer değişikliği
• Ekleme
• Karşılıklı değişim
Mutasyon çeşitlerinin, ikili sistemde kodlanan bir kromozom üzerinde
uygulanmasına ilişkin örnekler Şekil 3.3’de verilmektedir.
Yukarıda belirtilmeyen ve kromozomdaki genlerin tamamlayıcısı
(complement) ile değiştirilmesi şeklinde yapılan mutasyon işlemi, ikili sayı sistemine
göre yapılan kodlamalarda yoğun kullanılan bir yöntemdir (Buckles ve
Petry,1992,s.2). Yöntemde, rastgele seçilen bir alt dizede; 0’lar 1 ile 1’ler de 0 ile
değiştirilmektedir.
Ters çevirme mutasyonunda, rastgele bir alt dizi seçilir ve alt dizideki
genlerin sıraları tamamen ters çevrilerek bulunduğu yere yeniden yerleştirilmektedir.
Yer değişikliği mutasyonunda, rastgele bir alt dizi seçilir ve rastgele bir yere
yerleştirilmektedir. Karşılıklı değişim mutasyonuda rastgele seçilen iki genin yerleri
değiştirilmektedir. Eklemede ise rastgele seçilen parça yine rastgele seçilen bir
konuma yerleştirilir (Bolat vd.,2004,s.268).
Her hangi bir konumda yapılan bir genetik değişim asla geri alınamaz ya da
değiştirilemez (Mitchell,1999,s.118). Mutasyonun bu özelliği nedeniyle bazı iyi
kromozomların tahrip edilmemesi göz önünde bulundurulmalıdır. Ebeveynlerin
34
kromozom yapıları benzediği bazı durumlarda mutasyon uygulanabilmektedir (Chan
vd.,2005,s.349).
Mutasyon öncesi seçilen kromozom: [0111000101]
Mutasyon sonrası oluşan kromozom:
Ters çevirme Yer değişikliği Ekleme Karşılıklı değişim
[0100110101] [0101011100] [0101000101] [0011010101]
Şekil 3.3 : Mutasyon Çeşitleri ve Örnekleri Kaynak : Bolat vd.,2004,s.269
Mutasyon, çaprazlama işlemini takip eden bir işlemdir ve bir bireyde rastgele
değişimi sağlayarak yeni birey oluşmasına olanak verir. Belirli mutasyon oranlarına
göre, kromozom üzerinde bazı genlerin yerleri ile oynanayarak ya da genleri
değiştirerek uygulanır.
Pm mutasyon oranı ve ℓ kromozom uzunluğu olmak üzere, aşağıda verilen
formül sonucu olan “tamsayı” değeri;
ℓ. Pm≈ tamsayı
bir kromozom içinde sol baştan hangi karakterde mutasyon yapılacağına karar
vermek amacıyla kullanılmaktadır (Şen,2004,s.93).
Mutasyon oranı (Pm), algoritmanın başında ya da her jenerasyon başında
belirlenmektedir. Bir toplumda yaklaşık olarak (Pm.N.ℓ) adet karakterde mutasyon
meydana gelmektedir. Burada, N toplum büyüklüğü ve ℓ kromozom uzunluğudur. GA’nın tamamen rastgele olmasından kaçınmak için mutasyon oranını çok yüksek
seçilmemesi gerekir.
Mutasyon oranını çok yüksek seçilmesi, arama işleminde aşırı rastgeleliğe
sebep olurken, çözüm uzayının da aşırı farklılaşma riskini artıracaktır. Benzer şekilde
düşük oran ise düşük farklılaşma ve optimuma yakın çözümler üretilmesine neden
olacaktır (Nearchou,1998,s.579). Bir çok araştırmacı, uygun Pm oranının 1/N ≤ Pm
ve Pm ≥ 1/ ℓ olmasını önermektedir (Yeo ve Agyei, s.273).
35
Mutasyon ile değişime maruz kalan bir gende (değişkende), λ gen uzunluğu
olmak üzere, beklenen değişim; E(G),
∑=
=λ
λ 1 211)(
iiGE
formülü ile hesaplanmaktadır ve değişken değerinde çok fazla bir değişime neden
olmamaktadır. Örneğin gen uzunluğu λ=4 bit ise
E(G)=1/4(0.5+0.25+0.125+0.0675)
=0.23563
kadar bir değişim beklenmektedir. Böylece mutasyon ile çözüm uzayı dışındaki
farklı noktalara sıçrayarak, algoritmanın daha ayrıntılı araştırma yapmasına olanak
tanınmaktadır. Pratik çalışmalarda, algoritmanın tamamen rastgele olmasını
engellemek amacıyla mutasyon oranı, Pm değerinin 0,01 ile 0,001 arasında alındığı
görülmektedir (Şen,2004,s.91).
3.4. Genetik Algoritmanın Sonlandırma Koşulu
GA’nın bulanık olan yanlarından biri sonlandırma aşamasıdır. Bir GA’nın
kaç kez yinelendiği, yani jenerasyon sayısının ne olacağı konusunda kesin bir
yaklaşım mevcut bulunmamaktadır (Mitchell ve Taylor,1999,s.595). GA’da bulunan
evrim sürecinden dolayı, kesin çözüm elde edilip edilemediği bilinememektedir.
Ancak en iyi çözüme devamlı bir şekilde yaklaşıldığı bilinmektedir (Uçaner ve
Özdemir, 2002, s.157). Daha iyi olarak seçilen bu toplumdaki çözüm kümesinin daha
iyi sonuçlar üretmesi Darwin’in evrim sürecini yansıtmaktadır. Bu süreç, istenen
çözüm sağlanıncaya kadar ya da istenilen yineleme (iterasyon, jenerasyon) sayısı
tamamlana kadar devam etmektedir.
Yaygın olarak kullanılan sonlandırma kriteri olan jenerasyon (iterasyon)
sayısı, problemin yapısı ve çözüm uzayının büyüklüğü olmak üzere iki faktöre bağlı
olarak belirlenmektedir (Chan vd.,2005,s.350).
36
GA’nın sonlandırılması konusunda diğer bir yaklaşımda, jenerasyonlarda
elde edilen sonuçlar arasında bir fark kalmadığında ya da önceden belirlenen bir
değere yakınsadığında sonlandırılmasıdır (Haupt ve Haupt,2004,s.47;
Kahvecioğlu,2004,s.43).
Jenerasyonlar arasında bir fark kalmadığı durumu ise; kromozomların
uygunluk değerlerinin birbirinden farklı olmaması (tüm i ve j’ler için, fi =fj ise)
şeklinde ifade edilmektedir (Buckles ve Petry,1992,s.2). Bu durumda, artık
oluşturulan yeni toplumlarda bir değişim olmadığı, dolayısıyla uygunluk değerlerinin
bir önceki toplumla aynı olduğu anlamına gelmektedir.
Önceden belirlenen bir değere yakınsadığında sonlandırılması durumu ise
çoğunlukla pratikte uygun olmayan bir durumdur. Ancak test amacıyla, çözümü
önceden bilinen problemlerde kullanılabilmektedir.
GA’yı sonlandırmak amacıyla kullanılabilecek en iyi tercihler;
• seçilen en iyi kromozom, bilinen en iyi çözüme ulaştığında,
• jenerasyonlarda tekrarlı bir şekilde, en iyi kromozom aynı olduğunda,
• belirlenen istatistiksel değerlere erişildiğinde (toplum maliyet
ortalaması, standart sapması),
• belirlenen jenerasyon sayısı tamamlandığında,
• jenerasyon sonuçları açısından bir gelişme olmadığında,
• optimuma yakın bir değere erişildiğinde
şeklinde olmaktadır (Haupt ve Haupt,2004,s.109).
GA’nın karar değişkenleri çözüm uzayında gezintisi sırasında, amaç
fonksiyonunda değişik değerleri gözden geçirişini sınırlandırmak amacıyla, farklı
kriterler önerilmektedir. Sıkça kullanılan sonlandırma kriterleri, iterasyon sayısı,
yeni toplumlar (nesiller) için oluşturulan çocuk (offspring) sayısı (Wang ve
Lu,2002,s.1979) ve algoritmanın çalışma süresidir (Naphade vd.1997,s.308; Brucker
vd.1999,s.18).
37
Uygulamalarda kullanılan sonlandırma kriterlerinden bir diğeri de, art arda
oluşturulan toplumların en iyi amaç fonksiyonu değerleri arasında, bağıl (göreceli)
bir farkın kalmaması durumudur. Algoritmada oluşturulan toplumların, daha iyi
çözümlere erişip erişemediği bağıl hata değeri α ile ölçülmektedir. Toplumların en
iyi amaç fonksiyonu değerleri H1 ve H2 arasındaki bağıl hata, aşağıda verilen formül
ile hesaplanabilir.
α =2
21100H
HH −
Eğer α<5 ise GA işlemlerine son verilir. Aksi halde, yeni toplumlar ve bu
toplumlar içinde genetik işlemlerle çözüm uzayında farklı noktalara ulaşılmaya
çalışılır (Şen,2004,s.93). Algoritma eğer iyi bir çözüme yakınsama yapmıyorsa, GA
parametrelerinde değişim yapılabilir. Çaprazlama yöntemi, toplum büyüklüğü,
kromozomun kodlama sistemi ya da mutasyon oranı gibi parametrelerin
değiştirilmesi ile GA yeniden denenir (Haupt ve Haupt,2004,s.109).
3.5. Genetik Algoritma Aşamaları ve Akış Şeması
Algoritma, toplum adı ile anılan bir çözüm, diğer bir ifadeyle kromozom
kümesi ile başlar. İyi olan başlangıç toplumundan yararlanarak, uygunluk
durumlarına göre seçilen çözümlerden yeni ve daha iyi bir toplum oluşturulur.
3.5.1. Genetik Algoritma Aşamaları
En basit bir GA aşağıda belirtilen süreçlerden oluşmaktadır (Mitchell ve
Taylor, 1999,s.594):
1. Toplum oluşturulması: Verilen karmaşık problemlerin aday çözümlerinden
(kromozom) oluşan bir toplum oluşturulmasıdır. Kromozomlar, 0 ya da 1
bitlerinden oluşan bir dizi şeklinde ile tanımlanmaktadır.
2. Uygunluk değerlendirmesi: Toplumdaki her bir kromozoma sayısal bir değer
atayan uygunluk fonksiyonu, kromozom kalitesini, aday çözüm olup
olmayacağı şeklinde ölçer.
3. Yeni toplum oluşturulması: Yeni toplum oluşturulması için genetik
operatörlerin toplumdaki kromozomlara uygulanmasıdır. Bu operatörler;
seçim, çaprazlama ve mutasyondur.
38
Tipik bir GA aşağıdaki aşamaları gerçekleştirmektedir (Mitchell ve
Taylor,1999,s.594):
1. N kromozomdan oluşan başlangıç toplumunun rastgele oluşturulması.
2. Toplumdaki her bir kromozoma ait fi 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. Mevcut toplumun, oluşturulan yeni toplum ile değiştirilmesi.
5. 2. Adıma gidilmesi.
2-5. 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.
Basit bir GA benzer şekilde, başlangıç toplumu göz önünde bulundurularak,
aşağıda verildiği gibi dört aşamalı olarak açıklanmaktadır (Vose,1999,s.44):
1. İki ebeveynin, seçme fonksiyonu (ya da seçim kriteri) uygulayarak seçilmesi.
2. Çaprazlama işlemi ile ebeveynlerin mutasyona uğramış çocuğunun yani yeni
bireyin üretilmesi.
3. Yeni bireyin bir sonraki jenerasyona dâhil edilmesi.
4. Bir sonraki jenerasyonun (toplumun) üye sayısı, r gibi bir sayıdan küçükse,
adım 1’den başlanarak işlemin devam edilmesi.
39
Sonuç olarak GA’lar, belirlenen başlangıç çözüm (kromozom) kümesine
genetik işlemlerin uygulanması ile oluşturulan yeni çözüm kümelerinde, amaç
fonksiyonunun değişik değerlerini gözden geçirme işleminden ibarettir.
3.5.2. Genetik Algoritma Akış Şeması
GA’lar başlangıç toplumuna uygulanacak her bir genetik işlemlere yönelik
kararların alınması ve yordamlarının (procedure) önceden belirlenmesi koşuluyla
hazırlanırlar. Algoritma Şekil 3.4’deki akış şemasında da gösterildiği gibi işlemler
sırasını takip etmektedir.
40
Şekil 3.4: GA Akış Şeması
Başlama
Başlangıç toplumu oluşturma
Uygunluk değerlerinin
hesaplanması
Yeni toplumu oluşturma
Genetik işlemlerin uygulanması • Seçme • Çaprazlama • Mutasyon
Sonlandırma kriteri
Bitiş
Hayır
Evet
41
Basit bir GA’nın başarısı; aday çözümlerin nasıl kodlanacağına, toplum
büyüklüğüne, seçim, çaprazlama ve mutasyon operatörlerinin olasılık ve detaylarına
ilaveten, maksimum üreme sayısı (iterasyon) gibi detaylara bağlıdır (Mitchell ve
Taylor, 1999,s.594).
3.6. Genetik Algoritmanın Yararları ve Sakıncaları
GA literatürü çok sayıda başarılı uygulamaların varlığını gösterirken, birçok
uygulamada da GA’nın zayıf ya da yetersiz sonuçlar verdiği gözlenmiştir
(Mitchell,1999,s.155). GA’nın hangi koşullarda ve uygulamalarda iyi sonuçlar
vereceği konusunda kesin bir şey söylemek kolay olmamaktadır.
Şimdiye kadar gerçekleştirilen uygulamalar, GA’nın başarısının birden fazla
kritere bağlı olduğunu göstermektedir. Başarılı sonuç elde etmek amacıyla belirlenen
bu kriterler; aday çözümlerin kodlanması yöntemi, operatörler ve kabul edilen
parametreler olarak tanımlanmaktadır.
Uygunluk fonksiyonunun verimli ve hassas olması, GA’nın başarısında
oldukça önemli yer tutmaktadır (Bolat vd.,2004,s.267). Çünkü uygunluk
fonksiyonları kromozomları problemin parametreleri haline getirmekte ve bunlara
göre hesaplama ya da değerlendirme yapılmaktadır.
Geleneksel optimizasyon yaklaşımları başarısızlığa uğradığında, GA’nın
getirdiği yararlar merak uyandırmış ve şaşırtıcı sonuçlar vermiştir. GA
kullanılmasının başlıca yararları aşağıda belirtilmektedir (Haupt ve Haupt,2004,s.23-
24):
1. GA’nın sürekli ya da kesikli değişkenler içeren optimizasyon problemlerinde
optimum sonuçlar vermesi.
2. İkincil (derivative) bilgiye gereksinim duyulmaması.
3. Çok sayıdaki değişkenleri kapsayan modellerde uygulanabilmesi.
4. Çözümleri geniş çözüm uzaylarında eş zamanlı bir şekilde taraması.
5. Oldukça karmaşık maliyet/kar fonksiyonlarının değişkenlerini optimize
edebilmesi.
6. Kodlanan değişkenlerde optimizasyonun yapılması.
7. Üretilen, deneysel verilerle ya da analitik fonksiyonlar ile çalışması.
42
Optimizasyon problemlerinde GA’nın kullanılmasının üç önemli yararı
mevcuttur (Chen ve Chen,1997,1323):
1. Optimum sonuç elde edildikten sonra, duyarlılık analizinin yapılmasına gerek
duyulmamasıdır. Duyarlılık hesaplamaları genellikle zor ve zaman gerektiren
işlemlerdir. Ticari yazılımlar kullanılarak hesaplanması ise genellikle
imkânsızdır.
2. Karma değişkenli problemlerin çözümünde kolaylık sağlamasıdır. GA’nın
kodlama sistemi nedeniyle, problemde bulunan sürekli değişkenler, istenilen
doğruluğa yaklaşmaktadır.
3. Global optimumu bulma olasılığının daha yüksek olmasıdır. Oluşturulan her
yeni toplumda daha uyumlu bireylerle global optimum çözüme erişme şansı
her yinelemede artacaktır.
GA’nın başarısı, genlerde kodlanan bilginin, genetik işlemler ve özellikle
çaprazlama ile genlerin sürekli farklı kombinasyonlarda bir araya gelmesi ve bunlar
içerisinden en başarılı sonucu verenlerin seçilmesi ilkesine dayanmaktadır.
GA’nın sakıncaları ise, sürekli ya da karma değişkenli problemlerde
optimuma yakın çözümlerin elde edilmesidir. Bunun sebebi de sürekli değişkenlerin,
kesikli değişken olarak yaklaşık değerine kodlanması mantığına dayanmaktadır
(Chen ve Chen,1997,1324). Gerçek optimal değeri elde etmek için GA ve diğer
arama yöntemlerinden birini içeren karma (hybrid) bir yöntem kullanmak
gerekmektedir.
Diğer bir sakıncada, GA’nın bir fonksiyonu tekrarlı olarak hesaplamasıdır.
Uygunluk fonksiyonu, (jenerasyon sayısı x toplum büyüklüğü) sayısı kadar
hesaplanmak zorundadır.
GA’nın sakıncalarından bir başkası da; en iyi çözümün mevcut çözümler
arasından seçilmesi nedeniyle, göreceli olmasıdır. Bu durum, ulaşılan çözümün en iyi
çözüm olup olmadığının kontrol edilmesine imkân vermeyebilir. Bu nedenle GA’lar
en iyi çözümün ne olacağının bilinmemesi durumunda kullanılmaktadır
(Şen,2004,s.63).
43
3.7. Genetik Algoritmanın Diğer Yöntemlerle Kıyaslanması
Genetik tabanlı algoritmaya dayanan uygulamalar, GA’nın geleneksel en
iyileme (optimizasyon) yöntemlerinden daha üstün olduğunu göstermektedir (Chen
ve Zalzala,1997,s.531).
Konu edilen problem geniş ve karmaşık bir yapı içerdiğinde, eldeki bilgilerin
araştırma alanını daraltmada yetersiz kaldığı durumlarda ya da geleneksel arama
yöntemleri ile etkin sonuç alınamadığı durumlarda GA’lardan yararlanılmaktadır
(Bolat vd.,2004,s.265)
GA’nın en iyileme problemlerindeki üstünlükleri göz önüne alındığında,
özellikle karmaşık optimizasyon problemlerinin çözümünde neden tercih edildiği
daha iyi anlaşılmaktadır (Kahvecioğlu,2004,s.44–50):
1. GA’lar parametrenin kendisi ile değil parametre kümesinin kodlanmasıyla
çalışmaktadır. f(x) amaç fonksiyonunu en iyileme problemlerinde, x
parametresi; sonlu uzunlukta bir dizi olarak kodlanmaktadır. En iyileme, bu
kod kümesi ile elde edilmeye çalışılmaktadır.
2. GA tek bir noktada ya da yönde değil, noktalar kümesi içinde en iyi değeri
araştırmaktadır. Algoritmanın bu özelliği, araştırma esnasında her seferinde
daha iyi sonuçlara ulaşılmasını garantilemektedir.
3. GA’lar amaç fonksiyonu dışında yardımcı bilgilere ihtiyaç duymazlar.
Verimli bir araştırma yapılması, her bir dizinin (kromozomun)
değerlendirilebileceği bir amaç fonksiyonun tanımlanmasına bağlıdır. Bu da
GA’nın performansını artıran önemli bir özelliktir.
4. GA’lar kesin bilinen kuralları değil, olasılığa dayalı kuralları kullanmaktadır.
Rastgele seçim tekniği kullanılarak, araştırma uzayının başka bir tarafına
yönlenme yapılmaktadır.
3.8. Genetik Algoritmanın Uygulama Alanları
GA, son yıllarda geliştirilmiş olup, geniş bir alanda uygulamaya başlanmıştır.
Bilgisayar bilimi, robot bilim, işletme, mühendislik, eğitim, matematik, tıp ve ziraat
gibi geniş bir yelpazede uygulama örnekleri ile karşılaşılmaktadır.
44
Genetik işlemlere dayanan algoritma, bilimsel ve mühendislik
uygulamalarında ve modellerinde karşılaşılan çok sayıda ve farklı problemlere
uyumlaştırılarak hazırlanmaktadır. GA uygulama alanlarından bazılarını aşağıdaki
gibi sıralayabiliriz (Mitchell,1999,s.15-16).
Optimizasyon: GA’lar devre şemaları (circuit layout) ve iş-atölye planlamaları gibi
sayısal ve birleştirici (combinatorial) optimizasyon problemlerini içeren çok çeşitli
alanlarda kullanılmaktadır.
Otomatik Programlama: GA’lar özel amaçlı bilgisayar programlarının
geliştirilmesinde, hücresel hareketliler (cell automata) ve ağ sıralanması (sorting
networks) gibi hesaplamaya dayalı yapıların tasarımında kullanılmaktadır.
Yapay Zaka ile Öğrenme (Machine Learning): GA’lar hava durumu ve protein
yapısını önceden tahmin gibi sınıflandırma ve öngörü işlerini içeren yapay zaka ile
öğrenme uygulamalarında kullanılmaktadır. GA’lar aynı zamanda sinir ağlarının
ağırlıkları, sınıflayıcı sistemlerin (classifier system) kuralları ya da sembolik üretim
sistemleri ve robotlar için algılayıcılar gibi yapay zeka ile öğrenmenin çeşitli
özelliklerini geliştirmekte de kullanılmaktadır.
Ekonomik: GA’lar yenilik yaratma (innovation) işlemlerinin modellenmesinde,
teklif verme stratejilerinin geliştirilmesinde ve ekonomik pazarların geliştirilmesinde
kullanılmaktadır.
Sosyal Sistemler: GA’lar böcek kolonilerindeki sosyal davranışın evrimi ve daha
genel olarak, çok temsilcili (multi agent) sistemlerde işbirliği ve iletişimin gelişmesi
gibi çeşitli sosyal sistemlerin evrimsel yönlerini araştırmakta kullanılmaktadır.
Toplum Genetiği (Population Genetics): GA’lar, üreme (recombination) yoluyla
yeni nesillere (toplumlara) aktarılan ve ebeveynden geçen kalıtsal özelliklerin
evrimsel yönünün araştırılmasında kullanılmaktadır.
45
Evrim ve Öğrenme (Evolution and Learning): GA’lar kişisel öğrenmenin ve
nesilden nesile öğrenmenin birbirlerini nasıl etkilediğini araştırmakta
kullanılmaktadır.
Yukarıda anlatılan ve daha birçok alanda GA uygulamalarının başarılı
sonuçlar vermesi, hem araştırmacıların konuya ilgisini daha da artırmış hem de
GA’nın konferans ve yayınlarda bilgisayar biliminin bir alt dalı haline gelmesini
sağlamıştır.
Birçok yapısal optimizasyon problemleri GA ile başarılı bir şekilde
çözülebilmektedir (Chen ve Chen,1997,s.1323). Özellikle optimizasyon
problemlerinde, daha etkin sonuçlar elde etmek için GA ile başka teknikler bir arada,
diğer bir deyişle karma GA’lar kullanılmıştır.
Bir grup araştırmacı ise, GA’yı bulanık mantık tekniği ile bir arada
kullanarak, belirsizlikleri aşmaya çalışmışlardır. Buna örnek olarak, tedarik
zincirinde talep dalgalanmalarından kaynaklanan belirsizliklerin aşılması çalışması
verilebilir (Chan vd.,2005,s.345).
3.9. Genetik Algoritmayı Kullanma Nedenleri
GA’lar başlangıç çözüm kümesinden başlayarak, sonraki yinelemelerinde
rastgele değişimle yeni çözüm kümeleri oluşturmakta ve en iyi çözüm, bu kümeler
içerisinde rastgele aranmaktadır. Bu özelliği nedeniyle GA’lar, uygunluk
fonksiyonunu en iyileyen çözümleri hızlı bir şekilde aramakta ve diğer optimizasyon
algoritmalarının yetersiz kaldığı, karmaşık problemlerin çözümünde etkili olduğu
bilinmektedir
Özellikle kaynak kısıtlı proje çizelgeleme gibi problemlerde faaliyet sayıları
açısından herhangi bir kısıt yaşanmamakta; bu nedenlede, çözümü zor olan bu tarz
problemlerde algoritmayı kullanma ihtiyacı doğmaktadır.
GA’lar, aşağıda belirtilen koşullardan biriyle karşı karşıya kalındığında,
kullanımı faydalı ve etkili olacaktır:
• Araştırma alanı geniş, karmaşık ve anlaşılması zayıfsa.
46
• Konu hakkında bilgi az ya da mevcut bilgiler araştırma alanını
daraltmada yetersiz kalıyorsa
• Deterministik yöntemler ile çözüm zor ve uzun hesaplamalar sonunda
elde ediliyorsa.
• Geleneksel yöntemlerden yararlanarak hazırlanan paket programlar
yetersiz kalıyorsa.
• Problemin modelini kurmak için gereken bilgilere ulaşılamıyorsa.
GA’yı kullanma ihtiyacı, yukarıda belirtilen koşullar dışında da
görülmektedir. Aşağıda sıralanan GA’yı kullanım nedenleri, yetersiz koşullardan
kaynaklanmayıp GA’nın özelliklerinden kaynaklanan nedenlerdir. Bunlar
(Çetin,2002,s.5):
• GA, doğadaki evrimsel süreci temel alan bir arama yöntemidir. Bir veri
grubundan özel bir veriyi aramak ve bulmak için kullanılmaktadır.
• GA’lar özellikle araştırmacı kesin konu uzmanı olmadığı zamanlarda
çok yardımcı olmaktadırlar. Çünkü GA’lar kendi alanlarını araştırma ve
o alandan bilgi edinmede yeteneklidirler.
• GA’lar, değerlendirme için yeni ve daha iyi sonuçlar üretmenin yanı
sıra var olan potansiyel sonuçları değerlendirmek içinde
tasarlandıklarından dolayı başka alternatifler için büyük yardım
sağlamaktadırlar.
• GA’lar klasik yöntemlerin çok uzun zamanda yapacakları işleri kısa bir
sürede çok net olmasa da yeterli doğrulukta yapabilmektedirler.
• Çözümü zor problemleri çözmede etkili olmaktadırlar.
• Optimizasyon problemlerinde oldukça etkili olmaktadırlar.
• Problem çözümündeki kullanışlılığı, algoritmayı diğer araştırma (sıralı
ya da rastgele) yöntemlerinden daha fazla öne çıkarmaktadır.
47
DÖRDÜNCÜ BÖLÜM
İKİ VE ON TABANLI GENETİK ALGORİTMALAR
Bu bölümde literatürde uygulamaları gerçekleştirilmiş, on ve iki tabanlı GA
türleri detaylı incelenecektir. Algoritmanın tasarım aşaması, GA türüne karar
verilmesiyle başlamaktadır. GA’ da kullanılacak karar değişkenleri ve amaç
fonksiyonu hesaplamalarında gerekli bilgilerin kromozomlarda temsil edilmesi,
problemin yapısı, karar değişkenlerinin sayısı ve sınırları gibi unsurlar göz önünde
bulundurularak ele alınacaktır.
4.1. İki Tabanlı Genetik Algoritmalar
GA’lar çözüm uzayını rastgele tarayarak en iyi çözümü arayan yöntemlerdir.
Çözüm uzayından rastgele seçilen çözümler ile başlangıç toplumu oluşturulur.
Toplumdaki bireyler eşlenerek, ebeveynler oluşturulur. Kalıtım yoluyla ebeveynlerin
özelliklerinin yeni topluma aktarılması sağlanır. Böylece daha uygun bireylerden
oluşan yeni toplumların oluşması sağlanır. Yeni toplum oluşumunda, bir önceki
toplum üyelerinden bazıları kaybedilir ve onların yerine yeni ve daha uyumlu
bireyler oluşturulur. Toplum üyeleri arasında gerekli genetik işlemlerin uygulanması
ile çözüme daha yakın yeni toplum elde edilmektedir. Bu üyeler çözüme daha yakın
karar değişkeni değerleridir. Algoritmadaki her bir iterasyon ile çözüme daha yakın
karar değişkeni değerlerini arama işlemi gerçekleştirilmektedir.
İki tabanlı GA’larda toplumdaki kromozomlar, bitlerlerden oluşan sayı dizisi
şeklinde kodlanmaktadır. Diğer bir deyişle, kromozomlar, “iki tabanlı sayı sistemi
(binary system)” kullanılarak kodlama yapılmaktadır. GA uygulamalarının başlangıç
dönemlerinde, hesaplama açısından kolaylık sağladığından genellikle iki tabanlı
GA’lar kullanılmaktaydı. Ancak son yıllarda, GA’ların birçok alanda uygulanması ve
büyük değerler içeren karar değişkenlerinin bu sistemde temsil edilmesinin
güçleşmesinden dolayı, on tabanlı sayı sistemine dayanan GA’lar daha yaygın
olarak kullanılmaktadır.
İkili sistem, değişkenlerin tamsayı içerdiği durumlarda tercih edilir. Aksi
halde algoritma optimuma yakın olan yerel değer verecektir (Şen,2004,s.75).
48
Optimum değeri yani evrensel (global) değerin elde edilmesi, değişkenlerin tamsayı
içerdiği ya da değişkenlerdeki ondalıklı kısımlarının önem kazanmadığı durumlarda
söz konusu olacaktır.
4.1.1. Değişkenler ve Amaç Fonksiyonu Seçimi
GA’ların ilk aşaması, en iyi çözüm değerleri bulunması istenen değişkenlerin
kromozom şeklinde tanımlanması ile başlar. Bir problemin her karar değişkeni bir
geni temsil ettiğinden ve her bir gen ikili sayı sisteminde bir dizi oluşturduğundan, n
genden oluşan kromozom;
K = nddd ,....., 21
şeklinde tanımlanabilir. Kromozom oluşumunda, değişken sayısı, n’nin gereğinden
fazla kullanılması, işlemlerin uzamasına neden olurken evrensel sonuca erişimi de
engelleyecektir. Bu nedenle GA’larda değişken dizilerini temsil eden uygun
kromozomların oluşturulması büyük önem taşımaktadır (Şen,2004,s.70).
Algoritmada toplum T, i.kromozom K i ve gen gi,j ile temsil edilmek üzere,
K1 g1,1 g1,2 ……… g1,n K 2 g2,1 g2,2 ……… g2,n Toplum T = K 3 = g3,1 g3,1 ……… g3,n . . . . K n gn,1 gn,1 ……… gn,n
şeklinde matris (matematiksel) ya da array (bilgisayar algoritmasında) olarak
tanımlanır. Toplum T’ yi oluşturan kromozomların gen (karar değişkeni) sıraları, GA
işlemleri süresince asla değiştirilmemesi gerekmektedir.
n genden oluşan bir (d1,d2,…dn) kromozom, problemin amaç fonksiyonundan
elde edilen H değerine sahiptir. Amaç fonksiyonu değeri H, bir çözüm alternatifini
temsil etmektedir. Toplum T’de her bir kromozoma karşılık gelen ve amaç
fonksiyonundan hesaplanan bir H değeri vardır. i. kromozom Ki’ ye ait amaç
fonksiyonu değeri Hi;
49
Hi=h(Ki)=f(d1,d2,…dn)
şeklinde, problemin amaç fonksiyonundan elde edilmektedir.
GA’larda, amaç fonksiyonu hesaplamaları kromozomlardan yararlanılarak
yapıldığından, fonksiyon ne kadar karmaşık olursa olsun, uzun ve zaman alıcı
işlemlere ihtiyaç duyulmayacaktır. Sadece başlangıç toplumu oluştururken gerek
duyulabilecek uzun hesaplamalardan, istenildiğinde kaçınmak mümkündür. Bu
durumda, başlangıç toplumu kromozomlarının rastgele oluşturulması gerekmektedir.
GA’larda başlangıç toplumu oluşturulurken ikiz (aynı) kromozomlarla
karşılaşılabilmektedir. Toplumdaki ikiz kromozomlar, çoğu zaman GA’nın çözüm
uzayında yaptığı arama işlemlerini yavaşlatarak en iyi çözüme ulaşmasını
engelleyecektir. İki tabanlı GA’larda ikiz kromozom oluşma olasılığı on tabanlı
algoritmalardan daha yüksektir. Başlangıç toplumundaki ikiz kromozomların
oluşmasını önlemek amacıyla bir takım yöntemler kullanılmaktadır. Bunlar
(Şen,2004,s.72):
1. Kromozomdaki her genin ilk karakterini farklılaştırılması yoluyla.
2. Kromozomdaki bir genin tüm karakterlerinin birbirinden kesin olarak
farklılaştırılması yoluyla.
Gen1 Gen2 Gen3
1XX….X 1XX…X 1XX…X
1XX….X 1XX…X 0XX…X
1XX….X 0XX…X 1XX…X
1XX….X 0XX…X 0XX…X
0XX….X 1XX…X 1XX…X
0XX….X 1XX…X 0XX…X
0XX….X 0XX…X 1XX…X
0XX….X 0XX…X 0XX…X
50
Kromozomlar:
111XXXXXXXX…X
110XXXXXXXX…X
101XXXXXXXX…X
100XXXXXXXX…X
011XXXXXXXX…X
010XXXXXXXX…X
001XXXXXXXX…X
000XXXXXXXX…X
Örnekte başlangıç konumda bulunduğu ve üç karakterden oluştuğu varsayılan
genlerin birbirinden tamamen farklı olmasını sağlamak için oluşturulan 23 =8 farklı
gen , birbirinden farklı kromozom oluşumunu sağlamaktadır.
Yukarıdaki ya da benzer şekildeki yöntemleri kullanarak başlangıç
toplumunun oluşturulması, algoritma sürecinde amaç fonksiyonlarını tekrarlı bir
şekilde hesaplama maliyetini ortadan kaldıracaktır. Toplumdaki kromozomları
farklılaştıran bu tür işlemler, sonraki toplumların oluşumunda kullanılmamalıdır.
Başlangıç toplumu dışındaki toplumlarda kromozom farklılaştırılması, algoritmanın
evrimsel mantığına aykırı düşmeyen yöntemlerle yapılmalıdır. Örneğin, ikiz olarak
oluşan kromozom, yeni topluma aktarılmayarak yerine yeni kromozom oluşturmak
suretiyle toplum bireylerinin başkalaştırlması sağlanabilmektedir.
İkiz kromozomların belirlenmesi, her problem için uygun olmayabilir ya da
tercih edilmeyebilir. Problemin yapısı ve amaç fonksiyonu değerlendirilerek
algoritmaya ilave edilmelidir. Amaç fonksiyonunun hesaplanmasının zaman alıcı
olmadığı bazı problemlerde, ikiz kromozomların varlığını araştırmak daha maliyetli
olabilir.
Amaç fonksiyonunun hesaplanmasının zor ve zaman alıcı olduğu
problemlerde, yeni oluşturulan toplumlarda amaç fonksiyonunun ikiz
kromozomlarda tekrarlı bir şekilde hesaplanmaması için, sadece değişen
kromozomların amaç fonksiyonları hesaplanabilir. İkiz kromozomların amaç
fonksiyonu değerleri, ikizlerinden elde edilebilir.
51
4.1.2. Amaç Fonksiyonu ve Uygunluk Kriteri
Algoritmada toplumları oluşturulurken, uygunluk değeri yüksek olan
kromozomlar yeni topluma aktarılmaktadır. Karar uzayının değişik noktalarından
oluşan toplumda, her bir kromozomun aranılan çözüme ne kadar yaklaştığını
belirlemek için mutlaka bir fonksiyon gereklidir.
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 foksiyonu, 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)] (4.1)
şeklinde tanımlanabilmektedir. Formül (4.1)’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;
∑=
= n
jj
ii
xh
xhxf
1
)(
)()( (4.2)
şeklinde hesaplanabilmektedir.
Formül (4.2)’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,
52
f(xi)=a.h(xi) + b (4.3)
şeklinde, doğrusal fonksiyon ile hesaplanabilir. Formül (4.3)’de, a ve b sırası ile
ölçekleme ve öteleme katsayılarıdır. Optimizasyon problemlerinde en küçükleme
olması durumunda a’nın işareti eksi (-), en büyükleme problemlerinde ise artı (+)
olmaktadır (Şen,2004,s.74).
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.
4.1.3. İki Tabanlı Sistemden On Tabanlı Sisteme Dönüşüm
GA’da ikili sayı sistemi ile çalışılmaya karar verildiğinde, karar
değişkenlerinin genellikle on tabanlı sayı sisteminde olan değerlerini ikili sayı
sistemine dönüştüren bir yordamı (procedure) hazırlamak gerekmektedir (Reeves ve
Rove,2003,s.23). İkili sistemdeki algoritma sonucunun anlaşılması ve yorumlanması
için de ikili sayı sisteminden onlu sayı sisteme dönüşüm yordamına ihtiyaç
duyulmaktadır.
Dönüşüm yordamları, GA ile kullanıcı arasında bir ara yüz görevini
görmektedir. İkili sistemdeki (dk dk-1……..d0. d-1 d-2 …..d-M)2 sayısının onluk
sistemde karşılığı D’ ye dönüşümü; ℓ ikili sayı sistemindeki kromozomun tamsayı
kısmını oluşturan bit dizisinin uzunluğu, M kromozomun kesirli kısmını oluşturan bit
dizisinin uzunluğu, R=2 ve ℓ = k+1 olmak üzere,
ik
Mii RdD ∑
−=
=
= d-MR-M+…………+ d0R 0 + d1R1+…………+ d0R
0 ] (4.4)
= [d-0R0+…………+ dkRk ] + [ d-1R-1+…………+ d-MR -M]
formülü ile gerçekleştirilmektedir. Formül (4.4)’deki hesaplama işlemlerini
azaltarak, on tabanlı sayıya dönüşüm yapılması amacıyla kullanılan diğer bir
dönüşüm formülü ise,
53
D=((..dkR+dk-1)*R +d k-2 )*R……………+d1)*R+d0) +
=((..d-MR-1+d-M+11)*R-1 +d –M+2 )*R-1 +…………+d-1)*R-1)
eşitliği ile ifade edilir (Sorenson,1976,s.22).
İkili sistemdeki sayının onluk sisteme dönüşümü için geken yordam,
Sorenson (1976)’da önerilen dönüşüm algoritmasından esinlenerek hazırlanmış ve
aşağıda verilmiştir. Algoritmada, onluk sistemdeki sayı; IResult, FResult ve Result
olmak üzere üç değişkende hesaplanmaktadır. IResult tamsayı ve FResult’da kesirli
kısmın hesaplama işlemleri için kullanılan değişkenlerdir.
1. [Başlangıç tanımları] Set Result ←IResult←FResult ← 0
2. [Tam sayı kısmının dönüşümü] Repeat step 3 for i=k,k-1,………….,0
3. Set IResult ←IResult *R+ di
4. [Kesirli kısmını hesalama] Set IResult ←IResult *R+ di
Repeat step 5 for i=-M, -M+1,…...,-1
5. [Hesaplama] Set FResult ←I(FResult + di )/R
6. [Sonlandırma ] Set Result ←IResult + FResult
Exit.
GA’larda kullanılan tüm karar değişkenlerinin tamsayı olması halinde, kesirli
kısma ait hesaplamaların yapıldığı 4 ve 5. adımlar algoritmaya ilave edilmemektedir.
4.1.4. Değişken Temsili
İki tabanlı GA’lar oldukça geniş, ancak sonlu olan çözüm uzayında
çalışmaktadırlar. Sonlu çözüm uzayı ise kromozomlardan oluşmaktadır. Algoritmada
başlangıç toplumunun tanımlanması gerektiğinden, değişkenlerin (genlerin)
kromozom içerisinde ne şekilde ve nasıl tanımlanacağına baştan karar verilmesi
gerekmektedir.
Bu nedenle, algoritmanın başlangıcında, her bir değişkenin kromozom
içindeki konumuna ve kaç karakter uzunluğunda olacağına, dolayısıyla kromozom
uzunluğuna karar verilmektedir.
54
İkili sayı sisteminde kullanılacak değişkenlerin uzunlukları (bit sayısı), iki ya
da ikinin katları olmak zorundadır. Ancak genlerin uzunlukları ile ilgili böyle bir
kısıt söz konusu değildir. Kişisel bilgisayarların makine dili, ikili sayı sistemini
kullandığından, değişkenler 2n uzunluğunda olmalıdır. Aksi durumda, değişkenlerin
alt ve üst sınırlarına yönelik kısıtlar doğru tanımlanamıyacaktır.
Bir değişkenin alt ve üst sınırları bilinen bir problemde; değişkeni temsil
eden genin uzunluğu, aşağıda verilen (4.4) nolu formülle belirlenebilir. Formülde, ℓ gen uzunluğunu, b değişkenin alabileceği üst sınırı ve a değişkenin alabileceği alt
sınırı temsil etmektedir.
12 −
−l
ab =1 (4.4)
Örneğin çözüm uzayı, V={x:x∈{0,1,...,32}} olarak alındığında, çözüm
değerleri [0,32] aralığındaki tamsayılardan oluştuğundan,
ln2ℓ =ln32 ise, ln32= ln25 ve ln2ℓ = ln25 olup, ℓ =5
dir (Reeves ve Rove,2003,s.24). Böylece bu değişkenin çözüm uzayında doğru bir
şekilde tanımlanabilmesi için, gen uzunluğu en az 5 karakter olmalıdır.
Formül (4.4)’deki eşitliğin sağ tarafında bulunan 1 değeri, hassasiyet ya da
doğruluk derecesidir. Bu hassasiyet derecesi değişkenden değişkene farklı değerler
alabilmektedir.
Pratikte GA uygulamalarında, 23=8 ya da 24=16 karakter uzunluğunda
genlerin tercih edildiği saptanmıştır. Genlerin ikili sayı sisteminde tanımlandığı bir
GA uygulamasında, amaç fonksiyonunun ikili sayı sisteminde olması
gerekmemektedir ve bu fonksiyon için on tabanlı sayı sisteminden yararlanılmaktadır
(Şen,2004,s.75).
55
4.1.5. Gri Kodlama
Özellikle büyük değer içeren karar değişkenlerinin iki tabanlı sayı sisteminde
temsili, GA çözümlemesinin hızını yavaşlatabilir. Örneğin, aşağıda belirtilen
kromozomların orta genleri göz önüne alındığında,
İki tabanlı sayı sistemi On tabanlı sayı sistemi
……...10000000……… ….128…
……...01111111…..….. ….127…
orta genlerin birbirlerini tamamlayan (complement) bitlerden oluştuğu
görülmektedir. Örnekte, 4. konuma tek noktalı çaprazlama işlemi uygulandığında,
çaprazlama sonucunda kromozomların bir hayli farklılaştığı görülmektedir. Aşağıda
da gösterildiği gibi, birbirine çok yakın değer içeren ebeveynden üretilen bireylerin
hedef değerleri, çözüm uzayında oldukça farklı noktalara yönlendirme yapmaktadır
(Haupt ve Haupt,2004,s.104).
İki tabanlı sayı sistemi On tabanlı sayı sistem
………10011111…… ….159….
………01100000…….. …..96….
Değişken değerlerinde gözlenen bu denli çaplı değişim, kromozom uzunluğu
arttıkça daha da büyüyecektir. Buna benzer durumlardan kaçınmak için karar
değişkenlerinin gri kodlama ile kodlanması, global çözüme erişimi sağlayacaktır.
Gri kodlamada iki tabanlı ardışık sayıların aralarındaki “Hamming mesafesi -
Hamming distance” 1 (bir) olacak şekilde kodlanmaktadır. Diğer bir deyiş ile iki
kromozomun farklılaşan bit sayısı 1 olacaktır (Haupt ve Haupt,2004,s.104). Aynı
örnek gri kodlama ile yapıldığında,
İki tabanlı sistem On tabanlı sistem
………….11000000………….. ….128…
………….01000000………….. ….127….
56
çaprazlama sonrasında bir değişim olmadığı, yani en iyi çözümün ebeveyn
çözümlerde olduğu görülmektedir.
İkili sayı sisteminde ve ℓ =3 uzunluğundaki değerlerin, on tabanlı sistemdeki
karşılıkları ve gri kodları, Tablo 4.1’de verilmiştir.
Tablo 4.1: ℓ = 3 Uzunluğundaki Sayıların Gri Kodlar
İkili sistem Onlu sistem (tamsayı) Gri kod
000 0 000
001 1 001
010 2 011
011 3 010
100 4 110
101 5 111
110 6 101
111 7 100
Kaynak: Reeves ve Rowe,2003,s.98
Tablo 4.1’de de görüldüğü gibi, gri kodlamada, ardışık sayıların Hamming
mesafeleri birdir. Ancak ikili sistemde yapılan kodlamada Hamming mesafeler
değişmektedir. Örneğin onlu sistemdeki 3 ve 4 sayılarına ait ikili sisteme karşılık
gelen kodların Hamming mesafesi 3’tür.
4.1.5.1. İki Tabanlı Sayı ile Gri Kod Arasında Dönüşüm
İki tabanlı sayıların gri koda ya da gri kodlu sayıların iki tabanlı sisteme
dönüşümünde, XOR (exclusive OR) mantıksal komutu temel işlem olarak
kullanılmaktadır. XOR komutu, AND ve OR gibi diğer mantıksal komutlara benzer
şekilde çalışır. XOR komutu, ilk operand ile ikinci operandı, XOR mantıksal
işleminden geçirir ve sonucu ilk operanda atar.
İşlem aşağıda belirtildiği şekilde uygulanmaktadır. Eğer işlem gören bitler
aynı ise sonuç 0 (sıfır), farklı ise sonuç 1 olmaktadır.
57
1 XOR 1=0
1 XOR 0=1
0 XOR 1=1
0 XOR 0=0
İki tabanlı sayı sisteminden gri koda dönüşümde, önce ikili sistemdeki
sayının soldan birinci karakteri olduğu gibi aktarılmaktadır. Daha sonra, iki tabanlı
sayı sistemindeki sayının ilk iki karakterine XOR işlemi uygulanır ve sonuç gri
kodun ikinci karakteri olarak kaydedilir. İki tabanlı sayı sisteminde XOR komutu
uygulanan son karakter ile bir sonraki karaktere XOR komutu uygulanarak gri kod
karşılıklarının bulunmasına devam edilmektedir. İşlem akışı, Şekil 4.1’de oklarla
gösterilmektedir.
İki tabanlı sayı Gri kodu
1 1
0 XOR 1
0 XOR 0
0 XOR 0
0 XOR 0
Şekil 4.1 : İki Tabanlı Sayının Gri Koda Dönüşümü Kaynak : Haupt ve Haupt,2004,s.105
Gri kodlu bir sayının iki tabanlı sayı sistemine dönüşümü Şekil 4.2’de oklarla
gösterilmektedir. Başlangıçta, gri kodlu sayının soldan birinci karakteri olduğu gibi
aktarılır. İlk iki karakterine XOR komutu uygulanarak, iki tabanlı sistemdeki ikinci
karakter belirlenir. Daha sonra, iki tabanlı sistemde elde edilen son karakter ile gri
kodun bir sonraki karakterine XOR komutu uygulanır. İkili sistemde elde edilen son
karakterle, gri kodun bir sonraki karakterine XOR komutu uygulanarak işlem
tamamlanmaktadır. İşlem akışı, Şekil 4.2’de oklarla gösterilmektedir.
58
Gri kodlu sayı İki tabanlı sayı
1 1
1 XOR 0
0 XOR 0
0 XOR 0
0 XOR 0
Şekil 4.2 : Gri Kodun İki Tabanlı Sayıya Dönüşümü Kaynak : Haupt ve Haupt,2004,s.106
Gri kodlama, her zaman ikili kodlama sistemine göre GA işlemlerinin hızını
artırmaktadır (Reeves ve Rowe,2003,s.102). Bazı araştırmacılar tarafından
gerçekleştirilen çalışmalarda, gri kodlamanın, GA çalışmalarında ikili sisteme göre
%10-%20 oranında zaman tasarrufu sağladığı belirlenmiştir (Şen,2004,s.96).
4.2. On Tabanlı Genetik Algoritmalar
İkili sayı sistemi birçok uygulamada kullanılmasına rağmen, bazı hassas
çalışmalarda istenilen sonuca ulaşmak mümkün olamamaktadır. Değişkenlerin
sürekli olduğu uygulamalarda ondalık sayı sistemi kullanılmaktadır.
Değişken sayısının fazla olduğu durumlarda kromozomların uzunluğu çok
fazla artacağından, ikili sayı sisteminde sonuca erişim çok daha zaman alıcı olacaktır
(Haupt ve Haupt,2004,s.51)
Ondalıklı sayısal değer içeren sürekli karar değişkenlerinin iki tabanlı sayı
sistemine dönüştürülmesi aşamasında, değişkenlerin yaklaşık değer alması bazı
çalışmalarda istenmeyen sonuçların elde edilmesine neden olmaktadır. Bu durumda
algoritmanın, iki tabanlı yerine on tabanlı sayı sistemi ile çalışması arzu
edilmektedir.
59
On tabanlı GA’larda, her değişkenin ondalıklı sayı sistemi ile temsil edilmesi
gerekmektedir. Böylece on tabanlı sayıların iki tabanlı sayı sistemine dönüşümü
gerekmediğinden, algoritmanın çalışma zamanı azalacaktır. Diğer yandan,
algoritmanın başlangıcında, değişkenlerin uzunluğunun belirlenmesi şeklindeki ön
çalışmalara gerek duyulmayacaktır.
Özellikle değişken sayısının fazla ve değişken değerlerlerinin büyük olduğu
uygulamalarda, on tabanlı sistemler ikili sayı sistemine göre daha hızlı global sonuca
erişimi sağlayacaktır.
4.2.1. Değişken Temsili ve Amaç Fonksiyonu
Algoritma, iki tabanlı sistemde olduğu gibi on tabanlı sistemde de, amaç
fonksiyonunun optimum değerini aramaktadır.
Problemde n değişken varsa, başlangıç toplumunda kromozomlar;
K= [d1, d2 ……… dn ]
şeklinde oluşturulmaktadır. Burada di, i. değişkenin ondalıklı sayı olarak
gösterildiğini ifade etmektedir. Her bir kromozoma karşılık gelen amaç fonksiyonu
h(K) dan hesaplanan amaç fonksiyonu değeri,H ise,
H=h(K)=h(d1, d2 ……… dn)
şeklinde hesaplanır. Örneğin x ve y olmak üzere iki değişkenli problemlerde, K=[x,y
] her bir kromozomu temsil ederken, H=h(x,y) de her bir kromozomun amaç
fonksiyonu değerini temsil eder.
4.2.2. Başlangıç Toplumu
Çalışmanın başında GA’nın yapısı gereği, başlangıç toplumunun
oluşturulması gerekmektedir. Başlangıç toplumu oluşumunda, ikili tabanlı GA’larda
olduğu gibi toplumun büyüklüğü ve değişken sayısının belirlenmesi gerekmektedir.
Bu tespitler yapıldıktan sonra, belirlenen ve bundan sonraki tüm iterasyonlarda da
60
sabit tutulacak toplum büyüklüğünde kromozomlardan oluşacak başlangıç toplumu
hazırlanmaktadır.
Başlangıç toplumun oluşturulması aşamasında, değişkenlerin alt ve üst
limitleri göz önünde bulundurularak, alabilecekleri değerlerin rastgele bir şekilde
oluşturulması gerekmektedir. Ntop x Ndeğ (Toplumdaki kromozom sayısı x Problemin
karar değişkeni sayısı) boyutunda matris şeklinde başlangıç toplumunun elemanları;
a değişkenlerin alt sınırını, b değişkenlerin üst sınırını ve RAND() komutu da, 0 ile 1
arasında rastgele sürekli sayı üreten fonksiyonu temsil etmek üzere,
(b-a). RAND()+a ya da (b-a) . RAND().a
formüllerinden biri ile rastgele oluşturulabilmektedir. Başlangıç toplumunun
oluşturulması sırasında başka bir yöntem ya da başlangıç değerleri kullanılabilir.
Ancak değerlerin rastgele oluşumuna özen gösterilmesi gerekmektedir. İkili sayı
sistemleri için, oluşturulacak başlangıç toplumunda rastgele üretilen sayıların 0 ya da
1 olması için, “Yuvarlat” komutuna gerek duyulacaktır.
Başlangıç toplumu bir matris ya da array şeklinde gösterildiğinde; matrisin
her bir sütunu (ya da array’in her bir elemanı) bir değişkeni temsil edecektir.
Başlangıçta daha iyi kromozomlarla çalışmak mümkündür. Bu durumda daha fazla
rastgele kromozom üretilerek, amaç fonksiyonu değerlerine göre içlerinden daha iyi
olanları seçilebilmektedir. Yani başlangıç toplumu basit bir eleme işlemi ile
oluşturulabilir. Uygulanacak ön işlem, algoritmanın yineleme sayısını azaltacaktır.
Evrimsel hesaplama ile ilgili yapılan bazı çalışmalarda, sıralı ağların evrimsel
değişiminde kalabalık ve parazit aday çözümler kavramı kullanılmıştır. Rastgele
oluşturulan toplumlarda, ağ sırasının evrimsel değişiminden dolayı çok sayıda
istenmeyen (parazit) aday çözümlerin uygunluk fonksiyonlarının yeniden
hesaplanmasına dikkat çekmişlerdir. Başlangıç toplumu ve diğer toplumların uygun
ağ yapısını temsil edecek karar değişkenlerini içermesi için, GA bünyesine düzeltici
işlemlerin dahil edilmesi gerekmektedir (Melanie ve Taylor,1999,s.602–603).
61
4.2.3. Seçme İşlemi
Seçme işleminde amaç, GA işlemlerinde kullanılacak kromozomların
(başlangıç matrisindeki satırların) seçilmesidir. Bu nedenle başlangıç toplumundaki
kromozomların, amaç fonksiyonuna bağlı olarak en büyük/en küçük değerlerine göre
seçimi yapılmaktadır (Haupt ve Haupt,2004,s.54).
Başlangıç toplumunda oluşturulan Ntop adet kromozomdan, Niyi adet
kromozom Niyi ≤ Ntop olmak üzere uygunluk fonksiyonu (ya da amaç fonksiyonuna)
bağlı olarak seçilmektedir. Seçilemeyen ( Ntop - Niyi = Nkötü ) adet kromozom ise
ayıklanarak, sonraki aşamalarda genetik işlemlere tabii tutulmazlar ve yeni
toplumlara aktarılmazlar.
Seçme işlemi ile iyi genlere sahip olduğu varsayılan Niyi adet kromozom,
rastgele olarak tespit edilen bir sayıda, çoğu zaman da yarı yarıya, anne ve baba
kromozom olarak ayrılırlar.
Oluşturulacak yeni bireylerin, anne ve babanın iyi genlerini taşımaları
amacıyla, rastgele eşleştirme ile oluşturulan ebeveynlerden doğacak çocukların iyi
gen taşıması için genetik işlemler uygulanır (Wang ve Lu,2002,s.1979).
Seçme işlemi, kötü genlere sahip olduğu varsayılan ve bu nedenle elenen, (
Ntop - Niyi ) adet daha iyi (sağlıklı) yeni kromozom üretilinceye kadar devam
ettirilmelidir. Değişik eşleme yöntemleri vardır. Bunlar (Haupt ve Haupt,2004,s.38):
1. Tepeden aşağıya eşleme
2. Rastgele eşleme
3. Ağırlıklı rastgele eşleme (Weighted random pairing)
4. Turnuva eşleme (Tournament pairing)’dir.
Tepeden aşağıya eşleme: Bu modelde Niyi adet iyi kromozomdan oluşan listenin
(havuzun) başından başlanarak kromozomlar eşlenmeye çalışılır. Kromozomların
sıra numaraları, tek sayı ve çift sayı sıra numaralı olmalarına göre iki ayrı parçaya
ayrılır.
Anne kromozom(tek sayılar) : 1,3,5…….
62
Baba kromozom(çift sayılar) : 2,4.6…….
şeklinde sayılardan oluşur. Böylece algoritma, tek ve çift sayılardan oluşan
kromozomları eşlemektedir. Bu model doğayı iyi modelleyememekle beraber,
programlaması oldukça kolaydır.
Rastgele eşleme: Bu model, kromozomları seçmek için tekdüze (üniform) rastgele
sayı üreticisi kullanmaktadır. Eşlenecek ebeveynin satır numaraları, aşağıda belirtilen
işlemlerle (komutlarla) elde edilmektedir. RAND(1, Niyi) komutu, verilen
parametreler arasında olmak üzere, ratgele bir sayı üretir.“Yuvarlat” komutu ise;
rastgele üretilen değeri, bir sonraki en büyük tamsayıya yuvarlamaktadır.
Anne= Yuvarlat(Niyi*RAND(1, Niyi);0)
Baba= Yuvarlat(Niyi*RAND(1, Niyi);0)
Ağırlıklı rastgele eşleme: Havuzda bekleyen kromozomlara, amaç değerleriyle
orantılı olasılıklar atanmaktadır. Maliyet en küçükleme problemlerinde, en küçük
amaç fonksiyonu değerine sahip kromozom, eşleşmek için en büyük olasılığa sahip
olmaktadır. Rastgele bir sayı, hangi kromozomun seçileceğini göstermektedir. Bu tür
ağırlıklı yaklaşımlar, genellikle ağırlıklı rulet çarkı (roulette wheel weighting) olarak
adlandırılmaktadır. Sıra (rank) ve hedef ağırlıklı olmak üzere iki farklı yaklaşım
mevcuttur.
a) Sıra (Rank) Ağırlıklı: Bu yaklaşım, problemden bağımsızdır ve kromozomların
değerleri, sıralarına göre hesaplanmaktadır. Kromozomlar amaç fonksiyonundan elde
edilen uygunluk değerlerine göre sıralanırlar. İçlerinden Niyi adet kromozom
seçilerek, 1’den n’ye kadar sıralanmaktadır. n kromozom sıra (rank) numarası olmak
üzere, kromozomların seçilme olasılıkları,
Pn =
∑=
+−iyiN
i
iyi
n
nN
1
1
formülü ile hesaplanır. Kromozomların olasılıklarının hesaplanmasının ardından,
birikimli olasılıkları da hesaplanarak, kromozom seçimi yapılmaktadır.
63
Her bir kromozomun olasılıkları hesaplandıktan sonra, 0 ile 1 arasında
rastgele bir sayı üretilmektedir. Üretilen sayı, r, listenin başlangıcından itibaren,
kromozomların birikimli olasılıkları ile kıyaslanmaktadır. Birikimli olasılığı, r
sayısından büyük ya da r sayısına eşit olan ilk kromozom eşleştirme amacıyla
seçilmektedir. Seçme işlemi, seçilecek kromozom sayısı kadar
gerçekleştirilmektedir.
Seçilen kromozomlardan sırası ile çiftler oluşturularak ebeveynler
belirlenmektedir. Eğer bir kromozom tekrar kendisi ile eşlenmek üzere seçilirse;
• seçilen kromozomun bırakılması ve işlemlere onsuz devam edilmesi,
• rastgele bir şekilde başka bir kromozomun seçilmesi,
• aynı ağırlıklı tekniğin kullanılarak başka bir kromozomun seçilmesi
şeklinde farklı yöntemler kullanılabilmektedir.
Programlama açısından, sıra ağırlıklı teknik tepeden aşağı eşleme tekniğinden
biraz daha güçtür. Ancak olasılıkların sadece bir kez hesaplama gerektirmesi
nedeniyle, rank tekniğine olan eğilim daha fazladır.
b) Hedef Ağırlıklı: Bu yöntemde kromozomların olasılıkları amaç fonksiyonu
değerleri ile hesaplanmaktadır. Örneğin maliyet küçükleme problemlerinde; her bir
kromozomun maliyetinden; dışlanan kromozomların içerisinden seçilen en düşük
maliyet çıkarılarak, elde edilen normalleştirilmiş maliyetler ile hesaplama
yapılmaktadır.
minNkötünn CcC −=
Burada;
(CNkötü) : dışlanan kromozomların içerisinde en düşük maliyeti
cn : n. kromozomun maliyetini (amaç fonksiyonunu değeri)
temsil etmektedir.
(Ckötü) değerini çıkarılarak tüm maliyetlerin pozitif olması sağlanmaktadır.
Kromozom olasılıkları ise,
64
Pn = ∑ =
iyiN
m
n
CmC
1
formülü ile hesaplanmaktadır (Şen,2004,s.83). Daha sonra, 0 ile 1 arasında rastgele
üretilen sayılara eşit ya da en yakın büyüklükte olasılığa sahip ilk kromozom
eşlenmek amacıyla seçilmektedir. İkinci kromozomda bu şekilde seçilerek ebeveyn
oluşturulmaktadır. Böylece istenilen sayıda ebeveyn oluşumu tamamlanmaktadır.
Maliyet problemlerinde olasılıkları en düşük olanın seçilmesi arzu edilirken,
kar amaçlı problemlerde olasılıkları en yüksek olan tercih edilecektir. Dolayısıyla
(Ckötü) burada dışlanan kromozomların en yüksek değerini temsil edecektir.
Turnuva seçimi: Bu yaklaşımda, doğadaki seçime benzer şekilde, bekleme
havuzundan rastgele ve küçük olmak üzere bir kromozom alt kümesi
oluşturulmaktadır. Oluşturulan alt kümede, en iyi amaç (ya da uygunluk) değerine
sahip olan kromozomlar ebeveyn olarak seçilmektedir. Her ebeveyn seçiminde,
turnuva işlemi tekrarlanmaktadır. Turnuva seçimi, toplumun sıralı olmasını
gerektirmediğinden, iyi çiftleri ortaya çıkarabilen ve büyük toplumlar için uygun
olan bir yöntemdir.
Genetik operatörlerin uygulanacağı kromozomların seçilmesi, yukarıda
sayılanların dışında sezgisel olarakda yapılabilmektedir. Bazı uygulamalarda, arama
yüzeyini daha geniş tutmak amacıyla, Niyi ve Nkötü şeklinde, uygunluk
fonksiyonlarına göre ayrılan kromozomlar rastgele bir şekilde, biri iyi diğeri kötü
olmak üzere kromozom kümesinden alınarak ebeveyn kromozomlar
oluşturulmaktadır (Ren,2003,s.345). n kromozom sıra (rank) numarası olmak üzere,
Başka bir yöntem ise, klasik gen mutasyonu yerine birkaç adet rastgele
oluşturulan kromozomları ilave ederek yeni toplumu oluşturmaktadır (Mendes
vd.,2005,s.11). Şekil 4.3’de de gösterildiği gibi, yapılan bu işlemle yeni toplumun
erken yakınsaması önlenmeye çalışılmaktadır. Bazı GA uygulamalarında, optimum
çözüme erken yakınsama, çözüm uzayında aramanın yönünü daha kötü çözümler
65
içeren noktalara yönlendirebilecektir. Ters yönlerde arama, hem GA’nın çözüm
bulma süresini geciktirmeye hem de daha iyi çözüme erişememe olasılığını artırmaya
neden olacaktır. Çünkü daha iyi çözümler, aramanın dışında kalan noktalarda
bulunabilecektir.
Mevcut toplum Yeni toplum
En iyi En iyiler kopyalanır
Bir önceki toplumun
en iyileri
Çaprazlama
Çaprazlama işlemi
ile oluşturulanlar
En kötü Rastgele üretilir Rastgele üretilenler
Şekil 4.3 : Ardışık Toplumların Geçiş İşlemi ile Oluşturulması
Kaynak : Mendes vd.,2005,s.11
4.2.4. Genetik İşlemler
On tabanlı GA’larda çapraz geçiş noktalarının belirlenmesi için değişik
yaklaşımlar öne sürülmektedir.
Ebeveyn kromozomdaki değişken sayısı, k olmak üzere, 1 ve k arasında
rastgele üretilen iki çaprazlama konumu arasında kalan değişkenler, ebeveynler
arasında karşılıklı olarak değiştirilmektedir. İşlemin en uç (marjinal) durumu, konum
olarak başlangıç ve bitiş konumlarının seçimidir. Bu durumda ebeveynin kalıtsal
bilgileri yeni topluma aktarılamayacak ve yeni bilgi üretilemeyecektir. Başlangıç
toplumundan rastgele seçilmiş olan değişken değerleri, sonraki aşamalara sadece
farklı birleşmelerle girecektir. Özellikle kromozom uzunluğu fazla olan iki tabanlı
GA’larda, yeni bilgi üretilmesi açısından uniform çaprazlamalar tercih nedeni
olmaktadır (Haupt ve Haupt,2004,s.57). Böylece birden fazla konum seçilmesi
gerektiğinden, konu edilen sorun ortadan kalkacaktır. Uygulanacak çaprazlama
66
türünün dikkatli seçilmesi, kromozomlar arasında kalıtsal bilgi alış verişini
sağlayacaktır.
Başlangıç ve bitiş konumlarından farklı konumların seçilmesi ya da bilgi
değişimini sağlayacak yeni kromozomların oluşturulabilmesi amacıyla, algoritmaya
rastgele ya da sezgisel ilaveler yapılabilmektedir. Literatürde karşılaşılan konuyla
ilgili çalışmaların bazıları aşağıda verilmiştir.
On tabanlı GA’lar için daha etkin bir yöntem olan karıştırma (blending)
yöntemi önerilmektedir (Haupt ve Haupt,2004,s.57–58). Bu yöntemde, ebeveyn
kromozomların değişkenlerindeki değerlerin karışımından elde edilen değerlerle yeni
üremeler yapılacaktır. Yeni üretilecek kromozomun değişken değeri dyeni, ebeveyn
kromozomların n. değişken değerleri olan d1n ve d2n den aşağıda belirtildiği gibi elde
edilmektedir.
K1= [d11, d12 ……… d1n ] ve K2= [d21, d22 ……… d2n ] olmak üzere,
dyeni =β d1n +(1-β)d2n
Burada,
β : 0 – 1 arasında rastgele üretilen bir sayı
d1n :anne kromozomun n. değişkeni
d2n : baba kromozomun n. değişkeni
dir.
İkinci çocuğun değişken değeri de, birinci çocuğun değişken değerinin
tamamlayıcısıdır. Eğer β=1 ise, yeni değişken oluşumunda baba kromozomun n.
değişkeninin katkısı olmayacaktır. Benzer şekilde β=0 olduğunda da anne
kromozomun değişken oluşumuna katkısı bulunmayacaktır. Ancak β=0,5 olduğunda,
anne ve bana değişkenlerinin aritmetik ortalaması şeklinde yeni değişken oluşacaktır.
Yeni kromozomların üremesi aşamasında, iyi bir karışım için uygun β
değerinin belirlenmesi önemli bir unsurdur. Bazen karışım, tüm değişkenler için
belirlenen çapraz geçiş noktalarının sağından ya da solunda yapılabilmektedir. Her
67
değişken için, aynı β değeri kullanılabileceği gibi, değişkenlerde farklı β değerleri de
kullanılabilir.
Karışım yöntemi; ebeveyn değerlerini, β ve (1-β) katsayısı ile birlikte
kullandığından yeni oluşan değer, ebeveyn değerleri arasında bir değer olacaktır ve
toplumun uç değerlerinin ötesinde değerlerin oluşumu engellenecektir. Bu nedenle,
çözüm uzayında başka noktalara sıçramak amacıyla dış uzatma (extrapolating)
yöntemi kullanılmalıdır. Dış uzatma yöntemlerinin en basit olanı, lineer
çaprazlamadır (linear crossover) ve ebeveynden üç farklı üreme söz konusu
olmaktadır.
dyeni 1 = 0,5 d1n + 0,5d2n
dyeni 2 = 1,5 d1n - 0,5d2n
dyeni 3 = -0,5 d1n +1,5d2n
Katsayılarının toplamı bir (1) olan bu değişkenlerden, sınırların dışında olan
herhangi biri dışlanarak diğer ikisi seçilir. Burada kullanılan 0,5 katsayısı yerine
[0,1] aralığında başka katsayılarda kullanılabilir. Bu durumda, üreyecek yeni
değişken,
dyeni =β (d1n - d2n ) + d1n
olarak tanımlanabilir. Burada,
β : 0 – 1 arasında rastgele üretilen bir sayı
d1n : anne kromozomun n. değişkeni
d2n : baba kromozomun n. değişkeni
dir. Değişken limitleri dışına düşen bir değer elde edildiği durumda farklı β değerleri
ile denenerek, yeni oluşum sağlanmalıdır.
68
Pratik uygulamalarda sıklıkla, dış uzatma (extrapolating) ve çaprazlama
birlikte kullanılmaktadır. Birlikte kullanılan bu yöntemlerden biri de aşağıda
verilmektedir (Haupt ve Haupt,2004,s.58-59).
Yöntem, başlangıç ebeveyninde seçilen bir değişken ve α değeri (çapraz
noktası) ile başlar. Çaprazlama konumuna, dış uzatma ile elde edilen yeni değerler
yerleştirilir ve bu değerlerden sonraki değişkenler çaprazlamaya tabi tutulurlar.
α = yukarı yuvarla (rastgele sayı* Ndeğ ) ,
K1= [d11, d12 …d1α…… d1n ] ve K2= [d21, d22 … d2α…… d2n ] olmak
üzere aşağıdaki yeni değişkenler elde edilmektedir.
dyeni 1 = d1α - β( d1α - d2α )
dyeni 2 = d2α + β( d1α - d2α )
Burada,
β : 0 – 1 arasında rastgele üretilen bir sayı
d1α : anne kromozomun α. değişkeni
d2α : baba kromozomun α. değişkeni
dir. Bundan sonra,
Kyeni 1 = [d11, d12 …dyeni 1…… d2n ] ve Kyeni 2 = [d21, d22 … dyeni 2… d1n ]
şeklinde çaprazlama sonucunda yeni kromozomlar oluşur.
Eğer kromozomların ilk değişkeni seçilirse, bu değişkenin sağındaki
değişkenler çaprazlanmakta, son değişkeni seçilirse, bu değişkenin solundaki
değişkenler çaprazlanmaktadır. Bu yöntemde, β>1 olmadığı sürece ebeveynlerin
sınırları dışında değer elde edilmesi beklenmemektedir.
4.3. Yakınsama
GA’lar önceden belirlenen kriterlere göre sonlandırılarak optimum ya da
optimuma yakın sonuçlar elde edilmektedir. Sonlandırma kriterlerinden biri de,
GA’nın yeni toplumlarda daha iyi çözümlere yakınsama yapamaz hale gelmesidir.
GA sürecinde; ard arda oluşturulan yeni toplumlarda daha iyi sonuç elde
69
edilemiyorsa ya da yeni üretilen çözüm alternatifleri katma değer yaratmıyorsa, GA
yakınsama yapamaz hale gelmiştir anlamı çıkarılmaktadır.
GA’larda yakınsamanın devam edip etmediğini ölçmek amacıyla, toplum
istatistikleri tutulmaktadır. GA’larda kullanılan istatistikler, aritmetik ortalamalar,
standart sapmalar ve amaç fonksiyonu değerleri şeklinde olmaktadır (Haupt ve
Haupt,2004,s.47).
4.4. Problemin Genetik Algoritmaya Uyarlanması
GA’lar başlangıçta ikili sayı sisteminde kodlanan ve bu nedenle iki tabanlı
sayı sistemindeki verilere genetik işlemlerin gerçekleştirildiği algoritmalar idi. Ancak
daha sonraki yıllarda, GA’nın birçok problemin çözümünde kullanılması ile genetik
işlemlerdeki temel olgular, bazı karmaşık problemlerde elde edilen sonuçlarda
başarısızlıklarla karşılaşılmasına neden olmuştur.
Problemlerin karmaşıklığının artması ve karar değişkenlerinin büyük değerler
içermesi sonucunda on tabanlı GA’ların kullanılması zorunlu hale gelmiştir. Ancak
bu tarz problemlerde daha iyi sonuçlara daha hızlı erişmek için uygulanan genetik
işlemler; beklenilenin aksine, çözüm uzayında optimum çözümden uzaklaşarak
istenmeyen noktalarda arama yapma eğilimine de saplanmaktadır.
Pratikte karşılaşılan karmaşık problemlerin GA’ya uyarlanmasında yaşanan
başarısız denemeler, GA’nın karmaşık problemlerde yetersizliğini ortaya çıkarmıştır.
Yaşanan bu sıkıntılar ve başarısız örnekler, bazı problemleri, özellikle karmaşık
problemleri çözmek için standart dışı algoritmaların geliştirilmesine neden olmuştur.
Standart dışı algoritmalar ile potansiyel çözüm içeren kromozomların
oluşturulması yerine, değişik kromozom tanımlanmasına ve probleme uygun genetik
operatörlerin kullanılmasına başlanmıştır. Çünkü mevcut problemin başlangıç
çözümlerini kromozom olarak kullanmak, karmaşık problemlerin başlangıç çözüm
kümesini oluşturmanın zorluğundan dolayı iyi bir yaklaşım olarak kabul
edilmemektedir (Gen ve Cheng,2003,s.358).
70
Çizelgeleme problemleri gibi, sıralama esaslı ve çözümü zor olan özel
problemlerde iyi sonuç elde edebilmek için, probleme yönelik uygun kodlama
sisteminin yanı sıra, mutasyon ve çaprazlama işlemlerini de basitleştirmek
gerekmektedir (Özdamar,1999,s.45).
Sonuç olarak, özellikle karmaşık problemlerin GA’ya uyarlanabilmesi için;
kullanılacak kodlama sisteminin, çözüm uzayında etkin arama yapabilmeyi
sağlayacak uygun genetik işlemlerin ve bu işlemlerin olasılıklarının iyi belirlenmesi
gerekmektedir.
4.5. On Tabanlı Genetik Algoritmalarda Özel Durumlar
İki tabanlı olmayan uygulamalarda, özellikle sıralı tipli problemlerde tipik
genetik işlemler ya da kromozomları kodlama sistemi, algoritmanın performansını
etkileyen önemli faktörlerdir. Bu nedenle uygulamalarda; farklı kodlama sistemleri
ve genetik işlemlerin (üreme, çaprazlama ve mutasyon işlemlerinin sezgisel
yöntemlerle) yapıldığı görülmektedir.
4.5.1. Kodlama Sistemi
Genellikle kodlama yöntemi doğrudan ya da dolaylı olarak yapılmaktadır.
Doğrudan kodlama yöntemi, kromozomların arama amacına yönelik tüm bilgileri
içerecek şekilde hazırlanmasıdır. Problemle ilgili tüm bilgiler kromozomda
bulundurulacaktır. Problemin dolaysız kromozomlarla temsil edilmesi, problemi
yorumlama (ya da çizelgeleme) gibi bir takım yordamlara (procedure’lere) ihtiyacı
ortadan kaldıracaktır (Mori ve Tseng,1997,s.137).
Karmaşık problemlerde, doğrudan kodlama yöntemi kullanılarak uygulanan
genetik işlemler sonucunda, elde edilen çok sayıda yeni birey geçersiz olabilecek ve
dolayısıyla genetik işlemler yararsız hale dönüşecektir.
Tipik genetik işlemlerin yararsız sonuçlar verdiği durumlarda, doğrudan
kodlama yerine dolaylı kodlama ile bir çözümün sadece bir kısmı kromozom olarak
kullanılabilmektedir. Daha sonra kod çözücü (decoder) ile çözüm üretilebilir. Kod
çözücü, mevcut probleme özel olarak hazırlanmakta ve çözüm üretmek için
71
yordamları (procedure) belirlemektedir Böylece algoritma, standart dışı geliştirilerek,
çözüm uzayının ilgilenilen kısmında arama işlemini yaparak sağlıklı çözümler
bulacaktır.
4.5.2. Genetik İşlemler
Özellikle sıralama tipli (gezgin satıcı ve proje çizelgeleme gibi)
problemlerde, tipik genetik operatörlerin kullanımı yerine uyumlaştırılmış edilmiş ya
da zenginleştirilerek geliştirilmiş operatörlerin kullanımı ön plana çıkmıştır (Huang
vd.,1997,s.3106). Bu nedenle GA’lar sezgisel arama yöntemleri olmaktadırlar.
Sıralama tipli problemlerde, çaprazlama işlemi yeniden değerlendirilmelidir.
Örneğin aşağıda verilen kromozomlarda 3. konumda yapılacak çaprazlama işlemi,
yeni oluşturulan toplumda, uygun olmayan kromozomların üremesine neden
olabilecektir.
Çaprazlama öncesi Çaprazlama sonrası
K1 :1 6 3 4 7 5 2 K1 :1 6 1 2 6 5 7
K2 : 4 3 1 2 6 5 7 K2 : 4 3 3 4 7 5 2
Çaprazlama sonrası K1 kromozomunda, 1 ve 6’ya iki kez gidilmekte ama 3’e
hiç gidilememektedir. Benzer şekilde K2 kromozomunda, 3 ve 4’e iki kez gidilmekte
ama 1 ve 6’ya hiç gidilememektedir. Hatalı kromozom oluşumuna neden olabilecek
çaprazlama işlemlerinden kaçınmak amacıyla, bazı araştırmacılar farklı çaprazlama
yöntemleri geliştirerek kullanırken, bazıları da uyumlaştırılmış genetik operatörler
kullanmaktadır. Dolaylı kodlama sistemi, çaprazlama ve mutasyon işlemlerinde
karşılaşılabilecek uygun olmayan kromozomlardan kaçınmak amacıyla
kullanılmaktadır.
Yeni toplumda uygun olmayan kromozomların (bireylerin) oluşumunu
engellemek amacıyla önerilen çaprazlama yöntemleri (Reeves ve Rowe,2003,s.39–
40) aşağıda verilmektedir:
1. Bazı parçaların karşılıklı olarak çaprazlanmasıdır. Bu yöntemde, 1 ile l-1
arasında rastgele 2 nokta seçilir. Noktaların oluşturduğu parçalarda bazı genler kendi
72
aralarında yer değiştirir. Aşağıdaki örnekte 3. ve 5. konum seçilerek, genler kendi
aralarında yer değiştirmiştir.
3 ↔ 1 , 4 ↔ 2 , 7 ↔ 6
1 ↔ 3 , 2 ↔ 4 , 6 ↔ 7
Çaprazlama öncesi Çaprazlama sonrası
K1 :1 6 3 4 7 5 2 K1 :3 7 1 2 6 5 4
K2 : 4 3 1 2 6 5 7 K2 : 2 1 3 4 7 5 6
şeklinde yeni çözümler elde edilebilmektedir.
2. İki tabanlı GA’larda olduğu gibi, kromozom uzunluğuna eşit uzunlukta ve
ikili sayı sisteminde de maske oluşturulur. Bu işlem uniform (tekdüze) çaprazlamada
yapılan işleme benzemektedir. Örneğin,
Maske: 1010010 olmak üzere,
Çaprazlama öncesi Çaprazlama sonrası
K1 :1 - 3 - - 5 - K1 :1 4 3 2 6 5 7
K2 : 4 - 1 - - 5 - K2 : 4 6 1 3 7 5 2
şeklinde çaprazlama sonucu elde edilmektedir. Birinci kromozom için; maskede
1’lerin karşılığı K1 ‘den doğrudan alınır. Boş yerlere de; eksik kalan değerler ikinci
kromozomdaki sıralarını bozmadan yerleştirilir. Bu aşamada, maskeyle seçilen
genlerin hariç tutulması gerekmektedir. İkinci kromozom üretilmesinde de, benzer
işlemler tekrarlanmaktadır.
Yeni toplumun uygunluğunun sağlanması, başka bir deyişle stokastik hataları
azaltmak amacıyla üç türlü sıralama (permutation) yöntemi ve bir yerleştirme
(relocation) yöntemi kullanılması da mümkündür. Bunlar (Huang vd.,1997,s.3108-
3109):
73
Sıralama yöntemi 1: Yöntem için, başlangıçta seçme oranı olarak, n1 oranı
belirlenir. (N. n1) adet kromozom rastgele olarak bekleme havuzundan seçilir.
Seçilen bu kromozomlara, yine rastgele olarak belirlenen iki konum arasındaki
genler ters çevrilerek genetik işlemlerin tamamlanması sağlanır. Örneğin kromozom
“345216” seçildiğinde, rastgele oluşturulan 5. ve 2. konumlarda, yeni kromozom
“312546” haline dönüştürülür.
Sıralama yöntemi 2: Başlangıçta n2 oranı belirlenir. (N. n2) adet kromozom rastgele
olarak bekleme havuzundan seçilir. Seçilen bu kromozomlarda, yine rastgele olarak
belirlenen iki konumdaki genler yer değiştirilerek genetik işlemlerin tamamlanması
sağlanır. Örneğin kromozom “345216”, 5. ve 2. konumlar seçildiğinde, yeni
kromozom “315246” haline dönüştürülür.
Sıralama yöntemi 3: Başlangıçta n3 oranı belirlenir. (N. n3) adet kromozom rastgele
olarak bekleme havuzundan seçilir. Seçilen bu kromozomlarda, yine rastgele olarak
belirlenen bir konumdaki gen, bir sonraki gen ile yer değiştirilerek genetik işlemlerin
tamamlanması sağlanır. Örneğin seçilen kromozom “345216” ve rastgele seçilen
konum 5. konumu ise, yeni kromozom “345261” haline dönüştürülür.
Yerleştirme yöntemi: Yöntem için başlangıçta seçme oranı olarak, nr oranı
belirlenir. (N. nr) adet kromozom rastgele olarak bekleme havuzundan seçilir.
Seçilen bu kromozomlara, yine rastgele olarak belirlenen iki konumdan
birincisindeki gen kaldırılarak diğer konumdaki genin önündeki genler yerleştirilir.
Örneğin seçilen kromozom “345216” ve rastgele seçilen 5. ve 2. konumlar ise, yeni
kromozom “352416” haline dönüştürülür.
Stokastik hataları elimine edecek bu yöntemlerde, tavsiye edilen seçim
oranları ise; n1 = 0.03 , n2 = 0.09 , n3= 0.09 ve nr = 0.09 şeklindedir (Huang
vd.,1997,s.3109).
4.6. Genetik Algoritmanın Optimizasyon Problemine Uygulanması
Tez kapsamında ele alınan GA’ları daha iyi anlatmak ve pratikte nasıl
çalıştığını göstermek amacıyla, basit bir optimizasyon probleminin GA ile çözümüne
aşağıda yer verilmiştir.
74
F(x)=x2 şeklinde bir amaç fonksiyonunu, 0≤ x ≤ 31 aralığında en
büyükleyecek x değeri araştırılmaktadır. Çözümü zor olmayan bu fonksiyonu elle
çözmek ve sonucun x=31 için en büyük değer verdiğini hemen görmek mümkün
olmaktadır.
Problemin GA ile çözülmesi için, önce hangi sistemin kullanılacağı ve
kromozomların nasıl kodlanacağına karar verilmelidir. Örnek uygulamaya;
• kullanılacak GA türü (iki tabanlı GA),
• kromozomda yer alacak karar değişkenleri (x değişkeni),
• kromozom uzunluğu (ℓ=5),
• başlangıç toplumunun büyüklüğü (Ntop=4)
konularında, karar verilerek başlanmaktadır. Parantez içinde belirtilen tercihler,
örnek problemde esas alınmıştır. Daha sonra GA için aşağıdaki işlemlerin sırası ile
gerçekleştirilmesi gerekmektedir (Şen,2004,s.107 ; Bolat vd.,2004,s.269).
Başlangıç toplumunun oluşturulması: Bu aşamada karar değişkeni olan çözüm
adaylarının rastgele atanması gerekmektedir. Toplum büyüklüğü Ntop=4
belirlendiğinden, 4 adet rastgele karar değişkeni atanmaktadır. Karar değişkenlerinin
alacağı değerler, verilen kısıtlara uygun olarak seçilmelidir. Bu değerler 13, 24, 8 ve
19 olarak ratsgele seçilmiştir. Böylece, başlangıç toplumu T,
13 01101
T = 24 = 11000
8 01000
19 10011
şeklinde oluşturulmuştur.
Uygunluk değerlerinin hesaplanması: Bu aşamada çözüme aday olan bu
kromozomların uygunluk değerleri hesaplanmaktadır.
75
∑Fi =∑ x2 = 169+576+64+361=1170
Fort =∑ x2 / 4=1170/4 = 293
Her bir çözüm noktasının (kromozomun) toplum içinde değer olarak yüzdesi diğer
bir deyişle, (Fi / ∑Fi)uygunluk değeri olarak kullanılabilmektedir. Bununla birlikte,
her bir kromozomun, toplumun ortalama değerine göre yüzdesi (Fi / Fort)’da
uygunluk değeri olarak da kullanılabilmektedir.Bu değerler Tablo 4.2’de de
gösterilmektedir.
Tablo 4.2: Başlangıç Toplumu ve Uygunluk Değerleri
Başlangıç
Toplumu
x
x2
Fi / ∑Fi
Uygunluk değeri
Fi / Fort
1 01101 13 169 169/1170=0,144 169/293=0,58
2 11000 24 576 576/1170=0,492 576/293=1,97
3 01000 8 64 64/1170=0,055 64/293=0,22
4 10011 19 361 361/1170=0,309 361/293=1,23
Kaynak: Bolat vd.,2004,s.269.
Tablo 4.2’de görüldüğü gibi, uygunluk değeri Fi/Fort=1,97 ile en uygun
kromozom yani çözüme en yakın aday x=24 karar noktasıdır. Algoritmanın mantığı
gereği, artık genetik işlemlerin yapılacağı çözüm adaylarının seçilmesi
gerekmektedir. Çözüm adayları iki farklı yöntemle seçilebilmektedir.
Çözüm adaylarının rastgele seçilmesi yöntemi:
1 ile 1000 arasında rastgele bir r sayısı seçerek ve aday çözümlerin uygunluk
değeri yüzdeleri kullanarak, genetik işlemlerin uygulanacağı aday çözümlerin
seçilmesi, aşağıdaki gibi yapılabilmektedir (Şen,2004,s.108). Burada uygunluk
fonksiyonu olarak Fi/∑Fi kullanılmaktadır.
r<144 ise 01101 seçilmeli,
145<r<636 (144+492=636) ise 11000 seçilmeli,
637<r<692 (637+55=692) ise 01000 seçilmeli,
693<r<1000 (636+309=1000) ise 10011 seçilmelidir.
76
Rastgele sayıların kullanılması ile 01101, 11000, 01000 ve 10011
kromozomlarından biri seçilebilmektedir.
Çözüm adaylarının fi uygunluk değerlerine göre seçilmesi yöntemi:
Yöntemde, çözüm adayları arasından yapılacak seçim, belirlenen bir
uygunluk fonksiyonundan elde edilen uygunluk değerleri göz önüne alınarak
gerçekleştirilmektedir.
Tablo 4.2’deki kromozomlar için, uygunluk değeri fi=Fi/Fort ve Niyi =2=Nkötü
olarak belirlendiğinde, 2 ve 4. kromozomların uyumlu, 1 ve 3. kromozomlar
uyumsuz olduğu gözlenmektedir (Bolat vd.,2004,s.269).
Çaprazlama: Bekleme havuzunda, uygunluk değerleri (Fi/ Fort) iyi ve kötü olanlar
bir biri ile eşlenerek çaprazlama işlemi yapılmaktadır. Eşlenme işlemine yönelik
bilgiler Tablo 4.3’de verilmektedir. Bu bilgiler doğrultusunda; 1 ve 2. kromozomlar
4. konumda çaprazlanırken, 4 ve 3. kromozomlar 2. konumda çaprazlanacaktır.
Tablo 4.3: Çaprazlama Bilgileri
Bekleme havuzu Eşlenecek kromozom Çaprazlama konumu
1 0110 / 1 2 4
2 1100 / 0 1 4
3 01 / 000 4 2
4 10 / 011 3 2
Kaynak: Bolat vd.,2004,s.269.
Çaprazlama işlemlerinin tamamlanmasından sonra, yeni kromozomlar
oluşturulmuştur ve Tablo 4.4’de “Yeni toplum” sütununda gösterilmektedir.
Oluşturulan yeni toplumun, amaç fonksiyonu temel alınan uygunluk değerleri
hesaplanarak Tablo 4.4’de gösterilmektedir.
77
Tablo 4.4: Yeni Toplum ve Uygunluk Değerleri
Yeni toplum
X
x2
Uygunluk değeri.
Fi / Fort
1 01100 12 144 144/287=0,50
2 11001 25 625 625/287=2,18
3 01011 11 121 121/287=0,42
4 10000 16 256 256/287=0,89
Kaynak: Bolat vd.,2004,s.270.
∑Fi =∑ x2 = 1146
Fort =∑ x2 / 4=1146/4 = 287
Mutasyon: Tablo 4.4’de ikinci satırdaki çözüm en uygun çözümdür. Ancak 4.
satırdaki çözüme 2. konumdan itibaren genlerin tamamlayıcısı (complement) ile
değiştirilmesi şeklinde yapılan mutasyon işlemi ile 11111 değeri elde edilir ki, ikili
sayı sistemindeki bu sayının ondalık karşılığı 31 olacaktır. Bulunan değer, aranan en
büyük x değeridir. Örnekte, toplumun eleman sayısı küçük bir değer olarak
belirlendiğinden, arama yüzeyi büyük olmayacaktır. Bu nedenle mutasyon
yapılmayabilir. Mutasyon yapılmadan uygunluk değerlendirilmesi aşamasına geri
dönülerek işlemler tekrarlanmaktadır.
78
BEŞİNCİ BÖLÜM
PROJE ÇİZELGELEME PROBLEMLERİ VE SEZGİSEL
YÖNTEMLERİN KULLANIMI
Bu bölümde projenin çizelgeleme konusuna değinilerek, KKPÇ
problemlerinin özelliklerine ve kavramsal modelinin açıklamasına yer verilmektedir.
Ayrıca, GA ile proje çizelgelemede göz önünde bulundurulması gereken unsurlar
açıklanmaktadır. Bu unsurlar; GA’da kullanılan kromozomların nasıl temsil
edilmesi gerektiği, kullanılabilecek çizelgeleme yöntemleri ve çizelgelenebilecek
faaliyetlerin çizelgeye eklenmesi aşamasında kullanılan yöntemleri kapsayan sezgisel
yöntemlerdir.
5.1. Proje Çizelgeleme
Çizelgeleme; belirli kriterlere uyulması koşulu ile bir ya da daha fazla amacı
iyileştirecek şekilde, gerçekleşmesi gereken görevlerin sıralarını ve mevcut
kaynakların zaman içindeki kullanımını göstermektir. Çizelgelemenin bir diğer
tanımı da, belirli kriterlere ve kısıtlara uymak koşulu ile gerçekleşmesi gereken
görevlerin daha az süre ve kaynak kullanarak problemin çözümünü göstermektir
(Biroğul,2005,s.16). Bu nedenle çizelgeleme; proje/üretim planlama ve yönetimin
karar aşamalarında konu edilen çalışmanın etkinlik ve verimliliğini belirleyen önemli
bir fonksiyondur.
Proje çizelgeleme; mevcut kısıtlı kaynakları kullanarak, belirli amaçlar
çerçevesinde yerine getirilmesi gereken görevlerin gerçekleşmesi için program
yapılmasıdır. Bu açıdan proje ne kadar iyi çizelgelenebilirse, yönetici ve
uygulayıcıların etkinlik ve verimliliği o oranda artmaktadır.
Proje çizelgeleme; doğası gereği yalın bir çalışma konusu olmayıp,
çizelgelemeyi etkileyen pek çok unsur içermektedir. Örneğin; faaliyetlerin öncüllük
ilişkileri, faaliyet süreleri, faaliyetin gerçekleşmesi için gereken kaynaklar ve
miktarları gibi unsurlar sayılabilir. Çizelgelemeyi etkileyen temel unsur, süreç
planlama aşamasıdır. Süreç planlama aşaması, faaliyetlerin mevcut imkânlar
çerçevesinde sıralanması ya da düzenlenmesi aşamasıdır.
79
5.1.1. Proje Ağının (Network) Oluşturulması
Proje çizelgelemede, tanımlanan faaliyetlerin düzenlenmesi ve sıralanması
oldukça önemlidir. Proje ağı, proje faaliyet sürelerinin ve faaliyetlerin öncüllük
ilişkilerinin şema üzerinde gösterilmesinde kullanılan önemli bir araçtır. Öncüllük
ilişkileri; zaman bazında faaliyetler arasındaki başlangıç bitiş ilişkilerini
göstermektedir. Proje faaliyetlerinin ağ üzerinde sıralanmasında;
• faaliyetlerin düğümlerde gösterilmesi ve
• faaliyetlerin oklar üzerinde gösterilmesi
olmak üzere iki farklı yöntem kullanılmaktadır.
Her iki gösterimde de, proje ağı üzerinde bir başlangıç ve bir bitiş düğümü
olması gerekmektedir. Eğer verilen problemde başlangıç ve bitiş düğümleri
tanımlanmadı ise, yapay başlangıç ve/ya da bitiş düğümü tanımlanmalıdır
(Ulusoy,2006,s5). Yapay başlangıç ve bitiş düğümlerinin faaliyet süresinin sıfır ve
hiç bir kaynağı kullanmadığı varsayılmaktadır. Kullanılan yöntem ne olursa olsun;
bir faaliyetin başlayabilmesi için, bütün öncüllerinin tamamlanmış olması
gerekmektedir.
Faaliyetlerin Düğümlerde Gösterilmesi
Bu yöntem, AON (Activity on Node ) olarak da adlandırılmaktadır. Çünkü
her düğüm (node) bir faaliyet bilgisini içermektedir. Bu gösterimde oklar, öncüllük
ilişkilerini göstermektedir. Düğümler ise genellikle farklı ve birden fazla faaliyet
bilgileri içermektedirler. Bu bilgiler kapsamında;
• faaliyet süresi,
• en erken başlama zamanı
• en erken bitiş zamanı
• en geç bitiş zamanı
• en geç başlama zamanı ve
• bolluk süresi (Slack=LST-EST)
yer almaktadır (Solomon,2005,s.3).
80
Faaliyetlerin düğümlerle gösterildiği bu yöntemde, kukla (dummy)
faaliyetlere ihtiyaç duyulmadığından problem daha basit bir şekilde serim üzerinde
gösterilebilmektedir (Ulusoy,2006,s.5).
Şekil 5.1 : Faaliyetlerin Düğümlerde Gösterilmesi Kaynak : Solomon,2005,s.3
Şekil 5.1’ deki serim, sekiz faaliyetli bir planı göstermektedir. Faaliyetler A-
H olarak etiketlendirilmektedir. Başlangıç ve bitiş faaliyetlerinin süreleri 0 olarak
kabul edilmektedir. Diyagramdaki düğümler faaliyet bilgilerini, oklar faaliyetlerin
diğer faaliyetlere ne şekilde bağımlı olduklarını göstermektedir. Örneğin B faaliyeti
A ve C faaliyeti tamamlanmadan başlayamaz. Bu ikili bağımlığı göstermek için
A’dan B’ye ve C’den B’ye olmak üzere iki ok çizilmektedir.
Faaliyetlerin Oklar Üzerinde Gösterilmesi
Faaliyetlerin oklar üzerinde gösterilmesi, faaliyetlerin düğümlerde
gösterilmesi modeline benzemektedir. Modelde, faaliyetler (ya da faaliyet süreleri)
oklar üzerinde gösterilirken, faaliyetlerin başlangiç/bitiş süreleri de düğümler
üzerinde gösterilmektedir. Bu diyagram, AOA (Activity on Arrow) diyagramı olarak
adlandırılmaktadır. Aşağıdaki Şekil 5.2, AOA diyagramına örnek olarak verilmiştir.
81
Şekil 5.2 : Faaliyetlerin Ok Üzerinde Gösterilmesi Kaynak : Solomon,2005,s,4
Şekil 5.2’deki ağ üzerinde, 11 faaliyet A-K şeklinde etiketlenmiştir.
AON’dan farklı olarak, faaliyetler oklar üzerine etiketlendirilmektedir. Faaliyetler
arasındaki bağımlılık benzer şekilde işlem görmektedir. Ancak burada, kukla faaliyet
olarak adlandırılan farklı faaliyetler söz konusudur. Bu faaliyetler kesikli çizgi ile
belirtilen ve faaliyet süresi olmayan faaliyetlerdir. Örneğin 2 ve 3 no.’lu düğümler
arasında kukla faaliyeti tanımlanmıştır. Şekil 5.2’de de görüldüğü gibi, C faaliyeti E
faaliyeti tamamlanmadan başlayamamaktadır. Benzer şekilde G faaliyeti, I faaliyeti
tamamlanmadan başlayamamaktadır.
5.1.2. Faaliyetlerin Öncüllük İlişkileri (Activity Precedence Relations)
Faaliyetlerin düğümlerde gösterildiği diyagramlarda (AON’da); oklarla
temsil edilen faaliyet öncüllük ilişkileri başka bir deyişle faaliyetler arasındaki
bağımlılık şekilleri dört farklı biçimde tanımlanabilmektedir. Bunlar:
• Bitiş - Başlangıç (FS) — Sonraki faaliyetin başlaması, öncül faaliyetin
tamamlanmasına bağlıdır. En yaygın kullanılan tiptir.
82
• Bitiş - Bitiş (FF) — Sonraki faaliyetin tamamlanması, öncül faaliyetin
tamamlanmasına bağlıdır.
• Başlangıç - Başlangıç (SS) — Sonraki faaliyetin başlaması, öncül
faaliyetin başlamasına bağlıdır.
• Başlangıç – Bitiş (SF) — Sonraki faaliyetin tamamlanması, öncül
faaliyetin başlamasına bağlıdır.
Burada belirtilen öncüllük ilişkileri; faaliyetlerin birbirine bağımlı
özelliklerinden ve teknolojik imkânlardan kaynaklanan zorunluluklar sonucu
oluşabilmektedir (Mori ve Tseng,1997,s134). Ancak her hangi bir tanım
yapılmadıysa, FS ilişkisinin olduğu varsayılmaktadır.
Faaliyetlerin oklar üzerinde gösterildiği (AOA) serimlerde ise zaten böyle bir
yapıya ihtiyaç duyulmamaktadır. Bu yapılarda, gerektiğinde kukla faaliyetlerle
faaliyet öncüllükleri tanımlanmaktadır. Bu modelde, tüm faaliyetler arasındaki ilişki
FS (Bitiş-Başlangıç) ilişkisidir.
Sezgisel yöntemlerin kullanıldığı çizelgeleme işlemlerinde; faaliyetlerin
düğümlerde gösterildiği ağ kukla faaliyete ihtiyaç duyulmamasından dolayı tercih
unsuru olmuştur. Kukla faaliyetin olmaması da, karmaşık problemlerin çözümüne
yönelik geliştirilen algoritmalarda işlem rahatlığı getirmektedir. Bu nedenle,
başlangıçtan bu yana geliştirilen proje çizelgeleme algoritmalarında kullanıla
gelmektedir.
AON ile Bir Proje Seriminin Hazırlanması
Proje seriminin hazırlanabilmesi için; en azından faaliyetlerin
öncülleri/ardılları ve sürelerinin önceden belirlenip hazırlanması gerekmektedir.
Örnek proje serimini hazırlamak için, Tablo 5.1’de gösterilen veriler kullanılacaktır.
83
Tablo 5.1.: Proje Faaliyet Bilgileri
Faaliyet Öncülleri Süre En Erken Başlama Süresi EST
(ay/gün/yıl)
A -- 5 9/5/05
B A 2 9/10/05
C A 3 9/10/05
D B 7 9/12/05
E C 4 9/13/05
F D 1 9/19/05
G E, F 2 9/20/05
Kaynak: Solomon,2005,s.4
Proje ağını çizmek için kullanılan düğüm örneği aşağıdaki Şekil 5.3’de
gösterilmektedir.
En Erken Başlama
Süresi (EST)
Süre En Erken Bitirme Süresi (EFT)
Faaliyet Adı
En Geç Başlama
Süresi (LST)
Bolluk
(Slack)
En Geç Bitirme Süresi (LFT)
Şekil 5.3 : Örnek Düğüm Bilgileri
Düğüm bilgileri ileriye ve geriye doğru çizelgeleme yöntemleri ile
oluşturulmaktadırlar. İki geçişli yöntem ile elde edilen bu bilgiler ile Şekil 5.4’de
gösterilen proje ağı hazırlanmaktadır.
84
Şekil 5.4 : Tamamlanmış Proje Ağı Kaynak : Solomon,2005,s.6
Böylece, ağ üzerindeki faaliyetler hakkında detaylı bilgi sahibi
olunabilmektedir. Hangi faaliyetin geciktirilip geciktirilemeyeceği, şematize edilerek
projenin en kısa tamamlanma süresi elde edilmektedir.
5.2. Kaynak Kısıtlı Proje Çizelgeleme Problemleri ve Özellikleri
KKPÇ, kısıtlı kaynaklar kullanılarak bir projeyi oluşturan faaliyetlerin,
öncüllük ilişkilerini göz ardı etmeden amaç fonksiyonunu en iyileyecek biçimde
çizelgelenmesidir (Ulusoy,2006,s.4). Kaynak kısıtı ve faaliyetlerin öncüllük ilişkileri,
özellikle karmaşık problemlerin çizelgelenmesini güçleştiren unsurların başında
gelmektedir. Çizelgelenmesi güç olan bu tür problemler, ortaya çıkışından bu yana
uygulamacıların ve araştırmacıların ilgisini çekmeye devam etmektedir (Reyck ve
Herroelen,1998,s.1). Son yıllarda araştırmacılar probleme hem sezgisel hem de
optimal yöntemlerle devam etmektedirler (Hartmann ve Kolisch,2000,s.395).
n faaliyet sayısına sahip bir KKPÇP’de tüm faaliyetler iki türlü kısıta sahiptir.
Birincisi öncüllük ilişkilerinden kaynaklanan kısıtdır. Bu kısıt, her bir j faaliyetinin
kendinden önce gelen faaliyetleri tamamlamadan başlatılamaması zorunluluğunu
getirmektedir. İkincisi ise, kaynak kısıtıdır. Projedeki faaliyetler sınırlı kapasiteye
85
sahip kaynak kullanmaktadır. Klasik KKPÇP’lerde öncelik kısıtına sahip olan
faaliyetler, başlatıldıktan sonra kesintiye uğratılamazlar (Mori ve Tseng,1997,s.134)
Problemin tanımında temel alınan varsayımları;
• faaliyet sürelerinin deterministik olması,
• faaliyetlerin birim zaman kaynak kullanımının sabit olması,
• bir faaliyete atanan kaynağın, faaliyet süresince o faaliyet tarafından
kullanılması,
• bir faaliyetin kullandığı kaynak miktarının pozitif bir sayı ile
gösterilmesi,
• başlatılan faaliyetlerin kesintiye uğramadan tamamlanması,
• projedeki tüm faaliyetlerin gerçekleştirilmesi
şeklinde sıralamak mümkündür (Artigues vd.,2003,250; Ulusoy,2006,s.4).
Projede kullanılan kaynaklar yenilenebilir (renewable), yenilenemeyen
(nonrenewable), çift kısıtlı (doubly) ve/ya da kısmen yenilenebilir kaynak
olabilmektedir. Yenilenebilir kaynaklar, zamana (belli bir peryoda) bağlı olarak
kısıtlı kaynaklardır. Bu tür kaynakların faaliyetler tarafından kullanımı kısıtlı
olmasına rağmen tükenmesi söz konusu değildir. Yenilenemeyen kaynaklar, tüm
proje süresince kısıt altında olan kaynaklardır. Çift kısıtlı kaynaklar ise, hem zamana
hem de tüm projeye bağlı olarak kısıt altında olan kaynaklardır. Kısmen yenilenebilir
kaynakların kullanımı ise, belli bir zaman aralığı içerisinde farklı kısıtlar ile temini
mümkün olmaktadır (Mika vd.,2005,s.640).
Çok aşamalı-KKPÇP ise klasik kaynak kısıtlı proje çizelgeleme probleminin
bir başka türüdür. Çok aşamalı-kaynak kısıtlı proje çizelgeleme problemlerinde, bir
faaliyetin gerçekleştirilebilmesi için, her bir aşamada gerekli olan kaynak ve o
aşamadaki faaliyet süreleri kısıtlarına da dikkat edilmesi gerekmektedir.
KKPÇP’ler, öncelik sıralarının uygunluğu, kaynakların kısıtlı olması ve
faaliyetlerin kesilmemesi ilkelerine bağlı kalınarak çizelgelenmektedir. Çok aşamalı-
KKPÇP’lerde amaç, proje kapsamındaki faaliyetlerin önceliklerini belirlemek,
86
faaliyetlere uygun aşamaların atanmasını sağlamak ve kaynak uygunluğunu sağlayan
proje bitiş süresini belirlemektir (Kolisch ve Hartmann.,1999,s.148).
Son yıllarda, KKPÇP gibi çözümü zor problemlerin (Mika vd.,2005,s.640)
global ya da yerel çözümlerini elde etmek için sezgisel yöntemler geliştirilmiştir.
KKPÇP, aşağıda belirtildiği gibi kavramsal bir şekilde modellenebilmektedir
(Mendes vd.,2005,s.3).
Amaç Fonksiyonu:
Min Fn+1 (5.1)
Kısıtlar:
Fi ≤ Fj - dj j=1,…..n+1 ve i∈Pj (5.2)
∑ rjk ≤ Rk k∈K ve t≥0 (5.3) j∈A(t)
Fj ≥ 0 j=1,…,n+1 (5.4)
Formül 5.1 ile gösterilen amaç fonksiyonu, (n+1). faaliyetin tamamlanma
süresini minimize etmektedir. Böylece proje tamamlama süresi en küçüklenmiş
olacaktır. Birinci kısıt (formül 5.2) faaliyetlerin öncelik sıraları kısıtıdır. İkinci kısıt
(formül 5.3) ise, t anında işlem gören faaliyetin talep ettiği kaynak miktarının kaynak
kapasitesine göre sınırlanması kısıtıdır. Sonuncu kısıt (formül 5.4) ise karar
değişkenleri kısıtıdır. Başka bir deyişle, faaliyetlerin tamamlanma sürelerinin negatif
olmaması kısıtıdır.
K={1,2,….k} kaynak tipi kümesi olmak üzere; süreç esnasında bir j faaliyeti,
dj faaliyet süresince rjk miktarında, k∈ K kaynak tipinden kullanmaktadır. Kaynak
tipi k’nın sınırlı kapasitesi Rk kadardır. dj , rjk , ve Rk parametrelerinin belirgin
(deterministik) ve negatif olmadığı varsayılmaktadır (Mendes vd.,2005,s.2).
Modelin kavramsal olarak hazırlanabilmesi için, 0 ve n+1 şeklinde kukla
başlangıç ve bitiş faaliyetleri kullanılmaktadır. Diğer faaliyetler gibi bu faaliyetler
87
de aynı kısıta sahiptir. Kukla başlangıç ve bitiş faaliyetlerinin, faaliyet süreleri ve
kaynak gereksinimlerinin olmadığı (dj,rjk = 0 , k∈K için) kabul edilmektedir.
Modelde Pj , j faaliyetinin öncül faaliyetler kümesidir . Fj ise j faaliyetinin
tamamlanma süresidir. Bir çizelge, faaliyetlerin bitiş süreleri {F1,F2,….Fn+1} olarak,
bir vektör şeklinde temsil edilebilmektedir. A(t) kümesi ise, t anında işlem gören
(aktif) faaliyetlerin kümesidir ve A(t)={j∈J Fj - dj≤ t < Fj} dir. Belirtilen modelde,
A(t) kümesi karar değişkenlerinin bir fonksiyonu olduğundan, model kavramsaldır
(Kolisch ve Hartmann,1999,s.149).
5.3. Kaynak Kısıtlı Proje Çizelgeleme Problemlerinde Kullanılan Yöntemlerin
Sınıflandırılması
GA ile proje çizelgelemede, diğer optimizasyon yöntemlerinde olduğu gibi
deterministik ve stokastik yöntemler kullanılmaktadır. Bununla birlikte, GA’nın
etkinliğini artırmak amacıyla geliştirilen algoritmaların genetik işlemlerinde, sezgisel
yöntemler uygulandığı görülmekte, evrimsel sürece daha iyi benzetim yapılabilmesi
için genellikle stokastik ve sezgisel yöntemler kullanılmaktadır. Bu nedenle birçok
kaynakta, KKPÇ problemlerinde kullanılan yöntemleri sadece; stokastik ve sezgisel
olarak iki sınıfa ayırmaktadır. GA’nın doğası gereği, stokastik ya da sezgisel
çizelgeleme prensibini taşıyan işlemler, çizelgelemenin her aşamasında ya da bazı
aşamalarında yer alabilmektedir.
5.3.1. Deterministik Yöntemler
Deterministik yöntemle çizelgelemede; ileri ya da geriye doğru çizelgeleme
işlemlerinde faaliyetler deterministik olarak seçilmektedir (Mori ve
Tseng,1997,s.136).
Deterministik yöntemlerde elde edilen sonuçlar kesindir. Bu tür yöntemler
kullanıldığında, algoritma aynı problem için her işletilmesinde daima aynı sonucu
verecektir. Bu özelliği nedeniyle; bu yöntem, kısıt sayısı fazla olan karmaşık
problemlerde pratik bir yöntem olmamaktadır. Deterministik kurallar en iyi sonucu
üretemediği durumda, başka bir çözüm üretme alternatifi söz konusu olamamaktadır.
KKPÇ problemlerinde de hâlihazırda literatürde önerilmiş herhangi bir deterministik
88
kuralın varlığı söz konusu değildir. Bu nedenle; sezgisel yöntemleri kullanarak iyi bir
çözüm arayışı halen devam etmektedir.
5.3.2. Stokastik Yöntemler
Stokastik çizelgeleme yönteminde; çizelgeleme faaliyet ve aşama seçimleri
olasılığa ya da tesadüfe dayanan yollarla yapılmaktadır.
Proje çizelgeleme aşamasında herhangi bir işlemde; faaliyetlerin önceliklerin
belirlenmesi ya da çizelgeleme aşamasında uygun faaliyetler arasından bir faaliyet
seçilmesi işlemlerinden birinde, olasılık kurallarına dayanarak bir işlem yapılırsa
“stokastik çizelgeleme yöntemi” olarak adlandırılmaktadır.
Stokastik çizelgeleme yönteminde de faaliyetler, faaliyetlerin öncelik sıraları
ve kaynakların uygunluğu kısıtlarına bağlı kalınarak çizelgelenmektedir. GA’ların
çizelgeleme problemlerine uygulanmaya başlandığı dönemlerde, stokastik
yöntemlerle yapılan çalışmaların başarılı sonuçlar vermediği görülmektedir. Global
(ya da globale yakın) sonuçlar elde edilmek amacıyla “sezgisel” yöntemler ortaya
çıkmıştır.
Özellikle faaliyet sayısı 50 ve üzerinde olan projeleri çizelgelemelerde,
optimum çözüm arayışlarının başarısızlıkla sonuçlanması nedeniyle, sezgisel
yöntemler kullanılarak, optimuma yakın çözüm arayışları yaygınlaşmıştır (Pet-
Edwards ve Mollaghamsemi,1995,s.3059).
5.3.3. Sezgisel Yöntemler
Sezgisel yöntemlerde; faaliyet seçimi belirli (deterministik ) sezgisel bir
yöntem kullanılarak yapılırsa, “deterministik sezgisel yöntem” adı verilmektedir. Bu
yöntemde GA’nın her uygulanışında, belli (kesin) bir çözüm elde edilmektedir.
Faaliyet seçiminde; rastgele seçilen sezgisel yöntemler kullanıldığında
“deterministik olmayan sezgisel” yöntemler olarak adlandırılmaktadır. Her uygulama
sonucunda farklı çözümler elde edilebilmektedir (Salewski vd.,1997,s.94).
89
Literatürde, GA ile hazırlanan proje çizelgeleme problemlerinde kullanılan
yöntemler kesin (exact) ve sezgisel olmak üzere iki şekilde sınıflandırılmaktadır
(Wall,1996,s.18). Sezgisel kavramı, faaliyetlerin seçiminde doğrudan doğruya bir
olasılık değeri kullanmayıp, GA’nın doğası gereği, rastgeleliği içeren sezgisel
yöntemleri kullanmaktan kaynaklanmaktadır. Eğer faaliyetlerin seçiminde, sadece
olasılık değerlerine yer verilirse, çözüm uzayında en uygun çözümü bulmak çoğu
zaman mümkün olamayacaktır.
GA’ların kullanımında, hala en iyi bir yöntem öne sürülebilmiş değildir. Bu
nedenle son yıllarda algoritmalarda faaliyetlerin seçiminde kullanılan yöntemler
çoğunlukla sezgisel olmaktadır. Sezgisel yöntemlerde de bir kesinlik söz konusu
olmamaktadır. Çoğu zaman optimum sonuç elde edilememekte, optimuma yakın “iyi
sonuçlar” elde edilebilmektedir. Algoritma farklı zamanlarda çalıştırıldığında, aynı
sonucu vermeyebilecektir. Çünkü sezgisel yöntemler stokastik özellikler
içermektedir.
Çizelgeleme tipli problemlerde kullanılacak çizelgeleme yöntemleri kadar,
çizelgenin nasıl temsil edileceği ve işlemlerde hangi sezgisel yöntemlerin
kullanılacağı gibi konularda alınacak kararlar, algoritmanın performansını etkileyen
unsurlardır. Kromozom yapısı, probleme ve algoritmanın yapısına uygun olarak
hazırlandığında, üzerinde yapılacak genetik işlemler de daha anlamlı sonuçlar
verecektir (Cheng ve Gen,1994,s.737).
Algoritmanın hesaplama süresini ve aramanın yönünü, dolayısıyla elde
edilecek çözümü etkileyen unsurlar arasında, faaliyet ve kaynakları sıralama
işlemleri (Nudtasomboom ve Randhawa,1997,s.230) ve çizelgelemede kullanılacak
faaliyet öncelik kuralları gibi unsurlarda yer almaktadır.
Bu nedenle, literatürde aynı problem üzerinde uygulama yapılan, farklı
sezgisel algoritmalarla karşılaşılmakta ve geliştirilen algoritmaların
etkinliği/performansı genellikle literatürde yer alan çalışma sonuçları ile kıyaslanarak
değerlendirilmektedir.
90
5.4. Sezgisel Yöntemler ve Özellikleri
Bu alt başlıkta, GA’larda sıkça kullanılan sezgisel yöntemlere yer verilmiştir.
Çizelgeleme problemlerinde kullanılan sezgisel yöntemler; öncülleri tamamlanan
faaliyetlerin seçiminden, kullanılacak çizelgenin türüne kadar geniş bir yelpazede söz
konusu olmaktadır.
KKPÇP’nin karmaşıklığı nedeniyle GA’larda kullanılan tüm sezgisel
modeller;
• faaliyet süreleri,
• kullanılabilir kaynaklar ve miktarları,
• kaynak kısıtı olmayan problemlere uygulanan kritik yol metodu ile
elde edilen ölçüm değerleri (EST, EFT, LFT, EFT ve Bolluk süreleri)
şeklinde sıralanan klasik proje çizelgeleme özelliklerini/kavramlarını temel
almaktadır (Pet-Edwards ve Mollaghasemi,1996,s.335).
5.4.1. Faaliyetleri Etiketleme
Proje çizelgeleme problemlerinde, ilk aşamada yapılması gereken işlerden
biri de faaliyetleri etiketlemek (labeling process) dir. Faaliyetleri etiketleme,
geliştirilen çizelgede faaliyetleri kriterlerine göre yerleştirmek ya da sıraya koymak
amacıyla gerekmektedir (Nudtasomboon ve Randhawa,1997,s.230).
Faaliyetler, klasik çizelgeleme yöntemlerinde olduğu gibi, öncülleri
tamamlanan faaliyetlere daha küçük sayıların verilmesi ile etiketlenebilir (Erenguc
vd.,2001,s.108). Sezgisel modellerde faaliyetler, bazı faaliyet sıralama kuralları
kullanarak etiketlenebilmektedir. Bu kurallar, aşağıda Tablo 5.2’de verilmektedir.
91
Tablo 5.2: Sezgisel Modellerde Kullanılan Etiketlendirme Kuralları
KURALLAR AÇIKLAMASI
MAAD (Min.average job duration) En küçük ortalama faaliyet süresi
MAD (Max.activity duration) En büyük faaliyet süresi
MAAR (max. average resource demand) En büyük ortalama kaynak talebi
MTE (min. earliest finish time) En küçük en erken tamamlanma süresi
MIL (min. latest finish time) En küçük en geç tamamlanma süresi
MILSD (min. of the difference between
LFT and smallest duration)
En geç tamamlanma süresi ile en küçük
faaliyet süresi arasındaki en küçük fark
MILAD (min. of the difference between
LFT and average duration)
En geç tamamlanma süresi ile ortalama
süre arasındaki en küçük fark
RAND (random) Faaliyetleri rastgele numaralandırma
Kaynak: Nudtasomboon ve Randhawa,1997,s.230
Ancak son yıllarda, GA’nın karmaşık ve kapsamlı çizelgeleme problemlerine
uygulanması nedeniyle, faaliyetlerin etiketlenmesinde, Tablo 5.2’deki kurallar
yetersiz ve etkisiz kalmaya başlamıştır. Bu nedenle, “sezgisel etiketleme” olarak
adlandırılan yeni ve farklı etiketleme yöntemleri tercih edilmeye başlanmıştır.
Örneğin, öncelik kurallarını içeren etiketleme, çok modlu örneklerde ise mod ve
faaliyet sürelerini içeren etiketleme sezgisel etiketleme yöntemlerinden bazılarıdır.
Standart dışı etiketlemede dikkat edilecek unsur; GA’nın işlemleri esnasında
gerekli bilgilerin tümünü içerecek bir yapıda olmasıdır.
5.4.2. Öncülleri Tamamlanan Faaliyetler ve Öncelik Kuralları
GA gibi sezgisel modellerde de klasik yöntemlerde olduğu gibi, proje
çizelgeleme; adım adım ve her bir adımda bir faaliyet çizelgelenerek
oluşturulmaktadır.
Öncelik kuralları, KKPÇP ve karmaşık problemlerin çizelgelenmesinde
yaygın olarak kullanılmaktadır. Proje çizelgeme aşamasında, kısıtları karşılayan
birden fazla faaliyet içerisinden hangisinin seçilerek çizelgeleneceğini belirlemede
kullanılan kurallardır.
92
GA’ların başlangıç uygulamalarında, sezgisel olmayan uygulamalarda da
kullanılan öncelik kuralları, kullanım kolaylığı ve sezgisel olma özelliğinden dolayı
önemini korumaktadır (Kolisch,1996a,s.322). Ancak öncelik kurallarından
hangisinin kullanılacağı kararının, optimum amaç fonksiyonu değerinden ortalama
sapma değeri açısından problemin çözümüne büyük bir üstünlük getirmediği de
görülmektedir (Brucker vd.,1999,s.11).
Öncelik kurallarından hangisinin kullanılacağı kararı, projeyi çizelgeleme
süresi ve algoritmanın yinelenme sayısı gibi önemli unsurları etkilemektedir.
Çizelgedeki faaliyetlerin öncelikleri, öncelik kuralları kullanılarak belirlenmektedir.
Bunlar (Cheng ve Gen,1994,s.740;Özdamar,1999,s.57):
1. En Küçük Bolluk Değeri (Minimum Total Slack - MINSLACK):
Bu kuralda amaç, en az bolluk süresine (slack time) sahip kritik faaliyeti
belirlemektir.
Pj=LFTj – ESTj - djm
Burada;
Pj : j faaliyetinin öncelik değeri
LFTj: En geç bitirme zamanı
ESTj: En erken başlama zamanı
djm: j faaliyetinin m modundaki faaliyet süresi
dir.
MS Project 2000 programı, KKPÇP’lerin çözümünde MINSLACK öncelik
kuralını kullanmaktadır (Wang ve Lu,2002.s.1979).
2. En Kısa En Geç Bitirme Zamanı (Minumum LFT):
LFT kuralının amacı, proje bitirme zamanının artma riskini azaltacak, küçük
LFT’lere sahip faaliyetleri çizelgelemektir.
Pj=LFTj
Burada;
Pj :j faaliyetinin öncelik değeri
LFTj: En geç bitirme zamanı
dır.
93
3. En Kısa İşlem Süresi (SPT):
SPT’nin amacı, en kısa faaliyet süreli faaliyeti göndermektir.
Pj= djm
Burada;
Pj : j faaliyetinin öncelik değeri
djm: j faaliyetinin m modundaki faaliyet süresi
dir.
4. Rastgele (Random):
Bu kural, seçilebilme koşullarını sağlayan faaliyetler arasından bir faaliyetin
rastgele seçilmesini sağlamaktadır.
Pj=RANDOM(ELIGSET)
Burada;
Pj : j faaliyetinin öncelik değeri
ELIGSET: Seçilebilir faaliyetler kümesidir
RANDOM : Bu fonksiyon, aday çözümler içeren faaliyetler
kümesinden bir faaliyeti rastgele seçmektedir.
5. Ağılıklandırılmış Kaynak Kullanım Oranı ve Ardıllık (Weighted Resource
Utilization and Precedence - WRUP):
WRUP kuralını kullanmada amaç, proje ağında yoğun kaynak ihtiyacında
olan ve kendisinden sonra gelen faaliyetlerin (successors) fazla olduğu
faaliyetleri mümkün olduğunca erken aşamalara çekerek kaynak darboğazını
ortadan kaldırmaktır.
Pj= Wp *npj + (1- Wp )*∑ rjmh /Rh
Burada;
Pj : j faaliyetinin öncelik değeri
Wp : öncelik ağırlığıdır ve rastgele seçilir (precedence weight, ve 0≤
Wp ≤ 1 )
npj : j faaliyetinin ardıl/öncül faaliyetlerinin sayısıdır (ardıl-ileriye
doğru çizelgelemede, öncül-geriyo doğru çizelgelemede)
rjmh :m modunda, j aktivitesi için gerekli h tipi (renewable) kaynak
miktarı
94
Rh : h tipi kaynağın kaynak sınırı
dır.
6. En Kısa En Geç Başlama Zamanı (Minimum LST):
Bu kural da amaç, LST’ leri erken olan faaliyetleri belirlemek ve böylece
kritik faaliyetlerin ertelenmesinden doğacak proje gecikme sürelerini elimine
etmektir.
Pj=LFTj – djm
Burada;
Pj : j faaliyetinin öncelik değeri
LSTj: En geç başlama süresi
dir.
7. En Kısa En Erken Başlama Süresi (Minimum EST):
Bu kural da amaç, EST’ leri erken olan faaliyetleri belirlemek ve böylece
kritik faaliyetlerin ertelenmesinden doğacak proje gecikme sürelerini elimine
etmektir.
Pj=ESTj
Burada;
Pj : j faaliyetinin öncelik değeri
ESTj: En erken başlama süresi
8. En Kısa En Erken Bitirme Süresi (Minimum EFT):
Bu kural da amaç, EFT’ leri erken olan faaliyetleri belirlemektir.
Pj=ESTj + djm
Burada;
ESTj: En erken başlama zamanı
djm : j faaliyetinin m modundaki faaliyet süresi
dir.
9. En Fazla Faaliyet Sayısı (Most Jobs Possible - MTS) :
MTS’nin amacı, j den projenin son faaliyetine kadar olan yolda, en fazla
faaliyete sahip faaliyetleri belirlemektir.
Pj=allonsj
95
allonsj : j faaliyetinden sonra gelen faaliyetlerin sayısıdır.
Geri çizelgeleme iterasyonunda allonsj , j faaliyetinden önce gelen
faaliyetlerin sayısını temsil etmektedir.
10. En Büyük Kaynak Talebi (Greatest Resource Demand - GRD) :
Bu kuralda amaç; seçilebilir faaliyetler arasından, en fazla kaynak kullanacak
faaliyete öncelik vermektir. Kaynak kısıtlı proje çizelgelemelerde kullanılmaktadır.
dj . ∑=
K
kjkr
1
şeklindeki formül, bir faaliyetin faaliyet süresi boyunca gerekli kaynak miktarını
temsil etmektedir. Bu değeri, en fazla olan faaliyet seçilmektedir (Simpson ve
Patterson,1996,s.532).
Bunlara ek olarak, literatürde çok kullanılan diğer kurallar ise
(Boctor,1996,s.351);
MAX RWK: Faaliyetin süresi ile kendinden sonra gelen faaliyetlerin
sürelerinin toplamı en büyük olan faaliyetlerin seçilmesi
kuralıdır.
MAX NIS: Kendinden önce gelen faaliyet sayıları toplamı en büyük olan
faaliyetin seçilmesi kuralıdır.
MAX PTM: En fazla faaliyet süresine sahip olan faaliyetin seçilmesi
kuralıdır.
MIN PTM: En az faaliyet süresine sahip olan faaliyetin seçilmesi kuralıdır.
MAX CAN: Faaliyetin seçiminden sonra, seçilebilir faaliyet sayısı en fazla
olan faaliyetin seçilmesi kuralıdır.
Öncelik kuralları; çizelgeleme aşamalarında değişik değer almaları
(devingen-dinamik) ya da çizelgeleme boyunca sabit değer almalarına (durağan-
statik) göre farklılık göstermektedirler. Örneğin SPT durağan bir kural iken, WRUP
devingen bir kuraldır (Ulusoy,2006,s.9). Faaliyetlerin önceliklerini belirleme
aşamasında kullanılan bu kuralların bazılarını deterministik bazılarını da olasılığa
dayalı kurallar olarak da tanımlamak mümkündür.
96
Öncelik kurallarında kullanılan EST, LST, EFT, LFT ve Slack (bolluk)
değerleri; kritik yol metodu ile hesaplanan değerlerdir (Simpson ve
Patterson,1996,s.532). Bu nedenle de durağan öncelik kurallarıdır.
Durağan öncelik kuralı, her bir KKPÇP’de, bir kereye mahsus olarak
hesaplandığından, algoritmanın işlem süresini artırmayan kurallardır. Ancak
devingen kurallar, her bir faaliyetin seçim aşamasında yeniden hesaplanarak dikkate
alınacağından, algoritmanın işlem süresini etkilemektedirler.
Literatürde KKPÇP’ler de hangi kuralın daha iyi olduğu konusunda kesin bir
yaklaşıma rastlanmamaktadır. Bu nedenle GA uygulamalarında farklı tercihlerin
yapıldığı görülmektedir. Bazı GA uygulamaları, özellikle eski uygulamalar, tek bir
öncelik kuralını kullanırken, bazı uygulamalarda birden fazlası rastgele bir şekilde
seçilerek uygulanmaktadır.
5.4.3. Çizelge Oluşturma Şemaları (Schedule Generation Schemes-SGS)
Özellikle kapsamlı proje çizelgeleme problemlerinde, GA ile olanaklı çizelge
hazırlamak için, literatürde konu edilen iki farklı çizelgeleme türü mevcuttur. Bunlar
seri çizelgeleme (seri SGS) ve paralel çizelgeleme (paralel SGS) olarak
adlandırılmaktadırlar (Debels ve Vanhoucke,2005,s.5). Çizelge hazırlamak için,
çizelge türlerinden biri ya da her ikisi birlikte kullanılmaktadır (Kolisch ve
Hartmann,1999,s.149).
Çizelgeleme; projenin başlangıç konumundan başlayarak, çizelgenin
parçalarını adım adım genişletme yoluyla çizelge üretmektedir. Çizelge parçası ise
(n+2) faaliyetten oluşan projenin faaliyetler alt kümesidir.
Konu edilen çizelge türleri ise, faaliyet ve zaman artışına göre birbirinden
faklılık göstermektedirler (Hartmann ve Kolisch,2000,s.395). Seri çizelgeleme
faaliyet artışına dayanırken, paralel çizelgeleme zaman artışına dayanır.
Her iki çizelgeleme yöntemi de, aday faaliyetler kümesinde bir faaliyetin
seçilmesi aşamasında; seçilebilir faaliyetleri derecelendirme ve sıralama açısından,
bir ya da daha fazla öncelik kuralı kullanmaktadır.
97
5.4.3.1 Seri Çizelgeleme (Seri SGS)
Seri çizelgelemeler, faaliyet adedi kadar aşamadan oluşurlar ve her bir
aşamada, seçilebilecek tamamlama süresi ve kaynak kısıtına uyan faaliyetler
kümesinden bir faaliyet seçilmektedir. Seçilen faaliyetin aynı zamanda kukla
olmaması gerekmektedir (Kolisch ve Hartmann,1999,s.149). Bu nedenle, her bir
aşamada seçilebilecek faaliyetler kümesi (karar kümesi), öncül faaliyetleri
tamamlanan ve kaynak kısıtına uyan faaliyetlerden oluşturulmaktadır.
Seri çizelgeleme, algoritmanın her aşamasında güncelleştirilmesi gereken üç
kümeyi temel alarak çalışmaktadır. Bunlar:
• Karar kümesi (Aday faaliyetler kümesi): Bu küme, öncülleri
bitmiş, seçilebilmeye aday olan faaliyetlerden oluşmaktadır.
• Tamamlanmış faaliyetler kümesi: Daha önce seçilerek
çizelgelenmiş faaliyetler kümesidir.
• Kalan faaliyetler kümesi: Karar kümesi ve tamamlanmış faaliyetler
kümesi dışında kalan faaliyetlerden oluşmaktadır.
Başlangıçta; çizelge, karar kümesi ve tamamlanmış faaliyetler kümesi boştur.
Faaliyet sayısına eşit olan aşama boyunca her bir aşamada, karar kümesinden bir
faaliyet öncelik kuralı uygulanarak seçilmekte ve çizelgeye (kısmi çizelgeye) ilave
edilmektedir. Daha sonra karar kümesi, tamamlanmış faaliyetler kümesi ve kalan
faaliyetler kümesi güncellenmektedir (Tormos ve Lova,2003,s.1073).
Çizelgeleme, çizelgelenecek faaliyet kalmayıncaya kadar devam etmektedir.
Seri çizelgelemelerin her aşamasında seçilebilir aday faaliyet kümesi hazırlanması,
yöntemde her zaman uygun ve etkin çizelge elde edilmesini mümkün kılmaktadır.
5.4.3.2. Paralel Çizelgeleme (Paralel SGS)
Paralel çizelgelemenin her aşamasında (g), bir çizelgeleme zamanı tg ve
seçilebilecek aday faaliyetleri içeren bir faaliyet/faaliyetler kümesi vardır. Aşama
sayısı en fazla J, faaliyet sayısı kadar olmaktadır (Kolisch,1996a,s.323).
98
Paralel çizelgeleme algoritmasının her aşamasında, faaliyetler dört küme
içinde bulunmaktadırlar (Tormos ve Lova,2003,s.1073; Ulusoy,2006,s.9):
• Karar kümesi (Aday faaliyetler kümesi): Bu küme, öncülleri
bitmiş, seçilebilmeye aday olan faaliyetlerden oluşmaktadır.
• Tamamlanmış faaliyetler kümesi: Daha önce seçilerek
çizelgelenmiş faaliyetler kümesidir.
• Atanmış ancak henüz tamamlanmamış faaliyetler kümesi: Paralel
çizelgeleme esnasında, gerçekleştirilen çizelgeleme adımının birinde
atanmış olup, henüz tamamlanmamış faaliyetleri kapsar.
• Kalan faaliyetler kümesi: Karar kümesi ve tamamlanmış faaliyetler
kümesi dışında olan faaliyetlerden oluşmaktadır.
Çizelgeleme aşamasındaki bu faaliyetler aşağıdaki Şekil 5.5’de gösterildiği
sırada hazırlanmaktadır.
Projedeki tüm faaliyetler
Kalan faaliyetler Atanmış faaliyetler Tamamlanmış faaliyetler
Seçilebilir (aday) faaliyetler Seçilemeyen faaliyetler
Şekil 5.5 : Çizelgeleme Aşamasında Faaliyetlerin Sınıflandırılması Kaynak : Salewski vd.,1997,s.95.
Çizelgeleme anında ya da adımında, öncül faaliyetleri tamamlanan ve kaynak
kısıtına uyan (karar kümesinde bulunan aday) faaliyetler, oluşturulacak projeye ilave
edilmektedirler. Karar kümesinde, faaliyet kalmayıncaya kadar bu seçme ve
çizelgeye ekleme işlemi devam etmektedir. Karar kümesi boşaldığında, çizelgeleme
adımı tg, süreçteki faaliyetlerin en erken bitirme süresine eşitlenerek, paralel
çizelgeleme işlemi (iterasyonu) devam etmektedir. Paralel çizelgeleme, öncelik ve
kaynak kısıtlarına uyan gecikmesiz çizelge üretmektedirler (Hartmann ve
Kolisch,2000,s.396).
99
Paralel SGS ile üretilen ertelemesiz çözümler kümesi her zaman en iyi
çözümü içeremeyebilirken, seri SGS yöntemindeki çözümler mutlaka en iyi çözümü
içermektedir (Ulusoy,2006,s.9).
5.4.4. X-Geçişli Yöntem (X-Pass Method)
X-Geçişli yöntem; bir ya da daha fazla çizelge hazırlamak için, çizelge
üretme planlarından (seri SGS ya da paralel SGS) bir ya da ikisini kullanan, öncelik
kurallarına dayalı bir sezgisel yöntemdir (Hartmann ve Kolisch,2000,s.396). Üretilen
çizelge sayısına göre, (X=1) ise “tek geçişli” ve (X>1) ise “çok geçişli” olarak
değişiklik göstermektedir. Her geçişte bir çizelge oluşturulmaktadır (Kolisch ve
Hartmann,1999,s.154).
Yöntem daha önce üretilen sonuçlardan hiçbir bilgi almaksızın çizelgeleme
yapar. Çizelgeye eklenecek bir faaliyetin seçimi öncelik kuralına dayanır. Aday
faaliyetler kümesindeki her faaliyet için, öncelik değeri v(j)’ ye bakılarak seçim
yapılmaktadır. Burada v(j) değeri, kullanılan öncelik kuralının amacına uygun olarak
en büyük ya da en küçük değer olarak seçilmektedir (Hartmann ve
Kolisch,2000,s.396).
5.4.4.1. Tek Geçişli Yöntem (Single Pass Method)
Sezgisel olan bu yöntemde, her bir yinelemede(adımda), faaliyetin öncelik
değeri v(j)’ ye göre seçim yapılmaktadır. Öncelik değeri, öncelik kuralları
bilgilerinden oluşturulmaktadır. Bir ya da daha fazla öncelik kuralı algoritmada
tanımlanarak kullanılabilir. Yöntemde her bir faaliyetin öncelik değeri v(j) aynı kural
ile belirlenebileceği gibi, her faaliyette farklı ya da rastgele olarak seçilebilecek
öncelik kuralları değeri kullanılabilmektedir.
Başlangıçta tüm faaliyetler çizelgelenmemiş olarak kabul edilmektedir.
Soldan sağa doğru yapılan her bir yinelemede, kaynak ve öncelik kısıtına uyan
faaliyetler çizelgeye dâhil edilerek tüm faaliyetler çizelgelenmektedir (Cheng ve
Gen,1994,s.738). Tüm faaliyetler çizelgelendikten sonra tek geçişli yöntemin
algoritması sonlandırılır. Tek çözüm oluşturmaya yönelik bir yaklaşımdır. Çok
çözüm üretmek için çeşitli yöntemler uygulanabilmektedir. Örneğin üretilecek her
100
bir çizelge için ayrı bir öncelik kuralı kullanılması ya da her çözüm için rastgele ayrı
bir öncelik kuralı kullanılması gibi (Ulusoy,2006,s.9-11).
Seri ve paralel çizelgeleme yöntemleri tek geçişli yöntem olarak
tanımlanmaktadırlar. Oysa çok geçişli yöntemde; Z olarak belirlenen bir sayıda, Z
geçiş yapılarak en fazla Z adet uygun çözüm üretilerek, bu çözümler içerisinden en
iyi olan seçilmektedir (Kolisch,1996a,s.324; Tormos ve Lova, 2003,1074).
5.4.4.2. Çok Geçişli Yöntem (Multi Pass Method)
Çok geçişli yöntem, birden fazla geçiş uygulanarak birden fazla çözüm üreten
sezgisel yöntemlerdir. Önceden belirtilen sayıda geçiş yapılarak, geçiş sayısı kadar
çizelge üretilmekte ve içlerinden en iyisi seçilmektedir.
Bu yöntemde, seri ve/ya da paralel çizelgeleme yöntemleri ile beraber öncelik
kurallarının kullanılması sonucunda bir çok olası çözüm (çizelge) üretilmektedir. Bu
yöntemle birlikte yaygın olarak kullanılan diğer yöntemler; çoklu öncelik kuralı
yöntemi, ileriye-geriye doğru çizelgeleme yöntemi ve örnekleme yöntemidir
(Hartmann ve Kolisch,2000,s.396).
Çoklu öncelik kuralı, çizelgeleme işlemini birçok kez kullanmaktadır. Her
seferinde farklı öncelik kuralının baz alınması mümkündür. İleriye-geriye doğru
çizelgeleme yöntemi ise ileriye ve geriye doğru çizelgeleme işlemlerinde; alternatif
proje üretilmesi amacıyla çizelgelemeyi (SGS’yi) de beraber kullanmaktadır
(Özdamar,1999,s.45).
Örnekleme yöntemleri, genellikle bir çizelgeleme ve bir öncelik kuralı
kullanmaktadır. Öncelik kurallarından hangisinin kullanılacağına bağlı olarak seçilen
faaliyetler sonucunda, farklı çizelgeler elde edilmektedir. Çizelgeye eklenecek
faaliyeti seçmek için, öncelik kuralı değeri v(j)’ ye ilaveten, bir seçme olasılık değeri
p(j) de kullanılabilmektedir. Olasılık değerleri;
• rastgele örnekleme,
• yanlı rastgele örnekleme (Biased random sampling-BRS),
• pişmanlığa dayalı örnekleme (Regret based biased random sampling)
101
şeklinde örnekleme yöntemleri ile hesaplanmaktadır (Tormos ve Lova,2003, s.1074;
Ulusoy,2006,s.10; Hartmann ve Kolisch,2000,s.396). Dolayısıyla faaliyetlerin p(j)
olasılık değerlerinin hesaplanma yöntemine bağlı olarak da farklı çizelgeler elde
edilmektedir.
Rastgele örneklemede, karar (aday) kümesindeki her bir faaliyete aynı
olasılık atanmaktadır. Böylece adayların seçilme şansları birbirine eşit olmaktadır.
Yanlı rastgele örnekleme ise, faaliyeti seçme olasılığı p(j)’ yi hesaplamak için
öncelik değeri v(j)’ yi doğrudan kullanmaktadır. Eğer öncelik kuralının amacı, en
büyük öncelik değeri v(j)’ ye sahip faaliyeti seçmek ise; bir faaliyeti seçme olasılığı
p(j), o faaliyetin v(j) değerini aday faaliyetler kümesindeki tüm faaliyetlerin öncelik
değerleri toplamına bölünerek hesaplanmaktadır.
Pişmanlığa dayalı örnekleme, öncelik değerini pişmanlık değeri üzerinden
dolaylı olarak kullanmaktadır. En büyük öncelik değeri ile seçim yapılacağı
durumda, j faaliyetinin pişmanlık değeri r(j), faaliyetin öncelik değerinin aday seçim
kümesindeki faaliyetlerin en kötü (worst) öncelik değerinden farkının mutlak değeri
olarak hesaplanmaktadır.
İleriye - geriye doğru yineleme (forward-backward pass) yönteminde,
gerektiği durumlarda yine öncelik kurallarına dayalı olarak, karar kümesinden
faaliyetlerin seçilerek çizelgelenmesi söz konusu olabilmektedir. Algoritmada ileriye
- geriye doğru yineleme yapılması klasik yöntemlerde olduğu gibi, kaynak profili
(resource levelling) açısından sakınca doğurabileceğinden, olası sakıncaların bertaraf
edilebilmesi için, çok geçişli yöntemle birlikte kullanılması daha anlamlı sonuçlar
üretilmesine olanak tanıyacaktır.
Tek ve aynı olarak seçilebilen öncelik kuralına dayalı olarak yapılan çok
geçişli yöntemler ve ileriye-geriye doğru yöntemler deterministik yöntemlerdir. Zira
her seferinde aynı çizelgeleme elde edilmektedir. Bu problemi önlemek içinde, aday
faaliyetler kümesindeki her bir faaliyete rastgele seçilme olasılıkları atanarak, her bir
geçişte farklı çizelge oluşturulması sağlanabilmektedir. Böylece içlerinden en iyi
çözüm seçilebilmektedir (Tormos ve Lova.2003,s.1074).
102
5.5. Kaynak Kısıtlı Proje Çizelgeleme Problemlerinde Kromozom Temsili
GA’ların “evrimsel” ve “toplum temelli” olmaları nedeniyle çizelgeleme tipli
problemlerde çizelge temsil planı, çizelge üretme planı (SGS) ve sonucu
değerlendiren bir algoritmanın varlığı gerekmektedir.
Tipik bir GA, doğrudan çizelgeleme problemi üzerine uygulanmamakta,
projeyi temsil eden kromozom (çizelge) üzerine uygulanmaktadır. Algoritmaya
uygun bir şekilde temsil edilen proje üzerinde bir takım genetik işlemler
uygulandıktan sonra çizelgeleme yöntemi (seri çizelgeleme) kullanılarak yeni bir
çizelge elde edilmektedir (Debels vd.,2003,s.7).
Çizelgeleme tipli problemler, dolaylı ya da dolaysız bir şekilde temsil
edilebilmektedirler. Hangisi ile temsil edilirse edilsin, kromozomlar ya uygun bir
çizelgeyi temsil edecektir ya da uygun çizelgeyi elde edebilecek yeterli bilgiyi
içerecektir (Wang ve Lu, 2002,s.1978). Sonuçta çizelge, “sıralama tipli”
(permutation representation) bir temsil şekli olacaktır (Cheng ve Gen,1994,s.737).
Dolaylı kromozom temsilleri seçildiği durumlarda; evrimsel hesaplamaların
başlangıcında, kromozomdaki bilgilerden yararlanarak, uygun proje çizelgeleyen
yordamın mevcudiyeti gerekmektedir. Dolaylı kromozom temsilleri; faaliyetlerin
öncelik kuralları, faaliyet süresi, EST, LST ve MINSLACK bilgilerinden
oluşturulabilen bir temsil şeklidir.
Dolaysız kromozom temsillerinde ise, proje çizelgeleyici bir yordama ihtiyaç
duyulmamaktadır. Zaten kromozom üzerindeki bilgiler, proje çizelgesini verecek
niteliktedir. Dolaysız kromozom temsilleri, faaliyet listesi, faaliyet adı ile birlikte
faaliyet süresi, EST, SPT gibi bilgilerden oluşan bir temsil şeklidir.
Dolaysız kromozom ile temsil edilen çizelgeleme problemleri çözümlerine
genetik işlemlerin uygulanması oldukça zordur (Hindi vd.2002,s.513). Genetik
işlemler uyarlama işlemi yapılmadan doğrudan uygulandığında, kısıtları
karşılamayan yeni çözümler üretebilmektedir. Dolaysız kromozomların kullanılması
durumunda dikkat edilecek husus, çaprazlama ve mutasyon işlemleri nedeniyle
103
kromozomun temsil ettiği çözümün geçersiz çözüme dönüşüp dönüşmediğidir.
Geçersiz bir çözümün, kromozom olarak işleme alınması ise, GA işlem sürecini
uzatacaktır. Bu nedenle, bazı problemlerde, çaprazlama ve mutasyon işlemlerinde
düzenleme ya da uyarlama gerekmektedir (Watanabea vd.,2005,s.745).
Literatürde, KKPÇP’ler için farklı kromozom temsil şekilleri yayınlanmıştır.
Bunlardan en önemli ve yaygın kullanılanlar;
• faaliyet listesi ile temsil ( Activity List Representation),
• rastgele anahtar yöntemi ile temsil ( Random Key Representation),
• öncelik kuralı yöntemi ile temsil ( Priority Rule Representation)
başlıcalarıdır (Kolisch ve Hartmann,1999,s.160-165; Debels vd.,2003,s.7).
5.5.1. Faaliyet Listesi
Faaliyet listesi ile temsil yöntemi, kromozomların dolaysız olarak temsil
edildiği bir yöntemdir. Bu yöntemde; λ=(j1, j2 ,….jn ) faaliyet listesi şeklinde temsil
edilen bir kromozomda, her bir faaliyet kendinden önce gelen faaliyetlerden daha
büyük indise sahiptir. λ=(j1, j2 ,….jn ) faaliyet listesinden bir çizelge elde etmek için
seri SGS kullanılabilmektedir. Ancak paralel SGS üzerinde değişiklik yapılmadan
uygulanamamaktadır.
Başlangıç çözümleri, SGS’nin her bir aşamasında uygun aday faaliyetler
kümesinden rastgele seçilen faaliyetlerin çizelgelenmesi ile oluşturulmaktadır. Bu
çözümden daha iyisini elde etmek için, bir öncelik kuralı ya da öncelik kuralına
dayalı örnekleme kullanılarak faaliyetler seçilmelidir.
λ=(j1, jq , , js,….jn ) faaliyet listesinde, q≠s olmak üzere jq ve js öncelik
kurallarına uymuyorsa yer değişimi yapılabilmektedir.
λa =(1 3 2 5 4 6)
λb =(2 4 6 1 3 5)
şeklinde olan ebeveyn kromozomlarda, q=4 konumunda yapılacak çaprazlama da
çocuk kromozomda tekrarlı j’ ler oluşacağından, anne kromozomda olmayan j’ ler
104
baba kromozomdan sırasıyla alınarak çocuk kromozom aşağıda görüldüğü
oluşturulabilir.
λc =(1 3 2 4 6 5)
Böylece uygun öncelik sırasına sahip ebeveynden oluşan yeni kromozomda
uygun olacaktır.
5.5.2. Rastgele Anahtar Temsili
Rastgele anahtar temsili ile hazırlanan kromozomlar; problemin tipine göre
dolaylı ve dolaysız kromozomlar olarak hazırlanabilmektedir.
Birçok uygulamada kromozomlar bu yöntemle hazırlanmıştır. Her bir j
faaliyeti için oluşturulan rastgele rj değeri atanarak, kromozom p=(r1, r2 ,….rn)
şeklinde hazırlanmaktadır.
Rastgele anahtar temsili ile hazırlanacak başlangıç kromozomlarının genleri,
ya rastgele ya da bazı öncelik kurallarına dayanarak hazırlanmaktadır. Bu yöntemle
hazırlanan kromozom p’den yararlanarak çizelge elde etmek için paralel ve seri SGS’
lerin her ikisi de kullanılabilmektedir. SGS kullanımı ile rastgele seçimlerden
kaynaklanan öncelik kısıtı ihlali ortadan kalkacaktır (Debels vd.,2003,s.9).
Proje çizelgeleme planının her g aşamasında, bir öncelik kuralına
dayanılmıyorsa, en büyük rastgele anahtara sahip j faaliyeti seçilmektedir. Yani rj
=max{ri i∈Dg}olmalıdır. Ancak rastgele anahtarlar LFT (en geç tamamlama süresi)
kuralı ile oluşturulduysa, en küçük rastgele anahtara sahip faaliyet seçilmelidir.
Buradan da anlaşıldığı üzere, rastgele anahtarlar öncelik değeri görevini
üstlenmektedirler.
5.5.3. Öncelik Kuralı Temsili
Öncelik kuralına dayanan temsil, kromozomların dolaylı temsil edilmesi
şeklidir. Öncelik kuralına dayanan temsil şeklinde, Π=(Π1, Π2,……. Πn)
105
kromozomunda Πi, öncelik kurallarından birini ifade etmektedir. Kromozomda Πi
olarak temsil edilen gen, deterministik yolla ya da rastgele belirlenebilmektedir.
Πa =(LST, GRUP,MTS,LST,MINSLK,LFT)
Πb =(LFT, GRUP,MINSLK,SFT,LFT,GRUP)
şeklindeki ebeveyn kromozomlarda, tek noktalı çaprazlama sonucunda, aşağıdaki
çocuk kromozom elde edilmektedir.
ΠC =(LST, GRUP,MTS,SFT,LFT,GRUP)
Çizelgeleme işleminde seri ve paralel SGS’lerin her ikisi de
kullanılabilmektedir. Çizelgelenecek i. faaliyet , Πi öncelik kuralına göre
seçilmektedir.
106
ALTINCI BÖLÜM
KAYNAK KISITLI PROJE ÇİZELGELEME PROBLEMLERİNDE
GENETİK ALGORİTMA YÖNTEMİNİN UYGULANMASI VE ANALİZİ
Bu bölümde KKPÇP’lerin çözümüne yönelik olarak; Delphi 6.0 ve Access
2000 kullanılarak geliştirilen bilgisayar destekli GA’da kullanılan örnek
KKPÇP’lerin özelliklerine, GA’ların performanslarının ölçümünde kullanılan
yöntemlere, tez kapsamında geliştirilen GA’da kabul edilen varsayımlar ve
yaklaşımlara yer verilecektir.
Geliştirilen GA’ların etkin olup olmadığını belirlemek amacıyla literatürde
bir takım örnek problemler ve yöntemler kullanılmaktadır. Konuyla ilgili literatür
araştırmasında görüldüğü üzere, geliştirilen GA’ların test edilmesinde kullanılan
problem/problemler üç başlık altında toplanabilmektedir. Bunlar:
• En iyi sonucu bilinen bir problem.
• En iyi sonucu bilinen bir kaç problem.
• Yapay yöntemlerle karmaşık bir şekilde oluşturulan problemler
kümesi
dir. Araştırmacılar geliştirdikleri GA’ların performansını, bu alternatiflerden birini
kullanarak test etmektedirler.
6.1. Genetik Algoritmalarda Kullanılan Yapay Kaynak Kısıtlı Proje
Çizelgeleme Problemleri ve Özellikleri
Literatürde GA’ların performansını test etmek amacıyla, özel olarak
geliştirilmiş bilgisayar programları ile üretilen farklı KKPÇP’ler bulunmaktadır.
Yapay problemler olarak adlandırılan bu problemler iki gruba ayrılmaktadır. Biri,
J.H. Patterson verileri diğeri de PSPLIB (Project Scheduling Problems Library)
verileridir.
Patterson verilerinde, her bir problem, 7–51 arasında faaliyet sayısına ve üç
adet yenilenebilir kaynak kısıtına sahiptir. Veriler üç kümeye ayrılmıştır. Her bir
veri kümesi 110 örnek problem içermektedir. İlk veri kümesi temel alınarak, ikinci
107
veri kümesi kaynak ihtiyacı açısından birincinin iki katı, üçüncü küme ise kaynak
ihtiyacı açısında birincinin üç katı olacak şekilde hazırlanmıştır (Hindi
vd.2002,s.516).
R Kolisch, A. Sprecher ve A. Drexl, Patterson’un örnek problemlerini
yeterince dikkatli hazırlanmadığı düşüncesini taşımaktadırlar. Üretilen problemlerin;
proje ağının karmaşıklığı (network complexity), kaynak faktörü (resource factor) ve
kaynak gücü (resource strength) adıyla anılan üç faktörle kontrol edilmesi gerektiğini
savunmuşlardır. Bazen az faaliyete sahip çizelgeleme problemlerinin, çok faaliyetli
problemlerden daha karmaşık olabileceğini ileri sürerek j30 (30 faaliyetli), j60 (60
faaliyetli), j90 (90 faaliyetli), ve j120 (120 faaliyetli) örnek KKPÇP’ler hazırlayarak
literatüre sunmuşlardır. Faaliyet sayısına göre; j30 (480 örnekli), j60 (480 örnekli),
j90 (480 örnekli) ve j120 (600 örnekli) olarak gruplanan veri kümelerinde toplam
2040 örnek bulunmaktadır. Örnekler dört adet yenilenebilir kaynak kısıtına sahiptir
(Kolisch vd.,1995,s.1693-1703).
Gerçekleştirilen bu çalışmada, literatürde proje çizelgeleme problemlerinde
test amaçlı olarak pek çok örnekte kullanıldığı görülen ve PSPLIB (ftp://ftp.bwl.uni-
kiel.de/pub/operations-research/psplib)’de yer alan yapay problemler
kullanılmaktadır. Ancak deneysel amaçlı olarak, en iyi sonucu bilinen problemlerin
test edilmesi de çalışmamızda mümkün kılınmaktadır.
PSPLIB’deki yapay problemler, j30, j60, j90 ve j120 olarak
sınıflandırılmaktadır ve literatürde “çözümü zor” olarak bilinen problemlerdir
(Ulusoy,2006,s.6). Problemlerin özelliği; projede faaliyet sayısının fazlalığı,
faaliyetler arasında karmaşık ilişkilerin varlığı ve farklı kaynak türlerinin birçok
faaliyet tarafından kullanılmasıdır. Belirtilen özellikler problemi oldukça karmaşık
hale getirmektedir. Dolayısıyla geliştirilen algoritmanın, PSPLIB’deki problemler
üzerinde test edilmesi, algoritmanın güvenirliğini artırmakta, literatürde geliştirilen
GA’larda test problemleri olarak yoğun kullanıldığı görülmektedir.
J30 problemleri; optimum çözümü bilenen 30 faaliyetli problemlerden
oluşmaktadır ve toplam 480 adet farklı problem mevcuttur. Her birinde yine 480 adet
farklı problem olan j60 ve j90 problemlerinin optimum çözümü halen bilinmeyen,
108
ancak araştırmacılar tarafından üzerinde çalışılan problemlerdir. J120 de,120
faaliyetli 600 adet problem içermektedir. Literatürde yapılan araştırmalar sonucunda,
geliştirilen yeni GA’lar ile elde edilen, “üst sınır” ve “alt sınır” olarak belirlenen
sonuçlar yine aynı ortamda yayınlanmaktadır. Böylece, proje çizelgeleme ile
çalışanlara, geliştirdikleri algoritmaların performansını karşılaştırmalı olarak
değerlendirme imkânı tanınmaktadır.
Algoritmanın test edilmesinde seçilen problemlerin özellikleri; karmaşıklığı,
büyüklüğü ve kullanılan kaynakların kıtlığı/bolluğu gibi faktörler, çoğu zaman
KKPÇ problemlerini oldukça fazla etkileyen faktörlerdir.
Bazı geliştirilen algoritmalar, karmaşık olmayan problemlerde etkin sonuç
verirken, karmaşık problemlerde en iyi sonucu verememektedirler. Bu nedenle,
değişik problemlerin test edilmesinde, problemin özellikleri ve kullanılan
parametreler dikkate alınarak yapılmaktadır.
6.1.1. Proje Ağının Büyüklüğü
Proje ağının büyüklüğü, faaliyet sayısına bağlıdır. Çoğu zamanda ağın
karmaşıklığını doğurmaktadır. Ağ karmaşıklığı arttıkça basit ağlarda etkin çözüm
üretebilen algoritmalar, karmaşık ağlarda etkin/uygun çözüm verememektedirler
(Hindi vd., 2002, s.516).
6.1.2. Proje Kaynak Kullanım Durumu
Projede kullanılan kaynakların kapasitesi, sayısı ve tipleri gibi özellikler
karmaşıklığı etkileyen önemli faktörlerdir. Kaynakların projeye etkisi iki ana başlık
altında incelenmektedir.
6.1.2.1. Kaynak Faktörü (Resource Factor)
Kaynak faktörü (RF); projedeki her bir kaynak için, faaliyet başına düşen
ortalama kullanım oranını ifade etmektedir.
J = Faaliyet sayısı
K = Projede kullanılan tüm kaynak türleri ve k=1….K dır.
rjk = j faaliyetinin, k tipi kaynaktan kullandığı miktar
olmak üzere;
109
RFk = JK1
∑∑= ∈
J
j Kkx
1 (6.1)
şeklinde formüle edilmektedir. Formül (6.1)’de rjk>0 ise x=1, aksi halde x=0 olarak
değerlendirilecektir.
Böylece tüm kaynaklar için kaynak kullanım durumu belirlenebilmektedir.
Eğer k. kaynak için, RF=1 ise, her faaliyet bu kaynağı kullanmaktadır. RF=0 ise,
hiçbir faaliyet bu kaynağı kullanmamaktadır. Projedeki tüm kaynaklar için kaynak
faktörü sıfır olduğu durumda; KKPÇP olarak verilen problemin esasında, kaynak
kısıtı olmayan bir problem olduğu açığa çıkacaktır (Hindi vd.,2002,s.516; Kolisch
vd.,1995,s.1696-1698).
Kaynak kullanım faktörü, yenilenebilir ve yenilenemeyen kaynak türleri için
geçerli olan bir ölçümdür ve (k∈R,N dir). Yani k kaynağı yenilenebilir (R) ve
yenilemeyen (N) kaynak türündedir. Kaynak faktörü, [0,1] aralığında değerler
alabilmektedir.
6.1.2.2. Kaynak Gücü (Resource Strength)
Kaynak gücü (RS); faaliyetler için gereken kaynak miktarının, kullanılabilir
kaynak ile ilişkisini belirlemek amacıyla kullanılmaktadır. Kaynakların bol ya da kıt
olma durumunu belirlemede kullanılan RS; bir kaynağın kullanılabilir üst sınırının,
bu kaynağın ortalama kullanım miktarına bölünmesi ile elde edilmektedir.
RSk = ∑
=
J
jjk
k
rJ
R
1
1 (6.2)
Formül (6.2)’de; .
Rk : k kaynağının kapasitesini
rjk : j. faaliyetinin k kaynağından kullanım miktarını
J : proje faaliyetlerinin sayısını
temsil etmektedir.
110
Böylece RSk’nın sıfıra (0) çok yakın olması, k. kaynağın kapasite açısından
yetersiz kalacağını göstermektedir. Aksi durumda, projenin tamamlanması açısından
k. kaynağın bir sıkıntı yaratmayacağı vurgulanmaktadır. RSk’nın bire (1) yakın
olması, kaynak gücünün yüksek düzeyde olduğunu göstermektedir. Yüksek kaynak
gücüne sahip bir kaynağın da, projeyi tamamlayacak yeterlikte olduğu
söylenebilmektedir. Burada da (k∈R,N) dir. Yani k kaynağı yenilenebilir ve
yenilemeyen kaynak türündedir.
Tüm kaynak türlerinde kaynak kıtlığını ya da bolluğunu ölçen;
Rk = minkR + RSk ( max
kR - minkR ) (6.3)
şeklindeki formülde, RSk bir ölçüm parametresi olarak kullanılmaktadır. Burada; .
Rk : k kaynağının kapasitesini minkR : projede k kaynağına yapılan taleplerin en azını
maxkR : projede k kaynağına yaptıkları taleplerin en fazlasını
temsil etmektedir ve (k N∈ )’dir.
Formül (6.3)’den elde edilen RSk ;
RSk = minmax
min
kk
kk
RRRR
−− (6.4)
şeklindedir.
Formül (6.4)’den elde edilen RSk=0 değeri, kullanılan k. kaynak miktarının,
mümkün olan en düşük seviyesinde olduğunu göstermektedir. Yine aynı formülden,
RSk=1 elde edilirse, kullanılan k. kaynak miktarının, projeyi tamamlayabilmek için
gereken en üst kaynak talebini karşılayabilecek seviyede olduğu anlamını
taşımaktadır. Böylece kaynak kıtlığı olmadığı söylenebilmektedir (Kolisch
vd.,1995,s.1696-1698).
111
Yüksek kaynak faktörü ve/ya da düşük kaynak gücü; çizelgelenen problemin
“zor” problem olduğunu gösterirken, düşük kaynak faktörü ve/ya da yüksek kaynak
gücü; çizelgelenen problemin “zor olmayan” bir problem olduğunu göstermektedir
(Kolish,1996,s.331).
Bu çalışmada kullanılan problemler; ağ büyüklüğü, kaynak faktörü ve kaynak
gücü açılarından karmaşık ve zor olduğu bilinen problemlerdir; bilimsel literatürde
de yaygın olarak kullanılmaktadır.
6.2. Uygulamanın Veri Tabanı Yapısı
Test amaçlı kullanılan çizelgeleme problemleri, ihtiyaç duyulduğunda tekrar
kullanılabilmek için veri tabanında kaydedilmektedir. Çizelgeleme probleminin
bilgileri; veri tabanında Proje, Faaliyetler ve Kaynaklar olmak üzere üç tabloda takip
edilmektedir.
Her bir problemin faaliyetleri ve kaynakları, sadece ilgili çizelgeleme
problemine ait olduğundan, tablolar arasında ilişki kurulmuştur. Tablolar arasında
kurulan veri tabanı ilişkisi Şekil 6.1’de gösterilmektedir. Kurulan ilişkiler ile bir
problemin verileri girilirken, önce problemin kullanacağı kaynakların tanıtılması
zorunluluk haline getirilmiştir. Böylece olmayan kaynağı kullanma gibi bir yanlışlık,
veri girişi esnasında önlenmektedir.
112
Şekil 6.1 : Projede Kullanılan Tablolar ve İlişkileri
Veri girişinde kontrol edilen bilgi tutarlılığı, problemin veri tabanından
silinmesi aşamasında da göz önünde bulundurulmaktadır. Bir problem veri
tabanından silinirken, silinen bir probleme ait tüm kaynak ve faaliyet bilgileri de,
veri tabanından silinebilmektedir.
Çizelgeleme problemi bilgilerinin, veri tabanında ve ilişkili tablolarda takip
edilmesinin nedeni; bilgi tutarlılığının en yüksek seviyede tutulması gayretinden
kaynaklanmaktadır.
6.3. Uygulamanın Temel Varsayımları
Literatürde ve çalışmamızın 5. bölümünde de konu edilen KKPÇP’lerin
faaliyet öncelik ve kaynak kısıtları, proje çizelgeleme algoritmalarının temel
kısıtlarıdır ve doğal olarak bu algoritmada da temel varsayımlardır.
113
6.3.1. Proje Varsayımları
Proje çizelgeleme algoritması, Güvenç (2000)’nin çalışması esas alınarak,
Delphi 6.0 programı ile geliştirilmiştir. Algoritmada test edilen ve saklanması istenen
örnek proje çizelgeleme problemleri (projeler) ise Acess veri tabanına kaydedilerek
saklanabilmektedir. Bu nedenle, uygulamada test edilen proje sayısı, sadece
bilgisayarın kapasite kısıtına bağlı kalmaktadır.
Algoritma MS Project 2003’deki gibi, daha önce girilen problemleri saklama
ve gerektiğinde tekrar kullanabilme özelliğini taşımaktadır. Ancak MS Project
2003’den farklı olarak, algoritmanın her çalışmasında, GA mantığından dolayı
(itererasyon sayısı nedeniyle) farklı çözümlerle karşılaşılması söz konusu
olabilmektedir.
KKPÇP problemlerinin, geliştirilen bilgisayar destekli algoritmada çizelge
oluşturma esnasında kabul edilen varsayımlar;
1. faaliyet sürelerinin tam sayı olarak tanımlanması,
2. en fazla 150 faaliyetin tanımlanabilmesi,
3. en fazla 50 kaynağın tanımlanabilmesi,
4. veri girişini kolaylaştırmak amacıyla faaliyetlerin kullandığı
kaynakların etiketlendirilmesi,
5. ilk ve son faaliyetlerin kukla faaliyet olarak tanıtılması,
6. kritik yol metodunda kullanılan temel değişkenlerin (EST, EFT, LST,
LFT ve SLACK) zamanlarının takvim günlerini gösterecek şekilde
hesaplaması ve hafta sonlarını da içeren tüm tatil günlerinin dikkate
alınmaması hesaba katılmaması,
7. kullanılan kaynakların yenilenebilir kaynak olması,
8. kaynakların proje başlama tarihinde kullanıma hazır olması
şeklindedir.
Algoritmada kullanılan yenilenebilir kaynaklar; faaliyetlerin kullanım süresi
ile kısıtlı olup, faaliyetlerin bitiminde tüm kapasitesi ile serbest kalan kaynaklardır.
Yenilenebilir kaynak kullanımı varsayımı nedeniyle; projeye bir kaynak tanıtımı
yapıldığında, kaynak yenilenebilir kaynak olarak kabul edilecektir.
114
6.3.2. Genetik Algoritma Varsayımları
1. Başlangıç Toplumu
Proje faaliyet sayısından oluşan gen sayısı kadar, rastgele sayılar üretilerek,
başlangıç toplumu kromozomları oluşturulmaktadır. Rastgele sayılar, faaliyetlerin
öncelik kurallarını temsil etmektedir.
2. Kromozom Yapısı
Başlangıç toplumunda oluşturulan kromozomdaki her bir gen, çizelgeleme
aşamasında faaliyet seçiminde kullanılacak öncelik sırasını temsil edecektir. Yani
kromozomlar “öncelik kuralı temsili” yöntemi ile oluşturulmaktadır. Kromozomların
öncelik kuralları, “ rastgele anahtar temsili” yöntemi ile oluşturulmaktadır.
Çalışmamız kapsamında kromozomların oluşturulmasında kullanılan öncelik
kuralları ise;
1. MinEST – En kısa en erken başlama süresi,
2. MinEFT – En kısa en erken bitirme süresi,
3. MinLST – En kısa en geç başlama süresi,
4. MinLFT – En kısa en geç bitirme süresi,
5. MinSLACK – En küçük bolluk değeri,
6. Rastgele - Faaliyetlerin rastgele seçilmesi,
7. Greatest Resouce Demand- En büyük kaynak talebi,
8. MaxProcessingTime- En uzun faaliyet süresi,
9. Shortest Processing Time – En kısa faaliyet süresi,
10. MaxOnculSayısı- En fazla öncül faaliyetler sayısı,
11. MaxCandidate – En fazla aday faaliyetler sayısı’dır.
Kromozomların öncelik kuralına dayanan bu temsil şeklinde; kromozomun
temsil ettiği proje faaliyet sıra ve süreleri, genetik işlemler nedeniyle bozulmayacak,
dolayısıyla basitleştirilmiş genetik işlemlerle etkin sonuç elde edilmeye çalışılacaktır.
115
3. Kullanılan Çizelgeleme Yöntemi
Geliştirilen algoritmada rastgele oluşturulan başlangıç toplumundan, seri
SGS yöntemi ile yeni toplumlar oluşturulmaktadır. Seri SGS ile çizelgelemede, her
bir çizelgeleme anında çizelgeye yeni bir faaliyet eklenmektedir.
Uygulamada oluşturulan başlangıç toplumunun kromozom yapısı, projenin
çizelgesini temsil edemeyeceğinden, her toplum için ikinci bir toplum daha
oluşturulmaktadır. Oluşturulan bu ikinci toplum projenin alternatif çizelgelerini
temsil etmektedir. Bu nedenle algoritma, iki toplum kullanma prensibine
dayandırılmaktadır.
Birinci toplumun, öncelik kurallarını içeren kromozomlar olarak
tasarlanmasının nedeni; alternatif çözüm arayışları nedeniyle uygulanacak genetik
işlemler sonucunda, çizelge faaliyetlerinin öncüllük ilişkilerine uymayan çözümleri
engellemeye çalışmaktır. Böylece genetik işlemlerden sonra projenin olurluğunu
sağlamak ya da uygun proje yapısını bozmadan genetik işlemleri uygulama gibi
zaman/işlem maliyeti söz konusu olmamaktadır. Ancak bu yarar, her yeni toplum
oluşumunda ikinci toplumu hazırlama zaman/işlem maliyetini de getirmektedir.
Uygulamada kullanılan seri SGS’de; her çizelgeleme anında, oluşturulan
ikinci toplumdaki faaliyetlerin öncelik kısıtları ve kaynak kısıtları yeniden
değerlendirilerek, çizelgelenebilir faaliyetler kümesi güncelleştirilmektedir. Kısıtlara
uyan bir faaliyet çizelgelendikten sonra, çizelgelenebilir faaliyetlerin ihtiyacını
karşılayabilecek düzeyde hala yeterli kaynak/kaynaklar mevcut ise, uygun
faaliyetlerin aynı çizelgeleme anında çizelgelenmesine imkân tanınmaktadır. Böylece
bir sonraki çizelgeleme işlemi için, çizelgelenebilir faaliyetlerin sayısı artırılarak,
öncelik kuralın göre çizelgelenebilir faaliyetlerin seçimi daha etkin yapılmaya
çalışılmaktadır.
4. Kullanılan Uygunluk Fonksiyonu Değeri
Toplumdaki her bir çizelge alternatifinin (kromozomun) en iyi olanların
belirlenmesinde kullanılan uygunluk fonksiyonu hesaplanmasında değişik
yöntemlerden yararlanılmaktadır. En küçükleme ve en büyükleme problemlerinde,
116
amaç fonksiyonunun kendisi, uygunluk fonksiyonu olarak da kullanılabilmektedir.
Ancak KKPÇ problemlerinde, süre uygunluğu ve kaynak uygunluğu şeklinde iki
unsur dikkate alınarak bir uygunluk fonksiyonu oluşturulabilmektedir
(Güvenç,2000,s.44; Cheng ve Gen,1994,s.738). Bu unsurlar birtakım çalışmalarda
birlikte dikkate alınırken, bazılarında sadece süre uygunluğu dikkate alınmaktadır.
i) Süre uygunluğu:
Süre uygunluk fonksiyonu, aşağıda belirtildiği gibi,
fsüre = γ
γ+−
+−
minmax
max
tttt n (6.1)
formülü ile hesaplanmaktadır. Burada;
tmax : toplumdaki en uzun proje tamamlanma süresi
tn : n. kromozomun proje tamamlama süresi
tmin : toplumdaki en kısa proje tamamlanma süresi
γ : paydanın sıfır olmasını engelleyen (0-1] arasında bir sayıdır.
Süre uygunluğu olarak, elde edilen çözümlere ait proje tamamlama süreleri
de doğrudan kullanılabilmektedir. Bu çalışmamızda da, süre uygunluğu olarak proje
tamamlama süresi kullanılmaktadır.
ii)Kaynak uygunluğu:
Kaynak uygunluğu fonksiyonu;
fkaynak = γ
γ
+
+−
∑∑
=
=m
i
m
i
iA
iAiA
1 1
1 21
)(
)()( (6.2)
A(i)1 : i. kullanılabilir kaynak miktarı
A(i)2 : i. kullanımı aşan kaynak miktarı (aşan miktar)
γ : paydanın sıfır olmasından kaçınmak için (0–1) arasında bir değerdir
şeklindedir.
Kromozomların uygunluk fonksiyonu ise (6.1) ve (6.2) fonksiyonlarından
yaralanılarak,
f= λ fkaynak + (1-λ) fsüre
117
şeklinde hesaplanabilmektedir. λ ise (0–1) arasında bir değerdir.
Çalışmamızda sadece amaç fonksiyonu değeri, uygunluk fonksiyonu olarak
dikkate alınmıştır. Çünkü çalışmamızın amacı; mevcut kaynakların kapasiteleri
ölçüsünde en iyi proje süresini bulmaktır.
5. Kullanılan Genetik İşlemler
Yerel çözüm alanı dışında olabilecek çözümlere erişmek için iki ya da daha
fazla noktalı çaprazlama daha yoğun aramayı gerçekleştirebilmek için de mutasyon
işlemleri algoritmada kullanılmaktadır.
Parametre giriş penceresinde belirtilen çaprazlama noktası değişken bir
şekilde tanımlanabilmektedir. Böylece iki ya da daha fazla çaprazlama noktası
tanımlanabilmektedir.
Mutasyon işleminde, ters çevirme mutasyonu kullanılmaktadır. Böylece
rastgele seçilen bir alt dizideki genlerin sıraları tamamen ters çevrilerek bulunduğu
yere yeniden yerleştirilmektedir. Böylece yeni nesile, ebeveyninden kalıtılım yoluyla
bazı genlerin geçmesi sağlanırken, diğer bir yandan da genlerde birtakım
değişimlerin gerçekleşmesi sağlanmış olmaktadır.
Uyumlu bireylerin seçiminde ise “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.
Algoritmada yapılan tüm bu işlemler neticesinde; çaprazlama, mutasyon ve
üreme şeklinde adlandırılan bütün genetik işlemler tez çalışmasına uygulamalı olarak
dâhil edilmektedir.
118
5. Değişik Genetik Parametrelerin Kullanımı
Literatürde olduğu gibi, toplum büyüklüğü, çaprazlama oranı, mutasyon oranı
ve iterasyon sayısı gibi parametre değerlerinin değişkenliğini destekleyici bir yapıda
olması için parametre giriş penceresi hazırlanmıştır. Böylece algoritma,
KKPÇP’lerin değişik genetik parametreler altında test edilebilmesini destekleyici
nitelik kazanmıştır.
6.4. Uygulamaya Veri Giriş Yaklaşımları
Geliştirilen algoritmada şimdiye kadar karşılaşılmayan bir şekilde, problemin
tanıtımı öncül/ardıl olmak üzere her iki şekilde de yapılabilmektedir. Bu da
algoritmanın, başlangıçta önerilen ve PROGEN lib’den alınabilecek örnek
problemlere (ardıl tipte) bağımlı kalınmayıp, literatürdeki tüm problemlere
uygulanabilmesini sağlamaktadır. Özellikle faaliyet sayısının fazla ve karmaşık
yapıda olan her tipteki problem, herhangi bir ön çalışma yapmadan rahatlıkla test
edilebilmektedir. Geliştirilen algoritmanın bu özelliği, KKPÇ probleminin veriliş
tipine bağımlılığını ortadan kaldıran önemli bir unsurdur.
Algoritma, Güvenç (2000)’ in çalışması ve MS Project 2003 esas alınarak
hazırlanmıştır. Bu çalışmalarda olduğu gibi, kaynakların ve faaliyet öncelik
bilgilerinin girildiği iki ayrı pencerede veri girişini desteklemektedir. Kaynaklar
tanımlandıktan sonra, projede konu edilen tüm faaliyetlerin bilgileri girilmektedir.
Algoritmada veriler birkaç farklı pencerede girilmektedir. Bunlar; yeni
proje/problemin tanıtıldığı “proje bilgileri” penceresi, genetik işlemlerde kullanılan
bilgilerin girildiği ”parametre bilgileri” penceresi, problemde kullanılan kaynakların
tanıtıldığı “kaynaklar” penceresi ve son olarak faaliyet bilgilerinin girildiği ana
pencereden oluşmaktadır.
Bir problem algoritmaya girilirken, uyulması gereken veri giriş sırası
mevcuttur. İlk önce proje adının girilmesi, sonra projede kullanılacak kaynakların
tanıtım bilgilerinin girilmesi, daha sonra projede kullanılacak parametrelerin
girilmesi ve sonunda faaliyet bilgilerinin girilmesi gerekmektedir. Parametre bilgileri
en son olarak da girilebilmektedir.
119
Geliştirilen algoritma çalıştırıldığında gelen pencerede, Şekil 6.2’de de
gösterildiği gibi, “Proje/Yeni” komutu ile projenin adı girilerek proje tanıtılmaktadır.
Şekil 6.2 : Projenin Tanıtılması
Daha sonra Şekil 6.3’de gösterilen pencerede olduğu gibi, projede
kullanılacak kaynakların tanıtım bilgileri girilmektedir. Kaynak bilgileri, kaynakların
adı, etiketi, yenilebilirliği ve kapasitesinden oluşan bilgilerdir.
Şekil 6.3 : Kaynakların Tanıtılması
120
Kaynakların tanıtılması aşamasında, dikkat edilecek unsur; kaynak
etiketinin varlığı, kaynak kullanımına başlanabilecek tarihin proje başlangıç tarihine
uyumluluğu ve kaynakların yenilenebilir olmasıdır. Bir projenin faaliyet bilgilerinin
algoritmaya tanıtılabilmesi için kaynaklara atanan kaynak etiketlerin kullanılması,
veri girişini kolaylaştırmak ve hatalı veri girme olasılığını azaltmaya yönelik bir
yaklaşımdır. Projeye kaynak tanıtımı yapılması aşamasında, Şekil 6.3’de gösterilen
ve başlangıç tarihi olarak anılan kaynakların kullanıma hazır olduğu tarihin, Şekil
6.4’de gösterilen parametre giriş penceresindeki proje tarihi ile uyumlu olması
gerekir. Aksi halde, faaliyetlerin kullanacağı kaynakların atama işlemleri sağlıklı
olmayacaktır. Bu nedenle geliştirilen algoritma tarafından işlem yapılması
engellenmektedir.
Parametre giriş penceresi ve faaliyetlerin girildiği pencereler sırası ile Şekil
6.4 ve Şekil 6.5’de gösterilmektedir.
Şekil 6.4 : Parametrelerin Tanıtılması
121
Parametre penceresi ile her bir çizelgeleme problemine ait olacak proje
başlama tarihi, toplum büyüklüğü gibi bilgilerin girilmesi söz konusudur. Aksi halde
son girilmiş değerler, varsayılan olarak kullanılacaktır.
Parametre penceresinde belirtilen proje başlama tarihi, kritik yol
hesaplamalarında da kullanılan bir tarihtir. Proje başlangıç tarihinin, o projede
kullanılacak kaynakların kullanım tarihi ile uyumluluğu önemlidir. Algoritmanın
varsayımları gereğince, kullanılacak kaynakların, proje başlangıcında hazır olması
istenmektedir.
Algoritmada özellikle genetik işlemlerde kullanılacak bilgilerin değişken
olabilmesini sağlamak amacıyla, Şekil 6.4’deki diğer parametrelere yer
verilmektedir. Böylece algoritmanın, aynı projede dahi olsa değişik değerlerle test
edilmesi söz konusu olabilmektedir.
Şekil 6.5 : Faaliyetlerin Tanıtılması
Faaliyet bilgilerinin girilmesi aşamasında; bir faaliyet birden fazla öncül/ardıl
faaliyete sahipse, bu faaliyetler arasında “;” ayıracı kullanılarak tanıtım
yapılmaktadır. Faaliyetlerin tamamlanabilmesi için gerekli kaynaklar da, miktarları
köşeli parantez içinde belirtilecek şekilde, aralarında “;” ayıracı kullanılarak
122
tanımlanabilmektedir. Faaliyetlerin kullandığı kaynakları tanımlarken, kaynak adı
yerine kaynak etiketi kullanılmaktadır. Proje, faaliyetlerde tek bir karakterden oluşan
kaynak etiketini tanımaktadır. Aksi halde tanıtım geçerli olamamaktadır.
Bir faaliyet birden fazla kaynak kullanmak durumunda ise bu kaynaklar
aşağıda gösterildiği gibi;
Kaynak etiketi_1[birim miktar];kaynak etiketi_ 2[birim miktar] olmak üzere,
M[1];N[4]
şeklinde aralarında “;” ayıracı kullanılarak tanımlanmaktadır. Faaliyetler arasındaki
bağımlılık ilişkileri, FS (Bitiş-Başlangıç ) olarak işlem görecektir.
6.5. Uygulama Sonuç Bilgileri
Bir çizelgeleme problemine ait veri girişleri tamamlandıktan sonra GA’nın
çalıştırılması sonucunda elde edilebilecek bilgiler aşağıda Şekil 6.6’da “Sonuç”
sekmesi altında gösterilmektedir.
Şekil 6.6 : Geliştirilen Algoritmanın Sonuç Bilgileri
Kritik Yol Metodu: Şekil 6.7’de gösterilen ekran görüntüsü, KKPÇ
probleminin kritik yol metodu ile çözüm sonuçlarını göstermektedir. Bu yöntem
kaynak kullanımını dikkate almamaktadır. Buna rağmen ekran görüntüsü, kritik yol
metoduyla (KYM) elde edilebilecek çözümden uzaklaşma nedeni olan kaynakların
123
profilini izlemek açısından yararlı olabilecek bilgiler içermektedir. Buna ilaveten,
öncelik kurallarında kullanılan EST, EFT, LST, LFT ve Slack değerleri gibi
KYM’de kullanılan değerler izlenebilmektedir.
Şekil 6.7 : Kritik Yol Metodu Sonuç Bilgileri
Rastgele Oluşturulan Toplum: Projenin çözüm aşamasında, her bir
iterasyonda oluşturulan başlangıç toplumu gösterilmektedir. GA’nın felsefesi gereği,
uygulamada iterasyon sayısı kadar başlangıç toplumu oluşturulmaktadır. Başlangıç
toplumu elemanları, faaliyetlerin seçiminde kullanılan öncelik kurallarını temsil eden
sayısal bilgilerden oluşmaktadır. Başlangıçta rastgele oluşturulan ve daha sonra
genetik işlemlerle değişime maruz kalan toplum bilgiler izlenebilmektedir.
Çizelge Kromozomlarını Temsil Eden Toplum ve Sonuçları: Bu ekran
görüntüsünde, tüm iterasyonlardaki toplumlardan dolaylı bir şekilde elde edilen
çözüm alternatifleri ve her bir alternatifin detay bilgileri verilmektedir. Bu bilgiler;
proje tamamlanma süreleri ve proje faaliyetlerinin sırasıdır. Ayrıca algoritmanın
124
çözüm uzayındaki arayışları sonucunda oluşan olası çözüm alternatiflerini de
izlemek mümkün olmaktadır. Özellikle kapsamlı projelerde, toplum ve
kromozomlarını ekrana sığdırmak zor olduğundan, özde bu bilgiler GAKKP_Krom
isimli metin dosyasına kaydedilmektedir. Daha sonra, algoritmanın bitiminde bu
dosyadan ekran görüntüsü elde edilebilmektedir. Kapsamlı değerlerin içermesi
halinde dosyanın doğrudan açılması ve sonuçların izlenmesi gerekmektedir.
Şekil 6.8 : Toplumlar ve Çözüm Alternatifleri
Şekil 6.8’de bir kısmı gösterilen sonuç dosyasında, her toplumun
kromozomları yani elde edilen çözüm alternatifleri tek tek incelenebildiği gibi, hem
toplumun hem de GA nın en iyi çözüm sonucuna tekrar dikkat çekilmektedir. Ayrıca
çözüm alternatifinin faaliyet öncelikleri “Faaliyet sıraları” satırında gösterilmektedir.
Bu satırdaki “,“işareti aynı anda başlatılabilen faaliyetlerin belirtilmesi amacıyla
125
kullanılırken, “-“ işareti faaliyetlerin bulundukları aşamaları temsil etmektedir.
Geliştirilen algoritmada seri SGS kullanıldığından, bir aşamada başlatılan bir faaliyet
tamamlanmadan ardıl faaliyetlerin başlaması söz konusu olmamaktadır.
En İyi Çözümün Kaynak Kullanım Durumu: GA’nın uygulanması
sonucunda elde edilen en iyi çözümün bilgileri aşağıda Şekil 6.9’daki gibi bir ekran
görüntüsü ile gösterilmektedir. Çizelgelenen projenin, her bir çizelgeleme
aşamasında kullanılan faaliyetleri ve kalan kaynak durumunu gösteren bir ekran
çıktısıdır.
Şekil 6.9 : Optimum Çözüm Bilgileri
Aynı çizelgeleme problemi için algoritmanın her bir koşumunda (run) aynı
sonuçları elde etme garantisi mevcut değildir. Problemin, sadece Şekil 6.7’de
gösterilen KYM sonuç bilgileri deterministik yöntemle hesaplandığından aynı
sonuçlar elde edilebilmektedir. Farklı koşumlarda, aynı optimum değerler elde edilse
bile olsa, farklı çözümler elde edilebilmektedir. Bu farklılıklar, GA’nın rastgele
işlemler içermesinden kaynaklanmaktadır.
126
6.6. Performans Ölçümüne İlişkin Yaklaşımlar
Geliştirilen algoritmanın üstünlük/eksikliklerinin saptanmasının objektif
olarak yapılabilmesi için literatürde araştırmacılar değişik yöntemler ve test
problemleri kullanmışlardır. Algoritmanın değerlendirilmesinde söz konusu olan asıl
unsur, algoritmanın genel olarak nasıl davranış gösterdiğidir. Sezgisel yöntemler
kullanıldığından ve belli bir kesinlik söz konusu olmadığından, algoritmanın hangi
şartlar altında iyi sonuçlar ürettiği konusunda yapılan tespitler, sonuç kısmında
aktarılmaya çalışılacaktır.
Literatürde yer alan çalışmalar incelendiğinde, GA’ların test edilmesinde
kullanılan yöntemlerin özde birbirinden pek farklı olmadığı görülmektedir. GA’lar
bilgisayarda herhangi bir programlama dili ile yazılan programlardır. Dolayısıyla
GA’ların performansının değerlendirilmesinde, programın ürettiği çözüm
alternatifinin optimuma ne kadar yakın olup olmadığı tartışma konusu edilmektedir.
Algoritmanın performansının ölçümü ve değerlendirilmesinde, literatürde
kullanılan yöntemler dört temel başlık altında toplanabilmektedir:
1. En iyi çözümü bilinen bir ya da birkaç problemle test edilmesi ve sonuçların
karşılaştırılması.
2. Değişik genetik parametreler ile test edilerek sonuçların karşılaştırılması.
3. Elde edilen çözüm için yapılan çabanın dikkate alınması.
4. Karmaşık problem kümesi üzerinde test edilerek sonuçların istatistiksel
analize tabii tutulması.
Yukarıda ifade edilen yöntemlerden özellikle (1), (2), (3) nolu yöntemler,
GA’nın proje çizelgeleme konusunda yapılan başlangıç çalışmalarında çok yoğun
olarak kullanılmıştır.
(3) nolu performans ölçüm yöntemi, bilgisayar teknolojisindeki gelişmeler
nedeniyle, değişik bilgisayarlarda (işlemci) yapılan test sonuçlarını karşılaştırmayı
imkânsız kılabilmektedir. Çünkü bu çaba, genellikle, CPU-saniye (işlem süresi)
olarak kullanılmaktaydı. Bunun yerine, belli iterasyon sonucunda elde edilen çözüm
127
kalitesini karşılaştırmak, daha etkin sonuç vereceğinden daha yaygın
kullanılmaktadır (Ulusoy,2006,s.4).
Günümüzde GA’nın, proje çizelgeleme alanında etkinliğini araştırma
çalışmaları daha da gelişerek, tek tipte ve basit problemler dışında özellikle karmaşık
problemlerde algoritmanın etkin çözümler üretip üretmediği araştırmaları devam
etmektedir. Bu nedenle, Kolisch ve arkadaşları tarafından araştırma amaçlı
geliştirilen yapay problem kümesi üzerinde test çalışmaları daha da önem
kazanmıştır.
Karmaşık olarak hazırlanan bu test problemleri, aynı zamanda
araştırmacıların geliştirdikleri algoritmaların performansını, literatürde aynı veri
kümelerini kullanan çalışmalar ile kıyaslama/karşılaştırma imkânı tanımaktadır. Bu
nedenle (4) nolu performans ölçüm yöntemi son yıllarda yaygın kullanılmaktadır.
Bunu yanın sıra, destekleyici içerikte diğer yöntemlere de yer verilmektedir.
Bu tez çalışmasında da, Kolisch ve arkadaşlarının geliştirdiği test
problemleri kullanılarak, daha önce literatürde yayınlanan GA’ların sonuçları ile
karşılaştırma yapılarak, geliştirilen GA’nın performansı değerlendirilmektedir.
6.6.1. En İyi Çözümü Bilinen Problem ile Test Edilmesi
Geliştirilen algoritma, en iyi çözümü bilinen bir problem ile test edilerek,
algoritmanın sonucu ile en iyi bilinen çözüm karşılaştırılmaktadır. Yöntemin
kullanılmasında amaç, geliştirilen algoritmanın elle çözülen problemlere ve
çözümlerine bir yakınsama yapıp yapmadığını irdelemek, geliştirilen GA’nın bir
çözüm alternatifi olup olmadığını araştırmaktır. Bu nedenle GA ile problem çözme
çalışmalarının başlangıç dönemlerinde, araştırmacıların çok sık kullandığı bir yöntem
olmuştur.
Ancak günümüzde GA’larla yapılan çalışmalarda amaçlar gelişerek değişmiş,
kapsamlı ve ortak niteliklere sahip problemlerin çözümünde bir yöntem olarak
kullanılması söz konusu edilmeye başlamıştır.
128
Optimum çözümü bilinen karmaşık problemlerin çözümünü üreten tek ve
kesin bir algoritma henüz mevcut olmadığından, yöntemin karmaşık problemlerde
uygulanabilmesine yönelik çalışmalar devam etmektedir. Dolayısıyla bu tarz
problemleri temel alan algoritma, sadece test konusu edilen basit problemlerde etkin
sonuçlar üretebilmekte ve çözümü bilinmeyen karmaşık çizelgeleme problemleri için
kesin çözüm alternatifi olamamaktadır.
Geliştirilen algoritmanın başlangıç testlerinde, çözümü bilinen problemler
üzerinde test edilmesi halen kullanılan bir yöntemdir. Ancak algoritmayı
değerlendirmek açısından yeterli bir yöntem değildir. Çünkü yapılan çalışmalar; basit
ve bilinen problemlerde optimum sonuç veren algoritmaların, karmaşık problemlerde
optimum çözümden oldukça uzak değerler verebildiğini göstermektedir.
Literatür incelendiğinde, geliştirilen algoritmaların çözümü bilinen örneklerle
test edildiğine sıkça rastlanmaktadır. Ancak, çalışmamız kapsamında da görülmüştür
ki, bir problemde en iyi çözüm bulan bir algoritma, diğer problemlerde en iyi
çözümü bulamayabilmektedir. Bu nedenle, çözümü bilinen ya da rahatlıkla
çözülebilen problemler algoritmanın performansının başarılı bir şekilde
değerlendirilmesinde yeterli olamayacaktır.
Sonuç olarak, algoritmanın testi aşamasında; öncelikle bilinen problemlerle
test edilmesi, algoritmanın başarılı bir şekilde izlenmesi açısından bir gereklilik
olmaktadır. Ancak yeterli olduğu söylenememektedir. Dolayısıyla GA’ların
performans değerlendirilmesinde tek başına kullanılması yanıltıcı sonuçlar
verebilecektir.
6.6.2. Değişik Genetik Parametreler ile Test Edilmesi
Algoritmada kullanılan parametre değerleri çözümü ya da çözüme erişim
süresini, dolayısıyla algoritmanın sonucunu da etkileyecektir. Bazen mevcut
iterasyon sayısı artırıldığında, genetik işlemler ya da oranlar değiştiğinde
algoritmadan etkin sonuç elde edilebilmektedir. Parametrelerin seçiminde, literatürde
henüz herhangi bir kriter söz konusu olamadığından, algoritmanın hangi şartlar
altında, başka bir deyişle, hangi parametrelerin kullanımında daha etkin sonuca
ulaştığını belirlemek gerekebilir. Söz konusu edilen problem/problemler, GA
129
parametrelerinin değişik değerlerinde test edilerek, geliştirilen algoritmanın hangi
parametreler ile daha etkin sonuç verdiği belirlenmeye çalışılmaktadır.
Problemin değşik parametrelerle test edilmesi yöntemi, daha çok GA’ların
başlangıç dönemlerinde ve etkin parametre tanımlarını belirlemeye yönelik yapılan
çalışmalarda görülmektedir. GA’ların performans ölçümünde farklı parametrelerde
birçok sınama yapılması, günümüzde de de hala genel olarak izlenen yöntemlerin
başında gelmektedir.
6.6.3. İstatistiksel Analizlerin Kullanılması
İstatistiksel analizlerin kullanıldığı yöntemde algoritma, uygulamaya konu
edilen problemler üzerinde test edilerek elde edilen sonuç ya da elde edilen en iyi
çözümler, istatistiksel analizlere tabii tutulmaktadır. İstatistiksel analizlerin sonuçları
doğrultusunda algoritmanın performansı değerlendirilmeye çalışılmaktadır.
İstatistiksel analizlerde, aritmetik ortalamalardan başlayarak değişik analizler
yapılabilmektedir. Literatürde yaygın olarak kullanılan yöntemlerden biri de “en iyi
çözümden ortalama sapma” ve bunun “standart sapması” yöntemidir. Yani en iyi
proje tamamlama süresinden ne kadar sapma gösterdiği bilgisi elde edilir. Bu
yöntem, en iyi çözümün bilindiği problemlerde, algoritmanın performansını
değerlendirmede kullanılan etkin bir yöntemdir. En iyi çözümün bilinmediği
durumlarda, problemin alt sınırı ya da üst sınırı ile karşılaştırma yapılmaktadır
(Ulusoy,2006,s.4).
Algoritma performansını etkin bir şekilde ölçebilmek için, kullanılan alt/üst
sınırların çözüme mümkün olduğunca yakın olması beklenmektedir. Ancak eldeki
olanaklar, test için kullanılan problemlerin alt sınırı olarak, yine problemlerde verilen
alt sınırları kullanmaya yöneliktir. Bu tez çalışması kapsamında geliştirilen
algoritmaya ilave edilen yordam ile bu alt sınırların, birçok problemde, problemin
kritik yol metodu ile çözüm sonucu olduğu görülmektedir.
Algoritmanın sadece bir probleme bağlı kalınmadan ve daha gerçekçi bir
şekilde performansının değerlendirilmesi amacıyla, istatistiksel analizler çok yoğun
130
kullanılmaktadır. Özellikle GA’ların, karmaşık optimizasyon problemlerinin
çözümünde bir yöntem olarak kullanılması fikrinin yaygınlaşması sonucunda,
performans ölçümünde daha fazla önem kazanmıştır. Çalışmamızda da bu yöntem
kullanılarak, literatürde yayınlanan diğer GA’lar ile geliştirilen GA
karşılaştırılmaktadır.
6.7. Algoritma Performansının Değerlendirilmesi
Geliştirilen algoritmayı literatürde yer alan daha önce yapılmış çalışmalarla
sağlıklı bir şekilde kıyaslayabilmek amacıyla, her birinde 480 adet çizelgeleme
problemi içeren j30, j60 ve j90 veri kümesindeki problemler ile 600 örnek içeren
j120 veri kümesindeki problemler test edilmektedir. Böylece, toplam 2040 adet
çizelgeleme problemleri test edilerek elde edilen bilgiler değerlendirilme kapsamına
alınmaktadır.
Her bir veri kümesindeki tüm problemler için en uygun çözüm arayışı, 500 ve
1000 iterasyon kullanılarak iki kere test edilmiştir. Böylece, geliştirilen algoritmanın
literatürde yer alan aynı iterasyon sayıları kullanılarak test edilen diğer GA sonuçları
ile kıyaslanması mümkün olabilmektedir.
Farklı iterasyon sayıları ile test etmenin bir diğer amacı da, iterasyon sayısı
olarak belirlenen GA parametresinin, geliştirilen algoritma ile elde edilen çözümler
üzerindeki etkilerini izleyebilmektir. Veri kümelerindeki problemlerin test sonuçları,
“Ekler” listesinde sunulmuştur.
Örneğin j301–2 örnek problemi; j30 olarak anılan 30 faaliyetli örnek
problemlerin listesi olan Ek-1’de, parametre sütununda 1 ve örnekler sütununda 2
değerini içeren satırdaki problemi temsil etmektedir. Benzer şekilde j3010–4 örnek
problemi, aynı listede parametre sütunu 10 ve örnekler sütununda 4 değerini içeren
satırdaki problemi temsil etmektedir. Dolayısıyla Ekler’de gösterilen tabloların ilk iki
sütunu, problemin etiketine yönelik olarak kullanılmaktadır.
30 faaliyetli örnek problemlerin optimum değerleri 3. sütunda
gösterilmektedir. Bu değerler, şimdiye kadar geliştirilmiş ve revize edilebilmiş
optimum değerlerdir. Ancak diğer örnek kümelerinde durum biraz farklılık
131
göstermektedir. Faaliyet sayısının daha fazla olduğu j60, j90 ve j120 veri
kümelerinde, optimum değerler için alt ve üst sınırlar gösterilmektedir.
Ek–1’den Ek–8’e kadar yer alan eklerdeki bilgiler, koyu çizgi ile iki kısma
ayrılmıştır. Soldaki bilgiler literatürde yayınlanan bilgileri içerirken, sağdaki
bilgiler geliştirilen GA’dan elde edilen bilgilerdir.
6.7.1. J30 Veri Kümesi ile Elde Edilen Sonuçların Değerlendirilmesi
J30 veri kümesinin özelliği, 30 faaliyetli ve yenilenebilir 4 kaynak kullanan
çizelgeleme problemlerini içermesidir. İnternet ortamında kullanıma sunulan ve Kiel
Üniversitesi’nin PSPLIB’inden, ftp://ftp.bwl.uni-kiel.de/pub/operations-
research/psplib adresinden alınan bu problemlerin yine aynı ortamda optimum proje
tamamlama süreleri de mevcuttur. Dolayısıyla bu kümedeki problemler kullanılarak,
geliştirilen algoritmanın optimal çözümden sapmaları analiz edilebilmektedir. Veri
kümesindeki her bir proje çizelgeleme probleminin optimal çözüm değerleri ve
geliştirilen algoritma ile 500 ve 1000 iterasyon sonucunda elde edilen değerler Ek–1
ve Ek–2’de gösterilmektedir.
Ek–1’de ilk iki sütun, problemin etiketi olarak kullanılmaktadır. Optimum
sütunu ise bu veri kümesi için yayınlanmış optimum değerleri içermektedir.
Optiumum değerleri hesaplanmayan örneklerde, kritik yol değerlerinin verildiği
beyan edilmiştir.
Problemlerin çözüm sonuçları, genel olarak bu değer ile kıyaslanarak, diğer
araştırmacıların yaptıkları çalışmalarla karşılaştırılabilmektedir.
Ek 1’de de gösterildiği gibi; geliştirilen algoritma ile j305–3 ve j305–7 gibi
örnek problemlerde, yayınlanan optimum değerden az da olsa (%1 oranında) daha iyi
çözümler üretmektedir. Yani bu örneklerde literatürde yayınlanan en iyi proje süresi
76 birim iken, geliştirilen algoritma 75 birimlik bir proje süresine erişmiştir. J3037–
3 örneğinde ise elde edilen çözüm, %5 oranında daha iyidir. Örnekte optimum proje
süresi 81 olarak yayınlanmış iken, geliştirilen algoritma 77 birim ile daha açık bir
iyileşmeye neden olmuştur.
132
Algoritmanın, ilgili veri kümesindeki tüm örnek problemleri için yukarıda
bahsedildiği gibi düzenli bir şekilde literatürde yayınlanan değerlerden daha iyi
sonuçlar vermediği gözlenmektedir. Bazı örnek problemlerin geliştirilen algoritmada
elde edilen çözüm değerleri, yayınlanan iyi çözümlerden oldukça büyük sapmalar
gösterdiği ve daha uzun proje süresi ürettiği görülmektedir. Örneğin; j302–7 ve
j3033–3 gibi örneklerde %51, j3047–8 probleminde de %46’ lık sapma ile optimum
değerden daha büyük çözümler elde edilmektedir
Tablo 6.1’de, literatürde daha önce yayınlanan en iyi sezgisel algoritmaların
optimum çözümden ortalama sapma yüzdeleri gösterilmektedir. Geliştirilen
algoritmada elde edilen çözüm değerlerinin, optimal değerlerden ortalama sapması
Tablo 6.1’ in son satırında gösterilmektedir.
Tablonun son iki sütununda, algoritmaların 500 ve 1000 iterasyon sonucunda
elde edilen çözümlerinin, yayınlanan optimal çözümden ortalama sapmaları
gösterilmektedir.
Tablo 6.1’de 500 iterasyonda elde edilen en iyi proje sürelerinin, optimal
değerlerden ortalama %26 sapma ile literatürde yayınlanan en iyi çalışmaların
gerisinde kaldığı görülmektedir. Tormos ve Lova’nın 2001 ve 2003 yıllarında yapmış
oldukları çalışmalarında %0.23 değeri ile en iyisi olduğu görülmektedir.
Tablo 6.1’de de görüldüğü gibi, geliştirilen algoritma diğer araştırmalar ile
kıyaslandığında; %25 sapma değeri ile optimum çözümden en fazla sapan
algoritmadır. Kıyaslamada temel alınan diğer algoritmalar, %0.23 ile %2.08 arasında
sapma değerleri ile optimuma oldukça yakın değerler üretirken, çalışmamız
çerçevesinde geliştirilen algoritmada sapmanın oldukça yüksek olduğu
gözlenmektedir.
1000 iterasyon ile çalıştırılan algoritmamızın sonuç değeri de 500 iterasyonlu
sonuçlardan pek farklı çıkmamıştır. Elde edilen çözümler, optimal çözümlerden
ortalama %25 sapma göstermektedir.
133
Tablo 6.1. Sezgisel Yöntemlerin Performansları (j30 veri kümesi) Yıl Araştırmacılar Çizelge
Yöntemi
Sezgisel yöntemler Optimum çözümden
ortalama sapma %
500 1000
2003 P.Tormos ve A.Lova P/S Pişmanlığa dayalı
örnekleme (çok geçişli)
0.32 0.23
2001 P.Tormos ve A.Lova P/S Pişmanlığa dayalı
örnekleme
0.35 0.25
2000 S.Hartmann P/S GA - 0.37
1998 K.Bouleimen ve H.Lecocq S Benzetim tavlama- - 0.38
1998 S.Hartmann S Faaliyet listesi - 0.54
1998 A.Schirmer P/S Adapte edilmiş - 0.65
1998 T.Baar, P.Brucker ve
S.Knust
- Tabu arama - 0.86
1998 S.Hartmann S Rastgele anahtar - 1.03
1998 S.Hartmann S Öncelik kuralı - 1.38
1996 R.Kolisch ve A.Drexl P/S Adapte edilmiş - 0.74
1996 R.Kolisch S Min LFT - 0.83
1996 R.Kolisch P Min LFT - 1.40
1996 R.Kolisch P WCS - 1.40
1995 R.Kolisch S Rastgele - 1.44
1995 R.Kolisch P Rastgele - 1.77
1995 V.Leon ve B.Ramamoorty - GA - 2.08
2007 Geliştirilen algoritma S Rastgele anahtar ve
öncelik kuralı
25.87 25.36
Kaynak : Tormos ve Lova,2003,s.1082
Ek–1 de, işlem süreleri sütununda, genetik işlemlerin çalışma süresi
gösterilmektedir. Ancak daha sonraki eklerde, bu sürenin hesaplanması değiştirilerek
çizelgeleme süresi temel alınmıştır. Bu nedenle tekrarlanan testler sonucunda,
geliştirilen GA’nın karmaşık proje çizelgeleme problemlerine ortalama 29 saniye
gibi kısa bir sürede optimuma yakın değer verdiği gözlenmektedir. Bu da, geliştirilen
GA’nın 30 faaliyet gibi az faaliyetli proje çizelgeleme problemlerinde, kısa sürede
genel bir fikir verebilmesi açısından önemlidir.
Ek–1 ve Ek–2’de görüldüğü gibi, farklı iterasyonlar sonucunda ortalama
sapmada %1 gibi daha az bir ortalama sapma gözlenmektedir.
134
Aynı veri kümesindeki örnekler 1000 iterasyonda test edildiğinde, bazı
örneklerde daha iyi sonuçlar elde edilmiştir. Örneğin j305–2 örnek problemde 500
iterasyonda en iyi süre 82 birim iken, 1000 iterasyonda %21 sapma ile 65 birim proje
süresinin elde edildiği görülmüştür. Benzer iyileşme j305-3 probleminde de
gözlenmektedir. J305-3 probleminde 500 iterasyon ile yapılan uygulama %1
oranında iyi çözüme yakınsama yaparken, 1000 iterasyonda %4 oranında bir
yakınsama ile daha iyi çözüm elde edilmiştir.
Ancak diğer örneklerde incelendiğinde, çalışmamızda iterasyon sayısını
artırmak her zaman daha iyi çözüm elde edileceği anlamını taşımadığı görülmektedir.
Örneğin, j305–7’de %1 sapma ile 75 birim proje süresi elde edilirken, 1000
iterasyonda 80 birim olarak elde edilmiştir. Böylece 1000 iterasyon ile yapılan
deneme sonucu elde edilen en iyi çözümün, 500 iterasyon ile yapılan deneme
sonucunda elde edilen en iyi çözümden daha az yakınsama yaptığı gözlenmektedir.
Ek–1 ve Ek–2’de sunulan sonuçlar incelendiğinde, daha başka problem
örneklerinde de bu durumlara rastlamak mümkün olacaktır. Ancak her iki duruma
uymayan, yani 500 ve 1000 iterasyon sonucunda da aynı optimum proje sürelerinin
elde edildiği örneklerde söz konusudur. Örneğin j301–3, j301–6, j301–7 vb.
Ek–1 ve Ek–2’de, “*” işareti bulunan satırlarda, literatürde bulunan optimum
değerlerden daha iyi sonuçların elde edildiği örnekler de söz konusu olmaktadır.
Daha iyi sonuçların alındığı örnek sayısının; 500 iterasyonda ve 1000 iterasyonda 6
adet olduğu görülmektedir.
Kıyaslama sonucu göstermektedir ki:
(1) Daha iyi çözüm elde etmek amacıyla iterasyon sayısını artırmak, bazı
algoritmalar için etkili olurken, bu çalışmada etkili olmamıştır. İterasyon sayısını
artırmak her zaman/ her algoritmada fayda sağlayamamaktadır.
(2) Çözüm uzayındaki arama sonuçlarını doğrudan almak yerine, kromozomları
iyileştirme ya da tekrarlı olanları ayıklama gibi çözüm tercihlerine algoritmada
yer verilmesi gerekebilmektedir.
135
6.7.2. J60 Veri Kümesi ile Elde Edilen Sonuçların Değerlendirilmesi
J60 veri kümesinin özelliği, 60 faaliyetli ve 4 kaynak kullanan çizelgeleme
problemlerini içermesidir. İnternet’te kullanıma sunulan ve PSPLIB’den alınan bu
problemlerin optimum çözümleri hala mevcut olmamakta ve araştırma konusu
olmaya devam etmektedir.
Araştırmacılar tarafından geliştirilmiş sezgisel algoritmalar ile elde edilen,
proje tamamlama sürelerinin alt ve üst sınırları mevcuttur. Bu alt ve üst sınırlar,
şimdiye kadar yapılan çalışmalardan elde edilen sonuçlardan oluşturulmuş sınırlardır.
Ancak yine de her problemin alt ve üst sınırları belirlenmemiştir. Belirlenmeyen
sınırlar için kritik yol metoduyla elde edilen proje tamamlama süresi
kullanılmaktadır.
J60 kümesindeki problemler test amaçlı kullanıldığında, geliştirilen
algoritmanın konu edilen bu sınır değerlerinden sapmaları analiz edilebilmektedir.
Çalışmamızın analiz sonuçları, literatürde daha önce yayınlanan sezgisel algoritmalar
ile kıyaslanarak Tablo 6.2’de gösterilmektedir. Tablodaki boş hücreler, bulundukları
satırdaki çalışmaların bu verilere yönelik yayınlanmış bilgileri olmadığını ifade
etmektedir.
Tablo 6.2’de görüldüğü gibi, geliştirilen algoritmanın, gerek 500 iterasyonda
gerekse 1000 iterasyonda üst sınır değerlerinden, ortalama %37 sapma ile çözüm
bulan algoritma olduğu gözlenmektedir. Yine aynı tablonun son iki sütununda da
görüldüğü gibi, her iki iterasyon sonucunda, alt sınır değerlerinden ortalama %39
sapma ile yine bu tabloda gösterilen algoritmalar içinde optimum çözümden en fazla
sapan algoritma olduğu gözlenmektedir.
Ek–3 ve Ek–4’de de her örneğin sonuçları gösterilmektedir. 500 ve 1000
iterasyonda yapılan testler sonucunda, ortalama sapma değerlerinin her ikisinde de
aynı ve 0,37 olduğu gözlenmektedir. Bu da iterasyon sayısının artırılması ile
optimum çözüme yaklaşma arasında bir bağın olmadığının göstergesidir.
136
500 iterasonda j605–5 de, proje tamamlama süresi 103 olarak bulunmuş ve
yayınlanan optimum değerden daha iyi sonuç elde edilmiştir. 1000 iterasyonda aynı
problem için proje tamamlama süresi 99 olarak hesaplanarak daha iyi sonuç elde
edilmiştir. Ancak bu iyileşme sistematik şekilde, her örnek için söz konusu
olamamaktadır. Örneğin, j605–2 de durum tersidir. Yani 500 iterasyonda geliştirilen
algoritma proje süresini 130 olarak bulurken, 1000 iterasyonda proje tamamlama
süresi 132 olarak bulunmuştur. Dolayısıyla daha iyi çözümler elde etmek amacıyla,
salt iterasyon sayısını artırmak, bu veri kümesindeki veriler için bazen etkili
olabilmekte ancak yeterli bir unsur olamamaktadır.
Algoritma, 60 faaliyetli verilere ortalama 3 – 4 dakika gibi bir sürede çözüm
üretebilmektedir. İşlem süresi, örnek problem için kullanılan iterasyon sayısı,
çaprazlama noktası sayısı ve toplum büyüklüğü gibi parametrelerden doğrudan
etkilenmektedir. Ancak çalışmamız boyunca, genel bir fikir oluşturması açısından bu
parametreler sabit tutulmuştur.
Kıyaslama sonucu göstermektedir ki:
(1) Daha iyi çözüm elde etmek amacıyla iterasyon sayısını artırmak, bazı
algoritmalar için etkili olurken, bu çalışmada etkili olmamıştır. İterasyon sayısını
artırmak her zaman fayda sağlayamamaktadır.
(2) Çözüm uzayındaki arama sonuçlarını doğrudan almak yerine, kromozomları
iyileştirme ya da tekrarlı olanları ayıklama gibi çözüm tercihlerine algoritmada
yer verilmesi gerekebilmektedir. Böylece arama esnasında, optimum çözümlere
erişme olasılığı artırılacaktır.
137
Tablo 6.2. Sezgisel Yöntemlerin Performansları (j60 veri kümesi) Üst sınırdan
ortalama sapmalar
Kritik yol temelli alt
sınırdan ortalama sapmalar
Yıl Araştırmacılar Çizelge
Yöntemi
Sezgisel yöntemler 500 1000 500 1000
2003 P.Tormos ve A.Lova P/S Pişmanlığa dayalı örnekleme-çok geçişli 0.59 0.50 12.16 12.04
2001 P.Tormos ve A.Lova P/S Pişmanlığa dayalı örnekleme 0.67 0.55 12.27 12.11
2000 S.Hartmann P/S GA - 0.71 - 12.26
1998 K.Bouleimen ve H.Lecocq S Benzetim tavlama- - 1.05 - 12.75
1998 S.Hartmann S Faaliyet listesi - 0.88 - 12.68
1998 A.Schirmer P/S Adapte edilmiş - 1.09 - 12.94
1998 T.Baar, P.Brucker ve S.Knust - Tabu arama - 1.68 - 13.80
1998 S.Hartmann S Rastgele anahtar - 2.36 - 14.68
1998 S.Hartmann S Öncelik kuralı - 1.32 - 13.30
1996 R.Kolisch ve A.Drexl P/S Adapte edilmiş - 1.48 - 13.51
1996 R.Kolisch S Min LFT - 1.76 - 13.96
1996 R.Kolisch P Min LFT - 1.76 - 13.59
1996 R.Kolisch P WCS - 1.76 - 13.66
1995 R.Kolisch P Rastgele - 2.71 - 14.89
1995 R.Kolisch S Rastgele - 3.34 - 15.94
1995 V.Leon ve B.Ramamoorty - GA - 2.36 - 14.33
2007 Geliştirilen algoritma S Rastgele anahtar ve öncelik kuralı 36.99 36.53 39.48 38.98
Kaynak : Tormos ve Lova,2003,s.1082
138
6.7.3. J90 Veri Kümesi ile Elde Edilen Sonuçların Değerlendirilmesi
J90 veri kümesinin özelliği, 90 faaliyetli ve yenilenebilen 4 kaynak kullanan
çizelgeleme problemlerini içermesidir. İnternet’te kullanıma sunulan ve PSPLIB’den
alınan bu problemlerin optimum çözümleri hala mevcut bulunmamaktadır. Optimum
çözümleri yerine, araştırmacıların geliştirdikleri algoritmalarla elde edilen en iyi
proje tamamlama sürelerinin alt ve üst sınırları bulunmaktadır. J90 veri kümesindeki
problemlerin optimum çözümleri hala araştırma konusu olmaya devam etmektedir.
Geliştirilen algoritmanın bu veri kümesinden elde edilen test sonuçları ve
diğer veri kümesinden 500 ve 1000 iterasyon ile elde edilenlerin en iyi sonuçları,
Tablo 6.3’de literatürde en iyi sonuç elde edilen algoritmalarla karşılaştırılarak
gösterilmektedir. Tablo 6.3’de 5000 iterasyonlu test sonuçlarının, optimal
sonuçlardan ortalama sapmalar gösterilmektedir. Rank sütunu, kendi veri kümesi
içinde iyiden kötüye doğru sıralamaları göstermektedir. Tablodaki boş hücreler,
bulundukları satırdaki çalışmaların bu verilere yönelik yayınlanmış bilgileri
olmadığını ifade etmektedir.
Çalışmamızda 500 ve 1000 iterasyonda test edilen verilerin sapmaları
mevcuttur ve dolayısı ile bu iterasyonlarda elde edilen ortalama sapma değeri tabloda
kıyaslama amaçlı kullanılmaktadır. Ek–1 ile Ek–8 arasındaki sonuçların son satırları
yani ortalama sapmaları incelendiğinde; iterasyon sayısını artırmak, daha iyi
sonuçların elde edilmesini garanti edememektedir. 1000 iterasyonda yapılan test
sonuçları ile 500 iterasyonda elde edilen sonuçlar kıyaslandığında, bazı problemlerde
aynı ya da bazen de daha kötü çözüm sonuçları elde edilmektedir. Elde edilen bu
sonuçlardan sonra 5000 iterasyonla tekrar test edilme gereği görülmemektedir.
139
Tablo 6.3. Sezgisel Yöntemlerin Performansları (j90 veri kümesi) J30 J60 J90
Araştırmacılar Sapma% Rank Sapma% Rank Sapma% Rank
S.Hartmann (1998) 0.25 5 11.89 4 - -
Alcaraz ve Maroto (2001) 0.12 2 11.86 3 - -
S.Hartmann (2002) 0.22 3 11.70 2 - -
Bouleimen ve Lecocq (2003) 0.23 4 11.90 5 -
Debels vd. (2003) 0.23 1 11.35 1 10.93 1
Çalışmada geliştirilen algoritma 25.36 36.53 41.35
Kaynak : Debels vd.,2003,s.29
Tablo 6.3’ ün son satırında gösterildiği gibi, bu çalışma kapsamında
geliştirilen algoritmanın, özellikle j90 veri kümesi için oldukça fazla sapma
gösterdiği görülürken, diğer çalışmalarda olduğu gibi j60 ve j30 verilerinde bu sapma
değeri giderek azalmaktadır.
Yapılan literatür araştırmalarında, j90 verileri için pek fazla karşılaştırma
yapılabilecek sonuç değerlerine rastlanamamıştır. Araştırmacıların genellikle j30, j60
ve j120 veri kümelerini tercih ettikleri saptanmıştır. Bu nedenle, Tablo 6.3’de de
görüldüğü üzere, j90 verileri için sadece bir yayınlanmış algoritma ile
kıyaslanmaktadır. Geliştirilen algoritma, j90 veri kümesindeki projeleri %41 sapma
değeri ile çizelgeleyebilmektedir. Ancak, literatürde %11 sapma ile daha iyi
çizelgeleme çözümü bulan algoritmanın mevcut olduğu görülmektedir.
Kıyaslama sonucu, algoritmaya daha sonraki çalışmalarda çok daha etkin
arama tekniklerinin ilave edilmesi gerekliliğini göstermektedir. Çözüm sonuçlarını
doğrudan almak yerine, iyileştirme ya da tekrarlı olanları ayıklama gibi çözüm
tercihlerine algoritmada yer verilmesi gerekebilmektedir. Böylece arama esnasında,
optimum çözümlere erişme olasılığı artırılacaktır.
140
6.7.4. J120 Veri Kümesi ile Elde Edilen Sonuçların Değerlendirilmesi
J120 veri kümesinin özelliği, 120 faaliyetli ve yenilenebilen 4 kaynak
kullanan çizelgeleme problemlerini içermesidir. İnternet’te kullanıma sunulan ve
PSPLIB’den alınan bu problemlerin optimum çözümleri hala mevcut
bulunmamaktadır. Optimum çözümleri yerine, araştırmacıların geliştirdikleri
algoritmalarla elde edilen en iyi proje tamamlama sürelerinin alt ve üst sınırları
bulunmaktadır. J120 veri kümesindeki problemlerin optimum çözümleri de hala
araştırma konusu olmaya devam etmektedir.
Tablo 6.4’de görüldüğü üzere, son satırda gösterilen test sonuçları ile
geliştirilen algoritmanın 500 ve 1000 iterasyonlu denemeler sonucunda, üst sınırdan
0,48 sapma ile proje çizelgeleme çözümleri ürettiği saptanmaktadır. Ancak Tormos
ve Lova’nın 2003 de geliştirdikleri algoritma, artan iterasyon sayısı ile daha iyi
çözümler üretmektedir. Ancak geliştirilen algoritma ile aynı veri kümesine yapılan
farklı iterasyon denemeleri, iterasyon sayısının artışı ile daha iyi çözümler elde
edilemediğini göstermektedir.
Ek–7 ve Ek–8 deki j120 örnek problem sonuçları incelendiğinde; diğer veri
kümelerinde olduğu gibi bazı örneklerde iterasyon sayısının artışı ile daha iyi
çözümler elde edilmektedir. Ancak genel olarak açık bir farkın olmadığı, ortalama
sapma değerlerinden de anlaşılmaktadır.
Bu sonuçlarda, iterasyon sayısının artışının, iyi çözümler elde edilmesinde
yeterli olmadığını ancak gerekebileceğini göstermektedir.
Sonuç olarak geliştirilen algoritma, j120 olarak adlandırılan 120 faaliyetli
projelerde literatürün en iyisi olan diğer algoritmalara göre daha iyi sonuçlar
üretememiştir. Ancak algoritma, ortalama 8-10 dakika gibi bir sürede çizelgeleme
probleminin tamamlanma süresi hakkında genel bir fikir oluşturmaktadır.
141
Tablo 6.4. Sezgisel Yöntemlerin Performansları (j120 veri kümesi) Üst sınırdan
ortalama sapmalar
Kritik yol temelli alt sınırdan
ortalama sapmalar
Yıl Araştırmacılar Çizelge
Yöntemi
Sezgisel yöntemler 500 1000
Rank
500 1000
2003 P.Tormos ve A.Lova P/S Pişmanlığa dayalı örnekleme-çok
geçişli
0.45 0.23 1 36.34 35.98
2001 P.Tormos ve A.Lova P/S Pişmanlığa dayalı örnekleme 0.66 0.44 2 36.65 36.32
2000 S.Hartmann P/S GA - 1.29 3 - 37.17
1998 S.Hartmann S Faaliyet listesi - 2.36 4 - 39.37
1998 K.Bouleimen ve H.Lecocq S Benzetim tavlama-activity list - 5.50 12 - 42.81
1998 S.Hartmann S Öncelik kuralı - 2.58 5 - 39.93
1998 S.Hartmann S Rastgele anahtar - 6.85 14 - 45.82
1998 A.Schirmer P/S Adapte edilmiş - 2.87 8 - 39.93
1996 R.Kolisch P Min LFT - 2.69 6 - 39.60
1996 R.Kolisch P WCS - 2.71 7 - 39.65
1996 R.Kolisch ve A.Drexl P/S Adapte edilmiş - 3.71 9 - 41.37
1996 R.Kolisch S Min LFT - 4.55 10 - 42.84
1995 Leon ve Ramamoorty P GA - 5.09 11 - 42.91
1995 R.Kolisch P Rastgele anahtar - 6.21 13 - 44.46
1995 R.Kolisch S Rastgele anahtar - 9.39 15 - 49.25
2007 Geliştirilen algoritma S Rastgele anahtar ve öncelik kuralı 48.37 47.65 54.84 54.10
Kaynak : Tormos ve Lova,2003,s.1083
142
Değişik veri kümelerine yapılan testler sonucunda geliştirilen GA’da aşağıda
belirtilen sonuçlara ulaşılmaktadır:
1. İterasyon sayısını artırmak, bazen oldukça iyi çözümler elde edilmesini
sağlamaktadır. Ancak sistematik bir şekilde ve her zaman iyi çözümlere
ulaşılacağı anlamına gelmemektedir. Örneğin Ek–1’de, j3026–2 örnek
probleminde 500 iterasyonda 91 birimlik proje süresi bulunurken, 1000
iterasyonda 52 birim olarak oldukça iyileşmiş bir proje süresi elde edilmiştir.
Ancak bu durumun karşıtını, yine bariz bir örnek olarak j3029–3 örnek
probleminde görmek mümkün olmuştur. j3029–3 örnek probleminde 500
iterasyonda 78 birim olan proje süresi, 1000 iterasyonda 93 birim olarak
arttığı görülmektedir.
Dolayısıyla Ek–1 ve Ek–2, Ek–3 ve Ek–4 vb. ekler ikilisinde de gösterildiği
gibi gibi; aynı veri kümesi için iterasyon sayısını artırma yolu ile çözüm
uzayını genişletme yöntemi, daha iyi çözümleri elde edebilmek açısından
yeterli olamamaktadır.
2. Daha iyi çözümler elde etmek amacıyla çözüm uzayını genişletmek, yani
iterasyon sayısını artırmak yeterli bir şart olamamakla birlikte, gerekli bir
unsur olarak değerlendirilebilmektedir. Böylece rastgele genişletilen çözüm
uzayında en iyiye rastlama olasılığı değerlendirilerek, etkin çözüm
arayışlarına imkan tanınabilmektedir. Bu nedenle, çizelgeleme problemlerine
çözüm arayışları esnasında kullanılması gerekmektedir.
3. Yine çalışmada özellikle optimum çözümden büyük sapmalar gösteren örnek
problemlerin çözümünde çaprazlama noktası sayısını artırarak yapılan
denemelerde de sistematik bir iyileşmeye rastlanamamış, rastsal olarak daha
iyi ya da daha kötü çözümlere rastlanmıştır.
4. Geliştirilen algoritmada, farklı parametrelerle yapılacak testlerle elde edilen
çözümlerden en iyisini seçmek gerekmektedir. Çizelgeleme probleminin en
143
iyi çözümünün elde edilmesi arayışında; farklı çaprazlama noktası, artırılan
iterasyon ve toplum sayıları ile yapılan denemeler sonucunda elde edilen
çözümler içerisinden en iyisini seçmek gerekmektedir. Bu amaçla, yapılan
denemelerde, parametrelerin farklı kombinasyonları ile de deneme yapılması
tavsiye edilebilmektedir.
5. Çok faaliyetli ve çözümü zor j30, j60, j90 ve j120 çizelgeleme
problemlerinde, yine aynı sırada ortalama 29 saniye, 4 dakika, 5 dakika ve
8,5 dakika gibi kısa işlem süreleri sonucunda çözüm alternatiflerinin elde
edilmesi, GA kullanımının önemini artırmaktadır. Geliştirdiğimiz algoritma,
optimuma çok yakın sonuçlar vermese bile bu kadar kısa bir sürede,
çizelgeleme projesinin tamamlanma süresi hakkında global bir bilgiye erişim
söz konusu olabilmektedir. Dileğimiz, daha sonraki çalışmalarımızda
algoritmaya, optimum çözüme daha fazla yakınsama yapacak işlemlerin ilave
edilmesi ile bu ve benzeri sürede daha etkin çözümler üretebilmektir.
144
YEDİNCİ BÖLÜM
SONUÇ
Birçok işletme, özellikle fazla sayıda kaynak kullanan ve faaliyet sayısı çok
olan proje çizelgeleme problemlerini çözümlemek durumuyla karşı karşıya
kalmaktadır. Ancak işletmelerde var olan ve çözülmesi gereken bu tür problemler,
çözümü zor olan problemlerdir.
KKPÇP’leri son yıllarda genellikle optimum ve sezgisel olmak üzere iki
yaklaşım dikkate alınarak çözülmeye çalışılmaktadır. Optimum yaklaşımlar,
uyulması gereken çözüm aşamalarından oluşan yöntemlerdir. Çözümü zor olan
problemler olarak adlandıran karmaşık problemlerde optimum yöntemlerin
kullanılması bir yandan güçleşirken diğer bir yandan da çözüm esnasında sıkıntı ve
zorlukların yaşanmasına neden olmaktadır. Bu nedenle sezgisel yaklaşımlara ihtiyaç
duyulmaktadır (Tormos ve Lova,2003,s.1071).
Faaliyet sayısı ve faaliyetlerin kullandığı kaynak türleri sayısı arttıkça,
çizelgeleme problemlerinin zorluk derecesi de doğrusal bir şekilde artış
göstermektedir. Ancak yöneticiler, problemin zorluğuna bakmaksızın; işletme
faaliyetlerini zaman, kaynak ve karlılık açısından en iyileyecek çizelgeyi belirlemek
ve buna göre planlama yapmak zorundadırlar. Bu nedenle, işletme verimliliğinin
artışına doğrudan katkısı olacak iyi çizelgeyi elde etme çalışmaları sürekli olarak
gelişme göstermektedir.
Ticari paketlerin, literatürde j30 diye anılan 30 faaliyetli çizelgeleme
problemlerinde bile optimal çözümlerden %4.3-%9.8 arasında ortalama sapma ile
çizelge ürettiği görülmektedir (Hartmann,1998,s.733). Bu durum ise, optimum ya da
optimuma yakın çizelgeleme sonuçlarını elde etmek için sezgisel yöntemlerin
araştırma konusu olma ihtiyacını artırmaktadır.
Bu çalışmanın amacı; daha iyi çözüm alternatifi bulma çabası temelinde,
çağdaş optimizasyon tekniklerinden olan GA’ları kullanarak kaynak kısıtlı projelerin
145
çizelgelenmesini sağlamaktır. Buna ilaveten, daha iyi çizelgeleme yapılabilen bir GA
geliştirme çabasında bulunarak, etkin bir çizelgeleme yöntemi oluşturulması için
katkı sağlamaktır.
Günümüzde, proje çizelgeleme problemlerine yönelik en son geliştirilen
sezgisel yöntemlerden biri olan GA’lar, çözüm amaçlı kurallar dizisinden
oluşmamaktadır. Evrim teorisinden esinlenerek hazırlanan GA’lar, kromozom adı
verilen mümkün çözüm alternatifleri üretmeye çalışır. Oluşturulan çözüm
alternatifleri, bulundukları toplum içerisinde adım adım evrim yaşamaktadırlar. Her
bir adım; iterasyon ya da yineleme olarak adlandırılmaktadır.
Her bir iterasyonda, mevcut toplumdaki kromozomların evrim geçirebilmesi
için kromozomlar birbirleri ile bir takım sezgisel yöntemlerle eşleştirilerek genetik
işlemler uygulanmaktadır. Çaprazlama ve mutasyon olarak anılan genetik işlemler,
mevcut çözümlerin değişmesi, evrim geçirmesi amacına yönelik olarak kullanılan
genetik işlemlerdir. Mevcut çözüm alternatiflerine genetik işlemlerin uygulanması
ile eski toplumdaki kromozomlardan yararlanarak, yeni ve başkalaşmış toplumlar
oluşturulmaktadır. Böylece toplum ya da toplumu oluşturan bireyler evrim geçirmiş
olacaklardır.
Her iterasyonda başkalaştırılan toplum, daha önceki toplumlarda bulunan en
iyi kromozomları (çözüm alternatiflerini) içlerinde barındırmaktadırlar. Bu şekilde,
başlangıçtan beri elde edilen en iyiler ve başkalaştırılma yoluyla daha iyilerin
aranması işlemi, algoritmada belirlenen iterasyon sayısı kadar yapılarak, en son
toplumdaki en iyi çözüm, algoritmanın sonucu olarak belirlenmektedir.
Oluşturulan yeni toplumlar içerisinde en iyi çözüm arayışı, karmaşık
problemlerin çizelgelenmesinde; mümkün çözüm alternatiflerini uzun uzun
çizelgeleme yapmadan bulma çabası sonucu ortaya çıkmaktadır. Bu da karmaşık ve
kapsamlı proje çizelgeleme konusunda, GA’nın önemini ve kullanılması
gerekliliğini daha da artıran bir özelliktir. Genellikle kısıtlara uyan mümkün
çizelgelerden başlayarak yapılan en iyiyi bulma çabasının; bu nedenle devam edeceği
beklenmektedir.
146
Şimdiye kadar yapılan çalışmalar, GA’lar la en iyi olmasa bile en iyiye yakın
çizelgelerin daha hızlı elde edildiğini göstermektedir. Kaldı ki, kaynak kısıtlı proje
çizelgeleme problemlerini çözen ve standart kurallar içeren bir yöntemin halen
geliştirilemediği görülmektedir. Bu nedenle, son yıllarda özellikle karmaşık
problemlerde bazen optimum, bazen de optimuma yakın mümkün çizelgeler elde
edilebilen GA geliştirilme çalışmaları devam etmektedir.
Çalışma kapsamında geliştirilen algoritmanın, basit ve çözümü bilinen
problemlerde optimum sonuç verdiği gözlenmektedir. Bizim amacımız; karmaşık
problemlerde optimum/optimuma yakın çözüm üretebilen algoritmayı geliştirmeye
çalışmaktır.
Yapılan deneylerde örnek problem; farklı genetik operatörler ve genetik
parametreler ile çözümlenebilmektedir. Yapılan testler, algoritmanın bulduğu en iyi
çizelge alternatifinin, yöneticiler için en iyi proje tamamlanma süresi olarak en
azından bir fikir verebileceği sonucunu doğurmaktadır. Çünkü bir problemde, GA ile
üretilen en iyi çözümlerin statik olmadığı, her denemede değişebileceği
görülmektedir.
Bu çalışmada yapılmak istenen, optimum çözüme mümkün olduğunca
yaklaşılabilen bir algoritma geliştirmektir. GA mantığı ve prensipleri oldukça açık
olmasına rağmen, algoritmanın bir probleme uygulanması ve etkin çözümün elde
edebilmesi salt genetik işlemlere bağlı olmamaktadır. Bunu nedeni de genetik
işlemlerde ratgeleliğin (rastsallığın) ön plana çıkmış olmasıdır.
Rastgele arayışlarda iyi çözümlere ulaşmak amacıyla değişik iterasyon
sayıları, çaprazlama ve mutasyon oranları ile farklı denemeler yapılması yaygın
olarak tercih edilmektedir (Ulusoy,2006,s.4).
GA sonucunda elde edilen çözümün, çizelgeleme problemlerinde anlamlı bir
fikir oluşturması açısından kullanılan algoritmanın farklı genetik oranlarının yanı
sıra, farklı genetik işlemler ile denenmesi yararlıdır sonucu çıkarılmaktadır. Bu
147
nedenle bundan sonraki çalışmalarda, gerek çizelgeleme gerekse genetik işlem ve
oranlar açısından, sezgisel modellerin birçok kombinasyonunu, kullanıcının tercih
edebilmesini sağlayan algoritmaların geliştirilmesi daha yararlı olabilecektir.
Bundan sonraki proje çizelgeleme çalışmalarında, GA’ ya dâhil edilmesi
önerilen ek çalışmalar aşağıda maddeler halinde belirtilmektedir. Bu ek çalışmaların;
1’den 3’e kadar olan maddeleri daha iyi çözüme yaklaşım açısından
değerlendirilirken, 4’den 6’ya kadar olanları çizelgeleme problemlerinde daha fazla
ihtiyacı karşılayabilecek düzeyde değerlendirilmektedir. Bunlar:
1. Genetik işlemler olarak isimlendirilen; seçme, çaprazlama ve mutasyon
işlemlerinde çok çeşitliliğin sağlanabilmesi. Parametrik olarak
kullanıcının tercihine bağlı olarak yapılması halinde, farklı seçimlerle
yapılan denemelerde farklı ve daha iyi çözümlere erişme olasılığı
artırılabilir.
2. Genetik işlemlerin çeşitliliği ile optimum çözüme erişme ya da yaklaşma
olasılığını artırma. Çalışmamızda kısmen yapılan bu çeşitliliğin daha da
artırılması fayda sağlayabilir.
3. Toplumun farklılaştırılması. Toplumu oluşturan bireylerde ikiz ya da
çoğul oluşumlardan kaçınarak, toplumu farklılaştırmak çözüme
yakınsama sağlayabilecek bir unsur olabilir. İterasyon sayısının ve toplum
büyüklüğünün yüksek alınması gereken karmaşık problemlerde;
çalışmamızda da yapıldığı gibi, rastgele oluşumlara yer verilmesi
nedeniyle benzer çözümlerin tekrarı söz konusu olabilmektedir. Alternatif
çözümlerdeki bu tekrarlı oluşumlar, arama işleminde, aramayı yavaşlatıcı
ya da etkin çözüme yakınsamayı geciktirici/engelleyici etkiye sahip
olabilmektedir.
Toplumlarda tekrarlanan çözümler elde edilmesi halinde; bu çözümlerin
değişime uğratılarak toplum içerisinde değişik çözümlerin varlığının
artırılması yolu ile çözüm uzayı genişletilebilir. Çözüm uzayının daha
148
etkin aranmasını sağlayan bu tür yöntemlerin algoritmaya ilave edilmesi
ile daha iyi çözüm elde olasılığı artırılabilir.
Toplumun farklılaştırılmasında, toplumu oluşturan bireylerin
farklılaştırılması gerekmektedir. Bireylerin yani kromozomların
farklılaştırılmasında, genlerin rastgele ya da bir sistem çerçevesinde
farklılaştırılması söz konusu olabilecektir. Ancak değişime uğrayan bu
yeni bireyin çözüme yakınsaması için, birey bazında istatistiki değerler
tutularak (örneğin, oluşan bireyin optimum çözümden sapma değeri),
toplumun değişimi kontrol altında tutulabilir.
4. Farklı kaynak türlerinin kullanılması. Algoritmalarda farklı kaynak
türlerini kullanılması, algoritmanın genelleştirilmesinde faydalı olacaktır.
Çünkü çalışmamızda biz sadece yenilenebilir kaynak türü
kullanmaktayız. Bunu nedeni de, başlangıçta test amaçlı kullanmayı
planladığımız ve literatürde yaygın olarak kullanılan yapay test
programlarının, sadece bu kaynak türünü kullanmış olmasından
kaynaklanmaktadır.
5. Amaç fonksiyonunun opsiyonel yapılabilmesi. Proje çizelgeleme
problemleri, sadece proje süresini en az sürede tamamlamayı amaç
edinmeyebilmektedir. Projede için gerekli net nakit akışının minimize
edilmesi, maliyet minimizasyonu, proje bütçesinin belirli bir sınırda
tutulması gibi amaçlar söz konusu olabilmektedir. Bu amaçları da
destekleyen, her bir durumu tek başına irdelenebileceği gibi istenilen
çoklu amacı en iyileyen algoritmaların geliştirilmesi, GA’ların
fonksiyonelliğini artırarak daha fazla ihtiyacı karşılar düzeye çıkmasına
neden olabilecektir.
6. Çok mod’lu olarak anılan; alternatif faaliyet süreleri ve/ya da alternatif
kaynak türü ve miktarları kullanılabilmesi de algoritmaların işlevselliğini
daha da artıracaktır.
149
Kaynak kısıtlı problemlerde, bir faaliyetin her bir süre - kaynak tanımı tek
bir mod olarak tanımlanmaktadır. Faaliyetlere alternatif süre ve/ya da
kaynak tanımı yapılması halinde çok mod (multi-mode) anlamını
taşımaktadır. Faaliyetlere atanacak her bir süre-kaynak şeklinde atanan
alternatifler farklı bir mod olarak değerlendirilmektedir.
(Erenguç,2001,s.108). Faaliyetlere mod olarak atanan değerler, değişen
ya da değişebilecek şartlardan ya da olası gelişmelerden
kaynaklanabilmektedir.
Çok mod’un tanımından da anlaşıldığı üzere, proje çizelgeleme
aşamasında, öngörülebilen olası alternatiflerin değerlendirmeye katılması
ile yapılan en iyi çözüm arayışı, çizelge çözümünün daha gerçekçi
olmasını sağlayacaktır. Bu nedenle, değişebilecek şartlara hazırlıklı
olunması amacıyla alternatif çözüm olarak, algoritmalarda
değerlendirilmeye alınabilir bir özelliktir.
Çok mod’un uygulandığı algoritmalarda, mod değerlerinin seçimi rastgele
ya da içlerinden en iyi değeri temsil eden durum seçilerek
yapılabilmektedir. Faaliyet süresi ya da kullanılan kaynakların
seçiminden sonraki işlemler, tek mod’ lu algoritmalarda olduğu gibi
devam etmektedir. Böylece öngörülen alternatiflerde değerlendirmeye
katılarak, değişen koşullara en uygun çözümler aranabilecektir.
Yukarıda altı madde halinde belirtilen bu öneriler, GA’larda isteğe bağlı
(opsiyonel) olarak seçilebilir bir yapıda hazırlanmalıdır. Böylece algoritma, birçok
çizelgeleme projelerinde gereksinim duyulabilecek amaç ve işlevleri destekler hale
gelecektir. İsteğe bağlı seçimlerin tek ya da çoklu yapılabilmesi ise algoritmanın
etkinliğini daha da artıracaktır.
Bu şekilde çeşitlendirilmiş arama ve genetik işlemler neticesinde üretilen
toplumlarda, çözüm uzayındaki farklı çözümleri bulma olasılığı artarken, en iyi ya da
en iyiye çok yakın proje çizelgelerinin elde edilmesi söz konusu olabilecektir.
150
Ancak önerilen bu ek çalışmalar, algoritmanın kodlanmasını daha da
güçleştirirken test süresinin artmasına da neden olacaktır. Bilgisayar teknolojisinde
yaşanan ve yaşanmakta olan gelişmeler ise, çözüme erişme süresindeki kaygılarımızı
hafifletme eğilimindedir.
151
KAYNAKÇA
Artigues, Christian, Philippe Michelon ve Stephane Reusser (2003), ”Insertion
techniques for static and dynamic resource-constrained project
scheduling”, European Journal of Operational Research, Volume 149,
No. 2, 1 September, ss.249-267.
Atalağ, Koray (2001), ”Yaşam, genler ve bilgisayarlarımız”,TBD Bilişim Kültürü
Dergisi, Mart.
Aytaç, A.Aslı (1998), ”İki kriterli çizelgeleme için bir genetik algoritma”, Yüksek
Lisans Tezi, Orta Doğu Teknik Üniversitesi Fen Bilimleri Enstitüsü,
Ankara
Aytug, H, M. Khouja ve F.E.Vergara (2003), ”Use of genetic algorithms to solve
production and operations management problems: a review”,
International Journal of Production Research,Vol 41, No 17, ss.3955-
4009.
Biroğul, Serdar (2005), ”Genetik algoritma yaklaşımıyla atölye çizelgeleme”, Yüksek
Lisans Tezi, Gazi Üniversitesi Fen Bilimleri Enstitüsü, Ankara.
Boctor, Fayez F. (1996), ”A new and efficient heuristic for scheduling projects with
resource restrictions and multiple execution modes”, European Journal of
Operational Research, Volume 90, No. 2, 19 April, ss.349-361.
Bolat, Berna, K.Erol Osman ve Erdem C.İmsak (2004), “Mühendislik
uygulamalarında genetik algoritma ve operatörlerin işlevleri”,
Mühendislik ve Fen Bilimleri Dergisi, Sigma 2004/4, ss.264-271.
Brochmann, Harold (2005), ” A genetıc algorithm”,
http://www.salts Brucker Brucker pring.com/brochmann/math/GA/GA-
1.00.html [3.5.2005].
Brucker, Peter, Andreas Drexl, Rolf Möhring, Klaus Neumann ve Erwin Pesch
(1999), “Resource-constrained project scheduling: Notation,
classification, models, and methods”, European Journal of Operational
Research, Volume 112, No. 1, 1 January 1999, ss.3-41.
Buckles, Bill P. ve Frederick E. Petry (Derl.) (1992), Genetic Algorithms,
Washington: IEEE Computer Society Press, Technology Series.
152
Chan, Felix T.S., S.H Chung ve Subhash Wadhwa (2005), “A hybrid genetic
algorithm for production and distribution”, The International Journal of
Management Sciense, Omega 33, ss.345-555.
Chen, Mingwu ve Ali M. S. Zalzala (1997), “A genetic approach to motion planning
of redundant mobile manipulator systems considering safety and
configuratinon”, Journal of Robotic Systems, 14(7), ss.529-544.
Chen, Ting-Yu ve Chung-Jei Chen (1997), “Improvements of simple genetic
algorithm in structural design”, Int. Journal for Numerical Methods in
Engineering, Vol.40, ss.1323-1334.
Cheng, Runwei ve Mitsuo Gen (1994); “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.
Çetin, Nurdan (2002), ”Genetik algoritma”, Yüksek Lisans Tezi, Yıldız Teknik
Üniversitesi Fen Bilimleri Enstitüsü, İstanbul.
Debels, Dieter, Bert De Reyck, Roel Leus ve Mario Vanhoucke (2003), ”A hybrid
scatter search/electromagnetism meta-heuristic for project planning”,
Vierick Leuven Gent Management School Working Paper, (Seri No:25).
Debels, Dieter ve Mario Vanhoucke (2005), ”A bi-population based genetic
algorithm for the resource constrained project scheduling problem”,
Vierick Leuven Gent Working Paper, (Seri No: 8).
Düğenci, Muharrem (1996), ”Genetik algoritmalarla permütasyon tipi iş sıralama”,
Yüksek Lisans Tezi, Sakarya Üniversitesi Fen Bilimleri Enstitüsü,
Adapazarı-Sakarya.
Erenguc, S.Selçuk, Taeho Ahn ve Daniel G. Conway (2001), “ The resource
constrained project scheduling problem with multiple crashable modes:
an exact solution method”, Naval Research Logistics, Vol.48.
Fığlalı, Alpaslan ve Orhan Engin (2002), “Akış tipi çizelgeleme problemlerinin
genetik algoritma ile çözüm performansının artırılmasında deney tasarımı
uygulaması”
http://www.mmo.org.tr/endustrimuhendisligi/2002_3/akistipi_cizelgeleme
_makale.htm, [12.04.2005].
153
Gen, Mitsuo ve Runwei Cheng (2003), “Evolutionary network design: Hybrid
genetic algorithms approach” , International Journal of Computational
Intelligence & Application; December, Vol. 3 No. 4, ss.357-380.
Güldoğan, Evrim (2003), ”Çizelgeleme problemlerinin çözümlenmesinde genetik
algoritma yaklaşımı”, Yüksek Lisans Tezi, Ege Üniversitesi Fen Bilimleri
Enstitüsü, İzmir.
Goldberg, David E. (1992), ”Sizing populations for seral and paralel genetic
algorithms”, Derl.: Bill P.Buckles and Frederick E. Petry, Washington:
IEEE Computer Society Press, Technology Series, ss.20-29.
Güvenç, Burak (2000), ”A Genetik algorithm for multi-mode resource constrained
project scheduling”, Yüksek Lisans Tezi, Orta Doğu Teknik Üniversitesi
Fen Bilimleri Enstitüsü, Ankara.
Harper, Paul R., Valter de Senna, Israel T. Vieira ve Arjan K..Shahani (2005), ”A
genetic algorithm for the project assignment problem.”, Computers &
Operations Research, May2005, Vol. 32 No. 5, ss.1255 -1266.
Hartmann, Sönke (1998), “A competitive genetic algorithm for resource constrained
project scheduling”, Naval Research, Vol. 45, ss.733-750.
Hartmann, Sönke ve Rainer Kolisch (2000),“Experimental evaluation of state-of-art
heuristics for the resource constrained project scheduling problem”,
European Journal of Operational Research,127, ss.394-407.
Hartmann, Sönke (2001), “Project scheduling with multiple modes: a genetic
algorithm”, Annals of Operations Research,102, ss.111-135.
Haupt, Randy L. ve Sue Ellen Haupt (2004), Practical Genetic Algorithms, New
Jersey: Second edition, Jhon Wiley & Sons Inc.
Herroelen, Willy, Bert De Reyck ve Erik Demeulemeester (1998), ”Resource-
constrained project scheduling: A survey of recent developments“,
Computers & Operations Research, Volume 25, No. 4, April, ss.279-302.
Hindi, S.Khalil, Hongbo Yang ve Krzysztof Fleszar (2002), ” An evolutionary
algorithm for resource constrained project scheduling”,IEEE Transactions
on Evolutionary Computation,Vol.6, No.5, October.
Hoşşerbetçi, K.H. (1997), ”Genetik algoritmaların yöneylem araştırmasında
kullanımı”, Yüksek Lisans Tezi, İstanbul Üniversitesi Sosyal Bilimler
Enstitüsü, İstanbul.
154
Huang, Min-Wei, Ching C. Hsieh ve Jasbir S. Arora (1997), “A genetic algorithm for
sequencing type problems in engineering design”, International Journal
for Numerical Methods in Engineering, Vol.40. ss.3105-3115.
Huang, George D., X. Y. Zhang ve L. Liang (2005), “Towards integrated optimal
configuration of platform products, manufacturig proceses and supply
chains”, Journal of Operations Management, Vol.23, No. 3-4, April,
ss.267-290.
Icmeli-Tukel, Oya ve Walter O. Rom (1997), ”Ensuring quality in resource
constrained project scheduling”, European Journal of Operational
Research, Volume 103, No. 3, 16, December, ss.483-496.
Ikeuchi, Tomoya., Y Ikkai., D. Araki, T. Ohkawa ve N. Komoda (1998), “Project
scheduling using a genetic algorithm with adaptable changing genetic
operators”, Electrial Engieering in Japan, Vol. 124, No.2, ss.36-42.
Kahvecioğlu, Ayşe (2004), “Onarılabilir elemanlara önleyici bakımın etkisi ve
optimizasyonu”, Mühendis ve Makine, Cilt.45, Sayı: 531, ss.43-51.
Kaya, Mustafa (1999), ”Genetik algoritma ve gezgin satıcı probleminin çözümü”,
Yüksek Lisans Tezi, Fırat Üniversitesi Fen Bilimleri Enstitüsü, Elazığ.
Ke, Hua ve Baoding Liu (2004), ”Project scheduling problem with stochastic activity
duration times”, Applied Mathematics and Computation, In Press,
Corrected Proof, Available online 17 November.
Keha, A. Burak (1999), ”GA kullanarak iki kriterli çizelgeleme”, Yüksek Lisans Tezi,
Orta Doğu Teknik Üniversitesi Fen Bilimleri Enstitüsü, Ankara.
Kim, Kwan Woo, Young Su Yun, Jung Mo Yoon, Mitsuo Gen ve Genji Yamazaki
(2005), “Hybrid genetic algorithm with adaptive abilities for resource-
constrained multiple project scheduling“, Computers in Industry, Volume
56, No. 2, February, ss.143-160.
Kılıç, Murat, Gündüz Ulusoy ve Funda Sivrikaya Şerifoğlu (2004), ”Risk altında
proje çizelgelemeye iki amaçlı genetik algoritma yaklaşımı”, YA/EM’
2004, Yöneylem Araştırması/Endüstri Mühendisliği XXIV. Ulusal
Kongresi,15-18 Haziran.
Kıraç, Furkan (2002) ,”Makine toplam artı gecikme problemine genetik algoritma
yaklaşımı”, Yüksek Lisans Tezi, Boğaziçi Üniversitesi Fen Bilimleri
Enstitüsü, İstanbul.
155
Kolisch, Rainer, Arno Sprecher ve Andreas Drexl (1995), “Characterization and
generation of a general class of resource constrained project scheduling
problems”, Management Science, Volume 41, No. 10, October, ss.1693-
1703.
Kolisch, Rainer (1996a), “Serial and parallel resource-constrained project scheduling
methods revisited: Theory and computation”, European Journal of
Operational Research, Volume 90, No. 2, 19 April, ss.320-333.
Kolisch, Rainer (1996b), “Efficient priority rules for the resource-constrained project
scheduling problem”, Journal of Operations Management, Volume 14,
No. 3, September, ss.179-192.
Kolisch, Rainer ve Arno Sprecher (1997), ”PSPLIB - A project scheduling problem
library : OR software - ORSEP operations research software exchange
program”, European Journal of Operational Research, Volume 96, No. 1,
10 January, ss.205-216.
Kolisch, Rainer ve Sönke Hartmann (1999), ”Heuristics algorithms for solving the
resource-constrained project scheduling problem: classification and
computational analysis”, Kluwer Academic Publishers In: Weglarz.
J.(ed.).Project Scheduling-Recent Models, Algorithms and Applications,
ss.147-178, Boston.
Kolisch, Rainer ve Sönke Hartmann (2005), ”Experimental investigation of
heuristics for resource-constrained project scheduling: An update”,
European Journal of Operational Research, In Press, Corrected Proof,
Available online 23 May.
Koza, John R. (1995), ”Two ways of discovering the size and shape of a computer
program to solve a problem”, Proceedings of the Sixth International
Conference on Genetic Algorithm, ss.287-294.
Kurt, Mustafa ve Cumali Semetay (2001), “Genetik algoritma ve uygulama
alanları”,
http://www.mmo.org.tr/muhendismakina/arsiv/2001/ekim/Genetik_Algorit
ma.htm, [12.4.2005].
Mendes, Jorge Jose de Magalhaes, Jose Fernando Gonçalves ve Mauricio G.C.
Resende (2005), ”Random key based genetic algorithm for the resource
constrained project scheduling problem” , AT&T Labs Research
Technical Report TD-6DUK2C, June 30.
156
Mika, Marek, Grzegorz Waligóra ve Jan Weglarz (2005), ”Simulated annealing and
tabu search for multi-mode resource-constrained project scheduling with
positive discounted cash flows and different payment models”, European
Journal of Operational Research, Volume 164, No. 3, 1 August, ss.639-
668.
Mitchell, Melanie ve Charles E. Taylor (1999), “Evolutionary computations: an
overview”, Annual Review of Ecology ad Systematics, 30: ss.593-616.
Mitchell, Melanie (1999), An Introduction to Genetic Algorithms, USA:
Massachusetts Institute of Technology.
Mori, Masao ve Ching Chih Tseng (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.
Moumin, Ali (1995), ”Yapay sinir ağları ve genetik algoritmaların uçuş kontrol
sistemlerine uygulanması”, Yüksek Lisans Tezi, İstanbul Teknik
Üniversitesi Fen Bilimleri Enstitüsü, İstanbul.
Nakamura, Morikazu., N.Yamashiro, Y.Gong, T.Matsumura ve K.Onaga (2005),
“Iterative parallel genetic algorithms based on biased inital population”,
IEICE Trans. Fundamentals, (April),Vol.E88-A, No.4, ss.923-929.
Naphade, Kedar S., S. David Wu ve Robert H. Storer (1997), ”Problem space search
algorithms for resource constrained project scheduling”, Annals of
Operations Research, 70 ,ss.307-326.
Nearchou, Andreas C. (1998), “Path planning of mobile robot using genetic
heuristics”, Robotica , Cambridge University Pres, Vol.16, ss.575-588.
Neely, Christoper, Paul Weller ve Rob Dittmar (1997), “Is technical analysis in the
foreign exchange market profitable? A genetic programming approach”,
The Journal of Financial and Quantitative Analysis, Vol.32,
No.4(December), ss.405-426.
Nudtasomboon, Nudtapon ve Sabah U. Randhawa (1997), ”Resource-constrained
project scheduling with renewable and non-renewable resources and time-
resource tradeoffs”, Computers & Industrial Engineering, Vol. 32, No. 1,
January , ss.227-242.
157
Özdamar, Linet (1999), ”A genetic algorithm approach to a general category project
scheduling problem”, Systems, Man and Cybernetics, Part C, IEEE
Transactions, Vol. 29, No 1, February, ss.44 – 59.
Pet-Edwards, Julia. ve M. Mollaghesemi (1995), “Aplication of genetic algorithms
in resource constrained network optimization”, IEEE, ss.3059-3072.
Pet-Edwards, Julia. ve M. Mollaghesemi (1996), “A simulation and genetic
algorithm approach to stochastic research constrained project
scheduling”, Southcon/96. Conference Record, 25-27 June, ss.333 – 338.
Reeves, Colin R. ve Jonathan E. Rowe (2003), Genetic Algorithms-Principles and
Perspectives: A Guide to GA Theory, Kluwer Academic Publishers,
Boston.
Ren, Lihong , Yongsheng Ding, Hao Ying ve Shihuang Shao (2003), “Emergence of
self-learning fuzzy systems by a new virus DNA-based evolutionary
algorithm”, International Journal of Intellegent Systems,Vol.18, ss.339-
354.
Reyck, Bert De ve Willy Herroelen (1998),” An optimal procedure for the resource-
constrained project scheduling problem with discounted cash flows and
generalized precedence relations”, Computers & Operations Research,
Volume 25, No. 1, January, ss.1-17.
Salewski, Frank, Andreas Schirmer ve Andreas Drexl (1997),”Project scheduling
under resource and mode identity constraints: Model, complexity,
methods, and application“, European Journal of Operational Research,
Volume 102, No. 1, 1 October, ss.88-110.
Simpson, Wendell P.III, ve James H. Patterson (1996), ”A multiple-tree search
procedure for the resource-constrained project scheduling problem”,
European Journal of Operational Research, Volume 89, No. 3, 22 March,
ss.525-542.
Solomon, Michael R. (2005), ” Activity planning-from WBS to project
schedule”,Understanding the Project Management Institute's Project
Planning Process Group,
http://www.examcram2.com/articles/article.asp?p=423937&seqNum=5&
rl=1, [1.8.2006]
158
Sorenson, Tremblay (1976), An Introduction to Data Structures with Applications,
Computer Science Series, International Student Edition, McGraw Hill.
Şen, Zekai (2004), Genetik Algoritmalar ve En İyileme Yöntemleri, İstanbul: Su
Vakfı.
Şerifoğlu, Funda Sivrikaya ve G. Ulusoy (1999), ”Paralel machine scheduling with
earliness and tardiness penalties”, Computers and Operations Research,
26, No. 8, ss.773-787.
Şerifoğlu, Funda Sivrikaya ve G. Ulusoy (2002), ”Çok işlemcili işlerin, çok katmanlı
paralel işlemcili akış atölyelerinde çizelgelenmesi”, Endüstri
Mühendisliği Dergisi, Cilt 13, Sayı 4, ss.19-25.
Talbot, F. Brian (1982), ”Resource constrained Project scheduling with time-
resource tradeoffs: the nonpreemptive case”, Management Science,
Vol.28, No.10.
Taşkın, Çağatan (2003), ”Araç rotalama problemlerine genetic algoritma yaklaşımı
ve bir uygulama”, Yüksek Lisans Tezi, Uludağ Üniversitesi Sosyal
Bilimler Enstitüsü, Bursa.
Tavakkoli-Moghaddam, R. ve M. Daneshmand-Mehr (2005), ”A computer
simulation model for job shop scheduling problems minimizing
makespan”, Computers & Industrial Engineering, Jun2005, Vol. 48 No.
4, ss.811-824.
Tormos, P. ve Antonio Lova (2003), ”An efficient multi-pass heuristic for project
scheduling with constrainet resources”, International Journal of
Production Research, Vol.41, No.5, ss.1071-1086.
Uçaner, M. Erhan ve Osman N. Özdemir (2002), “Genetic algoritmalar ile içme suyu
şebekelerinde ek klorlama optimizasyonu”, Gazi Üniversitesi Mühendislik
Mimarlık Fakültesi Dergisi, Cilt: 17, No.4, ss.157-170.
Ulusoy, Gündüz (2006), ”Proje planlamada kaynak kısıtlı çizelgeleme”, Sabancı
Üniversitesi, Mühendislik ve Doğa Bilimleri Fakültesi,
http://people.sabanciuniv.edu/gunduz/HalimDogrusoz .pdf , [8.7.2006].
Wall, Mathew Bartschi (1996), ”A genetic algorithm for resource constrained
scheduling”, Doktora Tezi, Massachusetts Institute of Technology,
Cambridge.
159
Wang, Peng-Yi ve Ming Lu (2002), “Genetic algorithm optimized resource activity
critical path method”, Proceedings of the First Conference on Machine
Learning and Cybernetics, Vol.. 4, 4-5 November, ss.1978-1982.
Watanabea, Masato, Kenichi Ida ve Mitsuo Gen (2005), ”A genetic algorithm with
modified crossover operator and search area adaptation for the job-shop
scheduling problem”, Computers & Industrial Engineering, Jun2005,
Vol. 48 No. 4, ss.743-753.
Vanhoucke, Mario , Erik Demeulemeester ve Willy Herroelen (2001), ”An exact
procedure for the resource constrained weighted earlines-tardiness project
scheduling problem”, Annals of Operations Research,102, ss.179-196.
Vose, Michael D. (1999), The Simple Genetic Algorithm: Foundations and Theory,
Cambridge: Massachusetts Institute of Technology Press.
Yeo, M. F. ve E. O. Agyei (1998), ”Optimising engineering problems using genetic
algorithms”, Engineering Computations, Vol.15, No.2, ss.268-280.
Zamani, M. Reza (2001), ”A high-performance exact method for the resource-
constrained project scheduling problem”, Computers & Operations
Research, Volume 28, No.14, December, ss.1387-1401.
ÖZİ
ÖZGEÇMİŞ
KİŞİSEL BİLGİLER
Adı Soyadı Semin PAKSOY
Doğum Yeri ve Yılı Kadirli/OSMANİYE - 1959
Medeni Durumu Evli
Adres Çukurova Üniversitesi, İktisadi ve İdari Bilimler
Fakültesi, Ekonometri Bölümü, 01330 Yüreğir–ADANA
e-posta [email protected]
EĞİTİM DURUMU Doktora (1998-2007)
Çukurova Üniversitesi, Sosyal Bilimler Enstitüsü
İşletme Anabilim Dalı, ADANA
Yüksek Lisans (1994-1997)
Çukurova Üniversitesi, Sosyal Bilimler
Enstitüsü,İşletme Anabilim Dalı, ADANA
Lisans (1979-1985)
Orta Doğu Teknik Üniversitesi
Bilgisayar Mühendisliği, ANKARA
Lise (1975-1978)
Ankara Kız Lisesi, ANKARA
Orta ve İlk Okul (1967-1975)
Kadirli Orta Okulu ve 7 Mart İlk Okulu
İŞ DENEYİMİ Çukurova Üniversitesi, İktisadi ve İdari Bilimler
Fakültesi, Ekonometri Bölümü, ADANA (1994- )
Öğr. Gör.
BİMSA A.Ş. ADANA (1985-1992)
Programcı, Sistem Analisti ve Sistem Uzmanı
Mensa Mensucat A.Ş. ADANA(1985-1985)
Sampaş A.Ş. ANKARA(1984-1984)
Programcı
YABANCI DİL İngilizce