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