tc yıldız teknik üniversitesi fen bilimleri enstitüsü çizelgeleme

advertisement
T.C.
YILDIZ TEKNİK ÜNİVERSİTESİ
FEN BİLİMLERİ ENSTİTÜSÜ
ÇİZELGELEME PROBLEMLERİNDE YAPAY BAĞIŞIKLIK SİSTEMİ YAKLAŞIMI
AYŞE NURAY CANAT
YÜKSEK LİSANS TEZİ
ENDÜSTRİ MÜHENDİSLİĞİ ANABİLİM DALI
SİSTEM MÜHENDİSLİĞİ PROGRAMI
DANIŞMAN
PROF. DR. HÜSEYİN BAŞLIGİL
İSTANBUL, 2016
T.C.
YILDIZ TEKNİK ÜNİVERSİTESİ
FEN BİLİMLERİ ENSTİTÜSÜ
ÇİZELGELEME PROBLEMLERİNDE YAPAY BAĞIŞIKLIK SİSTEMİ YAKLAŞIMI
Ayşe Nuray CANAT tarafından hazırlanan tez çalışması 26.07.2016 tarihinde aşağıdaki
jüri tarafından Yıldız Teknik Üniversitesi Fen Bilimleri Enstitüsü Endüstri Mühendisliği
Anabilim Dalı’nda YÜKSEK LİSANS TEZİ olarak kabul edilmiştir.
Tez Danışmanı
Prof. Dr. Hüseyin BAŞLIGİL
Yıldız Teknik Üniversitesi
Jüri Üyeleri
Prof. Dr. Hüseyin BAŞLIGİL
Yıldız Teknik Üniversitesi
_____________________
Prof. Dr. Ali Fuat GÜNERİ
Yıldız Teknik Üniversitesi
_____________________
Prof. Dr. İsmail EKMEKÇİ
İstanbul Ticaret Üniversitesi
_____________________
ÖNSÖZ
Son yıllarda ortaya çıkan yapay zeka tekniklerinden biri olan yapay bağışıklık sistemleri
birçok alanda uygulama imkanına sahiptir. Fakat iş çizelgeleme gibi endüstriyel
problemlerin çözümünde kullanımı oldukça sınırlı kalmıştır. Daha çok bilgisayar ve ağ
uygulamaları konusunda çalışmalar yapılmıştır. Bu çalışmada, endüstriyel bir problemin
Yapay Bağışıklık Sistemi ile çözümü üzerinde durulmuştur. Yapay bağışıklık sisteminin iş
çizelgeleme problemi için gösterdiği performans incelenmiştir.
Çalışmamın her aşamasında yardım ve desteklerini esirgemeyen danışmanım Sayın
Prof. Dr. Hüseyin BAŞLIGİL’e, beni yetiştiren, bugüne kadar emeklerini esirgemeyen
anneme, babama ve kardeşlerime, desteklerini hep hissettiğim eşime, oğluma ve
kızıma sonsuz teşekkürlerimi sunarım.
Temmuz, 2016
Ayşe Nuray CANAT
İÇİNDEKİLER
Sayfa
SİMGE LİSTESİ................................................................................................................... vi
KISALTMA LİSTESİ ............................................................................................................viii
ŞEKİL LİSTESİ ..................................................................................................................... ix
ÇİZELGE LİSTESİ ................................................................................................................ xi
ÖZET .................................................................................................................................xii
ABSTRACT........................................................................................................................ xiv
BÖLÜM 1
GİRİŞ .................................................................................................................................. 1
1.1
1.2
1.3
Literatür Özeti ............................................................................................. 2
Tezin Amacı ................................................................................................. 5
Hipotez ........................................................................................................ 5
BÖLÜM 2
SIRALAMA VE ÇİZELGELEME ............................................................................................. 6
2.1
2.2
2.3
Genel Bilgiler ............................................................................................... 6
Performans Ölçütleri ................................................................................. 11
Akış Tipi İş Çizelgeleme Problemleri Çözümündeki Sezgisel Yöntemler 15
BÖLÜM 3
DOĞAL BAĞIŞIKLIK SİSTEMİ ............................................................................................ 17
3.1 Giriş ........................................................................................................... 17
3.2 Bağışıklık Sistemi Organları ....................................................................... 17
3.3 Bağışıklıkta Rol Alan Temel Birimler ......................................................... 19
3.3.1 Lenfositler .......................................................................................... 20
3.3.2 Fagositler, Gronülositler ve Akrabaları .............................................. 22
3.3.3 Kompleman Sistem ............................................................................ 23
iv
3.4 Bağışıklık Sisteminin Çalışması .................................................................. 24
3.4.1 Kendinden ve Kendinden Olmayan Ayrımı ........................................ 25
3.4.2 Öğrenme ve Bağışıklık Hafızası .......................................................... 27
3.4.3 Bağışıklık Ağı ...................................................................................... 28
BÖLÜM 4
YAPAY BAĞIŞIKLIK SİSTEMİ ............................................................................................. 30
4.1 Yapay Bağışıklık Sistemlerinin Tarihçesi.................................................... 30
4.2 Yapay Bağışıklık Sisteminin Temel Özellikleri ........................................... 31
4.3 Yapay Bağışıklık Sistemi Tasarım Ölçütleri ................................................ 33
4.3.1 Şekil Uzay Gösterimi .......................................................................... 36
4.3.2 Antijen-Antikor Gösterimleri ve Duyarlılıklar .................................... 38
4.4 Yapay Bağışıklık Algoritmaları ................................................................... 40
4.4.1 Negatif Seçim Mekanizması .............................................................. 40
4.4.2 Klonal Seçim Mekanizması ................................................................ 42
4.4.3 Kemik İliği Modeli .............................................................................. 43
4.4.4 Timüs Modeli ..................................................................................... 44
4.4.5 Sürekli Bağışıklık Ağı Modeli .............................................................. 46
4.4.6 Kesikli Bağışıklık Ağ Modeli ................................................................ 48
4.5 Diğer Hesaplama Yaklaşımları Bağlamında Yapay Bağışıklık Sistemleri ... 50
BÖLÜM 5
GELİŞTİRİLEN YAPAY BAĞIŞIKLIK SİSTEMİ YAKLAŞIMI..................................................... 52
5.1
5.2
5.3
5.4
5.5
5.6
5.7
Antikor Gösterimi...................................................................................... 53
İlk Popülasyon ........................................................................................... 54
Klonlama ................................................................................................... 55
Somatik Hipermutasyon ........................................................................... 55
Reseptör Denetimi .................................................................................... 57
Hafıza Hücreleri......................................................................................... 58
İş Rotalaması ............................................................................................. 58
BÖLÜM 6
ELE ALINAN PROBLEM VE HESAPLAMA SONUÇLARI ...................................................... 59
BÖLÜM 7
SONUÇ VE ÖNERİLER ...................................................................................................... 66
KAYNAKLAR ..................................................................................................................... 68
EK-A ................................................................................................................................. 73
EK-B ................................................................................................................................. 85
EK-C ................................................................................................................................. 90
ÖZGEÇMİŞ ..................................................................................................................... 107
v
SİMGE LİSTESİ
A
Cmax
Dij
E
ei (n)
FF
FJ
Fm
İ
J
Jm
Mk
k1
k2
Lmax
M
M
Mij
n
n
Om
Qm
P
p
pi (n)
Pi
Pm
rj
Rk
Rm
S
S*
α
β
Algılayıcı Dedektörler
En büyük Tamamlanma Zamanı (makespan)
Herbir j. Antijen ile i. B hücresi arasındaki öklit uzaklığı
Epitop
i. epitop n. Biti
Esnek akış tipi üretim
Esnek sipariş tipi üretim
m makinalı akış tipi üretim
Etkinlik, faaliyet
Job (iş)
makinalı sipariş tipi üretim
Kaynak
Oran sabiti
Uyarım ve baskılanma arasındaki mümkün sapma
Maksimum gecikme süresi
Antijen sayısı
Makine
Birleşme matrisi
Bağlantılı B hücreleri sayısı
Problemi anlatmak için kullanılacak bilgi miktarı
m makinalı serbest dolaşımlı atölye
m adet farklı hızlı paralel makine
Rasgele Algılayıcı Adayları Kümesi
Paratop
i. paratopun n. biti
Birim işlem süresi
m adet özdeş paralel makine
Serbest kalma zamanı
Kaynağın birim kapasitesi
m adet ilişkisiz paralel makine
Tanınan Durumlar Kümesi
Korunan Veri Kümesi
Makina ortamını
İş karakteristiklerini
vi
γ
Σ wjTj
Σ wjUj
Σ wjCj
En küçüklenmeye çalışılacak amaç fonksiyonu
Ağırlıklı teslim gecikmesi süresi toplamı
Ağırlıklı geciken iş sayısı toplamı
Ağırlıklı tamamlanma zamanı toplamı
vii
KISALTMA LİSTESİ
Ab
aiNET
Ag
APC
CDS
EA
GA
HFS
IAIS
ICARIS
KKO
LB
MHC
NEH
NK
NP
P
PDO
PSO
RAIN
RCPSP
SA
TA
TSP
YBS
YSA
Antikor
Artificial Immune Network (Yapay Bağışıklık Ağı)
Antijen
Antigen Presenting Cells (Antijen Sunucu Hücreler)
Campbell, Dudek, Smith Yöntemi
Evrimsel Algoritmalar
Genetik Algoritma
Hybrid Flow Shop (Melez Akış Dükkanı)
Immunoglobulin tabanlı yapay bağışıklık sistemi
International Conference on Artificial Immune Systems
Karınca Kolonisi Algoritması
Lower Bound
Major Histocompatibility Complex (Temel Doku Uygunluğu Bileşeni)
Nawaz, Enscore, Ham Yöntemi
Natural Killer ( Doğal Öldürücü)
Non-Polinomial
Polinomial
Popülasyon Değişim Oranı
Parçacık Sürü Optimizasyonu
Resource Limited Artificial Immune Network (Kaynak Kısıtlı Yapay Bağışıklık Ağı)
Resource Constrained Project Scheduling Problems (Kaynak Kısıtlı Proje
Çizelgeleme Problemi)
Simulated Annealing (Tavlama Benzetimi)
Tabu Araştırması
Travelling Salesman Problem (Gezgin Satıcı Problemi)
Yapay Bağışıklık Sistemleri
Yapay Sinir Ağları
viii
ŞEKİL LİSTESİ
Sayfa
Şekil 2. 1
Şekil 2. 2
Şekil 2. 3
Şekil 2. 4
Şekil 2. 5
Şekil 2. 6
Şekil 2. 7
Şekil 2. 8
Şekil 2. 9
Şekil 3. 1
Şekil 3. 2
Şekil 3. 3
Şekil 3. 4
Şekil 3. 5
Şekil 3. 6
Şekil 3. 7
Şekil 3. 8
Şekil 3. 9
Şekil 4. 1
Şekil 4. 2
Şekil 4. 3
Şekil 4. 4
Şekil 4. 5
Şekil 4. 6
Şekil 4. 7
Şekil 4. 8
Şekil 4. 9
Şekil 4. 10
Şekil 4. 11
Şekil 5. 1
Şekil 5. 2
Şekil 5. 3
Şekil 5. 4
Makina bazlı Gantt diyagramı…………………………………………………………..
İş bazlı Gantt diyagramı……………………………………………………………………
Çizelgeleme problemlerinin sınıflandırılması……………………………………
Akış tipi çizelge örneği……………………………………………………………………..
Sipariş tipi çizelge örneği………………………………………………………………….
Serbest dolaşımlı çizelge örneği……………………………………………………….
Çizelgeleme problemlerinin çözümünde kullanılan yöntembilimleri
İş-kesme içermeyen sipariş tipi çizelgeleme problemlerinde çizelge
sınıflarının Venn diyagramında gösterimi…………………………………………
Yarı-aktif ve aktif çizelge örnekleri……………………………………………………
Bağışıklık sistemi organları……………………………………………………………….
Bağışıklık sistemindeki hücreler ve salgılar……………………………………….
Antikorun yapısı……………………………………………………………………………….
Fagositik hücreler…………………………………………………………………………….
Kompleman Zincir Tepkimesi (Kompleman Kaskad)…………………………
Bağışıklık mekanizmasının işleyişi…………………………………………………….
Klonal Seçim Mekanizması……………………………………………………………….
Bağışıklık yanıtları…………………………………………………………………………….
Bağışıklık ağ modeli………………………………………………………………………….
YBS ile problem çözme uygulama adımları……………………………………….
Antijen ve antikorların şekil uzayı gösterimi……………………………………..
Antijen ve antikorların şekil uzayında tamamlayıcı gösterimi……………
Tanıma çemberi ile antijenlerin gösterimi………………………………………..
Hamming uzaklığı ve duyarlılık hesabı………………………………………………
YBS algoritmalarının kategorileri………………………………………………………
Negatif Seçim Mekanizması……………………………………………………………..
CLONALG algoritmasının akış diyagramı…………………………………………..
Gen bölümleri kütüphaneleri …………………………………………………………..
Algılayıcı kümesi oluşturma işlemi ve normal olmayan durum tespiti
İki antikor molekülünün epitop ve paratopunu gösteren bit dizileri…
Geliştirilen YBS’ndeki işlerin tekrarlı permütasyon gösterimi……………
Operasyonların makinelere atanması……………………………………………….
Antikor gösterimi……………………………………………………………………………..
Araya Girme Mutasyonu Örneği……………………………………………………….
ix
7
7
8
10
10
10
14
14
15
18
21
22
23
23
25
27
28
28
33
36
37
37
40
40
41
43
44
46
46
53
54
54
56
Şekil 5. 5
Şekil 5. 6
Şekil 5. 7
Şekil 6.1
Şekil 6.2
Şekil 6.3
Şekil 6.4
Şekil 6.5
Şekil 6.6
Şekil 6.7
Karşılıklı Yer Değiştirme (Swap) Mutasyonu Örneği………………………….
Tek Makine Değiştirme Mutasyonu Örneği………………………………………
İki Makine Değiştirme Mutasyonu Örneği………………………………………..
İş, makine ve operasyon sayısını girdiğimiz arayüz ve süreçlerin
zaman tablosu………………………………………………………………………………….
Algoritma seçme ve parametreleri girme arayüzü……………………………
YBS yaklaşımıyla bulunan çözümün Gantt Şeması…………………………….
YBS yaklaşımıyla bulunan çözümün grafiksel gösterimi…………………….
Aynı problemin çözümü için GA yaklaşımının seçimi………………………..
Aynı problemin çözümü için GA yaklaşımının Gantt Şeması……………..
Aynı problem için GA ile YBS yaklaşımlarının karşılaştırıldığı grafiksel
gösterim……………………………………………………………………………………………
x
56
56
57
60
61
62
63
63
64
65
ÇİZELGE LİSTESİ
Sayfa
Çizelge 2. 1
Çizelge 4. 1
Çizelge 4. 2
Çizelge 4. 3
Çizelge 5. 1
Literatürde problem anlatımı için kullanılan Graham gösterimi……
Yapının bileşenleri, temel özellikleri ve işleyişi………………………………
Ağ öğrenme algoritması………………………………………………………………
aiNet öğrenme algoritması……………………………………………………………
Çizelgeleme problemlerinin YBS ile çözümündeki kavramlar………..
xi
11
35
49
49
52
ÖZET
ÇİZELGELEME PROBLEMLERİNDE YAPAY BAĞIŞIKLIK SİSTEMİ YAKLAŞIMI
Ayşe Nuray CANAT
Endüstri Mühendisliği Anabilim Dalı
Yüksek Lisans Tezi
Tez Danışmanı: Prof. Dr. Hüseyin BAŞLIGİL
Çizelgeleme, birbiri ile rekabet halindeki bir veya daha fazla hedefi optimize etmek
amacı ile sınırlı kaynakların tahsis edilmesine yönelik bir karar verme sürecidir. Klasik
çizelgeleme teorisinde problemler öncelikle matematiksel olarak modellendikten sonra
optimum sonuç veren algoritmalar ile ya da sezgiseller yardımı ile çözülür. Bu çalışma
kapsamında gerek üretim gerekse hizmet sektöründe birçok uygulama alanı olan bir
dizi seri operasyonun birden fazla işlem biriminde yapılabildiği atölye tipi çizelgeleme
problemi ele alınmıştır.
Yapay Bağışık Sistemi (YBS), canlılardaki bağışıklık sisteminin taklit edilmesi sonucu
ortaya çıkmış ve karmaşık hesaplama problemlerini çözmek için geliştirilmiş sezgisel bir
problem çözüm yaklaşımıdır. Çalışmada, YBS’nin dayandığı bağışıklık prensipleri detaylı
şekilde incelendikten sonra, atölye tipi problemlerine uygulamak için YBS algoritması
geliştirilmiştir.
Önerilen yaklaşım ile büyük boyutlu bir problem de başarıyla çözülmüştür. Aynı
problem Genetik Algoritma (GA) yaklaşımı ile de çözülmüştür ve daha sonra GA
yaklaşımı ile YBS yaklaşımı çözümleri kıyaslanmıştır. Elde edilen sonuçlar iyidir, buna
bağlı olarak yapay bağışıklık sistemlerinin endüstriyel problemlerin çözümünde
güvenilir şekilde kullanılabileceği önerilmektedir.
xii
Anahtar Kelimeler: Yapay Bağışıklık Sistemi, Klonal Seçim, Atölye Tipi Çizelgeleme
YILDIZ TEKNİK ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ
xiii
ABSTRACT
ARTIFICIAL IMMUNE SYSTEM APPROACH in SCHEDULING PROBLEMS
Ayşe Nuray CANAT
Department of Industrial Engineering
MSc. Thesis
Adviser: Prof. Dr. Hüseyin BAŞLIGİL
Scheduling is a decision making process that deals with allocation of limited resources
with the aim to optimize one or more objectives in competition with each other. In
classical scheduling theory problems are firstly modeled mathematically and then
solved by the help of exact algorithms or heuristics. In this study, job shop scheduling
problem which have many application areas in both production and service sectors is
discussed.
Artificial Immune System that occurs using biological immune system to solve complex
computation problems is a heuristic problem solving approach. In the thesis, after
studying the immune principles, that give way to AIS, AIS algorithm was coded to solve
job shop scheduling problems.
A large scale problems with the proposed approach is successfully resolved. The same
problem is solved with genetic algorithm (GA) approach and then AIS approach was
compared with GA approach. The results are enough good to state that Artifical
Immune System may be used to solve industrial problems in confidence.
Keywords: Artificial Immune System, Clonal Selection, Job Shop Scheduling
YILDIZ TECHNICAL UNIVERSITY
GRADUATE SCHOOL OF NATURAL AND APPLIED SCIENCES
xiv
BÖLÜM 1
GİRİŞ
Geçtiğimiz yüzyılın son çeyreğinde bilgisayar teknolojisinde yaşanan büyük gelişim sonucu,
optimizasyon yöntemlerinin fen, sosyal ve sağlık bilimlerinin her uygulamalarındaki kullanımı
giderek artmış ve günümüzün mühendisleri zamanlarının pek çoğunu bilgisayarlar başında,
sayısal modellemeler ve çözümler için harcamaya başlamışlardır.
Bu gelişmelerin ışığında problemlerin hızlı ve az maliyetli çözümü konusunda çeşitli
araştırmalar yapılmış ve mevcut yöntemlerin geliştirilmesi yönünde adımlar atılmıştır.
Çözüme yönelik optimizasyon yöntemlerinin geliştirilmesi klasik optimizasyon yöntemlerinin
çözemediği veya zaman aldığı düşünülerek bunlara alternatif, tamamen doğal olayların
modellemesine yönelik ortaya atılan yapay zeka kavramının ortaya çıkmasına neden
olmuştur.
Optimizasyon problemlerinin çözümüne yönelik yapay zeka optimizasyon teknikleri meta
sez-gisel araştırma teknikleri olarak da bilinmektedir. Bu algoritmalar herhangi bir çözümü
gerçekleştirmek veya hedefe varmak için çeşitli alternatif hareketlerden etkili olanlara karar
vermek amacı ile tanımlanan kriterler veya bilgisayar metotlarıdır. Kesin çözüm yöntemleri
ile çözüm sağlanabilen problem büyüklüklerinin kısıtlı olması ve ihtiyaç duyulan hesap
sürelerinin büyüklüğü araştırmacıları daha büyük problemler için en iyi çözüm olmasa da
“iyi” bir çözüme süratle ulaşan metotlar üzerinde çalışmaya yöneltmiştir. Yapay zeka
optimizasyon algorit-malarının uygulama sonuçları aynı zamanda kesin çözüm metotları için
bir alt veya üst sınır oluşturmaları nedeni ile de önemlidir. Bu tür çözüm algoritmaları kesin
çözümü garanti etmezler ancak amaca uygun bir çözümü bulmayı garanti edebilirler [1].
1
Yapay Zeka optimizasyon algoritmalarından biri olan Yapay Bağışıklık Sistemleri, 1990’ larda
Yapay Sinir Ağları (Artificial Neural Networks) ve Yapay Hayat (Artificial Life) gibi biyolojik
tabanlı bir çok hesaplama yöntemini birleştiren yeni bir sistem olarak ortaya çıkmıştır [2].
Yapay bağışıklık sistemi, insan vücudundaki doğal bağışıklık sisteminin çalışma prensiplerine
göre oluşturulmuştur. YBS, yapay sinir ağları ve genetik algoritmalarda olduğu gibi doğadan
taklit edilerek ortaya çıkarılmış genel amaçlı bir sezgisel yöntemdir [3]. Canlılardaki savunma
mekanizması özetlenip modellenerek oluşturulmuş bu optimizasyon algoritmasının,
mühendislik alanındaki bir çok kompleks problemin çözümünde nasıl performans göstereceği
incelenmiştir [4].
Yapay sinir ağları ve genetik algoritmalar kadar eski olmayan Yapay Bağışıklık Sistemi
yönteminin popülerliği gittikçe artmaktadır. Çünkü her iki yönteme göre de avantajları
olduğu yapılan uygulamalarda gözlemlenmiştir. Ancak görünen o ki; uygulama bazlı seçim
yapmak ve bunun üzerine artıları ve eksileri göz önüne almak daha sağlıklıdır. YBS, genetik
algoritmalar ile benzerlikler göstermektedir. Çözüm uzayının kodlanması, uygunluk
fonksiyonunun belirlenmesi, mutasyon vb. ortak operatörler ve süreçler her iki yöntemde de
ortaktır. Çaprazlama operatörü YBS’de kullanılmamaktadır. YBS, lokal optimumlara daha hızlı
yönelmekte ancak bir genetik algoritma kadar global optimuma yakınsamayabilmektedir.
YBS ise doğası gereği örüntü (sürekli devam ve tekrar eden şekiller) tanıma, bilgisayar
güvenliği, ağ güvenliği ve dinamik iş programlama vb. alanlarda genetik algoritma ve diğer
optimizasyon tekniklerine göre daha iyi sonuçlar vermiştir [5].
Bu çalışmada, öncelikle çizelgeleme problemleri hakkında genel bilgiler verilmiştir. Daha
sonra yapay bağışıklık sistemi, doğal bağışıklık sistemine dayandırılarak anlatılmıştır. Sonraki
aşamada, çizelgeleme problemi yapay zeka optimizasyon tekniklerinden olan yapay bağışıklık
algoritması
ile
çözülmeye
çalışılmıştır.
Çözümün
anlatımı
yapılıp,
sonuçlar
değerlendirilmiştir.
1.1
Literatür Özeti
YBS alanındaki araştırmaların ilk yıllarında (1980’ lerin ortalarından1990’ ların ortalarına
kadar) oldukça az sayıda çalışma yapılmıştır. Bağışıklık-tabanlı sistemlere özel ilk çalışma
kurultayı 1996’da gerçekleştirilmiş ve Y. Ishida bu alandaki çalışmaların ilk taramasını
2
yayınlamıştır [6]. Bu taramada bahsi geçen 33 çalışmadan sadece yaklaşık 18’ i YBS
kategorisine dâhil edilebilir.
Yaklaşık 1 yıl sonra, Dasgupta ve Attoh-Okine başka bir tarama yayınlamışlar [7] ve bu
taramada yine 18’ i YBS çalışması olarak nitelendirilebilen 30 çalışmadan bahsetmişlerdir.
2000’ li yılların başlarında, de Castro ve Von Zuben bu alanı daha detaylı bir şekilde gözden
geçiren bir teknik rapor hazırlamışlardır [8]. Raporda yer alan 93 çalışmadan 83’ ü YBS
çalışması olarak kabul edilebilir niteliktedir. Daha sonra 2003 yılında Dasgupta ve
arkadaşlarının yayınlamış oldukları teknik raporda ise bu sayı 120’ye ulaşmıştır [9]. 2000’li
yıllarda YBS’ ye gösterilen ilgideki bu artış, günümüze kadar devam etmekte ve
gerçekleştirilen çalışmalar 2002 yılından itibaren her yıl düzenlenmekte olan ICARISInternational Conference on Artificial Immune Systems konferanslarıyla ve farklı dergi ve
sempozyumlarda
yayınlanan
bildiri
&
makalelerle
araştırmacıların
paylaşımına
sunulmaktadır.
YBS alanında yapılan çalışmaları uygulama alanlarına göre kategorize etmek mümkündür. Bu
uygulama alanları; örüntü tanıma, bilgisayar güvenliği, aykırılık tespiti, optimizasyon, makine
öğrenmesi, robotik, kontrol, listeleme, hata tespiti, Antikor kütüphaneleri, birleşmeli
(associative) hafıza, ekoloji ve diğer uygulama alanları olarak sıralanabilir. YBS, son 15 seneye
kadar daha çok bilgisayar ve elektronik alanlarında kullanılmış olup, endüstri uygulamaları
daha ziyade son yıllarda artmıştır. Endüstri alanındaki YBS kullanım yerleri; çizelgeleme
problemleri, imalat, e-ticaret, karar destek sistemleri, kontrol, optimizasyon, rotalama ve
taşımacılık, endüstride sabit yük taşıma problemi, ürün iadeleri, montaj problemleri, hata
tespiti ve kurtarma gibi [10].
Çizelgeleme problemleri için birçok çalışma yapılmıştır. Engin O. Ve Döyen A., melez akış tipi
çizelgeme problemlerinde tamamlanma zamanının minimizasyonu ile ilgili bir çalışma
yapmışlar ve YBS’nin diğer test edilen yöntemlere göre daha etkili ve verimli olduğunu
bulmuşlardır [11].
2004 yılında ise Engin O., Döyen A.’nın akış tipi çizelgeleme problemlerinin yapay bağışıklık
sistemleri ile çözümünde yeni bir yaklaşım adlı çalışması bulunmaktadır. Bu çalışmada,
bağışıklık tepkisinin iki ayrı mekanizması olan klonal seçim prensibi ve benzerlik mekanizması
üzerine kurulmuş bir metod kullanılmıştır. Ayrıca yeni bir parametre optimizasyonu yaklaşımı
3
(Mseda) daha iyi parametreler ele etmek için kullanılmıştır. Deney sonuçlarında, yapay
bağışıklık sistemlerinin klasik çizelgeleme ve tavlama benzetimi algoritmalarından daha iyi
sonuçlar verdiği gösterilmiştir [12].
Massutti T. ve de Castro L. N.(2009), yaptığı çalışmada YBS, yapay sinir ağları ve gerçek
değerleri antijen ağları ile hibritlenerek kullanılmıştır. Literatürdeki TSP problemine
uygulanan bu hibrit yaklaşım iyi bilinen diğer iki algoritmayla sonuçları açısından
kıyaslanmıştır. Sonuçta, YBS bu zamana kadar ki en iyi sonuçları çıkarmıştır ve diğer
algoritmalar ile rekabet edebilecek güçte olduğunu göstermiştir[13]. Mobini M. ve ark., 2011
yılında yaptıkları kısıtlı kaynaklar altında proje çizelgeleme problemi için YBS kullanımını
incelemişlerdir. Kaynak kısıtlı proje planlama problemi (RCPSP) zamanlama ve komninatoryel
optimizasyon alanlarındaki en zorlu problemlerden biridir ve tamamlanma zamanı
minimizasyonu burada amaç olarak belirlenmiştir. Reseptör (algılayıcı) düzenleme yaklaşımı,
arama çeşitliliğini korumak için kurulmuştur. Bu nedenle, önerilen algoritma yerel arama
mekanizmalarının yanısıra arama yön çeşitliliğini arttıran mekanizmalardan faydalanır.
Hesaplamalı analiz ve literatürde bildirilen algoritmalar ile karşılaştırılma yapıldığında bu
çalışmada önerilen algoritmanın kabul edilebilir ve rekabetçi bir performans ortaya
koyduğudur [14].
Bu konuda yapılan başka bir çalışma da Chung T.P., Liago C.J.’nin yaptığı hibrit akış tipi
problemlerin çözümü için YBS’dir. 2013 yılında yapılan bu çalışmada YBS ile birlikte karınca
kümeleme algoritması kullanılmıştır. Maksimum tamamlanma süresini ya da tamamlanma
zamanını en aza indirmek amacı ile n-iş, k-aşama problemini bir melez akış dükkânında
düşünün (HFS), bu NP-zor bir sorunu immunoglobulin tabanlı yapay bağışıklık sistemiyle
(IAIS) çözmeye çalışmışlardır. Hesaplanan sonuçlar IAIS’ in hibrit akış çizelgeleme problemi
için çok rekabetçi olduğunu göstermektedir. Farklı boyut problemleri ile yapılan kapsamlı
deneyler, IAIS algoritmasının AIS algoritmasına göre daha iyi çözümler elde ettiğini
göstermiştir. Ancak IAIS in bir zayıf noktası vardır, o da sorun boyutu arttıkça hesaplama
süresinin artmasıdır [15].
Bir diğer çalışma, Balaji A.N., Porselvi S.’nin yaptığı çok hücreli esnek üretim sistemlerinde
parti yığınlarını çizelgelemede YBS ve TB kullanımı çalışmasıdır. 2014 yılında yapılan bu
çalışmada, çok hücreli esnek üretim sistemi (FMS)nde yığın çizelgeleme problemi çözülmeye
4
çalışılmıştır. Kullanılan yöntemler 80 tane test problemi üzerinde çözülmüştür. Tamamlanma
zamanı açısından AIS algoritması tarafından elde edilen çözüm kalitesi, TB algoritmasından
daha üstün bulunmuştur. Ama hesaplama noktasına bakıldığında, TB algoritmasının optimale
en yakın yığın dizisi bulması, AIS algoritmasından daha kısa zaman alır [16].
Tez çalışması kapsamında gerçekleştirilen Yapay Bağışıklık Sistemlerinin detaylı literatür
incelemesi sonuçları, EK- 1’de yer almaktadır [17].
1.2
Tezin Amacı
•Çizelgeleme problemi için Yapay Bağışıklık Sistemi yaklaşımının geliştirilmesi
•Ele alınan problemlerin etkin ve verimli bir şekilde çözülmesi
•Sonucun analizi ve aynı tip problemler üzerinde yapılan çalışmalar ile karşılaştırılması
1.3
Hipotez
Bu çalışmada çizelgeleme problemine yapay bağışıklık sistemi ile çözüm yaklaşımı uygulanmış
olup sonuçlar sergilenmiştir. Gözlenen sonuçlarda, yapay bağışıklık sistemi diğer bir sezgisel
algoritma olan genetik algoritma ile karşılaştırılmıştır. Elde edilen sonuçlar gösteriyor ki,
problemimiz için yapay bağışıklık sistemi genetik algoritmaya göre daha iyi sonuçlar elde
etmiştir. Uygulamamız, bundan sonraki çalışmalar için yapay bağışıklık sisteminin çizelgeleme
problemlerinde kullanılabileceğini başarıyla kanıtlamıştır.
5
BÖLÜM 2
SIRALAMA VE ÇİZELGELEME
2.1
Genel Bilgiler
Günümüzün rekabetçi ve katı kuralları olan iş dünyasında müşteri taleplerini zamanında ve
müşterinin istediği şekilde karşılayabilmek işletmeler için başlıca bir sorun haline gelmiştir.
Müşteri ihtiyaçlarını hem zamanında karşılayabilmek hem de müşteri tatminini maksimum
seviyede tutacak ürünleri üretebilmek konusu işletmeler için faaliyetlerini kısıtlayan, bu
faaliyetlerin çerçevesini belirleyen bir kısıt olmuştur. Dolayısıyla müşteri tatmininin en
önemli unsurlarından olan ürünü zamanında teslim etmek konusu için sıralama ve
çizelgeleme yaklaşımları işletmelerin yoğun olarak üzerinde durdukları ve inceledikleri bir
konudur [18].
Bu bölümde çizelgeleme kitaplarını temel alarak çizelgeleme hakkında genel bilgiler
verilecektir. Çizelgeleme problemleri için tek tip bir sınıflandırma yapılamayacağından çeşitli
sınıflandırma şekilleri anlatılacaktır. Problemin zorluğunun nasıl değiştiği ve zorluğu yüksek
problemlerde kullanılan yöntembilimleri özetlenecektir.
T’kindt ve Billaut [19] ve Pinedo [20], kitaplarında çizelgeleme kuramının spor, sağlık, lojistik,
bilişim gibi değişik sektörlerdeki problemlere uygulanabileceğini belirtmektedir. Pinedo [21],
çizelgelemeyi faaliyetlerin kısıtlı kaynaklara, zaman dikkate alınarak atanmasına karar verme
süreci olarak tanımlamaktadır [18].
Çizelgeleme sürecinde öncelikle elimizde hangi kaynaklardan kaçar adet bulunduğunun
belirlenmesi gerekmektedir. Her işlemin (görev) bu kaynaklardan kaçına gereksinim
duyduğu, bu işlemlerin tamamlanması için bu kaynaklarda kaç birim işlem süresinin gerektiği,
6
bu işleme en erken ne zaman başlanabileceği gibi bilgilerin bilinmesi gerekmektedir. Ayrıca
öncelik ilişkileri gibi teknolojik kısıtlar da bulunabilmektedir. Bazen işlemlerin işlem süreleri
net bir şekilde ifade edilememektedir. Bunlara ek olarak kaynakların ve işlemlerin (görevler)
içerdiği özellikler, çizelgeleme probleminin yapısını tümüyle değiştirebilmektedir [22].
Çizelgeleme, bir karar verme süreci olarak, üretim alanında olduğu gibi hizmet sektöründe de
önemli bir yere sahiptir ve birçok uygulaması bulunmaktadır. Örneğin işlemlerin makinalara
yüklenmesi (üretimde), uçakların havaalanına iniş ve kalkışları, işlemcide (CPU)
gerçekleştirilmeyi bekleyen programlar,
literatürde sıklıkla incelenen problemlerdir. Bu
problemlerde makina, havaalanı ve işlemci kısıtlı kaynakları; iniş-kalkış, işlemler ve
programlar ise faaliyetleri temsil etmektedir. Çizelgelerin zaman ekseninde temsili için Gantt
diyagramı kullanılmaktadır. Gantt diyagramı, makina bazlı ve iş bazlı olmak üzere ikiye
ayrılmaktadır [23]. Makina bazlı Gantt diyagramında işlerin işlemleri, makinalarda zaman
eksenine göre yerleştirilmektedir (Şekil 2.1). İş bazlı Gantt diyagramında ise makina yerine işe
odaklanılırken işi oluşturan işlemlerin makine rotaları ve ilgili makinada kaç birim zaman
harcadığı, ne zaman başlayıp tamamlandığı net bir şekilde incelenebilmektedir (Şekil 2.2)
[18].
Şekil 2. 1 Makina bazlı Gantt diyagramı [23]
Şekil 2. 2 İş bazlı Gantt diyagramı [23]
Literatürde çizelgeleme problemleri için çeşitli sınıflandırma tipleri vardır. Örneğin Pinedo
[20], kitabında deterministik ve stokastik makina çizelgeleme problemlerini ayırarak
incelerken Brucker ve Knust [24], Lopez ve Roubellat [25] ve Herrmann [26], çizelgeleme
7
modellerini kaynak kısıtlı proje çizelgeleme ve makina çizelgeleme olarak ikiye ayırmıştır
(Şekil 2.3). Şekil 2.3’ de sunulan sınıflandırma, Brucker ve Knust [24]; Brucker [23]; Baker ve
Trietsch [22] ve Pinedo’nun [20] kitaplarından elde edilen bilgiler ışığında oluşturulmuştur.
Kaynak kısıtlı makina çizelgeleme problemi, çizelgeleme problemlerinin en genel durumudur.
Makina, insan, para ve enerji kısıtlı kaynak olarak düşünülürken, proje süresi ve maliyetler
enküçüklenmeye çalışılmaktadır. Bazı faaliyetler arasında, dikkate alınması gereken öncelik
ilişkileri bulunmaktadır. Kaynak kısıtlı proje çizelgelemede i etkinliğine (i=1, ..., n), k kaynağı
(k=1, ..., r) ayrılmaktadır. Her bir kaynağın, Rk birim kapasitesi olduğu düşünülmektedir.
Faaliyet i, ilgili kaynakta pi birim işlem süresine gereksinim duymaktadır. Bazı faaliyetler
arasında uyulması gereken öncelik ilişkileri bulunmaktadır. Genelde ana amaç, her bir
kaynağın kapasitesi aşılmadan ve öncelik ilişkilerine uyularak yayılma süresinin en
küçüklenmesidir [24].
Şekil 2. 3 Çizelgeleme problemlerinin sınıflandırılması
Makina çizelgeleme ise kaynak kısıtlı proje çizelgelemenin özel durumudur. Makine
kapasiteleri (Rk’nın değerleri) tek makinalı problemlerde 1’e; paralel özdeş makinalarda
makina sayısına eşit kabul edilmektedir (Ayrıca i. faaliyetin k. kaynakta gereksinim duyduğu
kapasite (rik’lar) de 1’e eşit kabul edilmektedir). En genel kaynak kısıtlı çizelgeleme
problemini çözen algoritmaların, makina çizelgeleme problemlerini de çözmesi beklenebilir.
Makina çizelgeleme problemleri ise tek aşamalı ve çok aşamalı olmak üzere ikiye
ayrılmaktadır [22]. Tek aşamalı makina çizelgeleme problemlerinde her bir işin tek bir
8
işlemden oluştuğu kabul edilmektedir. Çok aşamalı makina çizelgeleme problemlerinde ise
her bir işin çok sayıda işlemden oluştuğu kabul edilirken, bir işlemi gerçekleştirecek en az bir
makinadan oluşan makine istasyonlarının bulunduğu düşünülmektedir. Her bir işin tüm
işlemleri tamamlanıncaya dek, ilgili işin işlemlerinin çeşitli makina kümelerinden geçtiği kabul
edilmektedir [18].
Tek aşamalı makina çizelgeleme problemleri de tek makinalı ve paralel makinalı olmak üzere
ikiye ayrılmaktadır. Tek makinalı problemler, çizelgeleme problemlerinin en basit halidir.
Bilgisayar kapasitelerinin sınırlı olması ve problemlerin basitliği nedeniyle 21. yüzyıl öncesi
literatürde en çok araştırılan çizelgeleme problemleri bu sınıfa aittir. Tek aşamalı paralel
makina çizelgelemede, tek işlemden oluşan işlerin gerçekleştirilebileceği özdeş veya özdeş
olmayan m makina bulunmaktadır. Paralel makina probleminin tipine bağlı olarak bir iş,
makinaların bazılarında farklı veya aynı işlem sürelerinde gerçekleştirilebilirken bazı
makinalar bazı işlemleri gerçekleştirememektedir. Paralel makinalı problemler de üçe
ayrılmaktadır. Özdeş hızlı paralel makinalar, farklı hızlı paralel makinalar ve ilişkisiz paralel
makinalar [23, 20]. Özdeş hızlı paralel makinalarda bir işin işlem süresi tüm makinalarda
aynıdır. Farklı hızlı paralel makinalarda makina hızları, işin özelliklerine bakılmaksızın farklılık
göstermektedir. Örneğin a işinin 1 numaralı makinada 4 birim; 2 numaralı makinada ise 8
birim işlem süresinde gerçekleştirildiği kabul edilsin. Eğer b işi 1 numaralı makinada 6 birim
sürede gerçekleştiriliyorsa 2 numaralı makinada 12 birim işlem süresine gereksinim
duyacaktır. İlişkisiz paralel makinada işlem süreleri, hem işin özelliklerine hem de makina
özelliklerine bağlıdır. İlişkisiz paralel makina, farklı hızlı paralel makinanın; farklı hızlı paralel
makina da özdeş paralel makinanın genel durumudur [20].
Çok aşamalı makina çizelgeleme problemleri ise günümüzde sıklıkla araştırmalara konu
olmaktadır. Bu tip problemler, işi oluşturan işlemlerin izlediği makina rotalarına göre 3’e
ayrılmaktadır: Akış tipi, sipariş tipi ve serbest dolaşımlı [20, 22, 23]. Akış tipi atölyelerde, n iş
m tezgahta gerçekleştirilirken tüm işler aynı tezgah rotasını izlemektedir (Şekil 2.4). Sipariş
tipi atölyelerde, işler farklı tezgah rotası izlemektedir (Şekil 2.5). Akış tipi atölye problemleri,
sipariş tipi atölye problemlerinin özel durumudur. Sipariş tipi atölyede rotalamada kısıtlama
yok iken akış tipi atölyede rota, tüm işler için sabittir. Serbest dolaşımlı atölyede ise işin
işlemleri arasında öncelik ilişkisi yoktur (Şekil 2.6). Özellikle arabanın parçalarının değişimi ve
siparişleri oluşturan ürünlerin üretilmesi serbest dolaşımlı atölyeye verilebilecek örneklerdir.
9
Akış ve sipariş tipi atölyelerde bir işlemi yapabilecek birden çok makina varsa esneklik
sözkonusudur [18].
Şekil 2.4 Akış tipi çizelge örneği
Şekil 2.5 Sipariş tipi çizelge örneği
Şekil 2.6 Serbest dolaşımlı çizelge örneği
Yukarıda anlatılan sınıflandırmanın dışında, işlerin geliş şekline göre statik ve dinamik makina
çizelgeleme problemleri ayrımı da yapılabilmektedir [27, 19]. Eğer çizelgelenecek iş kümesi
zamanla değişmiyorsa problem statik; aksi durumda dinamik olarak adlandırılmaktadır. Her
ne kadar statik problemler, araştırmacılar tarafından sıklıkla incelense de, dinamik
problemlerin gerçek uygulamaları yansıtabilmesi nedeniyle önemi tartışılmazdır [18].
Ayrıca veriler tam doğrulukla biliniyorsa deterministik makina çizelgeleme problemleri; eğer
veriler (işlem süreleri, serbest kalma zamanları gibi) tam doğrulukla bilinemiyor ancak olasılık
dağılımıyla
ifade
edilebiliyorsa
stokastik
makine
çizelgeleme
problemleri
olarak
adlandırılmaktadır [20,22]. Stokastik makina çizelgeleme problemlerinin zorluğu nedeniyle
deterministik makina çizelgeleme problemlerini içeren çalışma sayısı literatürde fazladır [18].
10
2.2
Performans Ölçütleri
Bir çizelgeleme problemindeki temel amaç fonksiyonları; akış süresi (turnaround),
zamanındalık (timeliness), çıktı (throughput) şeklinde özetlenebilir. Bu fonksiyonla ise
aşağıda belirtilen unsurlar gözetilerek optimize edilmeye çalışılır:
Çizelgeleme literatüründe problemlerin kısa gösterimleri ve sınıflandırılması için α/β/γ
temsili kullanılmaktadır [28]. α makina ortamını; β iş karakteristiklerini; γ ise
enküçüklenmeye çalışılacak amaç fonksiyonunu anlatmaktadır. α, β ve γ’nın alabileceği
değerler, Çizelge 2.1’ de görülmektedir. Örneğin FF| rj| ΣwjTj gösteriminde, işlerin serbest
kalma zamanlarının dikkate alındığı (rj) esnek akış tipi üretim ortamında (FF) işlerin ağırlıklı
teslim gecikmesi süreleri toplamının enküçüklenmeye (ΣwjTj ) çalışılacağı anlatılmaktadır
[18].
Çizelge 2.1 Literatürde problem anlatımı için kullanılan Graham gösterimi [29]
α
Açıklaması
β
Açıklaması
γ
Açıklaması
1
Tek makina
prec
Öncelikle ilişkili
Cmax
Yayılma süresi
Pm
m adet özdeş paralel makina
d
Teslim tarihi
Lmax
Maksimum gecikme süresi
Qm
m adet farklı hızlı paralel makina
r
Serbest kalma zamanlı
Tmax
Maksimum teslim gecikmesi süresi
Rm
m adet ilişkisiz paralel makina
brkdwn
Makine arızası
Σ (wj)Cj
Ağırlıklı tamamlanma zamanı toplamı
Fm
m makinalı akış tipi üretim
bloc
Bloklama etkisi
Σ (wj)Tj
Ağırlıklı teslim gecikmesi süresi toplamı
FF
Esnek akış tipi üretim
nwt
Beklememe kısıtlı
Σ (wj)Uj
Ağırlıklı geciken iş sayısı toplamı
Jm
m makinalı sipariş tipi üretim
prmpt
İş kesmeli
Σsij
Toplam hazırlık süresi
FJ
Esnek sipariş tipi üretim
recrc
Yeniden girişli
n
maliyeti
Qm
m makinalı serbest dolaşımlı atölye
Sjk
Hazırlık süreli
F mls
gruplama
11
Literatürde problemler, enküçüklenmeye çalışılan performans ölçütü sayısına bağlı olarak tek
ölçütlü ve çok ölçütlü olmak üzere ikiye ayrılmaktadır. Tek ölçütlü makine çizelgeleme
problemlerinde salt bir performans ölçütü enküçüklenirken, çok ölçütlü makina çizelgeleme
problemlerinde birden çok performans ölçütü eşzamanlı olarak enküçüklenmeye
çalışılmaktadır [30,20]. Çok ölçütlü makina çizelgeleme problemlerinde, performans
ölçütlerinin ağırlıklı toplamı enküçüklenirken performans ölçütlerinin ağırlık katsayılarını
belirlemek, en zor aşamalardan biridir. Bu nedenle çok ölçütlü çizelgeleme problemlerinde
pareto optimal çözümlere ulaşılması da yeğlenebilmektedir. Pareto optimal çözümlerde
performans ölçütlerinden birinin sonucu kötüleşmedikçe diğer performans ölçütleri
geliştirilememektedir [20]. Elde edilen pareto optimal çözümlerde bir performans ölçütü
değerinde iyileşmenin diğer performans ölçütü değerlerini nasıl etkilediği görülebildiğinden,
karar vericiye durumu daha iyi yorumlama olanağı sunulmaktadır [18].
Çizelgeleme problemlerinde atölye performansını sınamak için kullanılabilecek çok sayıda
performans ölçütü bulunmaktadır. Etkinliğin eniyilenmesinde seçilebilecek kimi ölçütler
aşağıda sıralanmıştır [31]:
•Siparişin/işin tamamlanma zamanının enküçüklenmesi
•Ortalama tamamlanma zamanının enküçüklenmesi
•Ortalama ağırlıklı tamamlanma zamanının enküçüklenmesi
•Yayılma süresinin enküçüklenmesi
•Ortalama bekleme süresinin enküçüklenmesi
•Ortalama gecikme veya teslim gecikmesi süresinin enküçüklenmesi
•Ortalama ağırlıklı gecikme veya teslim gecikmesi süresinin enküçüklenmesi
•En büyük gecikme veya teslim gecikmesi süresinin enküçüklenmesi
•Ara stok düzeyinin enküçüklenmesi
•Erken teslim maliyetinin enküçüklenmesi
•Geciken iş sayısının enküçüklenmesi
•Ağırlıklı geciken iş sayısı toplamının enküçüklenmesi
12
•Tezgâh ve işgücü kullanım oranlarının enbüyüklenmesi
•Kritik makina yükünün enküçüklenmesi
•Toplam makina yükünün enküçüklenmesi
•Siparişin/işin akış süresinin enküçüklenmesi
•Ortalama akış süresinin enküçüklenmesi
Literatürde çizelgeleme problemlerini çözmek için çeşitli yöntemler kullanılmaktadır. Bu
yöntemler adım adım yönergelerini uygulayarak sonuca ulaşmaktadır. Toplama, çıkarma,
çarpma, karşılaştırma gibi gerçekleştirilen işlemlerle sonucun elde edilmesi için belirli bir
işlem süresine gereksinim duyulmaktadır. Eğer bu işlemlerle sonucun elde edilme süresi,
girdi sayısının polinomiyal fonksiyonuyla ifade edilebiliyorsa bu algoritmalar polinomiyal
zamanlı
olarak
adlandırılmaktadır.
Polinomiyal
zamanlı
algoritmalarla
çözülebilen
problemler, P sınıfına ait problemler olarak adlandırılmaktadır [32, 33, 22]. Diğer bir problem
tipi de NP-zor sınıfına aittir. NP-zor sınıfına ait problemlerin, polinomiyal zamanlı
algoritmalarla çözülemediğine inanılmaktadır.
Literatürde çizelgeleme problemlerinin çözümü için Şekil 2.7’ de gösterilen 3 ana
yöntembilimi kullanılmaktadır [33, 34, 35]. Dal-Sınır, dinamik programlama algoritmaları ve
karma tamsayılı programlama, tam çözüm algoritmalarına verilebilecek örneklerdir. Tam
çözüm algoritmaları, en iyi çözüme ulaşmalarına rağmen CPU işlem süreleri, problem
boyutuna ve özelliklerine bağlı olarak hızla artabilmektedir. Bu nedenle NP-zor problemlerde
yakınsama algoritmaları ve sezgisel algoritmalar yeğlenmektedir. Yakınsama algoritmaları,
polinomiyal zamanda en iyi çözüme belirli yakınlıkta çözümün elde edilmesini garanti altına
almaktadır [36]. Ancak en iyi çözüme olan yakınlık garantisi de kötü olabilmektedir. Her
zaman yakınsama algoritmaları elde edilemeyeceği için çizelgeleme literatüründe sıklıkla
sezgisel algoritmaların kullanıldığı görülmektedir. Bu çalışmada da problemin zorluğu
nedeniyle sezgisel algoritmalar kullanılmıştır. Pinedo [21], sezgisel algoritmaları yapıcı ve
yinelemeli olarak ikiye ayırmaktadır. Yapıcı algoritmalara verilebilecek en önemli örnek, işi
başlatma kurallarıdır. İşi başlatma kurallarıyla çizelgeye her adımda bir işlem eklenmektedir.
Yinelemeli sezgiseller ise, oluşturulan ilk çözümü her adımda geliştirmektedir. TB (Tavlama
Benzetimi), TA (Tabu Araştırması), GA (Genetik Algoritma), KKO (Karınca Kolonisi
13
Optimizasyonu) ve PSO (Parçacık Sürü Optimizasyonu) gibi metasezgisel yöntemler bu sınıfa
aittir. Bu tip algoritmalarda en önemli adımlar, komşu çözümlerin nasıl oluşturulacağı ve
çözümlerin nasıl temsil edileceğidir. İyi bir komşu çözüm belirleme yöntemi, algoritmanın
performansını doğrudan etkileyebileceğinden çok önemlidir [18].
Şekil 2.7 Çizelgeleme problemlerinin çözümünde kullanılan yöntembilimleri [23]
İterasyonlar sırasında algoritmalar, çizelge oluştururken farklı yöntemler kullanmaktadır.
Çizelge oluşturma yöntemlerinin, en iyi çözümün elde edilmesinde önemli etkisi
bulunmaktadır. Pinedo [21] ve Billaut ve diğ. [37], çizelge sınıflarını, gecikme olmayan, aktif
ve yarı-aktif olmak üzere üçe ayırmaktadır (Şekil 2.8). Makinalarda boş bir an varsa ve o anda
gerçekleştirilmeyi bekleyen işlem yoksa çizelgenin, gecikme olmayan çizelge sınıfına dahil
olduğu kabul edilmektedir.
Şekil 2.8 İş-kesme içermeyen sipariş tipi çizelgeleme problemlerinde çizelge sınıflarının Venn
diyagramında gösterimi [21]
Aktif ve yarı-aktif çizelgeleri anlatabilmek için yerel sola kaydırma ve genel sola kaydırma
tanımlarına gereksinim vardır. Yerel sola kaydırmada bir işlem, çizelgedeki varolan işlem
14
sıralamasını değiştirmeden sola kaydırılabilmektedir. Genel sola kaydırmada, varolan
çizelgedeki işlem sırası değişirken, diğer işlemlerin sağa kaymasına (gecikmesine) neden
olmaması gerekmektedir. Yarı-aktif çizelgelerde yerel sola kaydırma yapılamamaktadır. Aktif
çizelgelerde ise gerek yerel, gerekse genel sola kaydırmalar yapılamamaktadır. Şekil 2.9’ da
verilen örnekte, ilk durumda 5 numaralı iş ile 3 numaralı iş arasındaki boşluk, 5 numaralı işe
uygulanan yerel sola kaydırma ile ortadan kaldırılarak ikinci durum oluşturulmuş ve yarı-aktif
çizelge elde edilmiştir. İkinci durumda genel sola kaydırma uygulanarak (5 numaralı işleme 1.
makinada; 4 numaralı işleme 2. makinada) aktif çizelge elde edilmiştir (4 ve 5 numaralı işler
için öncelik ilişkisi yoktur)[18].
Şekil 2.9 Yarı-aktif ve aktif çizelge örnekleri [18]
En iyi çözümlerin aktif çizelge sınıfında yer aldığı bilinmektedir. Bu nedenle birçok sipariş tipi
çizelgeleme probleminde aktif çizelge üreten algoritmalar kullanılmaktadır. Giffler ve
Thompson [38] algoritması da aktif çizelge üreten önemli algoritmalardandır.
2.3
Akış Tipi İş Çizelgeleme Problemleri Çözümündeki Sezgisel Yöntemler
Akış tipi iş çizelgeleme problemleri ile ilgili ilk çalışmayı, Johnson yapmış ve iki makine n-iş
problemleri için optimum çözüm veren basit bir algoritma geliştirmiştir. Daha sonra yapılan
çalışmalarda m-makine sayısı (m>2) için araştırmalar yapılmıştır. Makine sayısı-m, (m>2)
problemleri, NP kapsamına girdiğinden, bu problemler için çeşitli sezgisel yöntemler
geliştirilmiştir [18]. Bunlar
Palmer’in Eğim Dizisi Yöntemi (1965) : Bu yöntemde her ise bir dizin değeri tanımlanmakta,
bu dizin değerine göre işler sıralanmaktadır. İşlem süreleri ilk makinelerde kısa olanlar öne,
uzun olanlar ise sona gelecek şekilde eğim dizisi tamamlanmaktadır [39].
15
Campbell, Dudek ve Smith (CDS) Algoritması (1970) : Johnson algoritması kurallarına dayanır,
n is, m makine problemleri; önce (m-1) adet n iş iki makine problemlerine dönüştürülmekte,
daha sonra Johnson algoritması ile problemler teker teker çözülerek, en iyi sonucu veren
(Cmax) iş sırası uygun çözüm olarak kabul edilmektedir [40].
Gupta Yöntemi (1971): Gupta, Palmer’e benzer bir eğim dizisi oluşturmuştur, Palmer’den
farklı bir hesaplama ile dizinin değeri bulunmaktadır [41].
Akış Tipi İş Çizelgeleme Problemleri Çözümündeki Sezgisel Yöntemler
Dannenbring Yöntemi (1972): Dannenbring, Palmer ve Campell, Dudek, Smith’in
geliştirdikleri algoritmaların avantajlarını birleştirerek CDS olarak bilinen yeni bir sezgisel
yöntem geliştirmişlerdir [42].
Nawaz, Enscore ve Ham (NEH) Yöntemi (1983): İşleri, toplam işlem zamanlarına dayalı olarak
sıralayan bir algoritmadır. İşler tezgahlardaki toplam işlem zamanlarına göre büyükten
küçüğe doğru sıralanarak çözüme başlanmaktadır [43].
Hundal ve Rajgopal Yöntemi (1998): CDS Algoritmasının temel mantığı ile Palmer’in sezgisel
yönteminin basit kurallarının iyileştirilmesi sonucu ortaya çıkmış bir yöntemdir [44].
Widmer ve Hertz Yöntemi (1989): Widmer ve Hertz, “SPRINT” olarak adlandırılan iki aşamalı
bir sezgisel yöntem geliştirmişlerdir. İlk aşamada, gezgin satıcı problemindeki (TSP) gibi
analoji ile başlangıç çözümü belirlenmekte, ikinci aşamada ise bu çözüm “Tabu araştırmaları”
tekniği ile iyileştirilmektedir [45].
Ho ve Chang (HC) Yöntemi (1991): Bu yöntemde daha önce sezgisel metotlarla belirlenmiş
işlerden, birbirini takip eden işler arasındaki boşlukların minimize edilmesine çalışılmaktadır
[46].
16
BÖLÜM 3
DOĞAL BAĞIŞIKLIK SİSTEMİ
3.1
Giriş
Bağışıklık sistemi, insan vücuduna dış ortamdan gelen mikroorganizmaların vücuda zarar
vermesini engellemek için gerekli işlemleri gerçekleştirerek vücudun savunma mekanizması
olarak görev yapar. Gerçekleştirilen bu işlemlerin hepsine birden “bağışıklık cevabı‟ adı
verilmektedir. Bağışıklık cevabının sonunda vücut mikroorganizmayı yenmeyi başardıysa bu
mikroorganizmaya duyarlı hücreler hafıza hücreleri olarak saklanır ve ileride aynı ya da
benzer mikroorganizmalar tekrar vücuda girmek istediğinde onlara karşı daha hızlı ve güçlü
bir bağışıklık cevabının oluşmasında kullanılmaktadır. Vücudun bir mikroorganizmaya karşı
“bağışıklık kazanması”, bu hafıza hücrelerinin oluşumunu ifade etmektedir [47].
3.2
Bağışıklık Sistemi Organları
Lenfoid dokulu organlar bağışıklık sisteminin organlarıdır. Bu organlar, birbirleriyle sürekli
ilişki halinde olan birincil ve ikincil lenfoid organlar olarak iki grup halinde bulunmaktadır.
Birincil lenfoid organlarda lenfositlerin üretimi yapılırken ikincil organlarda ise lenfositler
antijenlerle ilk defa yüzleşmektedir.
17
Şekil 3.1. Bağışıklık sistemi organları
Birincil lenfoid organlar ya da merkezi (santral) veya primer lenfoid organlar, bağışıklık
sisteminde lenfositlerin üretim ve olgunlaştırma işlerinin yapıldığı vücut organlarıdır. Bunlar;
kemik iliği, timüs bezi ve fabriküs kesesidir:
Kemik İliği: Bağışıklık sisteminin tüm hücrelerinin kökeni olan kök hücrelerin
bulunduğu bir merkezdir. Bağışıklık sisteminde en önemli rolü oynayan lenfositlerin
öncüleri burada yapılmakta ve olgunlaştırılmak üzere diğer lenfoid organlara
gitmektedir.
Timüs: Göğsün üst bölümünde, tiroid bezinin altında yer alan ve olgunlaşmamış
lenfositlerin kemik iliğinden çıkıp, olgunlaşma sürecine tabi tutuldukları vücut
organıdır. Olgun lenfositler kan dolaşımıyla ikincil lenfoid organlara gitmektedir.
Fabriküs Kesesi: Memeliler haricinde diğer hayvanlarda ve vücudun kalın bağırsağın
anüs kısmında bulunan bir organdır. Bu organda da kemik iliğinden gelen öncü
lenfositler olgunlaştırılmakta ve olgun B lenfosit halinde kana verilmektedir.
Memelilerde B-lenfosit olgunlaştırılması kemik iliğinde yapılmaktadır.
İkincil lenfoid organlar ya da yüzeysel (periferik) veya sekonder lenfoid organlar, bağışıklık
sisteminde birincil lenfoid organlarda üretilen ve olgunlaştırılan lenfositlerin kan dolaşımıyla
gelip yerleştiği vücut organlarıdır. Antijen ile karşılaşma ve bağışıklık yanıtı ikincil lenfoid
organlarda gerçekleşmektedir. Bunlar; lenf düğümleri, dalak ve mukozal lenfoid organlardır:
18
Lenf Düğümleri: Tüm vücuda yayılmış, B ve T hücrelerinin bulunduğu merkezlerdir.
Vücutta koltuk altı, kasık, çene altı, boyun, dirsek ve göğüs bölgelerinde bol
bulunmaktadır.
Lenf Bezleri: Geniz eti olarak da bilinen, yutağın üst kısmında, burun boşluğunun arka
tarafında bulunan lenfoid doku parçalarıdır. Bakteri ve virüs gibi enfektöz ajanları ve
onların ürettiği antikorları yakalamaktadır.
Bademcikler: Boğazda, lenfositlerin toplandığı ve dışarıya açılan bir açıklık olan ağızda
ilk engeli oluşturan küçük yapılardır. Lenf sıvısı, bademciklerin içerisinde bulunan lenf
damarlarından boyun ve çene altı düğümlerine doğru akmaktadır. Bu esnada lenf
damarlarının duvarlarından lenfositler salgılanmaktadır. Vücuda girebilen mikroplar,
buradan salgılanan lenfositler tarafından temizlenmektedir.
Karaciğer: Özellikle fetüste (ana rahmindeki canlı) olmak üzere, immünolojik etkin
hücreleri içermektedir; T-hücreleri ilk olarak fetüs karaciğeri tarafından üretilmektedir.
Dalak: Karın boşluğunun sol üst tarafında bulunan ve eski kırmızı kan hücrelerinin
yıkımından sorumlu bir organdır. Enfeksiyonlarla savaşmada yardımcı olmaktadır.
Peyer Plakları: İnce bağırsağın ileum bölgesinde bulunan lenfoid dokuların yoğunlaştığı
bölgelerdir. Bağırsaktaki patojenlerin kontrol altında tutulmalarını sağlamaktadır.
Lenf: Bağışıklık sisteminin hücre ve proteinlerini vücudun bir yerinden diğerine taşıyan,
"akkan" olarak da bilinen bir çeşit dolaşım sistemi sıvısıdır.
3.3
Bağışıklıkta Rol Alan Temel Birimler
Bağışıklık sistemindeki hücreler temel olarak üç gruba ayrılır:
Şekil 3.2 Bağışıklık sistemindeki hücreler ve salgılar [4]
19
3.3.1
Lenfositler
Lenfositler bağışıklık sistemindeki asıl sorumluluğu üstlenen küçük lökositlerdir. B lenfositler
(B hücreleri) ve T lenfositler (T hücreleri) olmak üzere başlıca iki çeşidi vardır:
B Hücreleri ve Antikorlar: B hücrelerinin asıl görevi, dışarıdan yabancı bir mikrop, virüs,
tümör veya bakteri vücuda girdiğinde, bunlara karşı antikorları üretmek ve salmaktır. Her B
hücresi spesifik bir antikor salmak için programlanmıştır. Antikorlar başka özel proteinleri
tanıyabilen ve onlara yapışabilen özel proteinlerdir. Antikorların üretimi ve yapışması,
vücuda giren antijenleri yok etmek için vücuttaki diğer hücreleri uyarma yöntemidir.
Antikorlar bağışıklık sisteminde yabancı molekülleri tanımada rol oynayan en önemli
araçlardır.
Y
biçimindeki
antikorların
kısa
kollarının
uç
kısmında
antijenlere
bağlanabilmelerini sağlayan özel bölgeler bulunur (Şekil 3.3). Herhangi bir antijene bağlanmış
olan antikorlar, ya onların hareketine engel olur ya da bağışıklık sisteminde rol alan başka
proteinlerin, hormonların ve makrofajların devreye girmesi için işaret vermektedir. Bu
antikorlar kişiyi ikinci kez aynı mikrop ile hasta olmaktan korumaktadır.
"Immünoglobülinler" de denilen antikorların beş çeşidi bulunmaktadır. Ayrıca karaciğerde
yapılarak kana geçen bazı özel proteinlerin de, antikorların işlevlerini tamamlayıcı farklı
rollere sahiptir.
B lenfositlerinin antikor oluşturmak dışında iki önemli görevi daha vardır.
Bunlardan birisi T lenfositlerine antijen sunma görevi; diğeri de saldıkları kimyasal
maddelerle (sitokinler, lenfokinler) başka immünolojik hücreleri etkilemektir.
20
Şekil 3.3 Antikorun yapısı [48]
T Hücreleri ve Lenfokinler: Kemik iliğinde üretilen hücrelerin timüse gelerek orada
olgunlaşmasından sonra oluştukları için T hücresi olarak adlandırılmışlardır. Bu hücrelerin
fonksiyonu, diğer hücrelerin hareketlerini düzenlemek ve hastalıklı hücrelere doğrudan
saldırmaktır. Yardımcı T hücreleri, öldürücü T hücreleri ve sindirici T hücreleri olmak üzere üç
alt gruba ayrılmaktadır.
Yardımcı T hücreleri, B hücreleri, diğer T hücreleri, makrofajlar ve doğal öldürücü hücrelerin
aktive olmasını sağlamaktadır.
Öldürücü T hücreleri, virüsleri, mikrobik saldırganları veya kanserli hücreleri etkisiz hale
getirme kabiliyetine sahiptir. Aktive edilince, antijeni sarmalar ve zararlı kimyasallar salgılar,
yüzey zarlarını(membran) delmek suretiyle onları yok etmektedir.
Sindirici T hücreleri bağışıklık tepkisinin kontrol altında tutulmasında çok önemli bir role
sahiptir. Diğer bağışıklık hücrelerinin aktivitelerini engellemektedir. Bu hücreler olmazsa,
bağışıklık sistemi kontrolünü kaybederek alerjik reaksiyonlara ve otoimmün hastalıklara
neden olabilmektedir.
Doğal Öldürücü Hücreler: Doğal Öldürücü Hücreler de kemik iliğinde yapılmaktadır Bu
hücreler kan kemik iliği ve dalakta bulunmaktadır. Bunlar büyük görünümlü lenfositlerdir.
NK(Natural Killer) hücreleri olarak da adlandırılmaktadır. Ölümcül lenfositlerin diğer bir
türüdür. Öldürücü T hücreleri gibi, güçlü kimyasal maddeler salgılayabilmektedirler. Öldürücü
21
T hücrelerinin tersine, aktive olmadan önce spesifik bir antijeni tanımaya ihtiyaç
duymamaktadırlar. En önemli görevleri, tümör hücrelerini ve virüs taşıyan hücreleri
öldürmektir. Virüs taşıyan hücreleri öldürdükleri halde normal hücrelere zarar vermezler.
3.3.2
Fagositler, Gronülositler ve Akrabaları
Fagositler (hücre yiyiciler), mikroorganizmaları ve antijenik partikülleri yeme ve sindirme
kabiliyetine sahip ak kan hücreleridir. Bazı fagositler, lenfositlere antijenleri sunabilme
kabiliyetine de sahiptir. Bunlara Antijen Sunucu Hücreler (Antigen Presenting Cells (APC)) adı
verilmektedir.
Önemli fagositler makrofaj ve monositlerdir. Kemik iliğinde yapılıp kan dolaşımına geçen
monositler 12 saat içinde dokulara girerler ve makrofajlara dönüşürler. Monosit ve makrofaj
gibi büyük lökositler bağışıklık sistemimizin en önemli hücreleridir. Her dokunun kendine
özgü makrofajları vardır. Örneğin; akciğerlerdeki makrofajlar duman ve toz gibi yabancı
parçacıkları, bakterileri ve virüsleri temizlerler. Makrofajlar, büyük boyutlu hücrelerdir. En
önemli becerisi sindirme ve hazmetme yani fagositoz yapabilmesidir. Fagositoz, bağışıklığın
en önemli öğelerinden biridir. Çünkü enfeksiyona karşı çabuk ve çoğunlukla da kesin bir
koruma sağlar. Sindirilip hazmedilen hücreler, T lenfositlerine tanınmak üzere sunulur. Bu
yüzden bağışıklık tepkisinin oluşumunda önemli bir rol oynarlar. Makrofajların önemli bir
görevi de; ölmüş nötrofilleri temizlemektir.
Akyuvarlarların % 50-60'ı granülositlerdir. Bunlar da, nötrofiller, eozinofiller ve bazofiller
olarak üç sınıfa ayrılırlar.
Kemik iliğimiz her gün trilyonlarca nötrofil üreterek kan dolaşımına bırakır ama yaşam
süreleri kısadır ki bu genelde bir günden azdır. Elimize kıymık battığında ya da elimiz
kesildiğinde nötrofiller hızla bu bölgeye göç ederler ve salgıladıkları enzimler, deterjan ve
çamaşır suyu etkilerine benzer hidrojen peroksit veya diğer kimyasal maddelerle,
karşılaştıkları bakterileri veya yabancı molekülleri öldürürler.
Eozinofiller, deride ve akciğerde bulunan parazitlere odaklanır.
Bazofiller, histamin denilen özel proteinler taşıdıklarından enflamasyona (iltihap) sebep
olmalarından
ötürü
önemlidirler.
Bu
hücreler
alerjik
sorumludurlar. Şekil 3.4’te en önemli fagositler görülmektedir.
22
hastalıkların
gelişmesinden
Şekil 3.4 Fagositik hücreler [48]
3.3.3
Kompleman Sistem
Kompleman sistemi, antikorların fonksiyonlarını tamamlamak üzere sürekli dolaşım halindeki
plazma proteinlerinin bir kümesinden oluşan bir kompleks oluşturur.
Kompleman saldırgan bir organizma tespit ettiği zaman, bileşenlerinden her biri bu
organizmaya karşı zincirleme bir tepkime (kompleman kaskad) gerçekleştirir. Bunun
sonucunda saldırganın yüzeyine yapışan ve onun koruyucu zarına zarar veren ve fagositlerin
işlerini kolaylaştıran bir protein kompleksi meydana getirir. Bu kompleks vücutta pasif olarak
dolaşan, yaklaşık 25 proteinden oluşur. Şekil 3.5’te kompleman tepkimenin meydana gelişi
görülmektedir.
Şekil 3.5 Kompleman Zincir Tepkimesi (Kompleman Kaskad) [47]
23
3.4
Bağışıklık Sisteminin Çalışması
Vücuda herhangi bir antijen girdiğinde, bu antijene karşı çok çeşitli hücre ve moleküller bir
arada senkronize bir biçimde bağışıklık tepkisi oluşturur ve vücudu mikroplara, bakterilere
veya diğer yabancı maddelere karşı korur. Şekil 3.6’da vücut savunmasının temel bağışıklık
mekanizmasını gösterilmektedir:
Adım-1: Makrofajlar gibi özel antijen sunucu hücreler (APCs), vücudu sürekli dolaşır. Bir
antijenle karşılaşması durumunda onu yutar, sindirir ve antijeni peptidlerine ayırır.
Adım-2: Bu peptidler özel bir protein olan MHC molekülleri ile birleştirilir ve hücre yüzeyinde
sunulur. T lenfositlerinin her biri farklı peptid-MHC kombinasyonunu tanıyabilme kabiliyetine
sahip reseptör moleküllere sahiptir.
Adım-3: Antijeni reseptör moleküller sayesinde tanıyan T hücreleri aktive olarak lenfokinleri
veya kimyasal sinyalleri salgılar ve bağışıklık sisteminin diğer elemanlarını harekete geçirir.
Adım-4: B lenfositleri yüzeylerinde, bu sinyallere cevap verecek reseptör moleküllere
sahiptir. B hücreleri T hücrelerinin aksine antijen parçalarını MHC kombinasyonu olmaksızın
tanıyabilir. B hücresi bu sinyalleri algılayarak pasif halden aktif hale gelir.
Adım-5: B hücreleri aktive olduğu zaman, bölünmeye ve farklılaşarak antikor proteinleri
salgılayabilen plazma hücrelerine dönüşmeye başlar. Etkin B hücresi böylece bölünmeye
başladığında, ürünleri (plazma hücreleri), antijenleri tanıyan antikorların milyonlarca
kopyalarını salgılar.
Adım-6: Bu antikorlar kan plazmasında ve lenfte dolaşır, antijen sunan patojenleri bağlar ve
onları kompleman sisteminin ya da fagositlerin yıkımı ve kaldırması için işaretler.
Adım-7: Antikorlar buldukları antijenlere yapışırlar ve onların yok edilmesini sağlarlar. Bazı T
ve B hücreleri hafıza hücrelerine dönüşerek vücutta dolaşmaya devam ederler ve aynı
antijenle bir daha karşılaşıldığında daha hızlı bağışıklık tepkisi verilmesini sağlarlar.
B hücrelerindeki antikorların genleri çok hızlı mutasyona ve denetime tabi tutuldukları için,
antikor reaksiyonu her bağışıklık tepkisinde çok hızlı bir şekilde gelişir. Bu olgu benzerlik
olgunlaştırması(affinity maturation) olarak adlandırılır.
24
Şekil 3.6 Bağışıklık mekanizmasının işleyişi [4]
3.4.1
Kendinden ve Kendinden Olmayan Ayrımı
Bağışıklık sistemini temel çalışma mekanizması vücudun kendine ait olan (self) ve kendinden
olmayan (nonself) molekülleri tanımlayıp birbirinden ayırt edebilmesine dayanır. Vücut
herhangi bir maddenin kendinden olmadığını algıladığı anda reaksiyona geçerek bağışıklık
tepkisi vermektedir. Eğer vücut kendi hücreleri ile yabancı hücreler arasında ayrım yapabilme
kabiliyetini yitirmişse kendi hücrelerine karşı da aynı yok edici tepkiyi vereceğinden kendi
kendine zarar verecektir. Vücutta bu ayrımı yapabilmek için çok çeşitli mekanizmalar yer
almaktadır. Bunların başlıcaları negatif seçim, pozitif seçim, klonal seçim ve reseptör
denetimi mekanizmalarıdır:
Kemik iliklerinde ve timüste bağışıklık tepkisi için her türlü maddeye karşı lenfosit üretilir.
Buralarda hızlı bağışıklık tepkisi verilebilmesi için çok fazla miktarda lenfosit üretilir. Bu
lenfositlerden bazıları vücuda dışarıdan girecek antijenlere karşı, bazıları vücudun kendi
hücrelerine karşı duyarlıdır. Bazı hücreler ise herhangi bir duyarlılık taşımamaktadır. Vücudun
bu lenfositlerden vücuda giren antijene duyarlı olanlarla, kendi hücrelerine duyarlı olanları
ayırt edebilmesi gerekir.
Negatif seçim mekanizması, timüste üretilen ve vücudun kendinden olan hücrelerine duyarlı
olan lenfositlerin yok edilmesini ve böylece kendi kendine zarar vermesini önüne geçilmesini
25
temin eder. Eğer bu mekanizma olmazsa, lenfositler ve antikorlar vücudun kendi hücrelerine
saldırıp, onları yok edebilir.
Pozitif seçim mekanizması ise MHC proteini ile birleşerek yabancı antijenleri tanıyıp ayırt
edebilme özelliğine sahip olan lenfosit ve antikorların, işaretlenerek yok edilmemelerini
temin eder.
Klonal seçim mekanizması antijenik bir uyarana karşı, bağışıklık tepkisinin temel özelliklerini
ortaya koyar. Dayandığı temel düşünce ise lenfositlerin vücuda giren antijenleri tanıması,
vücudun kendi hücrelerinden ayırt etmesi, antijenin tanınmasından sonra ise lenfositlerin
hızla çoğalması sürecidir. Klonal seçim lenfositlerin T ve B tipi hücreleri vasıtasıyla
gerçekleşmektedir ve başlıca özellikleri ise şunlardır:
•
Yüksek oranlarda gerçekleşen mutasyon mekanizması ile baba hücrelerden
(klonlardan) yeni hücrelerin üretilmesi.
•
Lenfositler, vücuttaki bütün hücrelere karşı çoğalmaktadır fakat daha sonra vücudun
kendi hücrelerine duyarlı olarak üretilmiş olan lenfositler yok edilmektedir.
•
Antijenleri iyi tanıyabilen olgunlaşmış hücreler hızla çoğaltılmakta ve bu hücrelerin
çeşitliliği sağlanmaktadır. Bunun için somatik hipermutasyon denilen çok seri gen
değişimi mutasyonları gerçekleşmektedir.
•
Üretilmiş fakat antijenlere uyum sağlayamayan antikorlar ise reseptör denetimi
denilen bir mekanizma ile temizlenerek yerlerine yeni ve daha iyi uyum
sağlayabilecek antikorlar ve lenfositler üretilmektedir.
•
Yabancı hücreler ilk kez vücuda girdikten sonra oluşturulan bağışıklık tepkisi (doğal
bağışıklık) sonrasında, bu yabancı hücreleri eniyi tanıyan antikorlar ve lenfositler
hafızada saklanmakta ve daha sonra tekrar bu hücrelerle karşılaşıldığında çok daha
hızlı ve ani tepkiler vermek suretiyle yabancı hücreler temizlenmektedir. Klonal seçim
mekanizmasının çalışma prensibi Şekil 3.7’de gösterilmiştir [49].
26
Şekil 3.7 Klonal Seçim Mekanizması [49]
3.4.2
Öğrenme ve Bağışıklık Hafızası
Bağışıklık sisteminde öğrenme, klonal seçim prensibinde değindiğimiz antijenleri tanıyabilen
lenfositlerin popülasyonunun artmasıyla ilişkilidir. Vücuda giren antijen Ag1, kendisini tanıyıp
ona bağlanabilen antikorla karşılaşır ve bu antikorun sayısı belirli bir seviyeye kadar
yükselerek bağışıklık sisteminin birincil cevabını oluşturur.
Ag1 antijeni vücuda tekrar girdiğinde daha önce kendisi için uygun antikor üretildiği için çok
kısa bir gecikme sonucu birincil cevaptan daha kısa, yoğun ve etkili bir ikincil cevapla
karşılaşır. Vücuda giren başka bir antijen Ag2 için cevap birincil cevap olacaktır. Ancak birinci
ve ikinci antijenler arasında yapısal olarak bir benzerlik varsa bu durumda bağışıklık hafızası
ilişkilendirebildiği için ikincil bir cevap verecektir, bu cevaba çapraz reaksiyon cevabı
diyebiliriz. Bu öğrenme ve hafıza işlemlerini mühendislik açısından değerlendirmek istersek,
yüksek kalitede çözüm adayları için yüksek benzerlik veya benzerlik göstermiş olanların bir
şekilde korunması gereklidir ve sadece geliştirilmiş adaylarla yer değiştirmeleri gereklidir.
27
Şekil 3.8 Bağışıklık yanıtları [4]
3.4.3
Bağışıklık Ağı
Jerne (1974)’e göre bağışıklık sistemi antijenlerin yokluğunda bile birbirini tanıyabilen
hücreler ve moleküllerin düzenlenmiş bir ağından meydana gelmektedir. Antijenlerin
tanınmasını sağlayan epitop kısımlarına benzer kısımlar antikorda da mevcuttur ve bu
kısımlar iditop olarak adlandırılmaktadır. Antikorların alıcı kısmına ise paratop adı
verilmektedir. Antikorlar antijenleri paratop kısmıyla algılayabildiği gibi diğer antikorlar da
onu iditop kısmıyla algılayabilmektedirler. Ortamda antijen olmasa bile bir kısım antikor diğer
bir kısım antikoru iditopu sayesinde algılayabildiği gibi kendisi de başka bir grup antikor
tarafında algılanabilir. Antijeni tanıyarak pozitif yanıtı oluştururken, birbirlerini tanıyarak
kendi hücrelerine karsı oluşabilecek bir negatif yanıtı da baskılamaktadırlar. Bu durum
sayesinde birbirlerini uyararak öğrenme ve iletişimi sağlamış olmaktadırlar [4].
Şekil 3.9 Bağışıklık ağ modeli [4]
28
Bağışıklık ağ modeli temel alınarak oluşturulmuş modellerin pek çoğunun yapısı, De Castro ve
Von Zuben (2001) tarafından önerilen aşağıdaki formül kullanılarak ifade edilebilmektedir:
(3.1)
Burada PDO popülasyon değişim oranıdır [50].
Ağ yaklaşımı; öğrenme ve bellek, kendinden-olan/olmayan ayırımı, hücre popülasyonunun
boyutu ve çeşitliliği gibi gelişen özelliklerin bir tanımını sağlaması bakımından, özellikle
bilgisayar alanındaki gelişmeler için cazip hale gelmektedir.
29
BÖLÜM 4
YAPAY BAĞIŞIKLIK SİSTEMİ
4.1
Yapay Bağışıklık Sistemlerinin Tarihçesi
Son yıllarda, biyolojiden esinlenerek geliştirilmiş sistemlerin kullanımıyla gerçekleştirilen
çalışmalarda büyük miktarda artış gözlenmektedir. Yapay sinir ağları (YSA), evrimsel
hesaplama, DNA hesaplama ve yapay bağışıklık sistemleri bunlar arasında sayılabilmektedir.
Bağışıklık sisteminden esinlenilerek ortaya konmuş olan yapay bağışıklık sistemi, bağışıklık
fonksiyonlarının ilkelerini ve modelini taklit ederek kompleks problemlere uygulanabilen,
uyarlanabilir bir sistem olarak düşünülmektedir [51].
Yapay Bağışıklık Sistemleri gibi bağışıklık da aslında tıp bilimi için oldukça yeni bir alandır.
Bağışıklık biliminin başlangıcı Edward Jenner’in aşıyı bulduğu 1876 yılına dayanmaktadır. O
tarihten günümüze bağışıklık alanında yapılan kesifler, Bağışıklık sisteminin işleyişindeki çoğu
karanlık noktayı aydınlatmıştır. Bağışıklık Ağı Teorisi ile Niels K. Jerne 1974 yılında, reseptör
çeşitliliği ve yapısal bağışıklık üzerine yaptığı çalışmalarla da Susumu Tonegawa 1983 yılında
Nobel ödülüne layık görülmüştür. Bağışıklık biliminde yapılan çalışmalara paralel olarak
oluşturulmaya başlanan Bağışıklık Sistemi modelleri, sistemin işleyişini kavramak açısından
oldukça büyük katkılar sağlamıştır.
1900’lü yılların ikinci yarısından itibaren gelişmeye başlayan Yapay Zeka, insan gibi düşünen
ve davranan makinelerin ortaya çıkarılması gibi amaçlara yönelik çalışmalarda büyük ölçüde
insanın biyolojik sisteminin işleyişini esas almıştır. Bu alanda en çok kabul gören ve Yapay
Sistemlerde bir çığır açan YSA, uygulama alanını sadece insanı taklit eden makinelerin
oluşturulması ile sınırlı tutmamış; kendini, bilimin birçok alanında karşılaşılan karmaşık
30
problemlerde başvurulabilen etkin bir çözüm aracı olarak ispatlamıştır. Sinir sistemindeki
bilinen isleyişleri model alarak oluşturulmaya başlanan YSA’nın böylesi ses getirmesi şaşırtıcı
değildir çünkü insandaki biyolojik sistem, bilinen işleyişi ile bile çok karmaşık bir
mükemmellik arz etmektedir. Bağışıklık sistemindeki olayların aydınlatılmaya başlanması ve
Yapay Zeka’ya duyulan ilginin artması; Yapay Bağışıklık Sistemlerinin ortaya çıkışının ardında
yatan temel nedenler arasındadır. 1974 yılında Jerne’in ortaya attığı Bağışıklık Ağı Teorisi ve
bağışıklık sistemindeki işleyişi daha anlaşılabilir kılan Bağışıklık Sistemi Modelleri, Yapay Zeka
araştırmacılarının ilgisini çekmiş ve oluşturulan yeni algoritma ve uygulamalarla Yapay
Bağışıklık Sistemleri yavaş yavaş adından söz ettirmeye başlamıştır [17].
Gelişiminin Y.S.A. kadar hızlı olmaması ve onun kadar ilgi toplamamış olmasına karşın; son
yıllara bu durum değişme yönünde bir eğilim sergilemektedir. Özellikle 1990’lı yılların
sonlarından itibaren Yapay Zeka alanında çalışmakta olan çoğu araştırmacı, dikkatini Yapay
Bağışıklık Sistemlerine yöneltmiş ve bu alanda en az Yapay Sinir Ağları kadar etkin yeni
algoritmalar oluşturulmaya başlanmıştır.
Bağışıklık sistemi uygulamalarının baslıca kullanım alanları arasında örüntü tanıma, hata ve
anormallik tespiti, robotik, kontrol, veri analizleri (veri madenciliği, sınıflandırma vb.), etmen
tabanlı sistemler, makine öğrenmesi, arama ve optimizasyon problemleri, güvenlik, bilgi
sistemleri ve diğer yaklaşımlar (açık web sunucusu koordinasyonu, listeleme, sensör tabanlı
teşhis,
gen
kütüphanelerinin
gelişimi,
kendinden-olan/olmayan
tanıma
işlemi)
sayılabilmektedir [4].
4.2
Yapay Bağışıklık Sisteminin Temel Özellikleri
•
Teklik: Her birey kendi bağışıklık sistemine ve kendine özgü yeteneklere sahiptir.
•
Anomali dedeksiyonu: Bağışıklık sistemi, vücudun daha önce hiç karşılaşmadığı
enfekte edici yabancı elemanları (patojenleri) tespit edebilmekte ve buna reaksiyon
gösterebilmektedir.
•
Dağıtılmış dedeksiyon: Sistemin hücreleri tüm vücut boyunca dağıtılmıştır ve
herhangi bir merkezi kontrol sistemine bağlı değildir.
31
•
Mükemmel olmayan dedeksiyon (gürültü toleransı): Reaksiyonlar için patojenin tam
tamına tanınmasına gerek duyulmamaktadır. Bundan dolayı sistem gürültü
toleranslıdır.
•
Takviyeli öğrenme: Sistem, patojenlerin yapılarını öğrenebilmekte ve daha sonra aynı
patojenlerle karşılaşıldığında daha hızlı ve kuvvetli cevap üretebilmektedir.
•
Farklılaşma: Bağışıklık sistemi farklılaşmayı teşvik etmektedir. Yani küresel optima
için odaklanmaya teşebbüs etmemekte ve bunun yerine farklı antijenlere cevap
verebilecek antikorları geliştirmeye çalışmaktadır.
•
Dış çevreye karşı uyumluluk: Bağışıklık sistemi, değişen durumlara hızlı şekilde
adapte olabilen ve doğal olarak meydana gelen olay-cevap sistemidir.
•
Hafızaya sahip olma: Bağışıklık sistemi, dinamik olarak muhafaza edilen ve kendi
kendine organize olan bir hafızaya sahiptir. Bağışıklık sisteminin hafızası içerik
adreslenebilir türdendir. Böylece benzer antijenlerin aynı antikor tarafında
belirlenmesi sağlanmakta ve bundan dolayı kendisine sunulan antijenlerdeki
gürültüye karşı toleranslı olmaktadır [3]
YBS’nin yapısı, katmanlı bir yaklaşım olarak düşünülebilir. Her sistemin temeli uygulama
alanıdır. Bu alan için sistemin bileşenlerinin uygun bir temsiline karar verildikten sonra bir ya
da daha fazla afinite ölçüleri sistemin elemanları arasındaki etkileşimleri ölçmek için
kullanılır. Birçok olası afinite ölçüleri Hamming ya da Öklit uzaklıkları gibi, vardır. Bir sonraki
katman sistemin davranışını (dinamiğini) yöneten işlemler ya da algoritmaları içerir. Bu da
bize cevabı verir. Buna göre yapı, şekil-uzayı olarak adlandırılan bağışık hücreler ve
moleküllerin genel soyut modelini çıkarmakla başlar). Dasgupta ve Nino biyolojik bağışıklık
sistemini şu şekilde tanımlamaktadır: bağışıklık sistemi bir dizi organların, moleküllerin ve
hücrelerin bir araya gelmesinden oluşur ve bir patojen varlığında bu sistemi oluşturan
parçaların gösterdiği düzenli tepkiye bağışıklık tepkisi (immune response) denir. Bağışıklık
sistemini meydana getiren hücreler ve mekanizmalar üzerine yapılan teorik araştırmalar
sonucunda, yapay bağışıklık sistemine ilham kaynağı oluşturan birçok özellik keşfedilmiştir.
Bu çalışmanın kapsamında ele alınan klonal seçim algoritması da, biyolojik bağışıklık
sistemindeki B hücrelerinin ve bu hücrelerin ürettiği antikorların davranışları göz önüne
alınarak bilimsel yazında geliştirilmiştir.
32
4.3
Yapay Bağışıklık Sistemi Tasarım Ölçütleri
Michalewicz (1996)’e göre bir problemi çözerken Evrimsel Algoritmaları uygulayabilmek için
temel bazı bileşenlere ihtiyaç duyulmaktadır [52]:
1. Problem için potansiyel çözümlerin gösterimi
2. Potansiyel çözümlerin başlangıç popülasyonunu oluşturmak için bir yol
3. Çözümlerin uygunluklarına göre sıralanmasında rol oynayan bir değerlendirme fonksiyonu.
4. Yeniden üretilecek olan ebeveynleri seçen bir seçim prosedürü
5. Çocuk popülasyonu oluşumunu kolaylaştıran evrimsel operatörler ( genellikle crossover ve
mutasyon)
6. Evrimsel algoritmaları kullanan çeşitli parametre değerleri (popülasyon büyüklüğü,
uygulanan evrimsel operatör olasılıkları, vb. )
Bağışıklık sisteminden esinlenerek bir YBS oluşturmak için çeşitli tasarım ölçütlerine ihtiyaç
duyulmaktadır. YBS tasarımında bu ölçütler göz önünde bulundurulmalı ve sistemin yapay
bağışıklığa uygun olup olmadığı değerlendirilmelidir. Bu ölçütler aşağıdaki gibi sıralanabilir;
•Sistemi oluşturan birimlerin gösterimi
•Sistemdeki birimlerin birbirleri ve çevre ile olan etkileşimlerini hesaplamak için bir
mekanizma
•Bazı adaptasyon prosedürleri
Şekil 4.1 YBS ile problem çözme uygulama adımları [53]
33
Bir YBS tasarımında öncelikle sistemi oluşturan birimlerin bağışıklık sisteminin hangi
elemanlarının modellenmesinden ortaya çıkacağının belirlenmesi gerekmektedir. Sonrasında
bu birimlerin sistemdeki diğer birimlerle ve çevre ile olan etkileşimlerinin türü ve boyutunun
hesaplanmasında kullanılacak bazı duyarlılık ölçütleri oluşturulmalı ya da kullanılmalıdır. Son
olarak ise, sistem birimlerinin fonksiyonlarını belirleyen ve sistem birimlerinin hangi
durumlarda nasıl davranması gerektiğini karakterize eden bir takım adaptasyon prosedürleri
kullanılmalıdır [17].
YBS alanında oluşturulacak her sistemin temelini uygulama alanı oluşturmaktadır. Uygulama
alanının karakteristiğine uygun bir gösterim seçilmeli, duyarlılık ölçütleri de bu gösterimler
temel alınarak oluşturulmalıdır. Gösterim şekli ve duyarlılık ölçütleri belirlendikten sonra
oluşturulacak bağışıklık algoritmaları yukarıda da bahsedildiği gibi sistem birimlerinin
fonksiyonlarını belirlemektedirler [17].
YBS tasarım yapısı, bağışıklık hücreleri ve moleküllerinin soyut modellerini oluşturmak için
kontrol edilen ve genişletilen bir yapıya sahiptir. Bu hücreler ve moleküllerin etkileşimlerini
ölçmek için bir fonksiyonlar seti kullanılabilmektedir [17].
Sonuç olarak, bağışıklık algoritmaları, sistemi oluşturan hücreler ve moleküllerin zamana
bağlı davranışları gibi YBS’nin dinamiklerini idare etmek için kullanılabilmektedir. Aşağıda
verilen yapı, YBS tasarımının açık bir ifadesidir [17]:
1. Uygun şekil uzayı ve benzeşme ölçülerini seç. Bunlar genellikle probleme bağlı olarak ya da
bazı sezgisellere göre belirlenmektedirler.
2. Sistemin zaman boyunca nasıl bir davranış sergilediğini değerlendirmek için açıklanan
(veya yeni) algoritmalardan birini uygula.
Bağışıklık algoritmalarının dört tipi, mutlak bir kısıtlama olmamakla birlikte bazı temel
uygulama alanlarına sahiptirler [54].
•Klonal seçim: Örüntü tanıma ve optimizasyon;
•Negatif seçim: Anormallik ve hata tespiti;
•Sürekli bağışıklık ağ modelleri: Kontrol, robotik, optimizasyon ve örüntü tanıma;
34
•Kesikli bağışıklık ağ modelleri: Örüntü tanıma, veri analizi, makine öğrenme ve
optimizasyon.
Çizelge 4.1 yapının, kendi temel özellikleri ve işleyişini vurgulayan tüm bölümlerini
özetlemektedir.
Çizelge 4.1 Yapının bileşenleri, temel özellikleri ve işleyişi [54]
Yapı
Temel özellikler
İşleyiş
Şekil Uzayı
Hücreler ve moleküllerin şekline Bağışıklık hücreleri ve molekülleri için
karşılık gelen bir özellik dizileri soyut gösterim yapısı
uzayı
Kemik iliği
modelleri
Özelliklerin üretilmesi veya bir Şekil uzayı içinde hücreler ve
dizide birleştirilmesi süreci
moleküllerin üretimi
Klonal seçim
Seçim, yeniden üretim ve
mutasyonun evrimsele benzer
adaptasyon süreci benzerlikle
orantılıdır
Kendinden-olmayan bir antijenle
karşılaşıldığında bağışıklık hücreleri
ve moleküllerinin etkileşimlerini
idare eder
Benzerlik
Seçimi takip eden ve hücre Y.B.S. elemanlarının kendilerini, nasıl
olgunlaşması reseptörlerinin
benzerliğini adapte ettiklerini açıklar (özellik
geliştirmekle sorumlu mutasyon dizilerini başkalaştırmak gibi)
süreci
Negatif
seçim
Dizilerin yinelemeli karşılaştırılma Kendinden-olan antijenleri
(eşleme) süreci
tanıyamayan bir dedektörler seti
oluşturur.
Sürekli ağ
Çoğunlukla, kendinden-olmayan Bağışıklık hücrelerinin birbirleriyle ve
antijenlerin değerlendirilmesi ve diğer kendinden olmayan antijenlerle
yok edilmesi ile yeni elemanların etkileşimini yönetir.
girişini sağlayan terimleri içeren
diferansiyel denklem çiftlerinden
oluşan set
Kesikli ağ
Kendinden-olmayan
antijenleri Bağışıklık hücrelerinin birbirleriyle ve
değerlendirme ve yok etme ile diğer kendinden olmayan antijenlerle
yeni elemanların girişini sağlayan etkileşimini yönetir
yinelemeli adaptasyon süreci
35
4.3.1
Şekil Uzay Gösterimi
Sisteme giren antijenleri tanımak için tüm hücrelerin oluşturduğu topluluğa bağışıklık kaynağı
veya bağışıklık hafızası adı verilmektedir. Bağışıklık hücreleri kümesi; zararlı saldırganlardan
vücudu uygun şekilde korumak için bağışıklık tepkisi olarak adlandırılan, antijen tanıma
işlemini gerçekleştirmektedirler. Bağışıklık hücresi molekülleri ve antijenler arasındaki
etkileşimleri nicel olarak açıklamak için, Perelson & Oster (1979) şekil uzayı (S-shape space)
kavramını tanıtmışlardır [17].
Bağışıklık sisteminde bir etkileşimin gerçekleşmesinde tamamlayıcılık esastır. Yani bir antijen
ve bir antikor birbirlerini tamamlar nitelikte ise, etkileşimleri de fazla olmaktadır.
Tamamlayıcılık özelliği ile sekil uzayı kavramı modellenmeye çalışılmıştır. Şekil uzayı
gösteriminde antijenler direk alınmazlar. Bunun yerine tersleri alınır. Bu yüzden algılayıcılar
arasında mesafe ne kadar fazla ise tamamlayıcılıkta o kadar fazla olmaktadır [17].
Sekil 4.2’a göre, verilen antijen ile antikor molekülleri arasındaki uzaklık ne kadar fazla ise
etkileşim de o kadar fazladır. Antijenlerin bulunduğu noktanın tersi alınarak şekil uzayı
üzerinde tamamlayıcı gösterim gerçekleştirilmiş olmaktadır. Sekil 4.3’ de, A antijeni ile C
antikoru arasındaki mesafe tamamlayıcı olarak gösterilmiştir. Bu şekle göre A ile C arasındaki
etkileşim şiddeti, B ile A arasındaki etkileşim şiddetinden daha fazladır [17].
Şekil 4.2 Antijen ve antikorların şekil uzayı gösterimi [4]
36
Şekil 4.3 Antijen ve antikorların şekil uzayında tamamlayıcı gösterimi [4]
Bağışıklık sisteminde lenfositlerin antijenleri tanımaları için, antijenlerden gelen uyarımların
belirli bir esik seviyesinin üzerinde olması gerekmektedir. Bu özellik ise şekil uzayında tanıma
çemberi adı verilen bir yöntemle ifade edilmektedir. Bu yöntemde gösterilen her bir
kendinden olan hücrenin bir eşik seviyesi ve tanıma çemberi vardır. Kendinden olan hücreler,
bu çember içerisinde yer alan antijenleri tanıyabilmektedirler [17].
Şekil 4.4 Tanıma çemberi ile antijenlerin gösterimi [4]
Şekil 4.4’ de üç kendinden olan hücre (H1, H2, H3) ve antijenler iki boyutlu bir sekil uzayında
gösterilmektedir. Her bir hücrenin tanıma çemberi ε eşik seviyesi ile belirlenen Vε çemberidir.
Şekilde H1, tanıma çemberi içinde kalan iki antijeni; H3 ise sadece bir antijeni
tanıyabilmektedir. H2’nin tanıma çemberinde herhangi bir antijen olmadığı için H2 antijen
tanımamaktadır. Doğada mevcut olabilecek antijen türleri, protein dizilimleri ile belirlendiği
için belirli bir çeşitlilikte bulunabilirler. İki boyutlu şekil uzayında bulunabilecek tüm antijenler
mutlaka bu hacim içerisinde gösterilirler [17].
37
Yine aynı sekil uzayında bulunan her bir antikorun bir Vε tanıma hacmi olduğuna göre, şekil
uzayında V hacmi içerisinde tüm noktaları kapsayacak biçimde bir antikor popülasyonu
olduğunda, bu antikor popülasyonu tüm antijenleri tanıyabilir. Bu durumda bu antikor
popülasyonunda repertuar tamlığından söz edilebilmektedir [17].
4.3.2
Antijen-Antikor Gösterimleri ve Duyarlılıklar
Antijen-antikor gösterimi; kısmen etkileşim derecesine yani tamamlayıcılığı hesaplamada
kullanılan uzaklık ölçüsüne karar vermektedir. Matematiksel olarak bir m molekülünün
genelleşmiş sekli ya bir antikordur (Ab) yada bir antijendir (Ag) ve L boyutlu gerçel değer
uzaylı (m ϵ SL RL, S şekil uzayı ve L boyutunda sunulur) bir nokta olarak kabul edilen m= < m1,
m2, …, mL > gerçek değerli koordinatlarının bir kümesi ile gösterilebilmektedir [17].
Matematiksel olarak bir antijen ve antikor molekülü arasındaki uzaklıklar farklı yöntemlerle
hesaplanabilir. Eğer antijeni ve antikoru simgeleyen vektörler gerçel değerli ise Öklid veya
Manhattan uzaklık ölçütleri kullanılarak hesaplama yapılabilmektedir [17].
Antijen: Ag =< Ag1, Ag2, Ag3,….., AgL>
Antikor: Ab =< Ab1, Ab2, Ab3,….., AbL>
D= Aradaki mesafe olmak üzere;
Ab ve Ag arasındaki Öklid uzaklığı
(4.1)
Ab ve Ag arasındaki Manhattan uzaklığı:
(4.2)
Antijenler ve antikorlar ikili sembollerle ifade edildiği zaman Hamming uzaklık ölçütü
kullanılır. Burada vektör elemanları gerçel sayılar yerine ikili karakterlerden oluşmaktadır.
Hamming uzaklığı;
38
(4.3)
Şekil uzayında oluşan toplam Antikor sayısı kL ile ifade edilmektedir. k alfabenin büyüklüğü, L
ise vektör uzunluğudur. Şekil uzayında her bir çember içerisinde kalan antijen sayısına o
antikorun tanıma çemberinin kapsamı denilmektedir.
Aşağıdaki şekilde gösterilmektedir:
(4.4)
L: Vektör uzunluğu
ε: Benzerlik eşiği (tanıma çemberi yarıçapı)
Bir şekil uzayındaki antijenlerin tanınması için gerekli olan minimum antikor sayısı (4.5)
denklemi ile hesaplanabilmektedir. Bu eşitlikteki ceil operatörü parantez içindeki ondalıklı
sayıyı en yakın büyük tam sayıya yuvarlamak için kullanılmaktadır [17].
(4.5)
“Antikorların antijenlere yanıt üretebilmeleri için onları tanımaları gerekmektedir. Tanıma
işlemi için ise, antikorların antijene olan duyarlılıkları uzaklık ölçütleri kullanılarak
hesaplanmaktadır. Tanıma işlemi, ikili sembollerle ifade edilen bir örnekle açıklanabilir [17]:
Antikor: Ab = [0 0 1 1 0 0 1 1 ];
Antijen: Ag = [1 1 1 0 1 1 0 1 ];
Etkileşim:
Şekil 4.5 Hamming uzaklığı ve duyarlılık hesabı [4]
39
Söz konusu ikili sembollerden oluşan vektörler için uzaklık, Hamming uzaklık ölçütü
kullanılarak hesaplandığında (XOR işlemi ile) 6 olarak bulunmaktadır. Farklı bir ifade ile bu iki
vektörün 6 tane elemanı birbirini tamamlar nitelikte olduğu için aralarındaki uzaklık 6’dır [4].
4.4
Yapay Bağışıklık Algoritmaları
Bir Yapay Bağışıklık sistemi tasarımında uygulama alanının yapısına uygun olarak seçilen
gösterim şekli ve duyarlılık ölçütleri belirlendikten sonra sistemin çatısını oluşturacak olan
bağışıklık mekanizmalarının modellendiği adaptasyon prosedürleri (başka bir ifade ile Yapay
Bağışıklık Algoritmaları) oluşturulmalıdır. Literatürde geliştirilen bu algoritmaları, uygulama
alanlarına ve yapılarına göre aşağıda açıklandığı gibi kategorize etmek mümkündür. Şekil 3.6’
da da görüldüğü gibi geliştirilen YBS algoritmaları 2 temel kategoride toplanmaktadırlar:
Popülasyon tabanlı ve ağ tabanlı YBS algoritmaları. Popülasyon tabanlı algoritmalar da kendi
içerisinde Klonsal seçim tabanlı, Bone Marrow modelleri ve Negatif seçim tabanlı olmak
üzere üç gruba ayrılmaktadırlar [10].
Şekil 4.6 YBS algoritmalarının kategorileri [53]
4.4.1
Negatif Seçim Mekanizması
Bağışıklık sistemlerindeki negatif seçim mekanizması özellikle, bilgisayar ağlarında virüs veya
anormal durum tespiti, görüntü tanıma, motorlarda hata tespiti ve veri madenciliği gibi
alanlarda, oldukça yaygın ve başarılı bir şekilde kullanıma sahiptir. Negatif seçime bilgi işleme
perspektifi açısından bakıldığında mekanizma şu şekilde çalışmaktadır (Şekil 4.7) [47].
40
Şekil 4.7 Negatif Seçim Mekanizması [4]
Aşama-1: Dedektörlerin Tespiti
Adım-1: Probleme çözüm üretebilmek için gerekli bütün aday kümesini oluştur.
Adım-2: Oluşturulan bu aday kümesindeki elemanların her birinin, probleme ait hücre
repertuarı ile uyum oranını belirle.
Adım-3: Oluşturulan bu aday kümesinden, sistemin kendinden olan elemanlarına karşı
duyarlı olan(yüksek uyumluluk gösteren) adayları işaretle.
Adım-4: İşaretlenen adayları sil ve geri kalan adayları dedektör olarak seç.
Aşama-2: Kendinden Olmayanların Belirlenmesi
Adım-1: Eldeki veri kümesindeki elemanların her birinin uyum değerini hesapla ve dedektör
kümesi ile karşılaştır.
41
Adım-2: Uyum değeri hesaplanan elemanlardan, eldeki dedektör kümesi ile belirlenen eşik
değerden daha fazla uyum gösteren elemanları kendinden olmayan (nonself) olarak belirle.
Aşama-3: Hücre repertuarını güncelle ve durma ölçütü sağlanıncaya kadar döngüye devam
et.
4.4.2
Klonal Seçim Mekanizması
Klonal seçim mekanizmasının kombinatoryel eniyileme problemlerine uygulanmasını ilk
sağlayan De Castro ve Zuben (1999)’in geliştirdiği CLONALG isimli algoritmanın çalışması ise
şu şekildedir [47]:
1. Aday Çözümlerden oluşan bir P kümesi oluştur. P kümesi hafızada daha önce saklanan iyi
çözümler alt kümesi (M) ve geri kalan yeni üretilmiş çözümler alt kümesinden (Pr)
oluşmaktadır (P = Pr +M);
2. Bu P kümesinden n adet eniyi olanları(uygunluk değerlerinin kalitesine göre) Pn olarak
belirle,
3. Bu eniyi n adet bireyi klonla (kopyala) ve klonlardan oluşan C kümesini oluştur.
4. C kümesindeki bireyleri, uygunluk değerleri ile orantılı olarak somatik hipermutasyona
uğrat ve daha sonra olgunlaşmış C* kümesini oluştur.
5. C* kümesinden eniyi olanları M hafıza hücresi kümesinde sakla.
6. P kümesindeki d adet düşük uygunluk değerine sahip kötü bireyleri popülasyondan sil ve
yerlerine yenilerini koy ve yeni P kümesini oluştur, adım-1’e dön. Akış diyagramı ise Şekil
4.8.’de görüldüğü gibidir.
42
Şekil 4.8 CLONALG algoritmasının akış diyagramı [4]
4.4.3
Kemik İliği Modeli
Antikorların birbirine bağlı olarak hafızada saklandığı yere gen kütüphanesi adı verilir. Bu
model, hücre ve moleküllerin repertuarlarının üretilmesi için kullanılmaktadır. Bağışıklık
hücreleri ve molekülleri kemik iliğinde üretilmektedirler. Reseptör moleküllerini kodlamak
için kullanılan genler, birbirinden ayrık ve bağımsız kütüphanelerde saklanırlar. Bu
moleküllerin kodlanması, her bir gen kütüphanesinden rastgele seçilmiş farklı gen
bölümlerinin birleştirilmesi yoluyla oluşturulmaktadır. Kemik iliği modelleri, bağışıklık
reseptörlerini temsil eden özellik dizilerinin oluşturulması için kullanılır. En basit kemik iliği
43
modeli, L uzunluğundaki özellik dizilerini SL içinden rastgele sayı üreticisi kullanarak
oluşturmaktadır [17].
Bağışıklık hücre repertuarlarının oluşturulmasında kullanılan daha gelişmiş ve biyolojik açıdan
cazip modeller, yeniden düzenlenen veya zaman içinde gelişmiş moleküllerin bulunduğu gen
kütüphanelerinin kullanımına ihtiyaç duyarlar [17].
Hightower ve diğerleri (1995), Perelson ve diğerleri (1996), ve Oprea (1999), antikor
moleküllerinin genetik kodlamasında evrimin etkilerini araştırmak için bir genetik algoritma
üzerinde çalışmışlardır. Bu yeniden kodlamanın bir önemli özelliği genotype (toplam gen
yığını) içinde bulunan tüm genlerin, phenotype (ifade edilen antikor molekülleri) içinde ifade
edilmemesidir [17]. Bu modellerde, antikor moleküllerinin oluşturulması için yeniden
düzenlenmiş genleri barındıran gen bölümleri kütüphaneleri Şekil 4.9’ da gösterilmektedir
[17].
Bu modelin diğer önemli özelliği, gen kütüphanesi içindeki göreceli olarak az sayıdaki genler
ile büyük sayıdaki farklı reseptör moleküllerinin (özellik dizileri) geliştirilebilmesidir [54].
Şekil 4.9 Gen bölümleri kütüphaneleri [54]
4.4.4
Timüs Modeli
Timüs, T hücrelerinin olgunlaşmasından sorumludur. Yabancı antijenleri timük çevrenin
dışında tutan bir kan engeli ile korunmaktadır. Bu nedenle timüs içinde bulunan çoğu
eleman, yabancı değil vücudun kendisine aittir. Timüs’te meydana gelen negatif seçim süreci,
44
kendinden olan antijenleri tanıyabilen reseptörlere sahip olan T hücrelerini yok etmektedir.
Bu sayede sadece yabancı antijenleri tanıdığı varsayılan T hücrelerinin tümü hayatta
kalmaktadır. Bu özellik, bir sistemi anormal veya alışılmadık bir davranış öncesinde
denetleyen algoritmaların gelişimi için oldukça ilgi çekicidir [17].
Bu düşünceden esinlenerek Forrest ve diğerleri (1994), timüs içindeki T hücrelerinin negatif
seçimini esas alan anormallik tespiti algoritmasını geliştirmişlerdir. Negatif seçim algoritması
olarak isimlendirilen bu algoritmanın en genel uygulamaları bilgisayar güvenliği alanında
gerçekleştirilmiştir. Bu algoritmanın en önemli yönü, sistem tarafından tanınmayan örüntüler
setine ait bilgiyi saklamak yoluyla, örüntü tanımaya benzer görevleri gerçekleştirmek
amacıyla kullanılabilmesidir. Bu basit bir algoritmadır ve aşağıdaki şekilde çalışmaktadır.
Öncelikle, korunacak modellerin kümesi belirlenir ve ‘kendinden olan set’(S) olarak
adlandırılır. Negatif seçim algoritmasına dayanarak, ‘kendinden olan set’ kümesine ait
olmayan elemanları tanımakla sorumlu bir A algılayıcılar (detektörler) kümesi oluşturulur. A
setinin oluşturulmasına ait yinelemeli süreç, aşağıdaki şekilde açıklanmakta ve Şekil 4.10’da
özetlenmektedir [17].
•Rastgele üretilmiş diziler oluştur ve bunları P setine yerleştir;
•P içinde yer alan tüm dizilerin S setinde yer alan tüm dizilerle olan benzeşmelerini
hesapla;
•P setindeki bir dizinin benzeşmesi S setindeki en az bir diziye ait olan benzeşme eşik
seviyesi ε’dan büyük veya ona eşit bulunduysa P setindeki bu dizi bir kendinden olan
diziyi tanımıştır ve yok edilmesi gerekmektedir (negatif olarak seçilmiştir); aksi durumda
P setindeki dizi kendinden-olmayan sete dahil olmaktadır ve bu nedenle A seti içine
yerleştirilmektedir [55]. Algılayıcı kümesini (A) oluşturduktan sonra, algoritmanın diğer
aşaması kendinden olmayan yani tanınmayan örüntülerin varlığı için sistemi izlemekten
oluşur. Bu durum Şekil 4.10’ da gösterilmektedir.
45
Şekil 4.10 Algılayıcı kümesi oluşturma işlemi ve normal olmayan durum tespiti [55]
4.4.5
Sürekli Bağışıklık Ağı Modeli
Farmer ve dig. (1986), bağışıklık hücreleri ve moleküllerini Şekil 4.11’de gösterildiği gibi ikili
sembollerden oluşan diziler olarak ifade etmektedirler. Bir antikor molekülü, biri epitop (e)
diğeri de paratop (p) olarak adlandırılan sıralanmış iki bölümle temsil edilmektedir. Antikor
molekülünün epitop kısmı, diğer antijenlerin paratopları yoluyla tanınabildiği bölümünü
teşkil etmektedir. Modellemede iki molekülün birden fazla yolla tepki verebileceği
düşünüldüğünden dizilerin herhangi bir mümkün sıralamada birbirini tamamlayarak
birleştirilmesine izin verilmektedir [17].
Denklem (4.6), YBS içindeki her bir elemanın birleşme seviyelerinin karşılığı olan mij birleşme
matrisini ifade etmektedir.
Şekil 4.11 İki antikor molekülünün epitop ve paratopunu gösteren bit dizileri [55]
46
(4.6)
ei(n), i. epitopun n. bitinde yer aldığında, pj(n) j. paratopun n. bitidir; Ʌ , Hamming
uzaklığında ej(.) ve pj(.) arasına karsılık gelmektedir ve ε benzeşim eşik değeridir. k
parametresi, verilen sıralamada bir paratop ile bir epitop arasına karşılık gelmektedir. Eğer,
birleşme birden fazla sıralamada meydana gelirse, etkinlikleri, farklı uzunluklara sahip diziler
olması durumunu kapsayacak şekilde toplanır. Denklem (4.7)’de verilen g(.) fonksiyonu, bir
epitop ile bir paratop arasındaki mümkün tepkimenin kuvvetini ölçmektedir [17].
(4.7)
Ağ dinamiklerini ölçmek için, {c1, …,cN} yoğunluğuna sahip N tipte antikor ve {y1,…, yM}
yoğunluğuna sahip M tipte antijen olduğu varsayılmaktadır. Antikor yoğunluk değişim oranı
denklem (4.8)’de verilmektedir [17].
(4.8)
Denklemdeki birinci terim, i tipindeki bir antikor paratopunun j tipindeki bir antikor epitopu
vasıtasıyla uyarımını ifade etmektedir. İkinci terim, i tipindeki bir antikora ait epitopun j
tipindeki paratop tarafından tanındığı zamanki baskılanmasını ifade etmektedir. k1
parametresi, birim zamandaki çakışma sayısına ve çakışma yoluyla uyarılan antikor üretim
oranına bağlı bir oran sabitidir. K2 sabiti, uyarım ve baskılanma arasındaki mümkün sapmayı
göstermektedir. Üçüncü terim antijen yoğunluğunu ve son terim de hücrelerin ölüm eğilimini
modellemektedir [17].
Denklem (4.8) ağ dinamiklerini kontrol eder. Antijenleri veya diğer antikorları tanıyan
antikorların belli bir sayısı yok edilmedikleri durumda daha güçlü hale gelmiş olurlar. Yeni
antikorların üretimi, sisteme açıklanamayan (veya görülmemiş) antijenlerle baş etme
kabiliyeti sağlar [53].
47
4.4.6
Kesikli Bağışıklık Ağ Modeli
Kesikli bağışıklık ağları, uyarlama süreçlerinin diferansiyel denklemler setine değil de
yinelemeli süreçlere dayalı olması bakımından sürekli modellerden ayrılmaktadır. Bu bölüm
iki kesikli bağışıklık ağ modeline ait öğrenme algoritmasının detayını vermektedir. Bu
modeller özellikle örüntü tanıma, veri kümeleme ve veri sıkıştırma problemlerine çözüm
getirmek amacıyla geliştirilmekle birlikte; genelleyici özelliklerinden dolayı, optimizasyon,
kontrol ve robotik gibi alanlara da uygulanabilmektedirler. Her öğrenme algoritması,
antijenik evrene karşılık gelen girdi örüntüleri setinden bilgi çıkarmaya yetenekli yapay
bağışıklık ağı oluşturmak için kullanılabilmektedir. Her iki algoritma için, B hücreleri ve
antikorlar (Ab) bağışıklık ağlarının temel elemanlarıdır ve antijenler girdi örüntülerine karşılık
gelmektedir [17].
RAIN: Timmis ve Neal, RAIN (Resource Limited Artificial Immune Network kaynak kısıtlı yapay
bağışıklık ağı) olarak isimlendirilen bir bağışıklık ağ öğrenme algoritması önermiştir. Her ağ
elemanı; bir antikor, bir uyarım seviyesi ve tutulan kaynak sayılarının bir kaydından oluşan bir
B hücresine karşılık gelmektedir. Ağ antikorları, girdi örüntülerinin (Ağ) alt bölümünün
rastgele alınması yoluyla başlatılmakta ve uyarım seviyesi ile kaynakların başlangıç kayıt
değeri sıfır olarak verilmektedir. Sonraki aşama antijenik örüntülerin sunumudur. Her bir
örüntü her bir ağ hücresine sunulmakta ve antijenlerin hücrelere sunumundan sonra uyarım
seviyesi, denklem (4.9)’a göre hesaplanmaktadır [17].
(4.9)
Denklemdeki M antijenlerin sayısı, n bağlantılı B hücreleri sayısı, Dij her bir j. antijen ile i. B
hücresi arasındaki Öklid uzaklığı, ve Di, k ise i. hücre ile buna bağlı k. B hücresi arasındaki
Öklid uzaklığıdır. ( 1-Dij ), ağ içindeki bir B hücresi ile antijenlerin veya diğer B hücrelerinin
benzeşimini ifade etmektedir. Ağ öğrenme algoritması aşağıdaki şekilde özetlenebilmektedir
[54, 56]:
48
Çizelge 4.2 Ağ öğrenme algoritması [54, 56]
1.Başlangıç: Antijenlerin alt bölümünün başlangıç ağ çıktısını üret
2.Antijenik sunum: Her bir antijenik örüntü için:
2.1.Klonal seçim ve ağ etkileşimleri: Her bir ağ hücresi için denklem (4.9)’a göre
uyarım seviyelerini hesapla;
2.2.Metadinamikler: Kaynak dağıtım mekanizması aracılığıyla düşük uyarım seviyeli
ağ hücrelerini yok et;
2.3.Klonal genişleme: En fazla uyarılan ağ hücrelerini seç ve bunları uyarım seviyeleri
oranında yeniden üret;
2.4.Somatik hipermutasyon: Her bir klonu kendi uyarım seviyesi ile ters orantılı olarak
mutasyona uğrat;
2.5.Ağ yapımı: Mutasyona uğratılmış klonları ağ içine dahil etmek üzere seç;
3.Döngü: Durdurma ölçütü sağlanana kadar 2. adımı tekrar et.
aiNet: De Castro ve Von Zuben (2000) tarafından önerilen ve aiNet (Artificial Immune
Network-Yapay Bağışıklık Ağı) olarak isimlendirilen bağışıklık ağ öğrenme algoritmasında ağ,
az sayıdaki rastgele üretilen elemanlarla başlatılmaktadır. Her bir ağ elemanı, Öklid şekil
uzayında bir özellik dizisi gibi açıklanan bir antikor molekülüne karşılık gelmektedir. Sonraki
aşama antijenik örüntülerin sunumudur. Her bir örüntü her bir ağ hücresine sunulmaktadır
ve aralarındaki benzerlik Öklid denklemine göre hesaplanmaktadır. aiNet öğrenme
algoritması aşağıdaki şekilde özetlenebilmektedir [57]:
Çizelge 4.3 aiNet öğrenme algoritması [57]
1.Başlangıç: Ağ antikorlarının gelişigüzel bir başlangıç popülasyonunu üret
2.Antijenik gösterim: Her antijenik örüntü için;
a.Klonal seçim ve genişletme: Her ağ elemanı için sunulan antijen için
benzeşmeyi hesapla. Yüksek benzerlikli birkaç elemanı seç ve benzeşme
ile doğru orantılı olarak klonla
b.Benzerlik olgunlaşması: Benzeşmeyle ters orantılı olarak her klona
mutasyon uygula. En iyi benzerliğe sahip birkaç klonu tekrar seç ve klonal
bellek setine yerleştir.
c.Klonal etkileşim: Klonal hafıza setinin tüm elemanları arasında ağ etkileşimini
belirle
d.Klonal baskı: Birbirleriyle olan benzeşmesi verilen eşikten az olan hafıza
klonlarını yok et
e.Meta dinamikler: Antijenle benzeşmesi, verilen eşikten düşük olan hafıza
klonlarını yok et
f.Ağ yapımı: Kalan klonal hafızanın klonlarını tüm ağ antikorları ile birleştir
g.Ağ etkileşimi: Her ağ antikor çifti arasındaki benzerliği belirle
h.Ağ baskılama: Benzerliği verilen eşikten az olan tüm ağ antikorlarını yok et
3.Çevrim: Durdurma ölçütü sağlanana kadar 2. adımı tekrar et.
49
4.5
Diğer Hesaplama Yaklaşımları Bağlamında Yapay Bağışıklık Sistemleri
Önceki bölüm YBS tasarımı için basit bir yapı önermektedir. Geniş uygulama alanına sahip
mevcut algoritmalardan en çok kullanılmış olanları yapıyı oluşturmak için seçilmiştir. Bu
bölümde, YBS ile Yapay Sinir Ağları, Evrimsel algoritmalar ve bulanık sistemler arasındaki bazı
benzerlik ve farklılıkları açıklamak amacıyla, YBS için bir özet ve açıklama sunulmaktadır. Bu
bölümün odağını yapının temel bazı elemanları oluşturmaktadır [17]:
•Gösterim: Verilen sistemdeki bir elemanı karakterize eden temel özellikler ve diğer
yaklaşımlardan farklılıkları;
•Fonksiyonlar: Sistem elemanları ile diğerlerinin ve çevrenin etkileşimini idare eden
fonksiyon türleri;
•Algoritmalar: Evrim, öğrenme ve çıkarsama kuralları gibi her bir stratejinin
adaptasyonunu idare eden yaklaşımlar.
Popülasyon temelli YBS’de özellik dizileri hücreler ve molekülleri bir şekil uzayında ifade
etmektedir. Ağ temelli YBS’de özellik dizilerine ilave olarak, ağ hücreleri ve molekülleri
arasında bağlantılar ile diğer hücrelerle benzeşim ve uyarım seviyesi ölçüleri gibi bazı
parametreler bulunmaktadır. Yapay sinir ağları genellikle bir aktivasyon fonksiyonu, bağlantı
kuvvetleri ve aktivasyon eşiğinden oluşan yapay sinir hücrelerine sahiptir. Bu yapay sinir
hücreleri, girdi vektörü ve sinir hücresi ağırlık vektörünün iç çarpımını temsil eden biyolojik
sinir hücrelerinin matematiksel modellerini teşkil ederler ve sonrasında bu çarpıma sinir
hücresi çıktısını üretmek amacıyla bir aktivasyon fonksiyonu uygulanmaktadır. Popülasyon
temelli YBS’de bağışıklık hücrelerinin esas olarak çevreye ait bilgileri depolamaktan sorumlu
ayrık elemanlar olduğuna dikkat edilmelidir. Bununla birlikte, ağ temelli YBS’de bağışıklık
hücreleri, kendinden olan ve olmayan antijenlerle benzeşmeleri değerlendiren (bir benzeşme
ölçütü temelinde) bilgi işleyicilerdir. Evrimsel algoritmalar bireysel kromozomları temsil eden
dizilerden oluşmaktadır. Aslında, EA’daki kromozomla popülasyon temelli YBS’deki özellik
dizileri arasında bir farklılık yoktur. Bulanık sistemler; söylem alanı, uzayı veya evreninden
elemanları, birimsel aralıklara dönüştüren, sözel değişkenlerin üyelik fonksiyonları yoluyla
oluşturulan, bulanık sayılar ve/veya setlerden oluşmaktadır [17].
50
Yapay bağışıklık sistemlerinde temel olarak, bireysel hücreler ve moleküllerin etkileşimini
ölçmek için kullanılan iki tip fonksiyon bulunmaktadır: uygunluk ve benzeşme fonksiyonları
[17].
Uygunluk fonksiyonları, YBS elemanlarının kalitesinin diğer elemanlarla kıyaslanmasını
içermeyen görevlerdeki değerlendirmelerde kullanılır, diğer durumda ise benzeşme
fonksiyonu kullanılmaktadır. Evrimsel algoritmalar tipik olarak çevre ile ilişki içinde olan her
bir popülasyon bireyinin kalitesini değerlendiren bir uygunluk fonksiyonuna sahiptirler. Bir
bulanık sistemin yapısı çoğu durumda sözel değişkenler için üyelik fonksiyonlarının bir ayrık
setine ve değişkenlerin ilişkilerini değerlendiren bulanık kurallara dayanmaktadır. Bulanık
kurallar ve sayıları hesaplamak için bir takım normlar kullanılmaktadır [17].
Yapay Bağışıklık Sistemlerinde adaptasyon; öğrenme ve/veya evrim gibi farklı yaklaşımları
içerebilmektedir. Popülasyon temelli YBS genellikle adaptasyonun evrimsele benzer bir
biçimine sahiptir. Bunun aksine bağışıklık ağ modelleri, kendi adaptasyon algoritmaları içinde
evrim ve eğitmenli(siz) öğrenmenin bir karışımını sergileyebilmektedirler. Çoğu sinir ağları, üç
temel yaklaşımdan birinin alanına giren öğrenme algoritması veya kurallara sahiptir. Bunlar;
eğitmenli, eğitmensiz ve takviye ile öğrenmedir. Bulanık mantıkta, bulanık kurallar bir çıktı
değeri üretmek için düzensel kurallar yoluyla kümelenmiş bir girdi uyaranı ile harekete
geçirilmektedirler. Çevre bir veya daha fazla bulanık kuralı harekete geçiren bir kesin veya bir
bulanık sayı yoluyla ifade edilebilmektedir [54].
51
BÖLÜM 5
GELİŞTİRİLEN YAPAY BAĞIŞIKLIK SİSTEMİ YAKLAŞIMI
Bu çalışmada atölye tipi çizelgeleme problemi için yeni bir yapay bağışıklık sistemi algoritması
geliştirilmiştir. Geliştirilen bu algoritmada, problem ile bağışıklık sistemlerindeki karşılıkları
Çizelge 5.1.’de gösterilmiştir [47].
Çizelge 5.1 Çizelgeleme problemlerinin YBS ile çözümündeki kavramlar [47]
Çizelgeleme Problemlerindeki Kavram
YBS’de Karşılık Gelen Kavram
Çizelgelenecek İşler
Antijenler
Problem için Yeni Üretilen Çizelgeler (Çözümler)
Antikor
Yeni Üretilen Çizelgedeki Tüm İşlerin Tamamlanma
Zamanı (Makespan)
Antikorun Uyum Değeri (affinity)
Çözümlerden Oluşan Küme (Populasyon)
Hücre Repertuarı
İyi Çizelge Veren Çözümler
Klonlar
En Kötü Çizelgeyi Veren Çözümler
Kötü Antikorlar
Komşuluk Mekanizması ile Diğer Bir Çizelgeye Geçiş
(Mutasyon)
Somatik Hipermutasyon
İyi Çizelgelerin Mutasyonla Geliştirilmesi
Uyum Değeri Olgunlaştırılması(Affinity
Maturation)
Kötü Çizelgelerin Popülasyondan Silinmesi ve Yerlerine
Yenilerinin Oluşturulması
Reseptör Denetimi (Receptor Editing)
En İyi Çizelgelerin Hafızada Saklanması (Elitizm)
Hafıza Hücreleri (Memory Cells)
Popülasyondan Uyum Değerine Göre Herhangi Bir
Bireyin Seçimi
Antijen Antikor Eşlemesi
52
Çizelgede de görüldüğü gibi problemde çizelgelenmesi gereken işler vücuda giren antijenler,
bu işlerin yapılabilmesi için üretilen çizelgeler de antikorlardır.
Her bir çizelgenin Cenb değeri de o antikorun uyum değeridir. Cenb değeri ne kadar küçük
olursa, antijen antikor eşleşmesi o kadar yüksek oluyor ve üretilen antikorların kalitesi de
aynı zaman da o kadar iyi oluyor anlamına gelmektedir. Girilen popülasyon büyüklüğü
parametresine göre üretilen çözümler kümesi de, antijenler için timüste oluşturulan hücre
repertuarına karşılık gelmektedir. Bu repertuardaki antikorlar (çizelgeler) hızlı somatik
mutasyonlarla olgunlaştırılmakta ve daha iyi uyum değerine sahip antikorla üretilmektedir
(somatik hipermutasyon ve uyum değeri olgunlaştırması). Hücre repertuarında antijenlerle
kötü uyum gösteren antikorlar (kötü çizelgeler) hücre repertuarından silinmekte ve yerlerine
yenileri oluşturulmaktadır [47].
5.1
Antikor Gösterimi
Geliştirilen YBS’nde antikor gösterimi, bu tip problemler için geliştirilmiş genetik
algoritmalardaki kromozom gösterimi ile benzerdir. Yapılan çalışmalar göstermiştir ki,
kromozom gösterimi EATÇP’nin çözümünü başarılı bir şekilde gerçekleştirmedeki ilk önemli
adımdır [58]. Geliştirilen algoritmada antikor gösterimi iki aşamadan oluşur [47]:
•İşlerin Sıralaması: Bunun için literatürdeki en başarılı gösterimlerden biri olan tekrarlı
permütasyon gösterimi tercih edilmiştir. Yani her bir iş kaç işlem içeriyorsa, antikor
içinde o kadar kez tekrar edilmekte ve daha sonra bu sıralama soldan sağa doğru
okunarak, işlemlerin sıralaması belirlenmektedir (Şekil 5.1).
Şekil 5.1 Geliştirilen YBS’ndeki işlerin tekrarlı permütasyon gösterimi [59]
Şekil 5.1.’de ilk satırda görülen tekrarlanan sayılar iş numarasıdır. 1. iş için örnek verilecek
olursa; ilk görülen 1, 1. işin 1.işlemini, 2. görülen 1, 1. işin 2. işlemini, 3. görülen 1 ise 1. işin 3.
işlemini göstermektedir.
53
•Makine Ataması: İşlemlerin makinelere atanması, işlerin sıralamasından bağımsız
olarak gerçekleşmektedir. Yani burada hiyerarşik bir yaklaşım sergilenmiştir. İşlemler
makinelere atanırken, soldan sağa doğru sırayla okunur ve o operasyonun işlenebileceği
makine listesinden bir makine rassal olarak bu operasyona atanır (Şekil 5.2).
Şekil 5.2 Operasyonların makinelere atanması [59]
Önce işlerin sıralaması, daha sonra operasyonların makinelere atanmasından sonra, işlerin
sıralamasına göre atanan makineler yerleştirilir.
Şekil 5.3. Antikor gösterimi [59]
Şekil 5.3.’de görüldüğü gibi, işlerin sıralaması V1 vektörü ile, atanan makineler V2 vektörü ile
gösterilecek olursa, bu iki vektörün yan yana getirilmesi ile antikor elde edilmiş olur [59].
5.2
İlk Popülasyon
İlk popülasyon rassal olarak oluşturulmaktadır. Yani rassal olarak iş sırası oluşturulmakta,
daha sonra rassal olarak makine ataması yapılmakta ve böylece antikor oluşturulmaktadır.
Bu işlem popülasyon büyüklüğü adedince tekrarlanmakta ve böylece ilk popülasyon
oluşmaktadır. Popülasyon büyüklüğü parametresi, kullanıcı tarafından girilmektedir [47].
54
5.3
Klonlama
Klonlama için, öncelikle kullanıcı tarafından klonlama oranı parametresi seçilmektedir. Bu
parametreye göre klon sayısı = popülasyon büyüklüğü X klonlama oranı eşitliği ile
hesaplanmakta ve klon sayısı kadar antikor klon olarak seçilerek sonraki nesile
aktarılmaktadır.
Klon seçimi için genetik algoritmalarda kullanılan rulet çarkı yöntemine benzer bir yöntem
kullanılmıştır. Bu yöntem, Cenb değeri düşük olan antikorlara daha fazla klonlama şansı
vermektedir [47] .
Her antikorun için klonlanma olasılığı şu prosedür ile belirlenmektedir [12]:
a) Popülasyondaki her antikor için Cenb değerini hesapla,
b) Popülasyondaki enbüyük Cenb değerini bul (Enb(Cenb)),
c) Her antikor için aşağıdaki eşitliğe göre uygunluk değerini hesapla
Uygunluk Değeri = (Enb(Cenb)+1) – (Cenb)
d) Her antikor için aşağıdaki eşitlik yardımı ile seçilme olasılığı bulunmaktadır.
Bütün antikorlar yukarıdaki yordama göre hesaplanmış seçilme olasılıklarına göre rulet
çarkına yerleştirilir ve klonlanacak antikorlar seçilir.
5.4
Somatik Hipermutasyon
Klonlanan her antikor yukarıda klonlama bölümünde belirtilen uygunluk değeri ile ters
orantılı olarak mutasyona tabi tutulur. Sırayla aşağıdaki mutasyonlara tabi tutulur [47]:
a) Araya Girme (insertion) Mutasyonu: Antikor üzerindeki genlerden rastgele biri alınır ve
antikorun rastgele bölgesindeki ardışık iki genin arasına yerleştirilir. Yeni elde edilen antikor
öncekinden daha iyi Cenb’e sahip ise eski antikorun yerine bu yeni antikor koyulur, yoksa
eski antikor aynen muhafaza edilir.
55
Şekil 5.4. Araya Girme Mutasyonu Örneği [47]
Şekil 5.4.’deki örnekte, önce 3 ve 4 numaralı gen bölgesindeki 1 ve 3 numaralı işler seçilmiş,
daha sonra 6 numaralı gen bölgesindeki 4 numaralı iş bu iki işin arasına koyularak araya
girme mutasyonu gerçekleştirilmiş ve yeni antikor elde edilmiştir.
b) Karşılıklı Yer Değiştirme (Swap) Mutasyonu: Bunun için antikor üzerinde rastgele iki gen
seçilir ve bu genler yer değiştirilir. Yeni elde edilen antikor öncekinden daha iyi Cenb’e sahip
ise eski antikorun yerine bu yeni antikor koyulur, yoksa eski antikor aynen muhafaza edilir.
Şekil 5.5 Karşılıklı Yer Değiştirme (Swap) Mutasyonu Örneği [47]
Şekil 5.5.’teki örnekte, işaretli olan gen bölgelerindeki 2 ve 4 numaralı işler seçilmiş, daha
sonra bu iki işin gen bölgeleri karşılıklı olarak değiştirilerek yeni antikor elde edilmiştir.
c) Tek Makine Değiştirme Mutasyonu: Bu mutasyonda antikora ait işlerden bir tanesi
rasgele seçilir ve bu işin işlendiği makine değiştirilerek yerine farklı bir makine atanır. Yeni
elde edilen antikor öncekinden daha iyi Cenb’a sahip ise eski antikorun yerine bu yeni antikor
koyulur, yoksa eski antikor aynen muhafaza edilir.
Şekil 5.6 Tek Makine Değiştirme Mutasyonu Örneği [47]
56
Şekil 5.6.’da önce işaretli gen bölgesindeki 4 numaralı iş belirlenmiş, daha sonra bu işin
işlendiği 2 numaralı makine yerine, 3 numaralı makine atanarak tek makine mutastonu
gerçekleştirilmiştir.
d) İki Makine Değiştirme Mutasyonu: Bu mutasyonda antikora ait işlerden ikisi rasgele seçilir
ve bu işlerin işlendiği makineler değiştirilerek yerlerine farklı makineler atanır. Yeni elde
edilen antikor öncekinden daha iyi Cenb’a sahip ise eski antikorun yerine bu yeni antikor
koyulur, yoksa eski antikor aynen muhafaza edilir.
Şekil 5.7 İki Makine Değiştirme Mutasyonu Örneği
Şekil 5.7.’de görülen örnekte, önce işaretli gen bölgelerindeki 2 ve 1 numaralı işler seçilmiş,
daha sonra bu işlerin işlendiği 2 numaralı makine yerine, 3 ve 1 numaralı makineler atanmak
suretiyle mutasyon gerçekleştirilmiştir.
5.5
Reseptör Denetimi
Bu aşamada popülasyonda klonlama ve somatik hipermutasyondan sonra geriye kalan en
kötü antikorlara yapılacak işlem seçilir. Bunun için uygulanan prosedür şu şekildedir [47]:
Adım-1: Popülasyondaki en kötü k tane antikoru belirle.
Adım-2: Belirlenen her kötü antikor için şunları yap,
(a) Antikor(k) için rastgele bir gen bölgesi belirle ve gen bölgesini ters çevir, oluşacak yeni
antikorun(Antikor(k+1)) Cenb değerini hesapla. Eğer
Cenb(k+1) ≤Cenb(k) ise Antikor(k)=Antikor(k+1) yoksa (b)’ye git.
(b) Antikor(k)’daki operasyonların işlendiği makineleri yeniden ata. Oluşacak yeni
antikorun(Antikor(k+1))
Cenb
değerini
hesapla.
Antikor(k)=Antikor(k+1) yoksa (c)’ye git.
57
Eğer
Cenb(k+1)
≤Cenb(k)
ise
(c) Antikor(k) için rasgele bir gen belirle ve bu gende bulunan işin işlendiği makineyi değiştir
(tek makine mutasyonu). Oluşacak yeni antikorun(Antikor(k+1)) Cenb değerini hesapla. Eğer
Cenb(k+1) ≤Cenb(k) ise Antikor(k)=Antikor(k+1) Adım-3’e git.
Adım-3: Seçilen antikorda yapılan mutasyonlara rağmen iyileşme sağlanamadıysa, bu antikor
yerine rassal olarak yeniden antikor üret. Yeni üretilen antikor(Antikor(yeni)) daha iyi Cenb
değerine sahipse Antikor(k)= Antikor(yeni) yoksa Antikor(k)= Antikor(k).
5.6
Hafıza Hücreleri
Üretilen her nesilde kullanıcı tarafından belirlenen h tane en iyi antikor hafıza hücresi olarak
saklanır ve popülasyonun en kötü h adet antikorunun yerine koyulur [47].
5.7
İş Rotalaması
Algoritma çalıştırılmadan önce, her işe ait rota, program tarafından hafızaya alınmakta ve
böylece işlerin kendi rotaları dışına çıkması engellenmiş olmaktadır [47].
Bunun için program, probleme ait rota verilerini, başlangıçta belirlenen dosya yapısına göre
almaktadır. İşlerden herhangi biri rotasının dışında atanırsa, işlem süresi 1.000.000 gibi çok
büyük bir sayı ceza olarak atanmakta, böylece rota kontrolü sağlanmaktadır [47].
Ayrıca yapılan her mutasyon işleminden önce, mutasyona uğrayacak antikorun belirttiği
çizelgeye ait rota hafızaya alınmakta, mutasyon gerçekleştikten sonra sadece mutasyon
gerçekleşen genlere ait makine atamaları değişmekte, diğerleri ise korunmaktadır [47].
Tüm bu veriler ışığında, problemi çözmek için oluşturulan akış diyagramı EK B’dedir.
58
BÖLÜM 6
ELE ALINAN PROBLEM VE HESAPLAMA SONUÇLARI
Tez kapsamında atölye tipi çizelgeleme problemi için Yapay Bağışıklık Sistemi algoritması
kodlanmıştır. Algoritmanın programı JavaScript de yazılmış olup, algoritma PC ortamında
koşturulmuştur. EK C, yazılan programın kodları bulunmaktadır[61].
Problem, hazırlanan algoritmaya göre çeşitli boyutlarda olabilmektedir. Bu çalışmada, 10 iş /
10 proses / 10 makine örneği ele alınmaktadır. Problemin çözümüne başlamadan önce
kullanıcıdan; klonlama olasılığı (oranı), mutasyon olasılığı (oranı), popülasyon büyüklüğü
parametresi, hafıza hücresi parametresi ve nesil sayısı parametresi girilmesi talep edilmiştir.
Bu parametrelerin girilmesi ile birlikte hazırlanan program çalıştırılmakta ve sonuçlar
gözlemlenmektedir. Seçilen parametreler ile birlikte program 5 kez koşturulmuştur. GA ile
YBS nin kıyaslamasını daha net görebilmek için, her ikisi içinde parametrelerde bir değişikliğe
gidilmemiştir. Algoritmaların problem çözme sürelerini ve Cmax larını kıyaslamak için Cmax –
zaman grafiği kullanılmıştır.
Program içinde SR ( Success Rate ), ARPD (Average Relative Percantage Deviation), CPU
değerleri hesaplanmaktadır. Bu değerler de bize iki algoritmayı kıyas yapmak için veri
sunmaktadır. SR değeri ile yapılan denemelerde hangi algoritmanın yüzde olarak ne kadar
başarılı olduğu ifade edilmektedir. ARPD ile algoritmanın ortalama bulunan sonuçtan sapma
değeri ifade edilmektedir. CPU da ise algoritmanın ortalama çalışma zamanı bulunmaktadır.
Programın işleyişi içinde kaç klonun mutasyona uğratılacağı klon sayısı x mutasyon olasılığı
forrmülüyle hesaplanmaktadır.
59
Şekil 6.1 İş, makine ve operasyon sayısını girdiğimiz arayüz ve süreçlerin zaman tablosu
60
Şekil 6.2 Algoritma seçme ve parametreleri girme arayüzü
Şekil 6.2’de görüldüğü gibi, problemi çözmek için bir algoritma seçilmektedir. Uygulama için
AIS ( yapay bağışıklık algoritması) seçilmiştir. Kullanıcının sisteme girmesi istenen
parametreleri doldurulmuştur. Problemin kaç kere çözülmesi isteniyorsa bu da
belirtilmektedir.
Çöz dediğimizde, program öncelikle Şekil 6.3’ deki gibi problemin çözümüne yönelik bir Gantt
şeması oluşturmaktadır. Daha sonra ise Cmax – zaman ekseninde algoritmanın bulduğu
çözümleri yerleştirmektedir. ARPD, CPU ve SR değerlerinin sonuçları gözlenmektedir.
61
Şekil 6.3 YBS yaklaşımıyla bulunan çözümün Gantt Şeması
62
Şekil 6.4 YBS yaklaşımıyla bulunan çözümün grafiksel gösterimi
Şekil 6.5 Aynı problemin çözümü için GA yaklaşımının seçimi
63
Şekil 6.6 Aynı problemin çözümü için GA yaklaşımının Gantt Şeması
64
Şekil 6.7 Aynı problem için GA ile YBS yaklaşımlarının karşılaştırıldığı grafiksel gösterim
Şekil 6.7 deki grafikte gözlemlendiği gibi GA ile YBS yaklaşımları 10 iş/ 10 Proses / 10 Makine
problemi için çözüm bulmuştur. Bulunan bu çözümde YBS’ nin, Ga ‘ ya göre daha iyi sonuçlar
verdiği tespit edilmiştir. YBS’ nin çözüm bulma süresi, GA’ ya göre oldukça kısadır. Ayrıca
bulduğu çözümlerin en iyi çözümden sapma oranı GA’ ya göre oldukça kısadır. Bu da YBS’ nin
çizelge problemleri için kullanımını mantıklı kılmaktadır.
Aynı programda daha düşük iş/ proses/ makine sayılı problemlerde GA’nın başarısı YBS’ ye
göre daha iyi olmuştur. Problem boyutu büyüdükçe YBS’ nin başarı oranı artmaktadır [61].
65
BÖLÜM 7
SONUÇ VE ÖNERİLER
Yapılan çalışmada, henüz oldukça yeni bir problem çözme tekniği olan yapay bağışıklık
sistemleri incelenmiştir. Yapay bağışıklık sistemleri, yapay sinir ağları ve genetik algoritmalara
benzer şekilde, bazı biyolojik sistemlerin benzer modelleridir ve birçok alanda uygulama
yapma imkanı bulunmaktadır.
Önerilen problemde GA ile YBS’nin, çözümde ne kadar başarılı oldukları karşılaştırılmıştır. GA,
popülasyonun tamamında arama yapmakta ve lokal optimalliğe takılmadan en iyi aday
çözüme doğru odaklanmaktadır. Yapay bağışıklık algoritmaları ise GA’ya göre daha fazla lokal
optimale ulaşabilmekte fakat global optimuma doğru nispeten daha az bir eğilim
göstermektedirler. Literatürdeki çok amaçlı optimizasyon problemlerinde yapay bağışıklık
algoritmaları iyi sonuçlar vermesine rağmen kombinatoriyel optimizasyon problemleri için
mevcut algoritmaların geliştirilmesi gerekmektedir. Kuşkusuz yapılan az sayıdaki çalışma
yetersiz kalmış, kurulan az sayıdaki algoritma ve çalışmalarda kullanılan nispeten benzer
arama operatörleri benzer sonuçların ortaya çıkmasına neden olmuştur. YBS ise doğal
bağışıklık sistemlerinin uygulanabilir özelliklerinden dolayı desen tanıma, bilgisayar ve ağ
güvenliği ve dinamik çevrede iş çizelgeleme uygulamalarında GA veya diğer başka
yöntemlere göre başarılı olmuştur [60].
Literatürde önerilen algoritmaların içindeki kopyalama, mutasyon vs. gibi süreçlerin
iyileştirilmesi veya önerilen algoritmaların başka tekniklerle melezlenmesi ile daha kaliteli
çözüm veren algoritmalar elde edilebilir. Algoritmaların çalışması sırasında dinamik şekilde
değişen kopyalama ve mutasyon oranlarının zamanla düzenlenerek optimal şekilde
belirlenmesi için öğrenme algoritmaları veya başka evrimsel sistemler (genetik algoritmalar
66
gibi) kullanılabilir. Kötü antikorların tamamen silinmesi yerine tabu aramalarındaki gibi bir
tabu listesi içinde saklanabilecekleri bir prosedür geliştirilebilir.
Bu tez çalısmasında, atölye tipi çizelgeleme problemlerinde işlerin akış zamanlarının
toplamının en küçüklenmesi amaçlanmış olup, bu amaç doğrultusunda Yapay Bağısıklık
Algoritması önerilmiştir. Önerilen modelin diğer çalışmalara göre daha başarılı olmasının
temelinde aşağıda verilen yönün yer aldığını değerlendirilmiştir;
Problemin algoritma kısmında literatürde son yıllarda yer almaya başlayan Yapay Bağışıklık
Algoritması kullanılmıştır. Sezgisel yöntemler küçük çaptaki problemlerde iyi sonuçlar
vermektedir, ancak büyük çaptaki, zor problemlerde tek başlarına yetersiz kalmaktadırlar.
Son yıllarda sezgisel yöntemlerin etkinliklerini arttırmak için, lokal arama operatörleri veya
diğer sezgisel yöntemlerle melez olarak kullanılması fikri ortaya atılmış ve gayette başarılı
sonuçlar vermiştir. Yapay Bağışıklık Sistemi, genetik algoritmanın operatörleri olan
çaprazlama ve mutasyona karşılık, yeniden oluşma ve mutasyon operatörlerine de sahiptir.
Bunun yanında klonlama ve hipermutasyon operatörleri sayesinde etkinliğin arttırılmasında,
ilave lokal arama operatörüne veya başka bir sezgisel yönteme gerek kalmamaktadır.
Sezgisel yöntem olarak Yapay Bağısıklık Sisteminin sahip olduğu özellikler ve algoritmalar
doğrultusunda etkin ve geliştirilmeye açık bir sezgisel yöntem olarak kullanılabileceği
düşünülmektedir.
67
KAYNAKLAR
[1]
Coşkun, A., (2007). “Yapay zeka optimizasyon teknikleri:
Değerlendirmesi”, Doğu Anadolu Bölgesi Araştırmaları, 142-146.
[2]
Nasaroui, O., Dasgupta, D. ve Gonzales, F., (2002). ”The Promise and
Challenges of Artificial Immune System Based Web Usage Mining: Preliminary
Results” Workshop on Web Analytics at Second SIAM International Conference
on Data mining(SDM), Arlington, 11-13 April 2002, VA.
[3]
Karaboğa, D., (2004). Yapay Zeka Optimizasyon Algoritmaları, Atlas YayınDağıtım, İstanbul.
[4]
L. N. De Castro, F. J. Von Zuben, (1999). Artificial Immune Systems: Part-I Basic
theory and applicaitons, Technical Report.
[5]
De Castro,L.N. ve Timmis, J., (2002). “Artificial Immune Systems: A novel
paradigm to pattern recognition”, Artificial Neural Networks in Patttern
Recognition, SOCO-2002, 67-84.
[6]
Ihsıda, Y., (1996). “The Immune System as a Self Identification Process: A
Survey and a Proposal”, Proc. of the ICMAS Int. Workshop on Immunity-Based
Systems: 2-12.
[7]
Dasgupta, D. ve Attoh-Okine, (1997).
Survey”,Proc. of the IEEE SMC, 1: 369-374.
[8]
De Castro, L.N. ve Von Zuben, F.J. (2000a). Artificial Immune Systems: Part II- A
Survey of Applications, Technical Report- RT DCA 02/00, 65.
[9]
Dasgupta, D., Yu, S. ve Majumdar, N.S. (2003). “MILA-Multilevel Immune
Learning Algorithm”,GECCO 2003, LNCS (2723): 183-194.
“Immunity-Based
Literatür
Systems:
A
[10] Özşen, S.,(2008). Biyomedikal Sınıflama Problemleri için Problem Tabanlı Bir
Yapay Bağışıklık Sisteminin Geliştirilmesi ve Biyomedikal Sınıflama
Problemlerine Uygulamanması, Doktora Tezi, Selçuk Üniversitesi, Fen Bilimleri
Enstitüsü, Konya.
68
[11] Engin, O. ve Döyen, A., (2004). “A new approach to solve hybrid flow shop
scheduling problems by artificial immune system”, Future Generation
Computer System 20 (6): 1083-1095.
[12] Engin, O. ve Döyen, A.,(2007). ” A new approach to solve flowshop scheduling
problems by artificial immune system”, Doğuş Üniversitesi Dergisi, 8 (1): 12-27.
[13] Masutti, T.A.S. ve de Castro, L.N., (2009). ” A self-organizing neural network
using ideas from the immune system to solve the traveling salesman problem”,
Information Sciences 179 (10): 1454-1468.
[14] Mobini, M., Mobini, Z. ve Rabbani, M., (2011). “ An artificial Immune
Algortithm for the Project Scheduling Problem under Resource Constraints”,
Applied Soft Computing 11 (2): 1975-1982.
[15] Chung, T.P. ve Liao, C.J., (2013).”An immunoglobulin-based artificial immune
system for solving the hybrid flow shop problem”, Applied Soft Computing 13
(8): 3729-3736.
[16] Balaji A.N. ve Porselvi S., (2014).“ Artificial Immune System Algorithm and
Simulated Annealing Algorithm for Scheduling Batches of Parts based on Job
Avaibility Model in a Multi-Cell Flexible Manufacturing System”,Procedia
Engineering 97, 1524- 1533.
[17] Yuluğkural, Y., (2009). Kitlesel Bireyselleştirmede Ürün Geliştirme için Analitik
Ağ Süreci ve Yapay Bağışıklık Sistemi Yaklaşımları: Bir Model Önerisi, Doktora
Tezi, Kocaeli Üniversitesi, Fen Bilimleri Enstitüsü, Kocaeli.
[18] Tekbaş, H., (2011). Esnek Sipariş Tipi Üretim Sistemlerinde Müşteri
Siparişlerinin Çizelgelenmesi, Doktora Tezi, İstanbul Teknik Üniversitesi, Fen
Bilimleri Enstitüsü, İstanbul.
[19] T’kindt, V. ve Billaut, J., (2006). Multicriteria Scheduling: Theory, Models and
Algorithms, Springer, Berlin.
[20] Pinedo, M. L., (2000). Planning and Scheduling in Manufacturing and Services,
Springer, New York.
[21] Pinedo, M. L., (2008). Scheduling: Theory, Algorithms and Systems, Springer,
New York.
[22] Baker., K. R. ve Trietsch, D., (2009). Principles of sequencing and scheduling,
John Wiley & Sons, New Jersey.
[23] Brucker, P., (2007). Scheduling Algorithms, Springer, Berlin.
[24] Brucker, P. ve Knust, S., (2006). Complex Scheduling, Springer, Berlin.
69
[25] Lopez, P. ve Roubellat, F., (2001). Production Scheduling, John Wiley & Sons.
[26] Herrmann, J. W., (2006). Handbook of Production Scheduling, Springer, New
York.
[27] Stankovic, J. A., Spuri, M., Ramamritham, K. and Buttazzo, G. C., (1998).
Deadline Scheduling For Real-Time Systems, Kluwer Academic Publishers,
Boston.
[28] Graham, R. L., Lawler, E. L., Lenstra, J. K. ve Rinnooy, A. H. G.,
(1979).”Optimization and approximation in deterministic sequencing and
scheduling: A survey”, Annals of Discrete Mathematics, 5: 287–326.
[29] Zhu, X. ve Wilhelm, W. E., (2006).”Scheduling and lot sizing with sequence
dependent setup: A literature review”, IEE Transactions, 38: 987-1007.
[30] Donoso, Y. ve Fabregat, R., (2007). Multi-Objective Optimization in Computer
Networks Using Metaheuristics, Auerbach Publications, Boca Raton.
[31] Tanyaş, M. ve Baskak, M., (2003). Üretim Planlama ve Kontrol, İrfan Yayımcılık,
İstanbul.
[32] Leung, J. Y. T., (2004). Handbook of Scheduling: Algorithms, Models and
Performance Analysis, Chapman & Hall/CRC, Boca Raton.
[33] Blazewicz, J., Ecker, K., Pesch, E., Schmidt, G. ve Weglarz, J., (2007). Handbook
on scheduling: From Theory to Applications, Springer, Berlin.
[34] Michalewicz, Z. ve Fogel, D. B., (2000). How to Solve It: Modern Heuristics,
Springer, Berlin.
[35] Xhafa, F. ve Abraham, A., (2008). Metaheuristics for Scheduling in Industrial
and Manufacturing Applications, Springer, Berlin.
[36] Gonzalez, T. F., (2007). Handbook of Approximation Algorithms and
Metaheuristics, Chapman & Hall/CRC, Boca Raton.
[37] Billaut, J., Moukrim, A. ve Sanlaville, E., (2005). Flexibility and Robustness in
Scheduling, John Wiley & Sons, New York.
[38] Giffler, B. ve Thompson, G. L., (1960). “Algorithms for solving productionscheduling problems”, Operations Research, 8: 487-503.
[39] Palmer, D.S.,(1965). “Sequencing Jobs Through A Multi-Stage Process In The
Minimum Total Time-A Quick Method Of Obtaining A Near Optimum”,
Operational Research Quarterly, 16: 101-106.
70
[40] Campbell, H.G., Dudek, R.A. ve Smith, M.L.,(1970). “A Heuristic Algorithm For
The N-Job M-Machine Sequencing Problem”, Management Science, 16: 630637.
[41] Gupta, J.N.D. ve Dudek, R.A., (1971). “An Optimality Criterion For Flowshop
Schedules”, AIIE Trans., 3: 199-205.
[42] Dannenbring, D.G.,(1977). “An evaluation of flowshop sequencing heuristics”,
Management Science, 23: 1174-1182.
[43] Nawaz, M., Enscore, Jr.E.E. ve Ham, I., (1983). “A Heuristic Algorithm For MMachine, NJob Flowshop Sequencing Problem”, OMEGA, 11: 91-98.
[44] Hundal, T. S. ve Rajgopal, J., (1988). “An Extension Of Palmer's Heuristic For
The Flowshop Scheduling Problem”, International Journal of Production
Research, 26: No. 6.
[45] Ho, J.C. ve Chang, Y.L., (1991). “A New Heuristic For The N-Job, M Machine
Flow- Shop Problem”, European Journal Of Operational Research, 52: 194–202.
[46] Widmer, M. ve Hertz, A.,(1989). “A New Heuristic Method For The Flowshop
Sequencing Problem”, European Journal Of Operational Research, 41: 186-193.
[47] Aladag, A., (2010). Tekrar İşlemeli Esnek Atölye Tipi Çizelgeleme Problemi için
Yapay Bağışıklık Sistemi ile Bir Çözüm Yaklaşımı, Yüksek Lisans Tezi, Eskişehir
Osmangazi Üniversitesi, Fen Bilimleri Enstitüsü, Eskişehir.
[48] Ada, E., Antikorlar: Mutasyonlara Hiç Bu Kadar İhtiyaç Duyulmamıştı,
http://www.acikbilim.com/2012/06/dosyalar/antikorlar-mutasyonlara-hic-bukadar-ihtiyac-duyulmamisti.html,19 Nisan 2016.
[49] De Castro, L. ve Von Zuben, F.,(2001). “ Learning and Optimization Using the
Clonal Selection Principle”, IEEE Transactions on Evolutionary Computation,
Special Issue on Artificial Immune Systems, 6(3): 239-251.
[50] De Castro, L.N. ve Von Zuben, F.J.,(2001). “Immune and Neural Network
Models: Theoretical and Empirical Comparisons”, International Journal of
Computational Intelligence and Applications (IJCIA), 1(3): 239-257.
[51] De Castro, L.N. ve Timmis, J., (2002). “An Artificial Immune Network for
Multimodal Function Optimization”, Proceedings of IEEE Congress on
Evolutionary Computation (CEC’02), 12-17 May 2002, Hawaii, 1: 669-674.
[52] Coello Coello, C.A., (2002). “Theoretical and numerical constraint-handling
techniques used with evolutionary algorithms: a survey of the state of the art”,
Computer Methods in Applied Mechanics and Engineering, 191: 1245-1287.
71
[53] Dasgupta, D.,(2006). “Advances in Artificial Immune Systems”, IEEE
Computational Intelligence Magazine, 1(4): 40-49.
[54] De castro, L.N. ve Timmis, J., (2003). “Artificial immune systems as a novel soft
computing paradigm”, Soft Computing, 7: 526-544.
[55] Forrest, S., Perelson, A.S., Allen L. ve Cherukuri, R., (1994). “Self-Nonself
Discrimination in a Computer”, Proceedings of the 1994 IEEE Symposium on
Research in Security and Privacy, 16-18 May 1994, Oakland/CA, 202- 212.
[56] Timmis, J. ve Neal M.J., (2000). “Investigating the evolution and stability of a
resource limited artificial immune system”, In Proceedings of GECCO - special
workshop on artificial immune systems, 40-41.
[57] De Castro, L.N. ve Von Zuben, F.J., (2000). “An Evolutionary Immune Network
for Data Clustering”, Proceedings of the IEEE Computer Society Press, SBRN’00
(Brazilian Symposium on Neural Networks), 20-22 November 2000, Rio de
Janeiro/RJ, 1: 84-89.
[58] Tay, J.C. ve Wibowo, D.,(2004). ”An Effective Chromosome Representation for
evolving flexible job shop schedules”, GECCO 2004, 210–221
[59] Ho, N.B., Tay, J. C. ve Lai, E. M. K., (2007). ”An effective architecture for
learning and evolving flexible job-shop schedules”, European Journal of
Operational Research, 179: 316–333.
[60] E Engin, O. ve Döyen, A., (2004).” Artificial Immune Systems and Applications in
Industrial Problems”, G.U. Journal of Science, 17(1): 71-84.
[61] Uslu, M.F., (2016). Melez Sezgisel ve Meta-Sezgisel Algoritmalar Kullanarak
Çizelgeleme Problemlerinin Çözümlenmesi, Doktora Tezi, Yıldız Teknik
Ünivrsitesi, Fen Bilimleri Enstitüsü, İstanbul.
72
EK-A
YBS LİTERATÜR İNCELEMESİ TABLOSU
73
KONU
ALT BAŞLIK
Aparat kırılması izlemede değişim
tanıma yaklaşımı
Ticaret sektöründe dolandırıcılık
Petrol kuyusu problemi-petrolün gaz olarak
çıkartılması
Anlık mobil şebekelerde uygunsuz davranış
tespiti
Elektronik örneksel devrelerinin hata tespiti
(AISFD) Dolandırıcılık tespit sistemi
Havayolu taşıtı hata tespit sistemi
YÖNTEM
Negatif seçim algoritması
YIL YAZAR
1999 Dasgupta, Forrest
KN
[164]
CIFD (Dolandırıcılık tespiti için bilgisayar bağışıklık
sistemi),Kendinden-olan-MHC, pozitif seçim, negatif seçim
Örüntü tanıma, kendinden-olan/olmayan ayrımı
2003 Kim, Ong, Overill
[165]
2003 Araujo, Aguilar,
Aponte
2004 Sarafijanovic, Le
Boudec
2004 Amaral, Amaral,
Tanscheit, Pacheco
2004 Tuo, Ren, Liu, Li, Li,
Lei
2004 Dasgupta,
KrishnaKumar,
Wong, Berry
2004 Dasgupta,
KrishnaKumar,
Wong, Berry
2005 Zhi-tang , Yao, Li
2005 Sarafijanovic, Le
Boudec
[166]
Sanal Timus, Kümeleme, Tehlike sinyali, Hafıza detektörleri
Gerçek-değerli Negatif Seçim Algoritması
Negatif seçim, Pozitif seçim, Duruma bağlı muhakeme,
Kendinden-olan/olmayan ayrımı
Gerçek-değerli Negatif Seçim Algoritması, MILD(Çok Seviyeli
bağışıklık öğrenme tespiti)
Anormallik ve
Gerçek-değerli Negatif Seçim Algoritması,
Hata Tespiti Havayolu taşıtı hata tespitinde el ile benzetim
temelli negatif seçim algoritması
74
Bulanık anormallik tespit algoritması
Anlık mobil şebekelerde uygunsuz davranış
tespiti için dinamik kaynak yönlendirme ile
ikincil tepki
Asenkron motorlarda hata tespiti
Anormallik tespiti
Negatif seçim, Bulanık yaklaşım
Klonal seçim, öğrenme
Bağışıklık tespit algoritmasında bağışıklık
eşleşmesi, bağışıklık hafızası ve komplement
operatörlerin incelenmesi
İzinsiz giriş tespitinde bağışıklık sistem
yaklaşımları genel literatür değerlendirmesi
Negatif seçim algoritması, Aşılama operatörü, Komplement
operatörü
Negatif seçim algoritması
Dendritik hücre (antijen sunan hücre)
Genel literatür değerlendirmesi
[167]
[168]
[169]
[170]
[171]
[172]
[173]
2005 Alataş, Aydın, Akın [174]
2005 Greensmith, Aickelin, [175]
Cayzer
2006 Zhang, Leng
[176]
2007 Kim, Bentley,
[177]
Aickelin, Greensmith,
Tedesco, Twycross
ALT BAŞLIK
Süreç anormallik tespiti
Anormallik ve
Hata Tespiti Döner makineler için hata tespiti (Titreşim
tanılama problemi)
Bilgisayarda virüs tanıma problemi
KONU
YÖNTEM
Bütünleştirilmiş doğal ve uyarlamalı yapay bağışıklık sistemleri
AbNET öğrenme algoritması
YIL YAZAR
KN
2007 Twycross
[178]
2008 Strackeljan, Leiviska [179]
75
T hücreleri, Değişim tanıma algoritması, Kendinden-olan/olmayan 1994 Forrest, Perelson,
ayrımı
Allen, Cherukuri
Bilgisayar bağışıklık sistemi prensipleri
Đnsan bağışıklık sisteminin uyarlamalı tepkileri
1997 Somayaji, Hofmeyr,
Forrest
Ağ güvenliği
Negatif seçim algoritması, Kendinden-olan/olmayan ayrımı
1999 Hofmeyr, Forrest
Bilgisayar ağlarında izinsiz giriş tespiti
1999 Kim, Bentley
Negatif seçim algoritması, niche (eksik antikorları tamamlama)
stratejisi
Bilgisayar güvenliği ve izinsiz giriş tespiti
ARTIS(dağıtılmış uyarlamalı sistem), Negatif seçim algoritması, 2000 Hofmeyr, Forrest
Bağışıklık tepkisi, Hipermutasyon, Öğrenme
Bilgisayar ağlarında izinsiz giriş tespiti
Negatif seçim algoritması, ağ trafiği anormallik tespiti
2001 Kim, Bentley
Bilgisayar ağlarında izinsiz giriş tespiti
Klonal seçim algoritması, Negatif seçim operatörü
2001 Kim, Bentley
2002 Balthrop, Forrest,
Küçük boyutlu bilgisayar ağlarında izinsiz
LISYS, Kontrollü, küçük boyutlu veri kümesi, Parametre ve
giriş tespiti
normal davranış değerlendirmesi
Glickman
Bilgisayar ve Bilgisayar ağlarında izinsiz giriş tespiti
Dinamik Klonal seçim algoritması (dynamiCS), Tolerasyon süreci, 2002 Kim, Bentley
Ağ Güvenliği
Aktivasyon eşiği, Yaşam süresi
Bilgi bağışıklık sistemleri
Negatif seçim algoritması, Bilgi filtreleme
2003 Chao, Forrest
Bilgisayar savunma bağışıklık sistemleri
Negatif seçim, Kromozom esaslı evrim modeli (Genetik-Evrimsel 2003 Wu, Dong, Liang,
(CDIS)
algoritma)
McKay
Bilgi teknoloji sistemlerinde güvenlik
Kendinden-olan/olmayan ayrımı, Öğrenme ve Uyarlama, Tepki, 2003 Hofmeyr
Yok etme davranışı
Bilgisayar virüs bağışıklık sistemi
Klonal seçim algoritması, Öğrenme operatörü
2004 Yu, Hou
2005 Dasgupta, Gonzalez
Bilgisayar ağlarında izinsiz giriş tespiti için Genel değerlendirme, Negatif seçim algoritması, Genetik
YBS değerlendirmesi
algoritma, Bulanık yaklaşım
2005 Stibor, Timmis,
Negatif seçim algoritmasının Ağa izinsiz giriş Negatif seçim algoritması, Hamming şekil uzayı
tanıma sistemi olarak değerlendirilmesi
Eckert
Đki aşamalı izinsiz giriş tespit yapısı, Klonal seçim, Negatif seçim, 2006 Xie, Hui
Anlık mobil şebekelerde ağa izinsiz giriş
tespiti yapısı
Ağa izinsiz giriş tanımlama
Çok katmanlı YBS, Negatif seçim, Pozitif seçim
2006 Middlemiss
[43]
[180]
[181]
[182]
[183]
[184]
[185]
[186]
[187]
[188]
[189]
[190]
[191]
[192]
[193]
[194]
[195]
ALT BAŞLIK
YÖNTEM
Ağa izinsiz giriş denetiminde hizmet dışı
Negatif seçim algoritması, Đki aşamalı yapı önerisi
bırakma saldırıları için güvenlik yapı önerisi (Öğrenme/eğitim aşaması, Tanıma aşaması), Öklit uzaklık
eşleşmesi
Kablosuz yerel ağlarda saldırı tespiti ve
Negatif seçim algoritması, Ağ tabanlı negatif seçim-Kullanıcı
Bilgisayar ve
performans analizi
tabanlı negatif seçim kıyaslaması
Ağ Güvenliği
YBS esaslı bilgisayar ağları izinsiz giriş tespit Negatif seçim algoritması, Genetik ve Parçacık sürü hassasiyet
sistemlerinde hassasiyet analizi için detektör analizcileri (red teams)
Bilgisayar virüs tanıma problemi (Malware Sinir ağları, Detektörler, Öğrenme
tanıma aracı)
Görev dağıtım problemi
Uyarlamalı sınıflandırıcı, Kendinden-olan/olmayan ayrımı,
Dağıtılmışlık
Kestirimci çizelgelemede zeki ajan kullanımı Bağışıklık tepkisi, Bağışıklık hafızası, zeki ajanlar
KONU
Esnek akış tipi üretim ortamında çizelgeleme Bağışıklık algoritması, Genetik algoritma, Evrimsel hesaplama
Çizelgeleme
76
E-Ticaret
Karar Destek
Sistemleri
Kontrol
Sınav ve ders çizelgeleme problemi
Çoklu işlemci çizelgeleme
Klonal seçim algoritması, Negatif seçim algoritması, Bağışıklık
Ağı
Hücresel otomasyon, Genetik algoritma, YBS, Öğrenme
YBS kullanımı ile çizelgeleme
Genel yöntem değerlendirmesi
Sipariş tipi çizelgeleme problemi (Tez)
Pozitif seçim algoritması, Klonal seçim algoritması, Genetik
algoritma
AIDS (Bağışıklık ticaret sistem yapısı), Klonal seçim algoritması
Ajan katkısı, Uyarlanabilirlik, Kendi kendini denetleme,
Özgünlük, Çeşitlilik
Örüntü tanıma, Sınıflandırma sistemi, Bulanık ağırlıklı ön işleme
Klonal seçim algoritması, Ajan katkısı
Negatif seçim algoritması, Kendinden-olan/olmayan ayrımı
Çok ajanlı sistem, Kendinden-olan/olmayan ayrımı
Bağışıklık ağ algoritması, Pozitif seçim algoritması, Negatif seçim
algoritması, Klonal seçim algoritması
Sanal pazar uygulaması
Çok ajanlı karar destek sistemi
Tıbbi karar destek sistemleri
Çok bileşenli idareci kontrol yapısı
Devre test yapısı
Dağıtılmış çok ajanlı kontrol yapısı
Kentsel trafik kontrolü
YIL YAZAR
2007 Shafiq, Farooq
KN
[196]
2007 Akbal, Ergen
[197]
2007 Dozier, Brown,
Hurley, Cain
2008 Bezobrazov
[198]
1999 Russ, Lambert, King,
Rajan, Reese
2001 King, Russ, Lambert,
Reese
2003 Alisantoso, Khoo,
Jiang
2006 Malim, Khader,
Mustafa
2006 Swiecicka,
Seredynski, Zomaya
2006 Darmoul, Pierreval,
Gabouj
2008 Bondal
[200]
[199]
[201]
[202]
[203]
[204]
[205]
[206]
2004 Cheng, Wang, Chen [207]
1998 Dasgupta
[208]
2007
2004
2005
2006
2006
Polat, Güneş
Lau, Ng
Souza, Freire, Assis
Lau, Wong
Negi
[209]
[210]
[211]
[212]
[213]
KONU
Kontrol
ALT BAŞLIK
Dengeleyici kontrol birimi
Kontrol sisteminin güvenlik ve sağlamlığını
bağışıklık yaklaşımıyla arttırma önerisi
Zeki malzeme taşıma sistemleri için otomatik
kontrollü taşıtlar
Veri kümeleme
Uyarlamalı küme oluşumu
Kümeleme
Gürültülü veri kümeleme- TECNOSTREAMS (Gürültülü veri akımında ilgili
kümelerin izlenmesi)
Dağıtılmış nesiller için toplanma algılayıcı
yöntemi
Gen ifadeli veri kümeleme atılımları
77
Kentsel trafik kontrolünde kümeleme
FAISC(Bulanık yapay bağışıklık sistemi
kümeleme yaklaşımı)
Zamana bağlı optimizasyonda uyarlanabilirlik
geliştirme
Zamana bağlı optimizasyon için bağışıklama
modelleri
Biçimsel bağışıklık ağ sisteminin biçimsel
Öğrenme ve proteinleri arasındaki ağ etkileşimlerinin
Optimizasyon analizi
iNexus (Biyolojik esaslı politika uzlaşması)
modeli ile iletişim yazılımı uyarlanabilirlik
çalışması
Çok modelli fonksiyon optimizasyonu
YÖNTEM
Uyarlamalı bağışıklık sistemi
Üç kademeli YBS modeli, Kendinden-olan/olmayan ayrımı,
Öğrenme
Tamamen dağıtılmış çok ajanlı sistem
YIL YAZAR
2006 Chen, Zhou, Wei
2006 Cai, Gong
KN
[214]
[215]
2007 Lau, Wong, Lee
[216]
(aiNet) Evrimsel bağışıklık ağ modeli
2000 De Castro,
Von Zuben
2002 Wierzchon,
Bağışıklık ağları, Klonal seçim algoritması, Somatik
hipermutasyon
Kuzelewska
Ölçeklendirilebilir bağışıklık sistem modeli, Bağışıklık ağ modeli 2003 Nasraoui, Uribe,
Coronel, Gonzalez
Kendinden-olan/olmayan ayrımı, Bağışıklık mutasyonu, Klonlama 2005 Yin
Hiyerarşik kümeleme, HaiNet (Hiyerarşik yapay bağışıklık ağı)
Bağışıklık ağ modeli, Klonal seçim algoritması
Bağışıklık ağ modeli, Bulanık yaklaşım
[45]
[217]
[218]
[219]
2005 Bezerra, Cançado,
[220]
Menossi, De Castro,
Von Zuben
2006 Jia, Yang, Kong, Lin [221]
2007 Liu, Jin, Bie, Gao
[222]
Alternatif bağışıklık uyarlama sistemi(Sais-Basit YBS),
Değerlendirme, Klonal seçim, Takviye
(Yasais- Diğer bir basit YBS)
1999 Gaspar, Collard
[223]
2000 Gaspar, Collard
[224]
FIS(biçimsel bağışıklık sistemi), Bağışıklık ağları, Biçimsel Thücreleri, Biçimsel B-hücreleri, Biçimsel proteinler
2000 Taranakov, Dasgupta [225]
Bağışıklık ağ modeli, öğrenme
2000 Suzuki, Yamamoto
[226]
CLONALG (evrimsel klonal seçim algoritması), optaiNet
(optimizasyon amaçlı bağışıklık ağ modeli)
2002 De Castro, Timmis
[38]
KONU
ALT BAŞLIK
Klonal seçim prensibi ile öğrenme ve
optimizasyon
Uyarlamalı makine öğrenme modeli
YÖNTEM
Klonal seçim prensibi, Evrimsel algoritmalar, CLONALG
YIL YAZAR
2002 De Castro,
Von Zuben
2002 Joshi, Natarajan
[227]
2002 Coello Coello
[39]
2003 Coello Coello
2003 Walker, Garrett
2003 Cruz Cortes,
Coello Coello
2003 Osmera, Lacko, Petr
2003 Du, Jiao, Liu
[228]
[229]
[230]
2003 Nasraoui, Gonzalez,
Cardona, Rojas,
Dasgupta
AIAMOO (YBS çok amaçlı optimizasyon algoritması), ELECTRE 2004 Li, Zhu, Mao
[233]
Başvuru yazısı, Genel değerlendirme
2004 Zitzler, Laumanns,
Bleuler
2004 Liu, Jiao, Du
[235]
2004 Li, Wu, Mao
[237]
2004 Wang, Gao, Ovaska
[238]
2004 Timmis, Edmonds,
Kelsey
2004 Acan
[239]
Kendinden-olan/olmayan ayrımı, Birincil ve ikincil bağışıklık
tepkisi, Klonal seçim algoritması, Baskılayıcı T-hücreleri
Gelişme seviyesi hakkında genel değerlendirme
Evrimsel algoritmalarla kullanılan teorik ve
nümerik kısıtlandırma teknikleri
Çok amaçlı optimizasyon için meta sezgiseller Çok amaçlı sezgisel ve meta sezgisel yaklaşımlar
Dinamik fonksiyon optimizasyonu
Klonal seçim, Evrimsel stratejiler (performans kıyaslaması)
Çok amaçlı optimizasyon
Klonal seçim prensibi, İkincil hafıza
Çizelgelemede paralel evrimsel algoritmalar
Uyarlanabilir çok-klonlu programlama
algoritması
Dinamik denetçisiz öğrenme
Öğrenme ve
Optimizasyon
78
Çok amaçlı optimizasyon problemi için
çözümü önerisi
Evrimsel çok amaçlı optimizasyon
AISCA(Uyarlamalı bağışıklık klonal seçim
algoritması)
Asansör trafiği bölgelendirme
YBS optimizasyon algoritmalarının
değerlendirilmesi
Fonksiyon optimizasyonunda performans
değerlendirme
Klonal seçim algoritmasında operatör
çeşitliliği değerlendirmesi (frekans dağılım
problemi)
Genetik algoritma, Klonal seçim, Negatif seçim
Klonal seçim algoritması, Çok-klonlu operatör, Öğrenme
Ölçeklendirilebilir YBS, Bağışıklık ağ modeli, Yapay tanıma
topları, Klonal seçim algoritması
Klonal seçim algoritması, Hafıza hücreleri, Evrimsel strateji
Klonal seçim, Bağışıklık baskılaması, Öğrenme, Evrimsel
algoritma, Dinamik asansör trafiği bölgeleme modeli
AIO (Yapay bağışıklık optimizasyonu), Evrimsel algoritma,
Klonal seçim algoritması, Bağışıklık ağları
Opt-aiNet, Hibrid genetik algoritma, B-hücre algoritması (Klonal
seçim)
AISMM(Mutasyon çeşitliliği ile YBS), CLONALG (GenetikKlonal seçim algoritması)
KN
[42]
[231]
[232]
[234]
[236]
[240]
KONU
ALT BAŞLIK
Global optimizasyon
Asansör trafiği dinamik bölgelendirme
Kayıp minimizasyonu ve voltaj arttırmada
statik değişken düzenleyici planlama
(AIRS)Bağışıklık esaslı denetçili öğrenme
algoritması
Sağlık alanında optimal kontrol
Çok amaçlı optimizasyon
Çok amaçlı optimizasyon
79
Makine öğrenme bakış açısıyla LISYS (İzinsiz
giriş tespiti için) değerlendirmesi
Entegre süreç planlama ve çizelgelemede
Öğrenme ve performans optimizasyonu
Optimizasyon Kullanıcı alışkanlıkları esasına dayalı ev oto
kontrol sistemleri için makine öğrenme
Bağışıklık teorileri ve onların programlanma
yöntemleri
YÖNTEM
Genetik algoritma, Paralel genetik algoritmalar, Kendindenolan/olmayan ayrımı
Yapay Bağışıklık Algoritması (AIA), Kendinden-olan/olmayan
ayrımı, Klonal seçim algoritması
Klonal seçim algoritması
Bağışıklık ağ modeli, Denetçili öğrenme, Klonal seçim
algoritması, Sinir ağları
Genetik algoritma, YBS algoritmaları
MOEA, Klonal seçim algoritması, VAIS (vektör YBS)
Evrimsel algoritma, Klonal seçim algoritması, İkincil popülasyon
LISYS, Makine öğrenme, Đzinsiz giriş tespit problemi
Klonal seçim algoritması, Bulanık mantık kontrolörü, diğer
yöntemlerle kıyaslama
Bağışıklık tepki hesaplaması, İkincil bağışıklık tepki hesaplaması
Genetik programlama, YBS, Klonal seçim algoritması
(TASOM) Zaman uyumlu kendini örgütleyen Yapay sinir ağları, Klonal seçim algoritması
planlama
Hava muharebesi insansız manevra sistemi
Kemik iliği modelleri, Negatif seçim algoritması, Klonal seçim
algoritması, Bağışıklık ağ modeli
Ekonomik yük dağıtımı
Klonal seçim algoritması
Çok amaçlı optimizasyon problemi
(Hiperspektral görüntülerde boyutsal
indirgeme)
Çok amaçlı optimizasyon ve YBS
DT(Tehlike teorisi), Klonal seçim algoritması
Genel inceleme ve değerlendirme
YIL YAZAR
2004 Coello Coello,
Cruz Cortes
2004 Li, Mao, Wu
KN
[241]
2004 Ihsak, Abidin, Abdul
Rahman
2004 Watkins, Timmis,
Boggess
2005 McCall
2005 Freschi, Repetto
2005 Coello Coello,
Cruz Cortes
2005 Glickman, Balthrop,
Forrest
2006 Chan, Kumar, Tiwari
[243]
2006 Wang, Yin, Dong
[250]
2006 Musilek, Lau,
Reformat,
Wyard-Scott
2006 Shah-Hosseini
[251]
2007 Kaneshige,
Krishnakumar
2007 Panigrahi, Yadav,
Agrawal, Tiwari
2008 Su, Liu,
Wang, Jian
[253]
2009 Freschi, Coello
Coello, Repetto
[256]
[242]
[244]
[245]
[246]
[247]
[248]
[249]
[252]
[254]
[255]
KONU
ALT BAŞLIK
Uydudan görüntü özelliği bölümleme
AISIMAM (Mayın tanıma için zeki çok ajanlı
model)
Örüntü tanıma
Şifreli mesaj tanıma yöntem önerisi
Örüntü tanıma
YÖNTEM
Bağışıklık ağ teorisi, Negatif seçim algoritması
Çok ajanlı sistem, Bağışıklık ağ modeli, Kendinden-olan/olmayan
ayrımı, Hafıza
Negatif seçim algoritması, Klonal seçim algoritması, Bağışıklık ağ
modeli
Negatif seçim, Benzerlik olgunlaşması, Genetik algoritma
CNN-UM (Üniversal tezgah esaslı hücresel
sinir ağları) ile görsel uygulamalar
Desen nesnesi tanıma
Kemik iliği modeli, Timus modeli, Klonal seçim algoritması
Ultrasonik hata tanıma
Çok işlemcili sistemlerin kıyaslama esaslı
teşhisi
Diş ile ilgili görüntülerin analizi
Klonal seçim algoritması, Hipermutasyon
Klonal seçim algoritması
Klonal seçim algoritması, Hiyerarşik yapı
Negatif seçim algoritması, V-detektörler
Elektrik sistemlerinde voltaj kararlılık tahmini Klonal seçim prensibi, Yapay sinir ağları
80
Robotik
Rotalama/
Taşımacılık
Metin bağımlı konuşmacı tanıma problemi
Negatif seçim algoritması
Örüntü tanıma
Bağışıklık tepkisi, Bağışıklık hücreleri, ikili gösterim
Grup davranış stratejisi esaslı işbirlikçi kontrol DARS(Dağıtılmış otomatik robot), Klonal seçim algoritması,
seçim
Bağışıklık ağ modelinde T-hücreleri
Çok robotlu özerk dayanışma metodu
Bağışıklık ajan modeli, Bağışıklık ağ modeli
Çok ajanlı robot sistemleri
Klonal seçim algoritması, Davranış uzlaştırma, Öğrenme
Mobil robot simülatörü
Üç aşamalı bağışıklık modeli(Doğuştan gelen bağışıklık,
Kazanılmış bağışıklık, Paralel hesaplama)
Robot futbol rekabeti için işbirlikçi stratejiler Bağışıklık ağ modeli
Mobil robot tepkisel gezinimi
RIN(tepkisel bağışıklık ağı), Uyarlamalı sanal hedef metodu
TSP(gezgin satıcı) problemi çözüm yaklaşımı Genetik algoritma, aşılama metodu
Stratejik davranış esaslı zeki taşıma sistemleri Ajan yapısı, Kontrol mekanizması
YIL YAZAR
1997 McCoy, Devarajan
2002 Sathyanath, Şahin
KN
[257]
[258]
2002 De Castro, Timmis
[259]
2003 Jackson, Gunsch,
[260]
Claypoole Jr., Lamont
2004 Cserey, Falus, Porod, [261]
Roska
2004 Zheng, Zhang,
[262]
Nahavandi
2005 Liu, Wang
[263]
2005 Elhadef
[264]
2006 Ji, Dasgupta, Yang,
Teng
2006 Suliman, Abdul
Rahman, Musirin
2006 Faraoun, Boukelif
2008 Wang, Gao, Li, Tang
1999 Jun, Lee, Sim
[265]
2005 Gao, Wei
2005 Singh, Nair
2005 Gong, Xi, Cai
[270]
[271]
[272]
2006 Luh, Wu, Liu
2008 Luh, Liu
2003 Keko, Skok, Skrlec
2004 Lau, Wong
[273]
[274]
[275]
[276]
[266]
[267]
[268]
[269]
KONU
Rotalama/
Taşımacılık
ALT BAŞLIK
MDVRP(Çok istasyonlu araç rotalama
problemi), Elektrik dağıtım ağı rotalama
problemi
Çok noktaya gönderim rotalama problemi
YÖNTEM
Genetik algoritma, Kendinden-olan/olmayan ayrımı
YIL YAZAR
2004 Keko, Skok, Skrlec
KN
[277]
81
Genetik algoritma, Ağaç kodlama yapısı, Dinamik kontrol geçiş
2005 Fu, Li
[278]
operatörü, Mutasyon operatörü
[279]
Başlatıcı içerimi ve başlatıcı negatif DNA
Birincil ve ikincil bağışıklık tepkisi, Bağışıklık ağ modeli, Somatik 1995 Cooke, Hunt
sıralama tanımlaması
hipermutasyon, Öğrenme
Kendinden-olan/olmayan ayrımı
Kendinden-olan/olmayan ayrımı, DNA hesaplama
1997 Deaton, Garzon,
[280]
Rose, Murphy,
Stevens Jr.,
Franceschetti
AIRS model önerisi
2002 Watkins, Boggess
[281]
Kaynak kısıtlı YBS, ARB(yapay tanıma topları), Kendindenolan/olmayan ayrımı
Çok sınıflı problemlerin sınıflandırılması
AIRS ve diğer yöntemlerin karşılaştırılması
2002 Goodman, Boggess, [282]
Watkins
T-hücreleri, B-hücreleri, Klonal seçim algoritması
2003 Secker, Freitas,
[283]
AISEC (YBS esaslı E-mail sınıflandırma
Sınıflandırma yöntemi)
Timmis
Anlamsal doküman sınıflandırma
Hiyerarşik yapı, AIRS
2003 Greensmith, Cayzer [284]
YBS ile dağıtılmış algılayıcılar vasıtasıyla
DAIS (dağıtılmış YBS), Negatif seçim algoritması, Pozitif seçim 2004 Esslinger, Lamont, [285]
biyolojik ajanların tanımlanması
algoritması, Benzerlik olgunlaşması
Abdel-Aty-Zohdy
2005 Polat, Şahan, Kodaz, [286]
Karaciğer rahatsızlığı teşhisinde sınıflandırma AIRS
yöntemi
Güneş
2006 Graaff, Engelbrecht [287]
Sınıflandırma problemlerinde GAIS
GAIS(Genetik YBS), Negatif seçim algoritması, Kendindenuygulaması
olmayan detektörler, Hafıza
Biyolojik esaslı iki algoritmanın kıyaslaması DCA(Dendritik hücre algoritması), SOM(Kendini örgütleyen plan) 2008 Greensmith,
[288]
Feyereisl, Aickelin
2008 Wang, Kuo, Lin,
[289]
Beyin dokusu manyetik rezonans görüntüleme Klonal seçim algoritması
sınıflandırması
Chang
PMR(Özel mobil radyo) kodlama problemi ABNET(Bağışıklık esaslı Boolean yarışmalı sinir ağı modeli),
2004 Şahan, Ceylan, Güneş [290]
Yapay sinir ağları, Bağışıklık ağ teorisi
Sinyal İşleme
Negatif seçim, Bağışıklık ağ teorisi
2005 Kalınlı, Karaboğa
[291]
Dijital sinyal işleme-Sınırsız uyarı tepki
filtresi tasarımı
KONU
ALT BAŞLIK
Film öneri sistemi
Web sitesi öneri sistemi
Film öneri sistemi
Tavsiye/ Öneri
Sistemleri
Gazete makalesi öneri sistemi
Web portal haberleri öneri sistemi
EKG ritim bozukluğu teşhisi
Kalp hastalığı teşhisi
Tıbbi Teşhis
Boyun arteri Doppler sinyallerinden damar
tıkanıklığı teşhisi
82
Hepatit hastalığı tahmini
Kanser teşhisi
Bilgisayar destekli tıbbi teşhis sistemi
Veri analizi
Zamanla değişen verilerde sürekli analiz
Mayın tanıma problemi
YBS algoritmalarının Web kullanımlı
Veri Analizi / madencilik için taahhüt ve zorluklar
Veri
IFRAIS (Bulanık kural başlatışlı Veri
Madenciliği madenciliği)
Artımsal güncelleme algoritması
YÖNTEM
Đşbirlikçi filtreleme, Antikor ağ modeli
Hiyerarşik bilgi, Đşbirlikçi filtreleme, Bağışıklık ağ teorisi
Đşbirlikçi filtreleme, Bağışıklık ağ algoritması, Uyarlanabilir
antikor havuzu
Klonal seçim algoritması, Bağışıklık ağ modeli, Tehlike teorisi
Đşbirlikçi filtreleme, RECAIS (Klonal seçim algoritması,
Bağışıklık ağ modeli, Tehlike teorisi modeli)
AIRS, Bulanık ağırlıklı ön işleme
AIRS, Bulanık ağırlıklı ön işleme, k-katlı bağımsız geçerlilik
sınaması
FFT-W(Hızlı Fourier Dönüştürücü-Aldatma metodu), Bağışıklık
tepkisi, AWAIS(Özellik ağırlıklı YBS), Ağırlıklı Öklid Uzaklık
ölçüsü
AIRS, PCA(Temel bileşen analizi)
AIRS, ARB(yapay tanıma topları)
AIRS, PCA(Temel bileşen analizi)
Bağışıklık ağ modeli, B-hücreleri, PCA(Temel bileşen analizi)
Bağışıklık ağ modeli, SSAIS(kendi kendini sabitleyen YBS)
AISIMAM (YBS esaslı ajan modeli), Klonal seçim algoritması
AINE (Kaynak kısıtlı YBS), ARB(yapay tanıma topları)
YIL
2002
2002
2005
YAZAR
Cayzer, Aickelin
Morrison, Aickelin
Cayzer, Aickelin
KN
[292]
[293]
[294]
2005 Mihaljevic, Cavrak,
Zagar
2006 Mihaljevic, Cvitas,
Zagar
2006 Polat, Şahan, Güneş
2006 Polat, Güneş, Tosun
[295]
2007 Latifoğlu, Şahan,
Kara, Güneş
[299]
Polat, Güneş
Khelil, Benyettou
Polat, Güneş
Timmis, Neal, Hunt
Neal
Sathyanath, Şahin
Nasraoui, Dasgupta,
Gonzalez
2004 Alves, Delgado,
Lopes, Freitas
2006 Su, Gu, Li
[300]
[301]
[302]
[303]
[304]
[305]
[306]
2007
2008
2008
2000
2002
2002
2002
Sıralı içerim prosedürü, Kural değerlendirme prosedürü, Klonal
seçim algoritması
ARM(Çağrışım kural madenciliği), Kendinden-olan/olmayan
ayrımı, Hafıza hücreleri
2008 Secker, Freitas,
Web içerikli madencilik ile Đlgi çekici bilgileri AISIID, Bağışıklık hücreleri, Klonal seçim algoritması, Đki-sinyal
Timmis
açığa çıkarma
yaklaşımı
1997 Dasgupta
Teorik Katkı / Hesaplamaya dayalı bakış açısıyla Benzerlik / Yapay sinir ağları, Yapay bağışıklık sistemleri
Farklılık değerlendirmesi
Genel
Uygulama
Bağışıklık esaslı sistemler/Genel
Bağışıklık ağ modelleri, Negatif seçim algoritması, Bazı uygulama 1997 Dasgupta,
Örnekleri
değerlendirme
örnekleri
Attoh-Okine
[296]
[297]
[298]
[307]
[308]
[309]
[310]
[311]
KONU
ALT BAŞLIK
YBS-I. Bölüm:Temel Teori ve Uygulamalar
YBS-II. Bölüm: Uygulamalar için genel
inceleme
Klonal seçim algoritması ve mühendislik
uygulamaları
Yapay bağışıklık sistemlerine giriş
aiNet ve Yapay sinir ağları
YÖNTEM
Đnsan bağışıklık sistemi, Yapay bağışıklık sistemi, Temel
uygulama alanları
Yöntemin katkıda bulunduğu alanlar ve kullanılan algoritmalar
Klonal seçim algoritması-genel inceleme
Genel açıklamalar, Mevcut uygulamalar ve yöntemin gelecekteki
uygulama potansiyeli
Teorik ve deneysel karşılaştırmalar
YIL YAZAR
1999 De Castro,
Von Zuben
2000 De Castro,
Von Zuben
2000 De Castro,
Von Zuben
2001 De Castro
83
2001 De Castro,
Von Zuben
Bağışıklık mühendisliği
Kişisel değerlendirme ve açıklama
2002 De Castro
YBS- değerlendirme
Mevcut durum değerlendirmesi
2003 Dasgupta, Ji,
Gonzalez
Teorik Katkı / Yeni hesaplamalı araştırmalarda potansiyel Biyolojik etkilenimli hesaplama, Negatif seçim algoritması, Klonal 2003 Iqbal, Maarof
Genel
konuların değerlendirilmesi
seçim algoritması
Uygulama
YBS: Yeni bir kolay hesaplama yaklaşımı
YBS algoritmaları değerlendirmesi
2003 De Castro, Timmis
Örnekleri
YBS için kapsamlı inceleme ve değerlendirme YBS algoritmaları değerlendirmesi
2004 Timmis, Knight,
De Castro, Hart
Yapay bağışıklık ağları dinamikleri
Bağışıklık ağları, aiNet, Niteliksel modelleme
2004 De Castro
Endüstriyel problemlerde YBS uygulamaları Genetik algoritma, Negatif seçim algoritması, Klonal seçim
2004 Engin, Döyen
algoritması, YBS uygulama alanları
2004 De Castro
Yapay bağışıklık sistemlerinin mühendislik Yaşayan problemler, YBS esaslı mevcut çözüm yaklaşımları
uygulamaları
Bağışıklık sisteminin modellenmesi
Çok ajanlı sistemler, Dağıtılmış YBS, Bağışıklık esaslı bilgisayar 2004 Monroy, Saab,
sistemleri
Godinez
Deterministik (rasgele olmayan) Dendritik
Algoritma çıktılarının değerlendirilmesi için yeni bir ölçü önerisi 2004 Greensmith, Aickelin
hücre algoritması
ve kıyaslama
YBS alanındaki zorluklar
Değerlendirme yazısı
2005 Timmis
Doğal bağışıklık sistemi
Komplement sistemin rolü
2005 Rus, Cudrici,
Niculescu
KN
[30]
[312]
[313]
[314]
[37]
[315]
[316]
[317]
[41]
[318]
[319]
[36]
[320]
[321]
[322]
[323]
[31]
KONU
ALT BAŞLIK
YBS alanındaki mevcut gelişmeler
YÖNTEM
Yapay bağışıklık sistem teorisi, Bağışıklık ağ modelleri, YBS
alanındaki mevcut uygulamalar için değerlendirme
YBS’deki gelişmeler
Farklı uygulama alanlarında yapılmış çalışmaların kronolojik
Teorik Katkı /
değerlendirmesi
Genel
Doğal hesaplama temelleri
Genel inceleme ve tanıtım, Bağışıklıktan etkilenmiş hesaplama
Uygulama
yaklaşımları ve problem çözme yöntemleri
Örnekleri
Tehlike teorisi - anerji modelleme
Algoritmalar, Tasarım, Değerlendirme
Yapay bağışıklık ağları
Modeller ve uygulamalar
Sezgisel karar verme için yeni bir yaklaşım YBS algoritmaları, Açıklayıcı problemler
YIL YAZAR
2006 Liu, Wang, Gao
KN
[324]
2006 Dasgupta
[40]
2007 De Castro
[325]
2007 Cayzer, Sullivan
[326]
2008 Shen, Gao, Bie
[327]
2008 Greensmith, Aickelin [328]
84
EK-B
GELİŞTİRİLEN YBS ALGORİTMASININ AKIŞ DİYAGRAMLARI
85
86
YBS algoritmasının genel akış diyagramı [47]
87
YBS algoritmasının klonlama mekanizması [47]
88
Geliştirilen YBS Algoritmasındaki Reseptör Denetimi Mekanizması [47]
89
EK-C
YBS PROGRAMI KOD YAZILIMI
function Gene(){
this.jobID;
this.processID;
this.machineID;
this.processingTime;
this.setupTime;
//gene bittikten sonra makespan hesabinda yerlestiriyoruz. gomulu
oluyor.
//eger sonradan dizilim degistirilirse olmaz
this.initWithVariable = function(jobID,processID,machineID,processingTime){
}
}
this.jobID = jobID;
this.processID = processID;
this.machineID = machineID;
this.processingTime = processingTime;
function Antibody(){
this.ecosystem;
this.genotype;
this.makespan = 0;
this.flowtime; //flowtime, flowshop cozumler icin gecerli
this.index;
this.jobNumber;
//problemdeki is sayisi
this.processNumber;
//problemdeki proses sayisi
this.machineNumber;
//problemdeki makine sayisi
this.machine;
this.order;
90
// verilen ecosystem ile random cozum olusturur
this.initWithProblem = function(problem){
var job;
var machine;
var process;
// random urettigim o anki siradaki is
// random urettigim siradaki is-prosesin calisacagi makine
// isin siradaki islenmemis prosesi
this.ecosystem = problem;
this.problem = problem;
this.jobNumber = problem.jobNumber;
this.processNumber = problem.processNumber;
this.machineNumber = problem.machineNumber;
this.genotype = new Array();
// olusturdugumuz genlerin dizisi
var jobIndex = new Array(problem.jobNumber);
kalmis oldugum
this.index = new Array(problem.jobNumber);
// hangi isin hangi prosesinde
this.machine = new Array(problem.jobNumber*problem.processNumber);
this.order = new Array(problem.jobNumber*problem.processNumber);
for(var i=0;i<problem.jobNumber;i++){
}
jobIndex[i] = 0;
this.index[i] = new Array();
for(var i=0;i<problem.jobNumber*problem.processNumber;i++){
var toplam = 0;
var order = 0;
for(var j=0;j<problem.jobNumber;j++){
toplam += jobIndex[j];
}
if(toplam == problem.processNumber*problem.jobNumber)
break;
// prosesleri bitmemis random is belirleniyor.
do {
job = Math.floor(Math.random() * problem.jobNumber);
sorunlu
}
91
//todo bu random da
while(jobIndex[job]>=problem.processNumber);
process = jobIndex[job];
//console.log(problem);
// random makine belirleniyor
do {
machine = Math.floor(Math.random() * problem.machineNumber);
order
=
job*problem.processNumber*problem.machineNumber+process*problem.machineNumber
+machine;
}
while(problem.valueList[order]==-1);
//todo islerin makinede
calismadigi case tekrar tasarlanmali
order
=
job*problem.processNumber*problem.machineNumber+process*problem.machineNumber
+machine;
var tempGene = new Gene();
tempGene.initWithVariable(job,process,machine,problem.valueList[order]);
this.order[i]=job;
// kromozomun ilk kismina yazdik
this.machine[job*problem.processNumber + process] = machine;
// kromozomun
ikinci kismina yazdik
this.genotype.push(tempGene);
// gen dizisine geni ekledik
jobIndex[job]++;
// ele aldigimiz isin, proses index'ini 1
artirdik
}
}
this.initWithVariable = function(machine,order,ecosystem){
//console.log("hello");
this.ecosystem = ecosystem;
this.jobNumber = ecosystem.jobNumber;
this.processNumber = ecosystem.processNumber;
this.machineNumber = ecosystem.machineNumber;
this.genotype = new Array();
var jobIndex = new Array(ecosystem.jobNumber);
this.machine = new Array(ecosystem.jobNumber*ecosystem.processNumber);
this.order = new Array(ecosystem.jobNumber*ecosystem.processNumber);
92
for(var i=0;i<ecosystem.jobNumber;i++){
}
jobIndex[i] = 0;
//console.log(ecosystem);
for(var i=0;i<ecosystem.jobNumber*ecosystem.processNumber;i++){
var machineOrder = order[i]*ecosystem.processNumber + jobIndex[order[i]];
var timeOrder = order[i]*ecosystem.processNumber*ecosystem.machineNumber +
jobIndex[order[i]]*ecosystem.machineNumber + machine[machineOrder];
var tempGene = new Gene();
tempGene.initWithVariable(order[i],jobIndex[order[i]],machine[machineOrder],ecosystem.v
alueList[timeOrder]);
this.genotype.push(tempGene);
jobIndex[order[i]]++;
this.order[i]=order[i];
this.machine[i]=machine[i];
}
//console.log(this.genotype.length);
if(this.check==false){
}
}
console.log(this);
alert("error in ga.js:initwithvariable");
this.check = function(){
var processOrderList = new Array(this.jobNumber);
for(var i=0;i<this.jobNumber;i++){
processOrderList[i] = 0;
}
for(var i=0;i<this.order.length;i++){
var job = this.order[i];
var process = processOrderList[job];
processOrderList[job]++;
var machine = this.machine[job*this.processNumber+process];
93
if(job!=this.genotype[i].jobID
||
machine!=this.genotype[i].machineID){
}
}
}
process!=this.genotype[i].processID
||
return false;
return true;
this.balance = function(){
this.genotype = new Array();
var processOrderList = new Array(this.jobNumber);
for(var i=0;i<this.jobNumber;i++){
processOrderList[i] = 0;
}
for(var i=0;i<this.order.length;i++){
var job = this.order[i];
var process = processOrderList[job];
processOrderList[job]++;
var machine = this.machine[job*this.processNumber+process];
var
processingTime
=
this.ecosystem.valueList[job*this.processNumber*this.machineNumber+process*this.machi
neNumber+machine];
var tempGene = new Gene();
tempGene.initWithVariable(job,process,machine,processingTime);
tempGene.processingTime = processingTime;
}
}
this.genotype.push(tempGene);
this.initWithSolution = function(solution){
//console.log(solution);
if(solution.problemType==1){ //flowshop
//todo flowshop solution'lari ga'ya ceviremiyoruz. yazdigimiz fonksiyon jobshop icin
calisiyor.
94
//valueList problemin ilk table'i. job x process x machine buyuklugunde.
var
valueList
=
Array(solution.jobNumber*solution.processNumber*solution.machineNumber);
new
for(var i=0;i<solution.jobNumber;i++){
for(var j=0;j<solution.processNumber;j++){
for(var k=0;k<solution.machineNumber;k++){
valueList[i*solution.processNumber*solution.machineNumber
j*solution.machineNumber + k] = solution.processTimeList[i][j][k];
}
}
}
+
this.ecosystem = new Ecosystem();
this.ecosystem.initWithVariable(solution.jobNumber,solution.processNumber,solution.mach
ineNumber,100,10,0.1,0.9,valueList,solution.setupTimeList,40,1,4,1,true);
this.jobNumber = solution.jobNumber;
this.processNumber = solution.processNumber;
this.machineNumber = solution.machineNumber;
this.makespan = solution.makespan;
this.genotype = new Array();
//this.machine = new Array(solution.jobNumber*solution.processNumber);
this.order = new Array(solution.jobNumber*solution.processNumber);
for(var i=0;i<solution.jobOrder.length;i++){
var tempGene = new Gene();
tempGene.initWithVariable(solution.jobOrder[i],-1,-1,-1);
this.genotype.push(tempGene);
this.order[i] = solution.jobOrder[i];
//this.machine[solution.processList[i].jobID*solution.processNumber
solution.processList[i].processID] = solution.processList[i].machineID;
}
}
else{
//jobshop problemType=0
var
valueList
=
Array(solution.jobNumber*solution.processNumber*solution.machineNumber);
for(var i=0;i<solution.jobNumber;i++){
for(var j=0;j<solution.processNumber;j++){
95
+
new
for(var k=0;k<solution.machineNumber;k++){
valueList[i*solution.processNumber*solution.machineNumber
j*solution.machineNumber + k] = solution.processTimeList[i][j][k];
}
}
}
+
this.ecosystem = new Ecosystem();
this.ecosystem.initWithVariable(solution.jobNumber,solution.processNumber,solution.mach
ineNumber,100,10,0.1,0.9,valueList,solution.setupTimeList,40,1,4,1,true);
this.jobNumber = solution.jobNumber;
this.processNumber = solution.processNumber;
this.machineNumber = solution.machineNumber;
this.makespan = solution.makespan;
this.genotype = new Array();
this.machine = new Array(solution.jobNumber*solution.processNumber);
this.order = new Array(solution.jobNumber*solution.processNumber);
for(var i=0;i<solution.processList.length;i++){
var tempGene = new Gene();
tempGene.initWithVariable(solution.processList[i].jobID,solution.processList[i].processID,sol
ution.processList[i].machineID,solution.processList[i].processingTime);
this.genotype.push(tempGene);
this.order[i] = solution.processList[i].jobID;
this.machine[solution.processList[i].jobID*solution.processNumber
solution.processList[i].processID] = solution.processList[i].machineID;
}
}
}
this.getMakespan = function(){
if(this.makespan!=0)
return this.makespan;
var makespan = 0;
var machineIndex = new Array(machineNumber);
var jobIndex = new Array(jobNumber);
96
+
for(var i=0;i<machineNumber;i++){
machineIndex[i]=0;
}
for(var i=0;i<jobNumber;i++){
jobIndex[i]=0;
}
for(var i=0;i<this.genotype.length;i++){
var tempGene = this.genotype[i];
var
startTime
=
Math.max(parseInt(jobIndex[tempGene.jobID]),parseInt(machineIndex[tempGene.machineI
D]));
var job = tempGene.jobID;
var previousJob = tempGene.jobID;
var setupTime;
if(i>0){
previousJob = this.genotype[i-1].jobID; //todo burasi da yanlis. genel olarak bir
onceki demek genotype
}
// dolayisiyla setup'lu problemlerde cortlayacaktir.
// bana abstract olarak bir onceki gene degil, o makinedeki bir onceki job
ilgilendirecektir setup time icin.
// ayni problem aco'da da mevcut.
setupTime = this.problem.setupTimeList[tempGene.machineID][previousJob][job];
tempGene.setupTime = setupTime;
jobIndex[tempGene.jobID] = startTime + setupTime + tempGene.processingTime;
machineIndex[tempGene.machineID]
=
startTime
+
setupTime
tempGene.processingTime;
}
for(var i=0;i<machineNumber;i++){
if(machineIndex[i]>makespan)
makespan=machineIndex[i];
}
this.makespan = makespan;
97
+
}
return makespan;
this.cross = function(match){
var children = new Array();
var G = new Genetics();
var descendant = null;
var orderedDesc = null;
switch (this.ecosystem.crossoverType){
case 1:
//console.log("single point");
descendant = G.singlePointCrossover(this.machine,match.machine,this.ecosystem);
break;
case 2:
descendant = G.twoPointsCrossover(this.machine,match.machine,this.ecosystem);
break;
case 3:
descendant = G.multiPointsCrossover(this.machine,match.machine,this.ecosystem);
break;
case 4:
descendant = G.uniformCrossover(this.machine,match.machine,this.ecosystem);
break;
}
default :
descendant = G.multiPointsCrossover(this.machine,match.machine,this.ecosystem);
break;
switch (this.ecosystem.orderedCrossType){
case 1:
//console.log("position based");
orderedDesc = G.positionBasedCrossover(this.order,match.order,this.ecosystem);
break;
}
default :
orderedDesc = G.positionBasedCrossover(this.order,match.order,this.ecosystem);
break;
98
var chromosome1 = new Antibody();
var chromosome2 = new Antibody();
//console.log(descendant,orderedDesc);
chromosome1.initWithVariable(descendant[0],orderedDesc[0],this.ecosystem);
chromosome2.initWithVariable(descendant[1],orderedDesc[1],this.ecosystem);
children.push(chromosome1);
children.push(chromosome2);
if(chromosome1.check()==false){
//console.log(chromosome);
alert("error in ga.js:Genetics.cross("+this.ecosystem.crossoverType+")");
}
if(chromosome2.check()==false){
}
}
//console.log(chromosome);
alert("error in ga.js:Genetics.cross("+this.ecosystem.crossoverType+")");
return children;
this.mutate = function(){
var G = new Genetics();
switch (this.ecosystem.mutationType){
case 1:
//console.log("reverse");
this.machine = G.mutationReverse(this.machine,this.ecosystem);
this.order = G.mutationReverse(this.order,this.ecosystem);
this.machine = G.repair(this.machine,this.ecosystem);
break;
case 2:
this.machine = G.mutationNeighbor(this.machine,this.ecosystem);
this.order = G.mutationNeighbor(this.order,this.ecosystem);
this.machine = G.repair(this.machine,this.ecosystem);
break;
case 3:
this.machine = G.mutationArbitrary(this.machine,this.ecosystem);
99
this.order = G.mutationArbitrary(this.order,this.ecosystem);
this.machine = G.repair(this.machine,this.ecosystem);
break;
case 4:
this.order = G.mutation3Arbitrary(this.order,this.ecosystem);
break;
case 5:
this.machine = G.mutationFloat(this.machine,this.ecosystem);
this.order = G.mutationFloat(this.order,this.ecosystem);
this.machine = G.repair(this.machine,this.ecosystem);
break;
}
default:
this.machine = G.mutationReverse(this.machine,this.ecosystem);
this.order = G.mutationReverse(this.order,this.ecosystem);
this.machine = G.repair(this.machine,this.ecosystem);
break;
this.balance();
if(this.check()==false){
}
}
}
//console.log(chromosome);
alert("error in ga.js:Genetics.mutate("+this.ecosystem.mutationType+")");
function AIS(){ //Artificial Immune System
this.problem;
// problemin butun ozelliklerinin toplandigi object
this.globalBest;
//Solution tipinden en iyi cozum
this.progress;
this.polygonID;
this.solutionTime;
this.populationNumber;
this.generationNumber;
this.mutationProbability;
this.cloningProbability;
this.memoryCellNumber;
100
this.antibodyList;
// antibody populasyonum
this.cloneFlag;
// antibodyList[i] cloneList'e secilmis ise cloneIndex[i]=1, degilse 0.
this.currentGeneration;
// jenerasyon loop index degiskeni
this.G = new Genetics();
this.initWithVariable
=
function(problem,population,generation,mutationProbability,cloningProbability,memoryCell
Number){
}
this.problem = problem;
this.populationNumber = parseInt(population);
this.generationNumber = parseInt(generation);
this.mutationProbability = parseFloat(mutationProbability);
this.cloningProbability = parseFloat(cloningProbability);
this.memoryCellNumber = parseInt(memoryCellNumber);
this.cloneSelectionRouletteWheel = function(cloneNumber){
//console.log("clone selection started. number:"+cloneNumber);
var cloneList = new Array();
// sececegim clone'lari buraya
koyucam
var fitnessList = new Array(this.antibodyList.length);
// uygunluk degerleri
var cumFitList = new Array(this.antibodyList.length);
// kumulatif uygunluk
degerleri
var total = 0;
var maxCmax = 0
//populasyondaki en buyuk Cmax'i buluyoruz.
for(var i=0;i<this.antibodyList.length;i++){
this.cloneFlag[i]=0;
// clone olarak secilenlerde flag=1 olacak.
if(this.antibodyList[i].getMakespan()>maxCmax)
maxCmax = this.antibodyList[i].getMakespan();
}
for(var i =0;i<this.antibodyList.length;i++){
max(Cmax)-Cmax[i]+1
}
//Uygunluk degerlerini hesap ediyoruz.
fitnessList[i]= maxCmax - this.antibodyList[i].getMakespan() + 1;
total+=fitnessList[i];
101
cumFitList[0] = fitnessList[0];
for(var i=1;i<this.antibodyList.length;i++){
}
cumFitList[i] = cumFitList[i-1]+fitnessList[i];
// kumulatif fitness list hesaplamasi
for(var cloneIndex = 0; cloneIndex<cloneNumber;cloneIndex++){
kadar secim yapicaz
var random = Math.floor(Math.random()*total);
random belirliycez. aynisi gelebilir.
// clone number
// her secim icin bastan
//console.log(fitnessList);
for(var i=0;i<this.antibodyList.length;i++){
hizasindaki antibody'i clone'lamak icin.
//antibodylist'i tariyoruz, random'un
//console.log(cumFitList[i],random);
if(cumFitList[i]> random) {
}
}
}
this.cloneFlag[i]=1;
// clone olarak sectiklerimize isaret koyuyoruz.
cloneList.push(this.antibodyList[i]);
break;
}
//console.log(cloneList);
return cloneList;
//this.antibodyList.slice(cloneList);
this.sortWithMakespan = function(){
for(var i=0;i<this.antibodyList.length;i++){
// makespan'leri
getMakespan'le bulup kaydediyoruz.
this.antibodyList[i].makespan = this.antibodyList[i].getMakespan();
// bu isi
getMakespan'in icinde de yaptigimdan bu kisim artik gereksiz.
}
this.antibodyList.sort(function(a,b){
// kucukten buyuge siralar, (iyiden kotuye)
if(a.makespan > b.makespan) return 1;
if(a.makespan < b.makespan) return -1;
return 0;
102
}
});
this.sortClones = function (cloneList) {
olmasi lazim.
cloneList.sort(function(a,b){
}
});
//verilen dizinin makespan'lerinin belirlenmis
// kucukten buyuge siralar, (iyiden kotuye)
if(a.makespan > b.makespan) return 1;
if(a.makespan < b.makespan) return -1;
return 0;
this.somaticHypermutation = function (cloneList) {
this.sortClones(cloneList);
var mutationNumber = Math.floor(cloneList.length*this.mutationProbability);
for(var i=cloneList.length-mutationNumber;i<cloneList.length;i++){
var tempAntibody = jQuery.extend({}, cloneList[i]); // object copy
this.G.mutationFloat(tempAntibody.order,this.problem);
if(cloneList[i].makespan > tempAntibody.getMakespan()){
iyi bir sonuc elde ettik
// float mutation ile daha
cloneList[i] = tempAntibody;
continue;
}
tempAntibody = jQuery.extend({}, cloneList[i]); // object copy
this.G.mutationArbitrary(tempAntibody.order,problem);
if(cloneList[i].makespan > tempAntibody.getMakespan()){
daha iyi bir sonuc elde ettik
// arbitrary mutation ile
cloneList[i] = tempAntibody;
continue;
}
tempAntibody = jQuery.extend({}, cloneList[i]); // object copy
this.G.mutationChangeMachine(tempAntibody.machine,problem);
if(cloneList[i].makespan > tempAntibody.getMakespan()){
mutation ile daha iyi bir sonuc elde ettik
103
// change 1 machine
cloneList[i] = tempAntibody;
continue;
}
tempAntibody = jQuery.extend({}, cloneList[i]); // object copy
this.G.mutationChange2Machine(tempAntibody.machine,problem);
if(cloneList[i].makespan > tempAntibody.getMakespan()){
mutation ile daha iyi bir sonuc elde ettik
}
}
}
// change 2 machine
cloneList[i] = tempAntibody;
continue;
this.receptorEditing = function () {
var receptorList = new Array();
for(var i=0;i<this.antibodyList.length;i++) {
if (this.cloneFlag[i] == 0) {
uygulayacagiz.
}
}
//clone'lanmayan antibody'lere receptor editing
receptorList.push(this.antibodyList[i]);
for(var i=0;i<receptorList.length;i++){
var tempAntibody = jQuery.extend({}, receptorList[i]); // object copy
this.G.mutationReverse(tempAntibody.order,problem);
if(receptorList[i].getMakespan() > tempAntibody.getMakespan()){
}
receptorList[i] = tempAntibody;
continue;
tempAntibody = jQuery.extend({}, receptorList[i]); // object copy
this.G.mutationResetMachine(tempAntibody.machine,problem);
if(receptorList[i].getMakespan() > tempAntibody.getMakespan()){
receptorList[i] = tempAntibody;
continue;
104
}
tempAntibody = jQuery.extend({}, receptorList[i]); // object copy
this.G.mutationChangeMachine(tempAntibody.machine,problem);
if(receptorList[i].getMakespan() > tempAntibody.getMakespan()){
}
}
receptorList[i] = tempAntibody;
continue;
receptorList[i] = new Antibody();
receptorList[i].initWithProblem(this.problem);
receptorList[i].getMakespan();
this.sortClones(receptorList);
kadar elemanini alabileyim.
return receptorList;
}
//receptorList'i siralanmis olarak donuyorum ki ilk su
this.solve = function(){
var date1 = new Date().getTime();
var date2 = new Date().getTime();
console.log(date1);
this.antibodyList = new Array();
this.cloneFlag = new Array(this.populationNumber);
for(var i=0;i<this.populationNumber;i++){
populasyonu olusturuluyor.
// random olarak baslangic antikor
var tempAntibody = new Antibody();
tempAntibody.initWithProblem(this.problem);
this.antibodyList.push(tempAntibody);
}
this.sortWithMakespan();
this.globalBest = new Solution();
console.log(this.antibodyList);
this.globalBest.initWithAntibody(this.antibodyList[0]);
for(this.currentGeneration
=
this.generationNumber;this.currentGeneration++) {
yapilacak.
105
0;this.currentGeneration<
// jenerasyon sayisi boyunca
console.log("gen:"+this.currentGeneration+" best:"+this.globalBest.makespan);
var cloneNumber = Math.floor(this.antibodyList.length*this.cloningProbability);
this.sortWithMakespan();
var cloneList = this.cloneSelectionRouletteWheel(cloneNumber);
this.somaticHypermutation(cloneList);
var receptorList = this.receptorEditing();
this.antibodyList
=
cloneList.concat(receptorList.slice(0,this.populationNumbercloneNumber));
this.sortWithMakespan();
for(var i=0;i<this.memoryCellNumber;i++){
this.antibodyList[this.antibodyList.length-i-1] = this.antibodyList[i]; // en kotu k
hucreyi, en iyi k ile degistirdik.
}
if(this.antibodyList[0].makespan < this.globalBest.makespan){
this.globalBest = new Solution();
this.globalBest.initWithAntibody(this.antibodyList[0]);
var date2 = new Date().getTime();
this.globalBest.solutionTime = date2 -date1;
this.solutionTime = date2-date1;
this.progress.addDot(this.polygonID,this.globalBest.solutionTime,this.globalBest.makespan);
console.log(date2-date1);
}
}
}
}
return;
106
ÖZGEÇMİŞ
KİŞİSEL BİLGİLER
Adı Soyadı
: Ayşe Nuray CANAT
Doğum Tarihi ve Yeri
: 03.06.1987 Ankara
Yabancı Dili
: İngilizce
E-posta
: [email protected]
ÖĞRENİM DURUMU
Derece
Alan
Okul/Üniversite
Mezuniyet Yılı
Yüksek Lisans
Sistem Mühendisliği
Yıldız Teknik Üniversitesi
2016
Lisans
Endüstri Mühendisliği
Maltepe Üniversitesi
2010
Elektronik Mühendisliği
Maltepe Üniversitesi
2009
Sayısal
Mustafa Kaya Anadolu Lisesi
2005
Lise
107
Download