ANKARA ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ YÜKSEK LİSANS TEZİ

Benzer belgeler
Zeki Optimizasyon Teknikleri

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

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

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

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

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

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

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

Her bir polis devriyesi ancak bir çağrıyı cevaplayabilir. Bir çağrıya en fazla bir devriye atanabilir.

METASEZGİSEL YÖNTEMLER. Genetik Algoritmalar

KARAR TEORİSİ. Özlem AYDIN. Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü

Güz Yarıyılı Balıkesir Üniversitesi, Endüstri Mühendisliği Bölümü EMM4129 ÇİZELGELEME

2 e-posta:

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

Fonksiyon Optimizasyonunda Genetik Algoritmalar

YÖNEYLEM ARAŞTIRMASI - I

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

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

Genel Graf Üzerinde Mutlak 1-merkez

OYUN TEORİSİ. Özlem AYDIN. Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü

Esnek Hesaplamaya Giriş

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

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

Kredi Limit Optimizasyonu:

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

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

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

ATAMA (TAHSİS) MODELİ

Montaj Hatti Tasarımı ve Analizi - 8

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

Zeki Optimizasyon Teknikleri

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

Algoritmalar. Sıralama Problemi ve Analizi. Bahar 2017 Doç. Dr. Suat Özdemir 1

SOBA BORUSU AÇINIM LEVHALARININ KESİLMESİNDE MALİYETLERİN ENKÜÇÜKLENMESİ

Zeki Optimizasyon Teknikleri

Güz Yarıyılı Balıkesir Üniversitesi, Endüstri Mühendisliği Bölümü EMM4129 ÇİZELGELEME

Yöneylem Araştırması II

VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN

3.2. DP Modellerinin Simpleks Yöntem ile Çözümü Primal Simpleks Yöntem

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

Web Madenciliği (Web Mining)

PARÇACIK SÜRÜ OPTİMİZASYONU BMÜ-579 METASEZGİSEL YÖNTEMLER YRD. DOÇ. DR. İLHAN AYDIN

Montaj Hatti Tasarımı ve Analizi - 5

KARĐYER YÖNETĐMĐ. Geleceğe yönelik çalışan ihtiyaçlarını iç kaynaklardan sağlayarak çalışan motivasyonunu artırma.

YÖNEYLEM ARAŞTIRMASI - III

Montaj Hatti Tasarımı ve Analizi - 7

FABRİKA ORGANİZASYONU Üretim Planlama ve Yönetimi 2. Uygulama: Sipariş ve Parti Büyüklüğü Hesaplama

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

JEODEZİK AĞLARIN OPTİMİZASYONU

KARINCA KOLONİ ALGORİTMASI BMÜ-579 Meta Sezgisel Yöntemler. Yrd. Doç. Dr. İlhan AYDIN Fırat Üniversitesi, Bilgisayar Mühendisliği Bölümü

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

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

Bu bölümde; Çok ölçütlü karar verme yöntemlerinden biri olan TOPSİS yöntemi anlatılacaktır.

Toplam maliyete/gelire göre yer seçimi Faktör ağırlıklandırma Başabaş noktası analizi Oyun kuramı

ELEKTRONİK ÇİZELGE. Hücreleri Biçimlendirme. Formülleri Kullanma. Verileri Sıralama. Grafik Oluşturma 1) HÜCRELERİ BİÇİMLENDİRME

EM302 Yöneylem Araştırması 2. Dr. Özgür Kabak

Uzaktan Algılama Teknolojileri

KİNETİK MODEL PARAMETRELERİNİN BELİRLENMESİNDE KULLANILAN OPTİMİZASYON TEKNİKLERİNİN KIYASLANMASI

Ders Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans:

KONU 4: DOĞRUSAL PROGRAMLAMA MODELİ İÇİN ÇÖZÜM YÖNTEMLERİ I

Montaj Hatti Tasarımı ve Analizi - 7

BİRİNCİ BASIMA ÖN SÖZ

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

Başlangıç Temel Programının Bilinmemesi Durumu

ISK116 - Bölüm 1. Grup Teknolojisi

YÖNEYLEM ARAŞTIRMASI - III

SİSTEM ANALİZİ ve TASARIMI. ÖN İNCELEME ve FİZİBİLİTE

CBS ve Coğrafi Hesaplama

doğrusal programlama DOĞRUSAL PROGRAMLAMA (GENEL)

EŞİTLİK BOZMA SİSTEMLERİ

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

FORMÜLLER VE FONKSİYONLAR

KATLI ATAMA PROBLEMİ VE ÇÖZÜMLERİ

RASSAL SAYI ÜRETİLMESİ

*İlk aşamada, bahsedilen problemin matematiksel modelinin kurulması gerekmektedir. İlgili modelin açık ve kapalı formunu birlikte veriniz.

Robot İzleme (Robot Tracing)

OPTİMUM GÜÇ AKIŞININ YAPAY ARI KOLONİSİ İLE SAĞLANMASI

Proje/Sipariş/İş Emri (PSI) Bazında Maliyet Analizi

Bilgisayar programlamanın üç temel mantık yapısından biridir. Diğer ikisi ise Seçilim(Selection) ve Döngü(Loop, Iteration)dür.

Gezgin Satıcı Probleminin Benzetilmiş Tavlama Yöntemiyle Çözümünde Paralel Hesaplamanın Kullanılması

Süreç Yönetimi. Logo

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

Tek Değişkenli Optimizasyon OPTİMİZASYON. Gradient Tabanlı Yöntemler. Bisection (İkiye Bölme) Yöntemi

KAPASİTE KAVRAMI ve KAPASİTE ÇEŞİTLERİ

BÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok

DARÜŞŞAFAKA LİSESİ SALİH ZEKİ LİSE ÖĞRENCİLERİ ARASI MATEMATİK PROJELERİ YARIŞMASI

YÖNEYLEM ARAŞTIRMASI - I

İkinci dersin notlarında yer alan Gepetto Marangozhanesi örneğini hatırlayınız.

RASTGELE SAYI ÜRETİMİ VE UYGULANAN TESTLER HAZIRLAYAN: ÖZLEM AYDIN

TRANSPORT SİSTEMLERİNDE BİLGİSAYAR UYGULAMALARI

BLM-431 YAPAY ZEKA. Ders-5 Bilgili Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA

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

Doğrusal Programlama. Prof. Dr. Ferit Kemal Sönmez

OPTİMİZASYON TEKNİKLERİ. Kısıtsız Optimizasyon

YZM YAPAY ZEKA DERS#6: REKABET ORTAMINDA ARAMA

RÜZGAR ENERJİSİ KAYNAĞI VE BELİRSİZLİK

SAYISAL ÇÖZÜMLEME. Yrd.Doç.Dr.Esra Tunç Görmüş. 1.Hafta

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

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#1: ALGORİTMA KAVRAMI

Transkript:

ANKARA ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ YÜKSEK LİSANS TEZİ GENEL ATAMA PROBLEMLERİNİN ÇÖZÜMÜNDE DETERMİNİSTİK, OLASILIK TEMELLİ VE SEZGİSEL YÖNTEMLERİN UYGULANMASI Çağatay SEL ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ ANABİLİM DALI ANKARA 2013 Her hakkı saklıdır

TEZ ONAYI Çağatay SEL tarafından hazırlanan Genel Atama Problemlerinin Çözümünde Deterministik, Olasılık Temelli ve Sezgisel Yöntemlerin Uygulanması adlı tez çalışması 30/05/2013 tarihinde aşağıdaki jüri tarafından oy birliği ile Ankara Üniversitesi Fen Bilimleri Enstitüsü Elektrik Elektronik Mühendisliği Ana Bilim Dalı nda YÜKSEK LİSANS TEZİ olarak kabul edilmiştir. Danışman: Doç. Dr. Asım Egemen YILMAZ Jüri Üyeleri: Başkan : Prof. Dr. Orhan Arıkan İhsan Doğramacı Bilkent Üniversitesi Elektrik-Elektronik Mühendisliği Anabilim Dalı Üye : Doç. Dr. Asım Egemen YILMAZ Ankara Üniversitesi Elektrik-Elektronik Mühendisliği Anabilim Dalı Üye : Yrd. Doç. Dr. Aykut Kalaycıoğlu Ankara Üniversitesi Elektrik-Elektronik Mühendisliği Anabilim Dalı Yukarıdaki sonucu onaylıyorum. Prof. Dr. İbrahim DEMİR Enstitü Müdürü

ÖZET Yüksek Lisans Tezi GENEL ATAMA PROBLEMLERİNİN ÇÖZÜMÜNDE DETERMİNİSTİK, OLASILIK TEMELLİ VE SEZGİSEL YÖNTEMLERİN UYGULANMASI Çağatay SEL Ankara Üniversitesi Fen Bilimleri Enstitüsü Elektrik-Elektronik Mühendisliği Anabilim Dalı Danışman: Doç. Dr. Asım Egemen YILMAZ Kaynakların ve zamanın öneminin arttığı günümüzde; kişi-görev, unsur-görev, vb. eşleştirmeleri yapılarak sonuca ulaşılmaya çalışılan problemlere atama problemi adı verilmektedir. Atama problemlerinin çözümünde kullanılan algoritmaların bazıları her unsurun bir görevle eşleştirileceği ve boşta görev kalmamasını amaçlarken, bazıları sonuca ulaşırken olasılık prensibini göz önünde bulundurarak sonuca ulaşmakta, bazı algoritmalar ise çözüme ulaşırken doğadan ilham almaktadır. Görevin başarımı, zaman, maliyet kıstaslarını göz önünde bulundurarak en iyi çözüme ulaşan algoritmanın belirlenmesi amacı ile algoritmalar aynı veriler ışığı altında denenerek sonuçlar kıyaslanmıştır. Bilim, Sanayi ve Teknoloji Bakanlığının desteklemiş olduğu San-Tez Projesi kapsamında projede belirlenen kıstaslar (Hava aracı-görev eşleştirilmeleri yapılırken bütün görevlerin yapılması amacı güdülerek her bir hava aracına maksimum iki görev ataması yapılması) altında en iyi sonucu veren algoritma belirlenmiştir. Atama problemlerinin çözümünde belirlenen kısıtlar altında sezgisel yöntemler ile en iyi sonuca ulaşılabileceği gösterilmiştir. Mayıs 2013, 103 sayfa Anahtar Kelimeler: Genel Atama Problemleri, Optimizasyon, Macar Algoritması, Genetik Algoritma, Karınca Koloni Optimizasyon Algoritması, Dağılım Kestirim Algoritması. i

ABSTRACT Master Thesis APPLICATION OF DETERMINISTIC, PROBABILISTIC AND HEURISTIC METHODS FOR THE SOLUTION OF GENERALIZED ASSIGNMENT PROBLEMS Çağatay SEL Ankara University Graduate School of Natural and Applied Sciences Department of Electrical and Electronics Engineering Supervisor: Assoc. Prof. Dr. Asım Egemen YILMAZ As the sources and time increase their priority nowadays; the problems, which can be solved by matching person-task, machine- task etc. are called assignment problems. Some algorithms, which can be used for the solution of assignment problems, aim that each asset match with a task and all assets are covered. By solving the assignment problems, some algorithms take account of probability principle and some other algorithms solve them heuristically. In order to decide the algorithm with the best solution, the algorithms are compared using the same dataset with respect to performance, time and cost criteria. This thesis is supported by the Turkish Ministry of Science, Industry and Technology under the SANTEZ program, the algorithm with the best solution is decided under some specified criteria (While making air asset task matching, each air component is assigned with maximum two tasks in order to all the tasks are covered). It is shown that heuristic methods perform the best performance for the solution of assignment problems under these specified criteria. May 2013, 103 pages Key Words: Assignment Problems, Optimization, Hungarian Algorithm, Genetic Algorithm, Ant Colony Optimization Algorithm, Estimation of Distribution Algorithm. ii

TEŞEKKÜR Tez çalışmasının her aşamasında, bilgisi ve tecrübesi ile bana yol gösteren, ortaya çıkan problemlerin aşılmasında yaptığı öneriler ile çalışmanın bu noktaya gelmesinde büyük payı olan danışman hocam sayın Doç. Dr. Asım Egemen YILMAZ a (Ankara Üniversitesi Elektrik-Elektronik Mühendisliği Anabilim Dalı) teşekkür ederim. Tez çalışması süresince yapılan toplantılarda fikirleri ile katkıda bulunan Sayın Doç. Dr. Murat EFE ye (Ankara Üniversitesi Elektrik-Elektronik Mühendisliği Anabilim Dalı), Sayın Tayfur YAYLAGÜL e (HAVELSAN A.Ş.) ve Sayın Sadi Uçkun EMEL e (HAVELSAN A.Ş.) teşekkür ederim. Ayrıca Yüksek Lisans eğitimim sırasındaki çalışmalarımı, SANTEZ projesi kapsamında maddi yönden destekleyen Bilim, Sanayi ve Teknoloji Bakanlığı ve HAVELSAN A.Ş. ye teşekkür ederim. Her koşulda yanımda olup desteğini esirgemeyen ve her konuda bana güvenen annem Leyla SEL e, babam Cengiz SEL e ve canım kardeşim Buğra SEL e sonsuz teşekkür ederim. Bu tez çalışması, T.C. Bilim, Sanayi ve Teknoloji Bakanlığı destekli "Çoklu Hava Unsurları İçin Görev Planlaması ve Optimizasyonu" başlıklı ve 001052.STZ.2011-2 numaralı San-Tez projesi kapsamında desteklenmiştir. Çağatay SEL Ankara, Mayıs 2013 iii

İÇİNDEKİLER ÖZET... i ABSTRACT... ii TEŞEKKÜR... iii ŞEKİLLER DİZİNİ... vi ÇİZELGELER DİZİNİ... viii 1 GİRİŞ... 1 2 KAYNAK ÖZETLERİ... 4 2.1 Atama Problemi... 4 3 MATERYAL VE YÖNTEM... 8 3.1 Deterministik Yöntemler... 8 3.1.1 Kaba Kuvvet Algoritması... 8 3.1.2 Adım Adım Algoritması... 13 3.1.3 Macar Algoritması... 14 3.2 Olasılık Temelli Yöntemler... 19 3.2.1 Açık Artırma Algoritması... 19 3.2.2 Açgözlü Algoritma... 21 3.2.3 Rastgele Atama Algoritması... 23 3.3 Sezgisel Yöntemler... 24 3.3.1 Genetik Algoritma... 24 3.3.2 Karınca Koloni Optimizasyonu Algoritması... 29 3.3.3 Dağılım Kestirim Algoritması... 44 4 ARAŞTIRMA BULGULARI... 48 4.1 Benzetim Sonuçları... 48 4.1.1 Deterministik Yöntemlere ait Sonuçlar... 49 4.1.1.1 Adım Adım Algoritması... 50 4.1.1.2 Macar Algoritması... 51 4.1.1.3 Kaba Kuvvet Algoritması... 53 4.1.2 Olasılık Temelli Yöntemlere ait Sonuçlar... 56 4.1.2.1 Açık Artırma Algoritması... 56 4.1.2.2 Açgözlü Algoritma... 57 4.1.2.3 Rastgele Atama Algoritması... 58 4.1.3 Sezgisel Yöntemlere ait Sonuçlar... 59 4.1.3.1 Genetik Algoritma... 59 iv

4.1.3.2 Karınca Koloni Optimizasyon Algoritması... 68 4.1.3.3 Değişken Parametreli Karınca Kolonisi Optimizasyon Algoritması... 77 4.1.3.4 Dağılım Kestirim Algoritması... 81 4.2 Nihai Ürün (Java)... 86 4.2.1 Görsel Arayüz... 87 4.2.1 Nihai Üründeki Algoritmalar... 90 4.2.1.1 Nihai Üründeki Kaba Kuvvet Algoritması... 91 4.2.1.2 Nihai Üründeki Genetik Algoritma... 92 4.2.1.3 Nihai Üründeki Karınca Kolonisi Optimizasyon Algoritması... 94 5 TARTIŞMA ve SONUÇ... 96 KAYNAKLAR... 101 ÖZGEÇMİŞ... 103 v

ŞEKİLLER DİZİNİ Şekil 3.1 Kaba Kuvvet Algoritması akış diyagramı... 13 Şekil 3.2 Macar Algoritması akış diyagramı... 18 Şekil 3.3 Genetik Algoritma akış diyagramı... 27 Şekil 3.4 Tek noktalı çaprazlama örneği... 28 Şekil 3.5 İki noktalı çaprazlama örneği... 28 Şekil 3.6 Sıralı mutasyon örneği... 29 Şekil 3.7 Öncü karıncaların besin maddesine giden yolu belirlemesi... 31 Şekil 3.8 Öncü karıncaların besin maddesine ulaşması... 32 Şekil 3.9 Karıncaların besin maddesine kısa yoldan ulaşması... 33 Şekil 3.10 Toplam Maliyet kriterine göre Karınca Koloni Algoritması akış diyagramı 37 Şekil 3.11 Yerel Maliyet kriterine göre Karınca Koloni Algoritması akış diyagramı.. 39 Şekil 3.12 Toplam Maliyet kriteri ve öncü karıncaların rastgele atandığı Karınca Koloni Algoritması akış diyagram... 41 Şekil 3.13 Yerel Maliyet kriteri ve öncü karıncaların rastgele atandığı Karınca Koloni Algoritması akış diyagramı... 43 Şekil 4.1 Açgözlü Algoritmaya ait 100 birey için histogram... 58 Şekil 4.2 Rastgele Atama Algoritmasına ait 100 birey için histogram... 58 Şekil 4.3 Çaprazlama Oranı = %10, %30, %50, %70, %90 değerleri için sonuçlar... 61 Şekil 4.4 Mutasyon Oranı = %10, %30, %50, %70, %90 değerleri için sonuçlar... 62 Şekil 4.5 Elitizm Oranı = %10, %30, %50, %70, %90 değerleri için sonuçlar... 63 Şekil 4.6 Nüfus Büyüklüğü = 5, 10, 30, 50, 100 değerleri için sonuçlar... 64 Şekil 4.7 Nüfus Büyüklüğü = 5, 10, 30, 50, 100 değerlerine ait; toplam 3000 defa Uygunluk Fonksiyonu hesaplanan konfigürasyona ilişkin sonuçlar... 65 Şekil 4.8 Birey ve gen bakımından rulet çarkı yönteminin kıyaslanması... 67 Şekil 4.9 α = 0.1, 1, 2, 5, 20 değerleri için sonuçlar... 70 Şekil 4.10 β = 0.1, 1, 2, 5, 20 değerleri için sonuçlar... 71 Şekil 4.11 =0.1, 0.3, 0.5, 0.9, 1 değerleri için sonuçlar... 72 Şekil 4.12 Karınca Sayısı = 3, 10, 20, 50, 100 değerleri için sonuçlar... 74 Şekil 4.13 İterasyon Sayısı = 5, 10, 30, 50, 100 değerleri için sonuçlar... 75 Şekil 4.14 Q = 0.01, 1, 100, 10000 değerleri için sonuçlar... 77 Şekil 4.15 α = 5, 2, 1 değerleri için sonuçlar... 79 Şekil 4.16 β = 5, 2, 1 değerleri için sonuçlar... 80 Şekil 4.17 = 0.9, 0.5, 0.1 değerleri için sonuçlar... 81 Şekil 4.18 Eşik seviyesi =10 için limit seviyesi değeri kıyaslaması... 82 Şekil 4.19 Eşik seviyesi =10 için birey sayısı kıyaslaması... 83 Şekil 4.20 Eşik seviyesi =30 için limit seviyesi değeri kıyaslaması... 83 Şekil 4.21 Eşik seviyesi =30 için birey sayısı kıyaslaması... 84 Şekil 4.22 Eşik seviyesi =50 için limit seviyesi değeri kıyaslaması... 84 Şekil 4.23 Eşik seviyesi =50 için birey sayısı kıyaslaması... 85 Şekil 4.24 Eşik seviyesi =90 için limit seviyesi değeri kıyaslaması... 85 Şekil 4.25 Eşik seviyesi =90 için birey sayısı kıyaslaması... 86 Şekil 4.26 Görsel Arayüz (Dünya Haritası)... 88 Şekil 4.27 Görsel Arayüz (Türkiye Haritası)... 89 Şekil 4.34 1.Senaryoya ait koordinat görselleri ekranı... 91 Şekil 4.35 1.Senaryoya ait Kaba Kuvvet Algoritması sonuç görseli ekranı... 92 vi

Şekil 4.36 2.Senaryoya ait Kaba Kuvvet Algoritması sonuç görseli ekranı... 92 Şekil 4.37 1.Senaryoya ait Genetik Algoritma sonuç görseli ekranı... 93 Şekil 4.38 2.Senaryoya ait Genetik Algoritma sonuç görseli ekranı... 94 Şekil 4.39 1.Senaryoya ait Karınca Kolonisi Optimizasyon Algoritması sonuç görseli ekranı... 95 Şekil 4.40 2.Senaryoya ait Karınca Kolonisi Optimizasyon Algoritması sonuç görseli ekranı... 95 vii

ÇİZELGELER DİZİNİ Çizelge 2.1 Genel Maliyet Matrisi... 4 Çizelge 3.1 Kişi-Görev atamalı örnek bir maliyet matrisi... 9 Çizelge 3.2 4 adet görev ve 4 adet kişiye ait alternatif çözümler... 10 Çizelge 3.3 Görev_1 in H.Aracı_1 e atanmış olması durumuna karşılık olası çözümler... 10 Çizelge 3.4 Görev_1 in H.Aracı_2 ye atanmış olması durumuna karşılık olası çözümler... 11 Çizelge 3.5 Görev_1 in H.Aracı_3 e atanmış olması durumuna karşılık olası çözümler... 11 Çizelge 3.6 Görev_1 in H.Aracı _4 e atanmış olması durumuna karşılık olası çözümler... 12 Çizelge 3.7 Adım Adım Algoritması örneği... 14 Çizelge 3.8 Macar Algoritması örneği... 16 Çizelge 3.9 Macar Algoritması Adım-1... 16 Çizelge 3.10 Macar Algoritması Adım-3... 16 Çizelge 3.11 Macar Algoritması Adım-4... 17 Çizelge 3.12 Macar Algoritması Adım-5... 17 Çizelge 3.13 Kişi-Görev Açık Artırma Algoritması A* maliyet matrisi... 21 Çizelge 3.14 i. görevin j. hava aracı tarafından gerçeklenebilme olasılık matrisi... 22 Çizelge 3.15 i. görevin j. hava aracı tarafından gerçeklenebilme olasılık matrisi 2... 23 Çizelge 3.16 6 popülasyon bireyi ve 6 hava aracına ait veri seti için ilk atamalar... 44 Çizelge 3.17 6 görev 6 hava aracına ait veri seti için ilk atamalara karşılık gelen maliyet değerleri... 45 Çizelge 3.18 Eşik seviyesi 50 için oluşan matris... 45 Çizelge 3.19 Bireylerdeki eşik seviyesinden küçük değerlerin toplamı... 46 Çizelge 3.20 Kesme Limiti 0.667 (0.667=4/6) olmak üzere oluşan matris... 46 Çizelge 3.21 Görevlerin yapılabilme olasılığı... 47 Çizelge 4.1 2 numaralı Maliyet Matrisi (Görev Sayısı = 18 ve Hava Aracı Sayısı = 15 )... 49 Çizelge 4.2 1 numaralı Maliyet Matrisi (Görev Sayısı = 4 ve Hava Aracı Sayısı = 5 ) 50 Çizelge 4.3 Adım Adım Algoritmasının 1 numaralı Maliyet Matrisi için atama sonucu... 50 Çizelge 4.4 Adım Adım Algoritmasının 2 numaralı Maliyet Matrisi için atama sonucu... 51 Çizelge 4.5 Macar Algoritmasının 1 numaralı Maliyet Matrisi için atama sonucu... 52 Çizelge 4.6 Macar Algoritmasının 2 numaralı Maliyet Matrisi için atama sonucu... 53 Çizelge 4.7 Kaba Kuvvet Algoritmasının 1 numaralı Maliyet Matrisi için atama sonucu... 54 Çizelge 4.8 Görev Sayısı = 8, Hava Aracı Sayısı = 9 için rastgele oluşturulmuş Maliyet Matrisi... 54 Çizelge 4.9 Kaba Kuvvet Algoritmasının çizelge 4.8 deki Maliyet Matrisi için atama sonucu... 55 Çizelge 4.10 Açık Artırma Algoritmasının 1 numaralı Maliyet Matrisi için atama sonucu... 56 viii

Çizelge 4.11 Açık Artırma Algoritmasının 2 numaralı Maliyet Matrisi için atama sonucu... 57 Çizelge 4.12 Nüfus Büyüklüğü = 5, 10, 30, 50, 100 değerlerinde algoritmanın gerçeklenme süresi... 64 Çizelge 4.13 Karınca Kolonisi Optimizasyon Algoritması çeşitleri... 68 Çizelge 4.14 Karınca Sayısına göre algoritmaların gerçeklenme süresi... 74 Çizelge 4.15 İterasyon Sayısına göre algoritmaların gerçeklenme süresi... 76 ix

1 GİRİŞ Rekabetin ve kaynakların öneminin arttığı günümüzde; en verimli bir şekilde sonuca ulaşmak için görevlerin bazı kişi veya nesnelere en az miktarda kaynak kullanılarak eşleştirilmesi büyük önem kazanmıştır (Tokgöz 2008, Çolak ve Güler 2009). Diğer bir deyişle, en küçük toplam maliyeti doğuracak kişi-görev, hava aracı-görev veya makinegörev eşleşmeleri sonucunda, tüm görevlerin en kazançlı şekilde yapılması amaçlanmaktadır. Bu tarz problemlerin eşleştirmeleri yapılarak, en iyi çözümü bulmaya yarayan problemlere "Atama Problemi" adı verilmektedir. Atama problemlerinde kişi, makine, hava aracı vb. (Tezin bundan sonraki kısımlarında hava aracı olarak ele alınacaktır.) unsurların görevleri eldeki kısıtlı kaynakları en etkin şekilde kullanarak yapması beklenmektedir. Bu görevlerin, eldeki kaynaklar en verimli şekilde kullanılarak icra edilmesi, önemli bir husustur. Görev uygun hava aracı eşleştirme işlemi, atama probleminin çözümünün bulunması ile gerçeklenir. T.C. Bilim, Sanayi ve Teknoloji Bakanlığı destekli "Çoklu Hava Unsurları İçin Görev Planlaması ve Optimizasyonu" başlıklı ve 001052.STZ.2011-2 numaralı San-Tez projesi kapsamında desteklenen bu yüksek lisans tezinde San-Tez Projesi ile farklı noktalardan havalanmakta olan farklı tipteki hava araçları ile bu araçların kullanmakta olduğu farklı özelliklere sahip sensörler ile görevlerin yapılacağı platformların özelliklerini göz önünde bulundurarak yapılması istenilen görevlerin en verimli şekilde eşleştirilmesi amacı ile kullanılacak olan optimizasyon algoritmalarının geliştirilmesi amaçlanmaktadır. Komuta Kontrol ve Savaş Yönetim Sistemlerinin bir parçası olarak farklı özelliklere sahip hava araçlarının farklı görevlere atanmasına yarayan optimizasyon algoritmalarının, HAVELSAN ın halihazırda geliştirmekte olduğu ürünlere entegre edilerek görev planlama ürünlerindeki yeteneklerini geliştirip nihai ürün haline getirmek istenmektedir. Bu işlemler sırasında kullanılmakta olan optimizasyon algoritmaları ile yapılmak istenen keşif/gözetleme/arama-kurtarma gibi görevler, hava aracının yeteneklerine (hız, menzil, taşıma kapasitesi, sensör, silah, vb.) göre; görevin 1

gerçekleştirileceği platformun özellikleri de göz önünde bulundurularak görevin başarımı, tamamlanma süresi, tamamlanma maliyeti unsurları dikkate alınarak bir çıkarım yapılmaya çalışılmaktadır. Örnek verecek olursak, gece görüş özelliği olmayan sensörler kullanan bir hava aracı ile bir bölgede gece keşfi yapılması isteği anlamsızlık teşkil edecektir. Bu gibi kriterleri göz önünde bulundurarak Türk Silahlı Kuvvetlerinde bulunan arama-kurtarma uçakları, İnsansız Hava Araçları (İHA) gibi hava araçlarının görevlere atanması işlemini yürütecek optimizasyon algoritmaları oluşturularak; benzetimi yapılan algoritmanın çözümü elde etme zamanı ve oluşturulan atamanın gerçeklenmesi sonucunda oluşacak olan maliyet kıstasları göz önünde bulundurularak performans kıyaslamaları yapılıp, ele alınan kıstaslara göre en iyi çözüme ulaşılmasını sağlayan algoritma seçilerek proje kapsamında üretilen ürüne entegre edilmiştir. Tez kapsamında optimizasyon algoritmaları ile sonuç elde edilmeye çalışılan problem, daha önceden de belirtildiği gibi bir atama problemine indirgenmiştir. Bu atama problemi ile, belirli sayıdaki hava araçları ile görevlerin eşleştirilmesi istenmektedir. Hava araçlarına eşleştirme işlemi yapılırken, uygun hava araçları arasında mümkün olduğunca eşit görev dağılımı yapılması esas alınacak olup; bu eşleştirme işleminde her hava aracına maksimum iki adet görev verilmesi planlanmaktadır. Bu kriterler ışığında atama problemleri ve çözüm yöntemlerinden bahsedilecek ve en iyi çözüme ulaşılmasını sağlayan optimizasyon algoritması elde edilmeye çalışılacaktır. Belirlenen kriterler (görevin başarımı, zaman, maliyet) ışığında sonuçlar hesaplanarak istenilen şartlara en uygun sonuç uygulanarak envanterdeki hava araçlarının en verimli şekilde kullanılması sağlanacaktır. Bu amaçlar dahilinde önce Atama Problemi hakkında bilgi verilip daha sonra Atama Problemlerinin çözüm yöntemlerine değinilecek daha sonra bu çözüm yöntemleri ile oluşturulan çözüm algoritmalarının sonuçları kıyaslanarak en iyi çözümü veren optimizasyon algoritması belirtilecektir. Bu sayede atama problemleri uygulanabilecek problemlerde belirlenen kriterler (görevin başarımı, zaman, maliyet, vb.) dahilinde en iyi sonuca ulaşılmasında kullanılabilecek algoritmalar hakkında sonuç çıkarımı yapılacaktır. Elde edilen sonuç çıkarımları ile oluşturulan atama algoritmaları Java yazılım ortamında oluşturulan nihai ürüne entegre edilecektir. Bu sayede elde edilen 2

ürün ile hava araçları-görev eşleştirmesi yapılacak olan atama problemlerinde en iyi çözüm veya en kısa zamanda en iyi sonuca yakın bir sonuç elde edilebilecektir.. Bu amaç ile öncelikle Matlab 2011a platformunda algoritmalar derlenmiş ve benzetim sonuçları verilmiştir. Daha sonra ise algoritmalar Java ortamında derlenerek nihai bir ürün içine entegre edilip verimli bir şekilde kullanılabileceği gösterilmiştir. 3

2 KAYNAK ÖZETLERİ 2.1 Atama Problemi Atama probleminde Maliyet Matrisi oluşturulurken hava araçlarının görevleri yapma yeteneklerine göre genelde her bir satır görevleri, sütunlar ise kişi veya hava araçlarını belirtecek şekilde yerleştirme yapılır. Bu matris oluşturulurken her bir i. görevin j. hava aracı tarafından yapılabilme kabiliyetine bakılarak maliyet hesaplanır ve matristeki (i, j) koordinatına gerekli değer yazılarak matris oluşturulur. Genel olarak atama problemlerinde istenilmekte olan; maliyeti minimize etmek olduğundan maliyet matrisi oluşturulurken değerler buna göre hesaplanarak yerleştirilir. Bir başka deyişle, maliyet matrisinin (i, j) koordinatına, i. görevin j. hava aracı tarafından yapılmasının maliyeti yazılır (Akbulut ve Yılmaz 2009). Bazı görevlerin bazı hava araçları tarafından yapılamıyor olması durumunda ise atama probleminde seçilmemesini sağlamak amacı ile i. hava aracının j. görevi yapma maliyetine sonsuz değeri veya çok büyük bir değer atanarak atama yöntemi tarafından seçilmemesi sağlanmaktadır. Örnek verecek olursak i. görevin j. hava aracı tarafından yapılmasına karşılık oluşan maliyet değeri c ij dir. Buna göre her bir j. hava aracının i. görevi yapma maliyetleri olan c ij değerleri ile oluşturulan Maliyet Matrisi çizelge 2.1 deki gibi olacaktır. Çizelge 2.1 Genel Maliyet Matrisi 4

Aynı durumu matematiksel olarak göstermek gerekirse (2.1), (2.2), (2.3) ve (2.4) deki eşitlikler gibi olmaktadır. m m min( c ) c x ; i 1,2,..., m; j 1,2,..., n ij ij ij i 1 j 1 (2.1) x ij 1; j.ucaginin i. gorevi yapmasi 0; j.ucaginin i. gorevi yapamamasi (2.2) Söz konusu kısıtın, bir özel durumu şu şekilde de olabilir (Şener 2007): m i 1 n j 1 x 1; i 1, 2,..., m., j.ucagin sadece bir gorevi yapmasi ij x 1; j 1, 2,..., m., i.gorevin sadece bir ucak tarafindan yapilmasi ij (2.3) (2.4) Atama problemleri minimum maliyet ile maksimum kazanç sağlamak amacı ile kullanılmaktadır. Bu bazen bir sanayi kuruluşunda üretim hattındaki makineler ile maksimum verimle üretim işlemi olurken, bazen de bir filodaki hava araçlarının maksimum verim ile verilen görevleri gerçekleştirmesi işlemi olabilmektedir. Yukarıda belirtilen üretim hattı kavramını biraz açmak gerekirse; endüstri devriminin yüz elli yıl önce gerçekleşmesiyle sermaye sahipleri için fabrikaların düzenlenmesi ekonomik bir anlam kazanmıştır. İlk gelişmeler, mekanik alanda daha iyi ürünlerin geliştirilmesi ile olmuştur. Yüzyılın sonlarına doğru işgücünün uzmanlaşması o denli artmıştır ki, malzemelerin işlemler sırasında taşınması büyük bir önem kazanmaya başlamıştır. Bu arada mal sahipleri, işyeri düzenleme sorunlarını incelemek için uzmanlardan yararlanmaya başlamışlardır. İşte bu çalışmalarla birlikte teknikler gelişmeye başlamıştır. Atama problemi de bu tekniklerden biridir (Çakır 2006). Tesis yerleşim düzeni tasarımından kastedilen, bir üretim tesisinde; tesisteki bölüm, makine ve çalışanların en verimli şekilde tesiste konumlandırılmış olmasıdır. Bu şekilde tesis maliyet ve zaman gibi faktörler bakımından verimli bir üretime sahip 5

olabilecektir. Atama Probleminin tesis yerleşiminde yaptığı ise tesisteki makine ve çalışanların en verimli şekilde konuşlandırılarak düzenlenmesidir (Yiğit ve Türkbey 2004, Duman 2007). Tesis yerleşimi; malzeme hareketi, depolama, dolaylı işçilikler veya tüm diğer destek ve hizmetler gibi alanları içermektedir. Tesis yerleşimi kavramı bazen var olan yerleşim, bazen önerilen yeni yerleşim planı ve sıklıkla da çalışma alanı veya tesis yerleşimi yapma işini belirtmek için kullanılır (Yiğit ve Türkbey 2004). Daha önceden belirtildiği gibi hava araçları için de atama problemi kullanılabilir. Bu problemde hava araçlarının özellikleri, kullanılabilirlikleri, operasyonel maliyetleri temel alınarak farklı kapasitedeki ve farklı özelliklere sahip hava araçlarının görevlere atanması planlanır. Hava aracı atama modelinde amaç, kişi ve görev atama problemlerindekine benzer bir şekilde uçuş rotasındaki işletme maliyetleri ile sivil hava araçları için bir uçuşta, atanan hava aracının koltuk kapasitesinin talebi karşılayamadığı durumdaki gelir kayıplarının oluşturduğu maliyetlerin toplamının en küçük değere çekilmesi istenirken; bu olay, askeri hava araçlarında ise planlanan görevleri gerçekleştirme maliyetini en küçük değere çekmektir (Akyıldız ve Gürsoy 2007). Hava gücü, kısıtlı kaynaklardan oluşan, mali açıdan değeri oldukça yüksek, harekata sağladığı katkı açısından ise vazgeçilmez bir kuvvet unsurudur. Hava gücüne ait her bir silah sisteminin harekat esnasında tüm operasyonun kaderini değiştirebilecek kabiliyete sahip olmasından dolayı, bu gücün kullanımının planlamasının da en etkin şekilde gerçekleştirilmesi gerekmektedir (Arslan ve Yücel 2012). Bu yüzden Hava araçlarının görevlere atanması işlevinde de atama problemi kullanılmaktadır. Atama Problemleri nin çözümünde kullanılan yöntemler, üç ana başlık altında incelenebilir: Deterministik Yöntemler, Olasılık Temelli Yöntemler ve Sezgisel Yöntemler. 6

Literatürdeki bazı yöntemler, görev ve unsur (işçi) sayısının birbirine eşit olduğu en temel atama probleminin çözümüne yönelik olarak geliştirilmiştir. Ancak uygulamada, eldeki görev ve unsur sayısının her zaman birbirlerine eşit olması pek mümkün değildir. Bu durumda atama problemi, Genel Atama Problemi olarak adlandırılır. Genel Atama Problemi nin, klasik atama problemleri için geliştirilmiş olan klasik yöntemlerle çözümünde şu prosedür takip edilir: Problem çözümüne başlanmadan önce, maliyet matrisindeki görev sayısı m ve unsur sayısı n olmak üzere eğer m n ise m=n olacak şekilde sanal 0 değerleri atanır ve yeni oluşan maliyet matrisine göre işlemler yapılır. Burada sanal 0 değerlerini koymaktaki amaç yapılması istenen görev sayısı ile unsur sayısını örtüştürmektir. Bir başka deyişle amaç, unsur sayısı ile görev sayısını eşitleyerek her bir görevin bir adet unsur ile eşleştirilmesi istenmektedir. Daha sonra, söz konusu sanal 0 değerlerinin olduğu sanal unsurlara yapılan atamalar, aslında atama yapılamamış görev olarak değerlendirilmektedir. Daha genel çözüm üretme yeteneğine sahip olan sezgisel yöntemlerde ise, söz konusu algoritmaların öncelikli olarak her görevi bir hava aracı yapacak şekilde uyarlanması gerekmektedir. Daha sonra ise her hava aracının maksimum iki görev yapabileceği şekilde uyarlama yapılacaktır. 7

3 MATERYAL VE YÖNTEM 3.1 Deterministik Yöntemler Bu çeşit yöntemler tahmine veya olasılığa dayalı olmayan, belirsizlik içermeyen bir matematik ifade kullanılarak kesin sonuca ulaşan hesaplama yöntemleridir. Deterministik yöntemlerde giriş olarak verilen değerlere karşılık elde edilecek sonuçlar aynı işlem sonsuz defa tekrarlansa dahi aynıdır. 3.1.1 Kaba Kuvvet Algoritması Atama probleminin çözümü birçok değişik yolla elde edilebilir. Çeşitli alternatiflerden oluşan kombinasyonel çözümler Kaba Kuvvet Algoritmasının temelini oluşturmaktadır. Bu alternatif çözümler arasından her bir işlem sonucunda oluşmakta olan toplam maliyeti minimum yapan değer, problemin toplam maliyet fonksiyonunu oluşturur. Bir başka deyişle; kısıtlara uyan tüm alternatifler belirlenerek aralarından en küçük maliyete sahip olan durum seçilirse; problemin çözümü elde edilmiş olur. Dikkat edilirse, atama probleminde probleme ait olan değerlerin yazılı olduğu maliyet matrisinin boyutu m m olmak üzere; atama probleminde m! uygun geçerli çözüm bulunmaktadır. Problemin büyüklüğü (m değeri) arttıkça, uygun geçerli çözüm sayısı çok büyük bir hızla artacaktır. Örnek verecek olursak m = 5 için alternatif çözüm sayısı 120 iken; m = 10 için alternatif çözüm sayısı 3628800 olur; m = 100 olduğunda ise alternatif çözüm sayısı 100! = 9.33 10 157 olacaktır. Bu çok sayıdaki uygun alternatiflerin her birinin teker teker belirlenmesi bilgisayarda dahi oldukça uzun bir zaman gerektirecektir. Bu yüzden tüm alternatif çözümleri göz önünde bulundurarak işlem yapan Kaba Kuvvet Algoritması matris boyutu arttıkça kullanılamaz hale gelmektedir. 8

j. hava aracının i. görevi yapması durumunda olası durumlara karşılık gelen örnek bir maliyet matrisi aşağıdaki çizelge 3.1 de gösterilmektedir. Çizelge 3.1 Kişi-Görev atamalı örnek bir maliyet matrisi H.Aracı_1 H.Aracı_2 H.Aracı_3 H.Aracı_4 Görev_1 2 4 6 10 Görev_2 2 12 6 5 Görev_3 7 8 3 9 Görev_4 14 5 8 7 Bu maliyet matrisindeki değerler arasında atama problemini minimum yapan olası çözümlerden; en küçük olan değer problemin çözümü olacaktır. Örnek problemdeki m değeri 4 olduğundan, probleme ait olan kaba kuvvet algoritmasındaki alternatif çözüm sayısı 24 adettir. Buna göre oluşacak olası eşleştirmeleri göstermek gerekirse çizelge 3.2 deki gibi olacaktır. Buradaki her bir satırdaki değerler olası eşleşmeleri belirtmektedir. Eşleşmelerden kastedilen her görevi yapacak olan hava aracını göstermektedir. Örnek vermek gerekirse 1342 eşleştirmesinde 1. görevi 1. hava aracı, 2. görevi 3. hava aracı, 3. görevi 4. hava aracı ve 4. görevi 2. hava aracı yapacak şekilde olası çözüm belirtilmektedir. Atama probleminde kullanılmakta olan maliyet matrisinde bu eşleşmelere karşılık gelen değerler toplanarak sistemin olası çözüm değeri hesaplanır. 4 hava aracı ve 4 görev ile oluşturulmuş olan atama probleminde 24 adet olası çözüm değeri kendi aralarında kıyaslanarak en küçük maliyete sahip olan çözüm seçilir ve bu atama problemimizin kaba kuvvet algoritmasına göre minimum değerli çözümüdür. Bu olası görevleri çizelge 3.1 de verilmekte olan atama problemi için uygulayacak olursak toplamda 24 adet olan çözüm kümesi çizelge 3.3-3.6 daki gibi olacaktır. 9

Çizelge 3.2 4 adet görev ve 4 adet kişiye ait alternatif çözümler Görev_1 Görev_2 Görev_3 Görev_4 1.H.Aracı 2.H.Aracı 3.H.Aracı 4.H.Aracı 1.H.Aracı 2.H.Aracı 4.H.Aracı 3.H.Aracı 1.H.Aracı 3.H.Aracı 2.H.Aracı 4.H.Aracı 1.H.Aracı 3.H.Aracı 4.H.Aracı 2.H.Aracı 1.H.Aracı 4.H.Aracı 2.H.Aracı 3.H.Aracı 1.H.Aracı 4.H.Aracı 3.H.Aracı 2.H.Aracı 2.H.Aracı 1.H.Aracı 3.H.Aracı 4.H.Aracı 2.H.Aracı 1.H.Aracı 4.H.Aracı 3.H.Aracı 2.H.Aracı 3.H.Aracı 1.H.Aracı 4.H.Aracı 2.H.Aracı 3.H.Aracı 4.H.Aracı 1.H.Aracı 2.H.Aracı 4.H.Aracı 1.H.Aracı 3.H.Aracı 2.H.Aracı 4.H.Aracı 3.H.Aracı 1.H.Aracı 3.H.Aracı 1.H.Aracı 2.H.Aracı 4.H.Aracı 3.H.Aracı 1.H.Aracı 4.H.Aracı 2.H.Aracı 3.H.Aracı 2.H.Aracı 1.H.Aracı 4.H.Aracı 3.H.Aracı 2.H.Aracı 4.H.Aracı 1.H.Aracı 3.H.Aracı 4.H.Aracı 1.H.Aracı 2.H.Aracı 3.H.Aracı 4.H.Aracı 2.H.Aracı 1.H.Aracı 4.H.Aracı 1.H.Aracı 2.H.Aracı 3.H.Aracı 4.H.Aracı 1.H.Aracı 3.H.Aracı 2.H.Aracı 4.H.Aracı 2.H.Aracı 1.H.Aracı 3.H.Aracı 4.H.Aracı 2.H.Aracı 3.H.Aracı 1.H.Aracı 4.H.Aracı 3.H.Aracı 1.H.Aracı 2.H.Aracı 4.H.Aracı 3.H.Aracı 2.H.Aracı 1.H.Aracı Çizelge 3.3 Görev_1 in H.Aracı_1 e atanmış olması durumuna karşılık olası çözümler 10

Çizelge 3.4 Görev_1 in H.Aracı_2 ye atanmış olması durumuna karşılık olası çözümler Çizelge 3.5 Görev_1 in H.Aracı_3 e atanmış olması durumuna karşılık olası çözümler 11

Çizelge 3.6 Görev_1 in H.Aracı _4 e atanmış olması durumuna karşılık olası çözümler Çizelge 3.3, çizelge 3.4, çizelge 3.5 ve çizelge 3.6 da probleme ait olan bütün alternatif çözümler gösterilmiş ve toplam atama maliyeti hesaplanmıştır. Dikkat edilecek olursa atama problemimizin çözümü 1432 eşleşmesi ile optimum sonuca ulaşmaktadır. Bu eşleşmeye karşılık gelecek minimum toplam maliyet ise 15 (=2+5+3+5) olacaktır. Bu problem için kaba kuvvet algoritması ile elde edilecek olan en optimum maliyet değeri 15 olmaktadır ve bu maliyetin oluşması için 1. görevi 1. hava aracı, 2.görevi 4. hava aracı, 3. görevi 3. hava aracı ve 4. görevi 2. hava aracı yapacak şekilde problemimiz için atama yapmamız gerekmektedir. Kaba Kuvvet Algoritmasına ait olan akış diyagramı Şekil 3.1 de verildiği gibidir. 12

Basla Satir sayisi belirle ve m ye ata. Sutun sayisi belirle ve n ye ata. i=1 satir_min(i)= Evet i<=m Hayir j=1 Evet j<=n Hayir Evet satir_min(i)<deger(i) i=i+1 Hayir satir_min(i)=deger(i) j=j+1 Bitis Şekil 3.1 Kaba Kuvvet Algoritması akış diyagramı 3.1.2 Adım Adım Algoritması Bu algoritma ile atama işleminde her bir görevi en minimum maliyet ile yapmakta olan hava aracına eşleştirme yapılarak en optimum sonuca ulaşılmaya çalışılmaktadır. Bu algoritma ile yapılmakta olan atama işleminde eşleştirme çok hızlı olmasına rağmen, yapılması istenen bütün görevler adil olmayacak bir şekilde aynı kişiye de atanabilmektedir. Bu da, atama probleminde yapılmak istenen görevlerin hava araçlarına adil ve dengeli bir şekilde paylaştırılması kriterinin göz ardı edilmesi anlamına gelmektedir. Bu algoritmayı diğer algoritmalardan ayıran temel özellik şu şekilde özetlenebilir: diğer algoritmalar, herhangi bir görev için eşleştirme yaparken diğer görevler için yapılan atamaları da göz önünde bulundurmaktadır; ancak Adım 13

Adım Algoritması, böyle bir hususu göz önünde bulundurmadan atama işlemini gerçekleştirmektedir. çizelge 3.7 den de görüleceği üzere Görev_1 in Hava Aracı_1 tarafından gerçekleştirilmesi, Görev_2 nin Hava Aracı_1 tarafından gerçekleştirilmesi, Görev_3 ün Hava Aracı_3 tarafından gerçekleştirilmesi, Görev_4 ün Hava Aracı_2 tarafından gerçekleştirilmesi en minimum sonucu vermektedir. Buna göre problemin Adım Adım Algoritması ile ulaşılan toplam atama maliyet değeri 12 (=2+2+3+5) olacaktır. Bu örnekten de görülebileceği üzere Hava Aracı_1 iki adet görevi gerçekleştirirken Hava Aracı_4 e hiçbir atama yapılmamıştır. Bu da adil bir atama işleminin olmasını engellemektedir ve bu yüzden istenmeyen bir durumdur. Çizelge 3.7 Adım Adım Algoritması örneği 3.1.3 Macar Algoritması Atama problemlerinin çözümünde en çok bilinen yöntem, Macar algoritmasıdır. Bu algoritmada özetle, maliyet matrisi her seferinde sistematik bir şekilde yeni bir indirgenmiş matrise dönüştürülerek çözüme gidilmeye çalışılmaktadır. Macar algoritması gereği indirgenmiş maliyet matrisindeki sıfır elemanlar en az sayıda çizgi ile kapatılmak istenir ve buna göre maliyet matrisi üzerinde işlem yapılır. Ancak problemin büyüklüğü arttıkça ve indirgenmiş maliyet matrisinde sıfır olan eleman sayısı çoğaldıkça, matristeki sıfır elemanlarını kapatmak üzere gereken en az sayıda çizgi sayısı ve bu çizgilerin nasıl çizilmesi gerektiği sorunu ortaya çıkmaktadır (Öner ve Ülengin 2003). Macar algoritmasının işleyişi, aşağıdaki 5 adımda özetlenebilir: 14

Adım-1: Maliyet matrisinin her satırı için, satırdaki en küçük değere sahip eleman satırdaki tüm elamanlardan çıkartılır. Adım-2: Adım-1 deki işlemden sonra maliyet matrisinin her sütunu için, sütundaki en küçük değere sahip eleman sütundaki tüm elemanlardan çıkartılır. Adım-3: Adım-1 ve Adım-2 deki işlemlerden sonra matrisin yeni durumuna indirgenmiş matris denilmektedir. İndirgenmiş matris üzerinde oluşan sıfır elemanlarını kapatmak üzere; gerekli satır ve sütunların üzerine çizgi çekilir. Bu işlemde en az sayıda çizgi kullanılmalıdır. Eğer kullanılan en az çizgi sayısı maliyet matrisinin boyutu olan "m" sayısına eşitse o takdirde en iyi çözüm bulunmuş demektir ve işlem durdurulur, aksi halde Adım-4 e gidilir. Adım-4: 0 elemanlarını kapatmak için satır ve sütunlar üzerine çizilmiş çizgilerin kapatmadığı elemanlar arasından en küçük değere sahip olanı bulunur. Bu değer, üzerinden çizgi geçmeyen tüm elemanlardan çıkarılır ve üzerinden iki çizgi geçen elemanlara eklenir. Yeni bir indirgenmiş matris elde edilmiş olur ve Adım-3 e dönülür. Adım-5: Her satırda en az bir adet 0 değeri olacak şekilde işlem tekrarlanır. Eğer yeteri kadar işlem yapılarak her satırda en az bir adet 0 olacak şekilde isleme devam edilir ise; her satırda 0 değerine ait olan koordinatta ilk başlangıçta verilen maliyet değerleri toplanır ve problemin toplam maliyet bulunmuş olur. Daha önceden kullanılmış olan problemi hatırlatmak gerekirse, ilgili problem çizelge 3.8 de verildiği gibiydi. 15

Çizelge 3.8 Macar Algoritması örneği Problemin maliyet fonksiyonundaki her bir satırdaki minimum değerler bulunduğu satırdaki tüm maliyet değerlerinden çıkarılınca çizelge 3.9 daki gibi bir sonuca ulaşılır. Çizelge 3.9 Macar Algoritması Adım-1 Elde edilen indirgenmiş matristeki 0 değerleri minimum sayıda çizgi ile kapatılırsa çizelge 3.10 oluşacaktır. Dikkat edilecek olursa, hala çizgiler ile kapalı olmayan değerler bulunmaktadır. Çizgi ile kapalı olmayan değerlerdeki en küçük değer olan 1 değeri Adım-4 te belirtildiği gibi çizgi ile kapatılmamış olan değerlerden çıkarılır ve iki çizginin kesiştiği değere de eklenir. Çizelge 3.10 Macar Algoritması Adım-3 16

Adım-4 teki işlemler sonuçta tüm satırlardaki değerler çizgi ile kapatılıncaya kadar devam eder. Çizelge 3.11 de bu duruma bir örnek verilmiştir. Çizelge 3.11 Macar Algoritması Adım-4 Çizelge 3.11 deki durum için Adım-4 işlemi tekrar uygulanırsa elde edilecek sonuç çizelge 3.12 deki gibi olacaktır. Burada koyu renkte olan değerlere karşılık gelen değer bizim problemimizin çözümü olacaktır. Yani problemin çözümü sonucu bulunan toplam maliyet, işaretli 0 değerlerine karşılık gelen değerlerin toplamı olan 15 (=2+5+3+5) olacaktır. Çizelge 3.12 Macar Algoritması Adım-5 Ayrıca Macar algoritmasına ait olan akış diyagramı da Şekil 3.2 deki gibidir. 17

Basla Satir sayisi belirle ve m ye ata. Sutun sayisi belirle ve n ye ata. Satir sayisi == Sutun sayisi Evet Hayir Satir sayisi>sutun sayisi Hayir Evet Satir sayisi=sutun sayisi olacak sekilde 0 degeri ekle Evet Satir sayisi<sutun sayisi Satir sayisi=sutun sayisi olacak sekilde 0 degeri ekle 0 degerleri m sayisindan az sayida cizgi ile kapanabiliyor mu? Evet Hayir Cizgi ile kapanmamis olan hucrelerdeki minimum degeri belirle Her bir satir ve sutunda bir adet 0 degeri olacak sekilde atama yapilir Atama yapilan 0 degerlerinin bulundugu hucrelerdeki baslangic degerleri toplanir ve problemin minimum degerli atamasi bulunmus olur Bu minimum degeri cizgi ile kapatilmayan degerlerden cikar Cizgilerin ortak kesistigi nokta var mi? Evet Minimum degeri cizgilerin kesistigi hucredeki degere ekle Hayir Bitis Şekil 3.2 Macar Algoritması akış diyagramı 18

3.2 Olasılık Temelli Yöntemler İstatistiki hesaplamalar ile çözüm bulunmasına yardımcı olan algoritmaların kullanıldığı yöntemler "Olasılık Temelli Yöntemler" başlığı altında incelenecektir. Bu yöntemler olasılık temeline dayandığı için verilen sabit bir problemin farklı zamanlardaki çözümünde bulunan sonuçlar farklılık gösterebilir. 3.2.1 Açık Artırma Algoritması Adını açık artırma olayından almakta olan Açık Artırma Algoritması nda amaç ürünlerin maksimum gelir ile satılmasını sağlayacak olan atama işleminin yapılmasıdır. Açık Artırma Algoritmasında atama problemi paralel bir işlevler bütünü ile çözülmeye çalışılmaktadır. Bu algoritma, rekabetçi bir ihale sürecinde alıcıların ürünleri almak için tekliflerin yükseltilmesini andırmaktadır. Teklifler verilince yüksek verilen teklif ile ürün alınmaktadır. Bu işlemin tamamlanması için tüm alıcıların alımlardan memnun ayrılması beklenmektedir (Bertsekas ve Castanon 1989). Açık artırmadaki her bir α i değeri alıcıları belirtirken, β j ise alınmak istenen ürünleri temsil etmektedir. p j değeri β j ürününün fiyatını belirtirken w ij değeri ise α i kişisinin β j ürününü almak için harcaması gereken maliyettir (Bayati et al. 2006). Buna göre problemin atama işlemi sonrasında net bir kar (kazanç) elde etmesi Eşitlik (3.1) teki gibi olmaktadır. n i 1 ( w p ) i ( i) ( i) (3.1) Burada daha önceden belirtildiği gibi p 1,, p n, değerlerinden uygun π* değerlerinin bulunarak, maksimum kazanca ulaşılmak istenmektedir. Açık Artırma Algoritması nın işleyişi aşağıdaki 4 adımda özetlenebilir: Adım-1: Atanmamış olan alıcılar I={α 1,, α n } kümesinde toplanır ve her bir j değeri için p j =0 olarak ilk fiyatlar atanarak algoritma çalışmaya başlar. 19

Adım-2: Teklif verme: I kümesindeki her bir α i değeri için teklif verilir. i. En büyük kazancı sağlayacak olan β j bulunur. j arg max w p, (3.2) i j ij j v max w p, en yuksek teklif (3.3) i ij j j u max w p i j j ij j i, en yuksek 2.teklif (3.4) ii. α i değeri için teklif olan bir sabittir. b i hesaplanır. Buradaki değeri pozitif j b w u (3.5) i j iji i Adım-3: Atama işlemi : Her bir β j değeri için, i. P(j) ile gösterilmekte olan, β j ürünü için alıcılar tarafından verilmiş olan teklifler kümesidir. Eğer bu küme boş kümeden farklı ise; yani P(j) ise, buradaki p j değeri en yüksek teklife kadar yükseltilir. p j max (3.6) b P( j) i i j ii. Maksimum değere sahip olan teklif olan α ij I kümesinden silinerek (, ) atama işlemi gerçekleştirilir. Eğer k i j olması şartı sağlanıyor ij j ve (, ) atama kümesinin elemanı ise; k alıcılar kümesi olan I k j kümesine tekrar konur. Adım-4: Atama işlemi tamamlanıp tüm alıcılar memnun kalıp atama işlemi tamamlanana kadar Adım-2 ve Adım-3 tekrarlanır. 20

Dikkat edilecek olursa, Açık Artırma Algoritmasında maksimum değere ulaşmak istemesine karşın atama problemlerinde genelde maliyeti minimize etmek istenmektedir. Bu işlemi Açık Artırma Algoritması ile gerçekleştirmek için, belli bir değerden (olabilecek en yüksek değerden daha büyük bir değer) tüm A maliyet kümesindeki değerlerden çıkartılarak yeni bir A* maliyet matrisi bulunur. Yeni oluşan A* maliyet matrisindeki en küçük değer, A matrisinde en büyük olan değere karşılık gelir. Aynı şekilde, A* maliyet matrisindeki en büyük değer ise A matrisindeki en küçük değere karşılık gelmektedir. Buna göre çizelge 3.1 deki hava aracı-görev atamalı örnek maliyet matrisi A olacaktır. Buradaki A matris değerlerinin 50 (kullanıcının seçtiği bir değer) değerinden çıkarıldığı düşünülürse; A* matrisi çizelge 3.13 deki gibi olacaktır. Buna göre problemin çözüm adımları ilerletilebilir. Çizelge 3.13 Kişi-Görev Açık Artırma Algoritması A* maliyet matrisi Algoritmanın 4 adımı uygulanınca Açık Artırma Algoritmasına ait olan atama işlemi 1432 şeklinde olacaktır. Bu atama işlemine göre; başta kullanılan çizelge 3.13 deki Kişi-Görev atamalı örnek maliyet matrisindeki değerler göz önüne alınırsa atama işlemi sonucunda toplam maliyet 15 (=2+5+3+5) olacaktır. 3.2.2 Açgözlü Algoritma Açgözlü Algoritma, adından da anlaşılacağı üzere atama işlemini yaparken bir sonraki adımı düşünmeden o anki en iyiyi atamayı hedefleyen bir algoritmadır (Dasgupta et al. 2006). Açgözlü Algoritmasında öncelikli olarak rastgele bir görev seçilir ve bu i. görevi 21

görevi yapacak olan j. hava aracı belirlenecektir. Bu belirleme işlemi için i numaralı görevi yapacak olan hava araçlarının bu görevi yapması sonucundaki maliyet değerlerinin ( c ij ) toplamı elde edilir. Buna göre çizelge 2.1 hatırlanırsa i. görevin j. hava aracı tarafından yapılması sonucunda oluşacak maliyet c ij olmak üzere değerleri hesaplanarak görevlerin hava araçları tarafından gerçeklenebilme olasılık matrisi olan çizelge 3.14 teki matris oluşturulur. c ij c i. Çizelge 3.14 i. görevin j. hava aracı tarafından gerçeklenebilme olasılık matrisi Görev/ H.Aracı 1 2.. j.. m 1 c11 2 c21 c 1. c 12 c 1... c1 j c 1... c1 c.. c... 21 2 j c2. c2. c2................... i c21 c i.... c2 j c i... c'.................. m cm 1 c m.... c mj c 2... c m m mm c c c 1. i. m. cij Çizelge 3.14 te elde edilen değerler i. satırı için j değerinden küçük olan c ci 1 ci 2 ci3 değerleri toplanarak elde edilen d ij (j=3 için dij c c c i. i. i. görevin j. hava aracı tarafından yapılma olasılığını göstermektedir. Buradaki m değeri için d im =1 olacaktır. Bu şekilde d ij değerleri hesaplanıp çizelge 3.15 teki i. görevin j. hava aracı tarafından gerçeklenebilme olasılık matrisi2 elde edilir. 22 ij ) değeri i.

Çizelge 3.15 i. görevin j. hava aracı tarafından gerçeklenebilme olasılık matrisi 2 Görev/H.Aracı 1 2.. j.. m 1 d 11 d.. 12 d.. 1 1 j 2 d..... 21......... i d... '1 d.. 1 ij......... m d... m1 d.. 1 mj İlk olarak hangi görevin gerçekleştirileceğinin belirlenmesi amacı ile görevler arasından birisi rastgele seçilir; bu görevin hangi hava aracı tarafından yapılacağına karar vermek amacı ile 0-1 arasında bir p sayısı üretilir. p sayısının hangi d 1j aralığında olduğuna bakılır. Bulunduğu olasılık aralığı hangi j değerine karşılık geliyorsa bu hava aracına atama yapılır ve bir sonraki atama işlemine geçilir. Öncelikle rastgele bir görev seçilir ve bu görevin daha önce ataması yapılan görevlerden biri olup olmadığı kontrol edilir; eğer ataması yapılmış bir görev ise yeniden rastgele bir görev seçilir. Bu işlem, daha önceden ataması yapılmamış bir görev bulununcaya kadar devam eder. Bulunan görev için 0-1 aralığında rastgele bir değer atanır ve bu değerin hangi d 2j aralığında olduğuna bakılır. Söz konusu j değeri, 2 numaralı atamayı göstermektedir. Atama işlemleri, görevlerin her birine bir adet hava aracı atanana kadar aynı şekilde devam eder. Ardından, toplam maliyet değeri hesaplanır. Kullanıcı tarafından belirlenen nüfus (popülasyon) büyüklüğü kadar farklı atama kombinasyonu, yukarıda anlatılan prensip uyarınca oluşturulur. Söz konusu atama kombinasyonları içerisinden, minimum maliyete sahip olan seçilir. 3.2.3 Rastgele Atama Algoritması Belirli bir ön planlama yapılmadan bütün atamaların rastgelelik kriteri dahilinde eşleştirildiği atama algoritmasına Rastgele Atama Algoritması adı verilebilir. Bu 23

algoritmada öncelikli olarak birinci görevi yapması için hava araçları arasından bir hava aracı belirli bir ön koşul aranmaksızın seçilir ve bu göreve ataması yapılır. Daha sonra diğer görevler içinde aynı şekilde atamalar yapılarak bütün görevlere bir adet hava aracı atanacak şekilde atamalar yapılır. Buna göre elde edilen sonuç atamasına karşılık gelen maliyet değerleri toplanarak atamaya ait olan maliyet değeri hesaplanır ve bu şekilde kullanıcı tarafından başlangıçta belirlenen birey sayısı kadar atama yapılarak aralarından en iyi atamanın seçilmesi ile optimal sonuç yakalanmaya çalışılır. Bu algoritmada bütün atamalar rastgelelik çerçevesinde yapılacağı için algoritmanın optimal sonucu yakalayamama olasılığı oldukça yüksektir. Bu yüzden, aslında uygulamada tercih edilen bir algoritma değildir. Proje kapsamına dahil edilmesinin nedeni, sistematik çözümler üreten diğer algoritmaların, ne kadar maliyet indirimi sağladığına dair bir değerlendirme yapmak üzere referans oluşturmasıdır. 3.3 Sezgisel Yöntemler Sezgisel yöntemler, bir problem türü üzerinde yoğun, dikkatli bir araştırma ve sağduyu ile o probleme özel, çoğunlukla en iyiye yakın veya pratik değeri olan çözüm bulabildiği gösterilen yaklaşımları ifade etmek için kullanılır. Sezgisel Yöntemlerde, deterministik yöntemlerin yeterli olmadığı durumlarda, atama problemlerinin özel yöntemlerle nasıl çözülebileceği üzerinde durulur. Bu algoritmalar şu şekildedir: 3.3.1 Genetik Algoritma Genetik algoritmalar, doğal seçim ilkelerine dayanan bir arama ve optimizasyon yöntemidir. Bir başka deyişle, çeşitli optimizasyon problemlerine uygulanabilen Genetik Algoritmalar doğal genetik ve doğal arama özelliğine sahip stokastik bir arama yöntemidir. Genetik Algoritma, optimizasyon ve arama problemleri için etkili ve yaygın olarak kullanılabilen evrimsel bir hesaplama yöntemidir (Bayrak 2010). Genetik Algoritma doğadaki biyolojik organizmalardan esinlenilerek ortaya çıkmış bir yöntemdir. Evrim kavramı, doğal popülasyonlar, doğal arama ve en iyi olanın ayakta kalması prensiplerini içermektedir. Çevrelerindeki durumlara daha çok uyum gösteren bireyler, hayatta kalmak için daha çok şansa sahip olurken, az uyum gösteren bireyler 24

elenirler. Bu da bireylerle en çok uyum gösteren genlerinin, sonraki nesillere daha çok aktarılacağı anlamına gelmektedir. Yüksek uyumlu ebeveynlerden iyi özellikler bileşerek, daha uyumlu çocuklar üreyebilmektedir. Bu yolla türler çevrelerine çok daha uyumlu hale gelirler ve dolayısıyla gelişirler (Akbulut ve Yılmaz 2009). Genetik algoritma doğada geçerli olan en iyinin yaşaması kuralına dayanarak sürekli iyileşen çözümler üretmektedir. Bundan dolayı iyi den kastedilenin ne olduğunu belirleyen bir uygunluk fonksiyonu ve yeni çözümler üretmek için yeniden kopyalama ve mutasyon gibi operatörleri kullanmaktadır. Genetik algoritmaların bir diğer önemli özelliği de bir grup çözümle uğraşmasıdır. Bu sayede çok sayıda çözümün içinden iyileri seçilip kötüleri elenebilmektedir, bu da problemin çözümünde en iyiye ulaşmada yardımcı olacak bir durumdur. Genetik algoritma genellikle geleneksel yöntemlerle çözümü zor veya imkansız olan problemlerin çözümünde kullanılmaktadır. Genetik Algoritma, birden fazla (nüfus büyüklüğü kadar) çözüm üzerinde çalışmaktadır. Çözümler, problemin yapısına uygun bir şekilde kodlanmış kromozomlar tarafından temsil edilirler. Genetik algoritma, bireylerin bir başlangıç popülasyonunu alarak ve her üretimde genetik operatörleri kullanarak bu durumları gözden geçirmektedir. Optimizasyon açısından, popülasyondaki her birey, verilen problemde olası çözümü gösteren bir dizi veya kromozoma kodlanarak işlem yapılır. Bir bireyin uygunluğu, verilen amaç fonksiyonuna göre değerlendirilmektedir. Uygunluk fonksiyonu, kromozomların ifade ettikleri çözümlerin ne derece iyi olduğunu ifade eder. Yüksek oranda uygunluk gösteren bireyler veya çözümler, çaprazlama prosedüründe diğer yüksek uyumlu bireylerle, genetik bilgilerindeki parçaları değiştirerek yeniden üretilme fırsatını bulurlar. Bu da ebeveynlerin her ikisinden de alınan bazı karakterleri paylaşan yeni çocuk çözümler üretir. Bu olaya çaprazlama adı verilmektedir (Konak et al. 2006). Rastgele ve diğer algoritmaların çıktılarından oluşan genetik bilgi, çaprazlama ile belli bir süre iyileştirildikten sonra kaçınılmaz olarak, yeni bilgi akışı olmadığı için, 25

yerel bir minimuma takılmak söz konusudur. Bu durumda genetik algoritma yönteminin mutasyon işlevi, belli bir miktar çıkış olanağı sunmaktadır. Literatürde, daha fazla çeşitlilik sağlanması için birden çok paralel popülasyonlu genetik algoritma türevi önerileri de bulunmaktadır (Tirveş 2007). Mutasyon, çoğu zaman dizilerdeki bazı genleri değiştirerek çaprazlamadan sonra uygulanır. Çocuk birey, bütün popülasyonu değiştirmekle elde edilebileceği gibi, az uyumlu özelliklerin değişmesiyle de oluşabilmektedir. Bu olaylar bütünü üretim döngüsü, istenen sayıda kuşak yaratılana veya başka bir durma kriteri sağlanana kadar tekrarlanır. Üretilen en iyi çözüm problemin çözümü olarak alınır. Genetik algoritmanın izlemiş olduğu algoritma düzeni Şekil 3.3 teki akış diyagramında görülmektedir. 26

Basla Kuşak 0 İlk popülasyonu oluştur ve Uygunluk değerini hesapla. Durdurma kriteri sağlanıyor mu? Hayır Evet Çoğalma işlemi Bitiş Çaprazlama işlemi Mutasyon işlemi Fitness değer hesabı Kuşak=kuşak+1 Şekil 3.3 Genetik Algoritma akış diyagramı Çizelge 3.1 deki hava aracı-görev atamalı örnek maliyet matrisine ait problem genetik algoritma ile de gerçeklenmeye çalışılabilir. Bu problem için öncelikle kromozomları, çaprazlama, mutasyon, ve toplumdaki toplam birey sayısının ne olduğundan bahsetmek gerekir. Burada kromozomlar oluşturulurken çizelge 3.2 deki alternatif çözümlerden ikisi seçilir. Örneğin Kromozom_A olarak 2341 ve Kromozom_B olarak 4132 alternatif çözümlerinin seçildiği düşünülsün (buradaki Kromozom_A ve Kromozom_B ebeveyn veya bir başka deyişle ataları temsil etmektedir). İlk olarak durdurma kriterinin sağlanıp sağlanmadığına bakılmaktadır. Buradaki durdurma kriteri; toplam maliyete ait 27

belli bir eşik seviyesi veya maksimum ulaşılması istenen topluluktaki birey sayısı olarak seçilebilmektedir. Problemimizde eşik seviyesinin 18 değeri olduğunu ve topluluktaki maksimum birey sayısının 10 olduğunu varsayalım. Buradaki eşik seviyesi olan 18 değerinin, yeteri kadar iyi bir çözüm olduğu varsayılmaktadır. Buna göre 2341 çözümü ile maliyet 33 olurken, 4132 çözümü ile maliyet 20 olmaktadır. Yani durdurma kriteri sağlanamamaktadır. Her bir kromozomun uygunluk değerinin hesaplanmasının ardından bir sonraki jenerasyona aktarılacak kromozomların seçilmesine yönelik olarak çaprazlama ve mutasyon işlemleri gerçekleştirilir. Bu işlemlerin amacı popülasyon üzerinde çeşitlilik yaratarak elit kromozomdan daha yüksek uygunluk değerlerine sahip yeni kromozomlar üretmeye çalışmaktır (Türker ve Sümer 2008). Buna göre algoritma öncelikli olarak çoğalma işlemini gerçekleştirecektir. Çoğalma işlemi temel olarak iki şekilde yapılabilmektedir. Tek noktalı çaprazlama: Tek bir kesme noktası seçilerek kesme noktasına kadar olan bölüm Kromozom_A dan alınırken, kesme noktasından sonraki bölüm ise Kromozom_B den alınıp çocuk bireyler (yeni bireyler) oluşturulur. Şekil 3.4 Tek noktalı çaprazlama örneği İki noktalı çaprazlama: Tek noktalı çaprazlamadaki mantıkla sadece 2 kesme noktası kullanılarak yapılır. İlk kesmeye kadar olan bölüm Kromozom_A dan alınırken ikinci kesmeye kadar olan bölüm Kromozom_B den alınır ve ikinci kesmeden sonraki bölüm ise Kromozom_A dan alınır. Şekil 3.5 İki noktalı çaprazlama örneği 28

Problemde çaprazlama işlemi gerçekleştirildikten sonra oluşan yeni bireylere sahip olan toplum (bireyler kümesi), mutasyon işlemini gerçekleştirecektir. Mutasyon işlemi daha önceden belirlenmiş bir mutasyon olasılığına göre bireylerin sahip olduğu genlerde değişiklik yapılacaktır. Bu oran %100 olursa tüm genler değiştirilirken, oranın %0 olması durumunda ise hiçbir gen değiştirilmeyecektir. Mutasyon yapılmasına karar verilen bireyde sıra değiştirme yöntemi ile mutasyon yapılabilir. Şekil 3.6 Sıralı mutasyon örneği Mutasyon işleminden sonra uygunluk değeri hesaplanır. Bundan sonra algoritmadaki elit olan kromozom seçilir ve bu kromozomun genleri bir sonraki kuşağa doğrudan aktarılır. Algoritma başa döner ve durdurma kriteri sağlanmaması durumunda adımlar tekrar eder. Buradaki topluluk büyüklüğünü belirlemek, tüm Genetik Algoritma kullanıcıları açısından oldukça önemli bir aşamadır. Topluluk büyüklüğü, başka bir deyişle kromozom ya da birey sayısı, Genetik Algoritmanın başarısını ya da optimum sonuca erişim süresini etkileyen önemli unsurlardan biridir. Topluluk büyüklüğünün gereğinden küçük alınması, arama tekniğinin dar bir çözüm uzayında uygulanması anlamını taşımaktadır. Dar çözüm uzayı ise, problemin optimum çözümünün çözüm uzayı dışında kalma ihtimalini artıracaktır. Gereğinden büyük alınması ise, algoritmanın anlamlı sonuçlara geç ulaşmasına ve yavaş çalışmasına neden olacaktır (Goldberg 1989). Büyük toplulukta çözüm uzayı daha iyi örneklenebileceğinden arama daha etkin yapılırken, arama süresi artacaktır (Paksoy 2007). 3.3.2 Karınca Koloni Optimizasyonu Algoritması Arılar ve karıncalar hayatta kalmak amacı ile çeşitli davranış biçimleri sergilemektedir. Günümüzde bilim adamları gerçek hayattaki hayvanların davranışlarını örnek alarak; değişik uygulamalarda kullanmışlardır. Karınca Kolonisi Optimizasyon Algoritmasında 29

bunlardan birisidir (Dorigo et al. 2006). İlk Karınca Kolonisi Optimizasyon Algoritması, 1991 yılında Dorigo ve çalışma arkadaşları tarafından karıncaların davranışlarının keşfi sonucunda oluşturulmuştur (Dorigo et al. 1996). Karıncalar, bulunduğu koloninin menfaatleri için beraber çalışan hayvanların en iyi örneklerindendir. Koloniler halinde yaşayan karıncalar hayatta kalmak için besin ihtiyaçlarını karşılama amacı ile ilk olarak öncü karıncaları tek başlarına gönderirler. Bu öncüler çevreyi araştırarak uygun yiyecek kaynağını bulmaya çalışırlar. Bu ilk araştırma sırasında her karınca değişik yönlere yayılarak çevredeki yiyecekleri bulmak için gezinirler. İlk olarak yollanan öncü karıncalar besin maddesi bulurlarsa, koloninin olduğu yere (başlangıç noktasına) geri dönerken arkalarında feromon adı verilen özel bir salgı maddesi bırakarak ilerler. Bu salgı maddesi sayesinde diğer karıncaların da bu besin kaynağını bulabilmesinde yardımcı olurlar. Karınca kolonisi optimizasyon algoritması pozitif geri beslemeli bir yöntemdir. Bu algoritmada karıncaların davranışını biraz açıklamak gerekirse, karıncalar yuva ile besin kaynağı arasında gidip gelmek için gidebileceği yolları belirlerler. Karıncalardan birisinin bu yolların birisinden geçtiğini düşünürsek, karınca yolun kısalığına göre (yol kısa ise daha çok olmak üzere) yola salgı maddesi bırakır. Daha sonra gelen karıncalar da aynı şekilde salgı maddesi bırakarak yolun seçilme olasılığını arttırırlar. Her bir karınca iki yolun birleştiği noktaya geldiğinde hangi yolu seçeceğini belirlemek için bir tercih yapar. Bu yol seçimini öncelikli olarak yoldaki salgı miktarı olmak üzere; salgı miktarı ve rastgeleliğe göre belirler. Burada rastgelelik olmasının nedeni ilk karınca besin maddesini bulduktan sonra geri dönüşte yaydığı salgı maddesini takip eden diğer karıncalarda aynı yoldan besin maddesine gidip besin maddesini alıp geri yuvalarına döneceklerdir. Burada salgı maddesi olmasının yanında rastgelelik kriteri de konularak karıncaların yeni yolları da keşfetmesinin önü açılmış olmaktadır. İlk karıncanın kullanmış olduğu yolun en kısa yol olmaması durumunda karıncaların uzun olan yol yerine daha kısa olan yolu bulmaları sağlanmaktadır. Görüldüğü üzere bu şekilde kısa yollarda daha fazla salgı maddesi bulunacaktır. Salgı maddesinin çok olması daha sonraki karıncaların kısa olan yolu seçme ihtimalini 30

artıracaktır. Salgı maddesi çok olan yollar daha çok karınca tarafından tercih edilirken, salgı maddesi daha az olan yollar daha az karınca tarafından tercih edilecektir. Salgı maddesi miktarı gerçek hayatta olduğu gibi belirli zaman süreçlerinde buharlaşma sonucunda miktarı belirli oranda azalmaktadır. Bu buharlaşma işlemi ile salgı maddesi az olan yollarında seçilmesi sağlanarak daha kısa ve daha değişik yollarında bulunması sağlanmaya çalışılacaktır. Bu şekilde en kısa yolun bulunma ihtimali doğacaktır. Oluşturulan algoritmadaki karıncalar en kısa yolu bulma amacı ile gezinmiş oldukları yolları hafızalarında tutarak en kısa yolu unutmamaları sağlanır. Bu işlemde en kısa yol için nasıl bir rota izledikleri bilgisi mevcuttur. Bir karınca bir yiyecek kaynağı bulduğu zaman kaynağın kalitesini veya miktarını değerlendirir ve bir miktar yiyecek alarak yuvasına geri döner. Bu geri dönüş sırasında, bulduğu yiyecek kaynağının kalitesi veya miktarıyla doğru orantılı olacak şekilde kullandığı yol üzerinde feromon maddesi salgılar. Böylece diğer karıncalar, söz konusu yolun sonundaki yiyecek kaynağının varlığı hususunda bilgi sahibi olurlar. Yuvaya yakın kaynaklara ulaşmak daha kolay ve hızlı olacağı için, yuvaya kısa mesafedeki yollar üzerinde feromon maddesinin yoğunluğu daha fazla olacaktır (Özdemir 2008). Yukarıda genel anlamda çalışma prensibi anlatılmış olan Karınca Kolonisi Optimizasyon Algoritması nın işleyiş prensibi, şekilsel olarak Şekil 3.7 deki gibidir. Şekil 3.7 Öncü karıncaların besin maddesine giden yolu belirlemesi 31

Şekil 3.7 de gösterildiği üzere karıncalar engele gelince besin kaynağına giden yolu belirlemek için rastgeleliğe göre iki ayrı yoldan birini seçerler. Karıncalardan birisi uzun yolu seçerken, diğer karıncanın kısa yolu seçtiği Şekil 3.8 de rahatça görülmektedir. Şekil 3.8 Öncü karıncaların besin maddesine ulaşması Öncü karıncalardan kısa yolu seçen besin maddesine erken ulaşırken uzun yolu seçen geç ulaşmaktadır. Şekil 3.8 da görüleceği üzere alt yolu seçen karınca besin maddesine daha erken ulaşmaktadır. Karıncalar besin maddesine ulaşıp tekrar yuvaya geri dönerken feromon maddesi salgılarlar. Kısa yolu seçen karınca geri dönerken daha yoğun miktarda salgı maddesi salarken uzun yolu seçen karınca daha az yoğunlukta salgı maddesi salacaktır. Buna göre kendinden sonra besin maddesine ulaşmaya çalışan karıncaların kısa yolu seçmesinde etkin rol üstlenecektir. Karıncalar besin maddesine gidip yuvalarına geri dönme işlemi tekrarlandıkça Şekil 3.9 da görüldüğü gibi kısa yolu seçen karınca sayısı git gide artış gösterecek ve yeterince zaman geçince karıncaların büyük bir çoğunluğu kısa yoldan besin maddesine gidip geri dönecektir. 32

Şekil 3.9 Karıncaların besin maddesine kısa yoldan ulaşması Bu algoritma, karıncaların doğal davranışlarını taklit ederek sürekli ve süreksiz problemleri çözmek için kullanılır. Bu algoritmaların en çok kullanıldığı uygulama alanı Gezgin Satıcı Problemi dir. Bu sistemde gerçek karıncaların birtakım özellikleri değiştirilerek yapay karıncalar tasarlanmıştır. Ancak KKO nun Genel Atama Problemi ne uyarlanması için bir takım modifikasyonlar gerekmektedir. Problem, tepe ve ayrıtların olduğu bir yol şeklinde modellenir. Bu yollar arasında karınca, aşağıda tanımı verilen olasılık fonksiyonunun değerlerine göre karar vermektedir. Yöntem, atama probleminin çözümünde kullanılırken: i, k karıncası tarafından yapılması olası görevi, j ise görev yapılırken kullanılan hava aracı veya makineyi temsil etmektedir. Olma olasılığı, Eşitlik (3.7) de verildiği üzere hesaplanmaktadır. p k ij ij ij cil il il (3.7) c il gösterilmekte olan k karıncası tarafından i. görevin yapılması için seçilebilecek olan l numaralı hava aracı veya makineye ait kümedeki elemanları göstermektedir. ij ise i. görevin j numaralı hava aracı veya makine tarafından yapılması sonucundaki salgılanacak olan salgı maddesi miktarıdır. 33

Karıncalar bu olasılık bağıntısına göre bir sonraki seçimlerini yaparlar. Problemdeki tüm görevler tamamlandıktan sonra bir tur veya iterasyon tamamlanmış olacaktır. İterasyon tamamlanınca salgı maddesi miktarı güncellenir. m k ij 1 ij ij k 1 (3.8) Eşitlik(12) de verilen eşitlik ile feromon maddesi miktarı güncellenir. Bu güncelleme işleminin gerçekleştirilmesinde kullanılan bazı parametrelerin ne özelliklere sahip olduğundan bahsedecek olursak: : feromon ( salgı maddesi ) buharlaşma miktarıdır ( 0< <1 ). m : toplam karınca sayısının belirtmektedir. k ij : k karıncasının i numaralı görevi yaparken j numaralı hava aracını kullanması sonucunda bıraktığı feromon miktarını belirtmektedir. k Q/ Lk i numarali gorev k karincasi tarafindan j numarali ucak tarafinda yapiliyor ise, ij (3.9) 0 aksi takdirde Q : sabit bir değerdir. L k : k. karınca tarafından taranan tur uzunluğu belirtmektedir. ij : i. görevin j. hava aracı tarafından yapılmasının yapılabilirlik amaç fonksiyonunu belirtmektedir. ij 1 d ij (3.10) d ij : i. görevin j. hava aracı tarafından yapılma maliyetini belirtmektedir. : feromon maddesi salgısının izine verilen önemi gösteren parametredir. : i. görevin j. hava aracı tarafından yapılmasının yapılabilirlik amaç fonksiyonuna verilen önemi gösteren bir parametredir. 34

Buradaki α ve β değerleri ayar parametreleridir ve feromon maddesi salgısı ile sezgisel fonksiyonun katılım oranlarını etkilerler. Eğer α = 0 olursa sadece yapılabilirliğe yani sezgisel fonksiyona göre bir seçim yapılır ve algoritma, stokastik bir Açgözlü Arama Algoritmasına döner (Dorigo 1991). Eğer β = 0 olursa sadece feromon izine göre seçim yapılacağından optimal bir çözüme ulaşılamaz. Bu yüzden her ikisinin de gerektiği kadar görevlerin hava araçları tarafından yapılabilirlik oranı hesabını yapmamıza yarayan fonksiyona ağırlık katması gerekir. Bununla birlikte, feromon buharlaşması olmaksızın Karınca Kolonisi Optimizasyon Algoritması güzel sonuçlar veremez. Çünkü arama uzayındaki ilk keşifler tamamen rastgele olduğundan, bu aşamada bırakılan feromonlar herhangi bir bilgi içermezler. Dolayısıyla diğer karıncaların bu işe yaramayan değerleri kolayca unutması ve iyi çözümler üzerinden yol alabilmesi için bu buharlaştırma olayı gereklidir. Diğer önemli bir parametre ise sistemde var olan karınca sayısıdır. Kullanılan karınca sayısı çok az olursa lokal sonuçlara takılma olasılığını artacaktır. Bu yüzden karınca sayının az olması feromon buharlaşması nedeniyle beklenen toplu şekilde çalışma özelliğini ortadan kaldıracaktır. Bu ana kurallar çerçevesinde çeşitli özelliklerde değişiklik yapılarak Karınca Kolonisi Algoritmasının verdiği sonuçların en iyileştirilmesine çalışılmıştır. Bu çalışmalar, aşağıdaki 4 (dört) ana başlık altında özetlenebilir. i. Toplam Maliyet kriterine göre Karınca Koloni Algoritması Algoritmada öncelikli olarak başlangıç parametreleri girilir ve gerekli değerler atanır. Bunun üzerine yapılabilirlik amaç matrisi hesaplanarak her bir i numaralı görevin j numaralı hava aracı tarafından yapılma olasılığı hesaplanır. Daha sonra Eşitlik (3.7) de verilen fonksiyon ile k numaralı karıncanın i numaralı görevi j numaralı hava aracı ile 35

yapma olasılığı hesaplanır. Toplam karınca sayısı m olmak üzere karıncalara ilk atamalar yapılacaktır. Buradaki her bir k numaralı karınca için i numaralı görevi yapması için elinde bulunan hava araçları arasından seçim yapması istenmektedir. Bu seçim işlemi ise her bir hava aracına düşen maliyet miktarının i numaralı görevi yapabilecek olan tüm hava araçlarının maliyet değerlerine oranı alınarak elde edilen seçilebilme olasılık oranına göre belirlenir. Bu seçme işlemi için 0-1 aralığında bir değer atanır ve bu değerin rulet çarkı prensibine göre elde edilen olasılık değerlerine göre hangi aralıkta kaldığına bakılarak i. göreve karşılık atanacak olan j numaralı hava aracı belirlenir. Bu işlem bütün görevlere birer adet hava aracı atanacak şekilde tekrarlanır. Karıncaların hepsine gerekli atamalar yapıldıktan sonra her bir i. görevin j. hava aracına atanması durumunda yapılabilirlik amaç değeri hesaplanarak yapılabilirlik amaç matrisi oluşturulur. Daha sonra Eşitlik (3.8) e göre feromon madde miktarı güncellenir ve iterasyon tamamlanır. Bu şekilde bütün iterasyonlar tamamlanınca algoritma sonuçlanır. Algoritma işlerken elde edilen atamaların toplam maliyet değerleri en iyi atama değeri ile kıyaslanarak algoritma işlemi sonucunda en iyi atama yakalanmaya çalışılır. Bu algoritmaya ait olan akış diyagramı Şekil 3.10 deki gibidir. 36

Basla Başlangıç parametreleri kullanıcı tarafından girilir. ( Maliyet Matrisi, α, β, ρ, Karınca sayısı, İterasyon sayısı) Başlangıç değerleri girilir. Maliyet Matrisine göre yapılabilirlik amaç matrisi oluşturulur.( ηij). Herbir I görevinin j numaralı uçak tarafından yapılma olasılığı hesaplanır. Iterasyon sayısı tamamlandı mı? HAYIR k p ij degeri hesaplanır. Karınca sayısı tamamlandı mı? HAYIR EVET i. görevin hangi uçak tarafından yapılacağını belirlemek amacı ile maliyet matrisine göre rulet çarkı hesabı yapılır ve rastgele atılan değer hangi aralığa denk gelirse o uçak I. göreve atanır. Aynı işlem tüm görevlere bir uçak atanacak şekilde tekrarlanır. ij Hesabı yapılır. (k numaralı karıncanın yapmış olduğu atamaların toplam maliyeti dij olmak üzere) 1 d ij En iyi atamadan daha iyi atama yapıldı mı? EVET m k ij 1 ij ij k 1 Denklemine göre yeni Feromon madde miktarı hesaplanır. Iterasyon Sayısı=Iterasyon Sayısı+1 HAYIR Karınca Sayısı=Karınca Sayısı+1 En iyi atamayı hafızaya al. Bitiş Şekil 3.10 Toplam Maliyet kriterine göre Karınca Koloni Algoritması akış diyagramı 37

ii. Yerel Maliyet kriterine göre Karınca Koloni Optimizasyon Algoritması Algoritmada öncelikli olarak başlangıç parametreleri girilir ve gerekli değerler atanır. Bunun üzerine yapılabilirlik amaç matrisi hesaplanarak her bir i numaralı görevin j numaralı hava aracı tarafından yapılma olasılığı hesaplanır. Daha sonra Eşitlik (3.7) de verilen fonksiyon ile k numaralı karıncanın i numaralı görevi j numaralı hava aracı ile yapma olasılığı hesaplanır. Toplam karınca sayısı m olmak üzere karıncalara ilk atamalar yapılacaktır. Buradaki her bir k numaralı karınca için i numaralı görevi yapması için elinde bulunan hava araçları arasından seçim yapması istenmektedir. Bu seçim işlemi ise her bir hava aracına düşen maliyet miktarının i numaralı görevi yapabilecek olan tüm hava araçlarının maliyet değerlerine oranı alınarak elde edilen seçilebilme olasılık oranına göre belirlenir. Bu seçme işlemi için 0-1 aralığında bir değer atanır ve bu değerin rulet çarkı prensibine göre elde edilen olasılık değerlerine göre hangi aralıkta kaldığına bakılarak i. göreve karşılık atanacak olan j numaralı hava aracı belirlenir. Bu işlem bütün görevlere birer adet hava aracı atanacak şekilde tekrarlanır. Burada feromon maddenin bırakılacağı miktar i numaralı görevin j numaralı hava aracına atanması durumunda oluşacak maliyet değerine göre feromon maddesi bırakılarak yapılmaktadır. Buharlaşma miktarına bağlı olarak da gerekli buharlaşan feromon maddesi her bir görevin olası hava araçları tarafından yapılmasına karşılık gelen yapılabilirlik matrisinde güncellenerek iterasyon tamamlanır. Bu işlem iterasyon adımları bitene kadar tekrarlanarak en minimum maliyete ulaşmamıza yarayan atama işlemi hafızada tutularak algoritma sonuçlanır. Algoritmaya ait olan akış diyagramı Şekil 3.11 deki gibidir. 38

Basla Başlangıç parametreleri kullanıcı tarafından girilir. ( Maliyet Matrisi, α, β, ρ, Karınca sayısı, İterasyon sayısı) Başlangıç değerleri girilir. Maliyet Matrisine göre yapılabilirlik amaç matrisi oluşturulur.( ηij). Herbir I görevinin j numaralı uçak tarafından yapılma olasılığı hesaplanır. Iterasyon sayısı tamamlandı mı? HAYIR k p ij degeri hesaplanır. EVET Karınca sayısı tamamlandı mı? HAYIR EVET i. görevin hangi uçak tarafından yapılacağını belirlemek amacı ile maliyet matrisine göre rulet çarkı hesabı yapılır ve rastgele atılan değer hangi aralığa denk gelirse o uçak I. göreve atanır. Aynı işlem tüm görevlere bir uçak atanacak şekilde tekrarlanır. ij Hesabı yapılır. (k numaralı karıncanın yapmış olduğu atamaların toplam maliyeti dij olmak üzere) 1 d ij En iyi atamadan daha iyi atama yapıldı mı? EVET m k ij 1 ij ij k 1 Denklemine göre yeni Feromon madde miktarı hesaplanır. Iterasyon Sayısı=Iterasyon Sayısı+1 HAYIR Karınca Sayısı=Karınca Sayısı+1 En iyi atamayı hafızaya al. Bitiş Şekil 3.11 Yerel Maliyet kriterine göre Karınca Koloni Algoritması akış diyagramı 39

iii. Toplam Maliyet kriteri ve öncü karıncaların rastgele atandığı Karınca Koloni Optimizasyon Algoritması Algoritmada öncelikli olarak başlangıç parametreleri girilir ve gerekli değerler atanır. Bunun üzerine yapılabilirlik amaç matrisi hesaplanarak her bir i numaralı görevin j numaralı hava aracı tarafından yapılma olasılığı hesaplanır. Daha sonra Eşitlik (3.7) de verilen fonksiyon ile k numaralı karıncanın i numaralı görevi j numaralı hava aracı ile yapma olasılığı hesaplanır. Daha sonra karıncalara atama işlemi yapılmaya başlanır. Bu atama işleminde her bir görevin yapılması için hava araçları arasından rastgele biri atanarak atama işlemi tekrarlanır. Bu şekilde öncü karıncaların hepsine atamalar yapıldıktan sonra atamaların işlem maliyetine göre feromon maddesi güncellemesi yapılır. Bu güncelleme işleminde maliyet olarak k numaralı karıncaya ait olan görev - hava aracı atamaları sonucunda elde edilen toplam maliyet hesaba katılır. Bu sayede öncü karıncalara gerekli atamalar yapılmış olur ve 1. iterasyon tamamlanır. Eşitlik (3.7) de verilen fonksiyon ile k numaralı karıncanın i numaralı görevi j numaralı hava aracı ile yapma olasılığı tekrar hesaplanır. Yeni karıncalar bu olasılık değerine göre hesaplanacaktır. Olasılık değerlerine göre her bir görev için atanacak olan hava aracı 0-1 arasında rastgele atanan değerin düştüğü aralık göz önünde bulunarak seçilir ve bu şekilde k numaralı karıncaya ait olan tüm görevlere birer adet hava aracı ataması yapılacak şekilde atamalar yapılır. Daha sonra Eşitlik (3.10) teki ij hesabı yapılır ve feromon madde güncellemesi yapılarak iterasyon tamamlanır. İterasyon sayısı maksimuma ulaşınca algoritma sonlandırılır. Algoritma çalışırken her bir iterasyon sırasında yapılmakta olan atama işlemlerinde elde edilen maliyet değerlerinden en minimum maliyet değerine ait atama hafızada tutulur. Algoritmaya ait olan akış diyagramı Şekil 3.12 deki gibidir. 40

Basla Başlangıç parametreleri kullanıcı tarafından girilir. ( Maliyet Matrisi, α, β, ρ, Karınca sayısı, İterasyon sayısı) Karınca sayısı tamamlandı mı? EVET HAYIR i. görevin yapılası için rastgele bir uçak atanır. Bu işlem tüm görevler için tekrarlanır. Başlangıç değerleri girilir. Maliyet Matrisine göre yapılabilirlik amaç matrisi oluşturulur.( ηij). Herbir I görevinin j numaralı uçak tarafından yapılma olasılığı hesaplanır. k p ij degeri hesaplanır. ij 1 d ij En iyi atamadan daha iyi atama yapıldı mı? HAYIR EVET En iyi atamayı hafızaya al. Hesabı yapılır. (k numaralı karıncanın yapmış olduğu atamaların toplam maliyeti dij olmak üzere) m k ij 1 ij ij k 1 Karınca Sayısı=Karınca Sayısı+1 Denklemine göre yeni Feromon madde miktarı hesaplanır. Iterasyon Sayısı=Iterasyon Sayısı+1 Iterasyon sayısı tamamlandı mı? HAYIR k p ij degeri hesaplanır. EVET Karınca sayısı tamamlandı mı? HAYIR EVET ij Hesabı yapılır. (k numaralı karıncanın yapmış olduğu atamaların toplam maliyeti dij olmak üzere) 1 d ij m k ij 1 ij ij k 1 i. görevin hangi uçak tarafından yapılacağını belirlemek amacı ile maliyet matrisine göre rulet çarkı hesabı yapılır ve rastgele atılan değer hangi aralığa denk gelirse o uçak I. göreve atanır. Aynı işlem tüm görevlere bir uçak atanacak şekilde tekrarlanır. En iyi atamadan daha iyi atama yapıldı mı? EVET Denklemine göre yeni Feromon madde miktarı hesaplanır. HAYIR En iyi atamayı hafızaya al. Iterasyon Sayısı=Iterasyon Sayısı+1 Karınca Sayısı=Karınca Sayısı+1 Bitiş Şekil 3.12 Toplam Maliyet kriteri ve öncü karıncaların rastgele atandığı Karınca Koloni Algoritması akış diyagram 41

iv. Yerel Maliyet kriteri ve öncü karıncaların rastgele atandığı Karınca Koloni Algoritması Algoritmada öncelikli olarak başlangıç parametreleri girilir ve gerekli değerler atanır. Bunun üzerine yapılabilirlik amaç matrisi hesaplanarak her bir i numaralı görevin j numaralı hava aracı tarafından yapılma olasılığı hesaplanır. Daha sonra Eşitlik (3.7) de verilen fonksiyon ile k numaralı karıncanın i numaralı görevi j numaralı hava aracı ile yapma olasılığı hesaplanır. Daha sonra karıncalara atama işlemi yapılmaya başlanır. Bu atama işleminde her bir görevin yapılması için hava araçları arasından rastgele biri atanarak atama işlemi tekrarlanır. Bu şekilde öncü karıncaların hepsine atamalar yapıldıktan sonra atamaların işlem maliyetine göre feromon maddesi güncellemesi yapılır. Bu güncelleme işleminde maliyet olarak k numaralı karıncaya ait olan atamadaki i numaralı görevi yapacak olan hava aracına ait olan maliyet değerine göre feromon maddesi eklenir. Aynı işlem diğer görevler içinde i numaralı görevin yapılması için atanan j numaralı hava aracına karşılık gelen maliyet değeri göz önünde bulundurulacak şekilde atamalar gerçekleştirilerek iterasyon tamamlanır. Eşitlik (3.7) de verilen fonksiyon ile k numaralı karıncanın i numaralı görevi j numaralı hava aracı ile yapma olasılığı tekrar hesaplanır. Yeni karıncalar bu olasılık değerine göre hesaplanacaktır. Olasılık değerlerine göre her bir görev için atanacak olan hava aracı 0-1 arasında rastgele atanan değerin düştüğü aralık göz önünde bulunarak seçilir ve bu şekilde k numaralı karıncaya ait olan tüm görevlere birer adet hava aracı ataması yapılacak şekilde atamalar yapılır. İterasyon sayısı maksimuma ulaşınca algoritma sonlandırılır. Algoritma çalışırken her bir iterasyon sırasında yapılmakta olan atama işlemlerinde elde edilen maliyet değerlerinden en minimum maliyet değerine ait atama hafızada tutulur. Buna göre algoritmaya ait olan akış diyagramı Şekil 3.13 teki gibidir. 42

Basla Başlangıç parametreleri kullanıcı tarafından girilir. ( Maliyet Matrisi, α, β, ρ, Karınca sayısı, İterasyon sayısı) Karınca sayısı tamamlandı mı? EVET HAYIR i. görevin yapılası için rastgele bir uçak atanır. Bu işlem tüm görevler için tekrarlanır. Başlangıç değerleri girilir. Maliyet Matrisine göre yapılabilirlik amaç matrisi oluşturulur.( ηij). Herbir I görevinin j numaralı uçak tarafından yapılma olasılığı hesaplanır. k p ij degeri hesaplanır. ij Hesabı yapılır. (k numaralı karıncanın yapmış olduğu atamaların toplam maliyeti dij olmak üzere) 1 d ij m k ij 1 ij ij k 1 Denklemine göre yeni Feromon madde miktarı hesaplanır. En iyi atamadan daha iyi atama yapıldı mı? HAYIR Karınca Sayısı=Karınca Sayısı+1 EVET En iyi atamayı hafızaya al. Iterasyon Sayısı=Iterasyon Sayısı+1 Iterasyon sayısı tamamlandı mı? HAYIR k p ij degeri hesaplanır. EVET Karınca sayısı tamamlandı mı? EVET HAYIR i. görevin hangi uçak tarafından yapılacağını belirlemek amacı ile maliyet matrisine göre rulet çarkı hesabı yapılır ve rastgele atılan değer hangi aralığa denk gelirse o uçak I. göreve atanır. Aynı işlem tüm görevlere bir uçak atanacak şekilde tekrarlanır. ij Hesabı yapılır. (k numaralı karıncanın yapmış olduğu atamaların toplam maliyeti dij olmak üzere) 1 d ij En iyi atamadan daha iyi atama yapıldı mı? EVET m k ij 1 ij ij k 1 HAYIR En iyi atamayı hafızaya al. Denklemine göre yeni Feromon madde miktarı hesaplanır. Karınca Sayısı=Karınca Sayısı+1 Iterasyon Sayısı=Iterasyon Sayısı+1 Bitiş Şekil 3.13 Yerel Maliyet kriteri ve öncü karıncaların rastgele atandığı Karınca Koloni Algoritması akış diyagramı 43

3.3.3 Dağılım Kestirim Algoritması Dağılım Kestirim Algoritması bir çeşit nüfus (popülasyon) tabanlı optimizasyon algoritmasıdır. Nüfusundaki bireylere ait sonuçlar ile belirli bir olasılıksal dağılım elde edilerek bir sonraki nesiller oluşturulmaktadır (Shakya 2006). Dağılım Kestirim Algoritması ana çalışma algoritması olarak Genetik Algoritma ile benzerlik göstermektedir. Genetik Algoritmadaki çaprazlama ve mutasyon adımları yerine Dağılım Kestirim Algoritmasında istatiksel hesaplamalar yapılarak bireylere ait sonuçlar geliştirilmeye ve optimal sonuç yakalanmaya çalışılmaktadır (Chen 2010). Dağılım Kestirim Algoritması ilk olarak k numaralı bireyin i numaralı görevi yapması için hava aracı seçilmesi ile başlamaktadır. i numaralı görevi yapmak üzere hava araçları arasından rastgele bir j hava aracı seçilir ve daha sonraki i görevlerine atama da aynı şekilde rastgele hava araçları seçilerek yapılır. k numaralı bireye ait atama işlemi bittikten sonra toplumdaki diğer bireyler içinde aynı şekilde ilk atamalar yapılır. İlk atamalara ait örnek çizelge 3.16 daki gibi olduğu düşünülürse bu atamalara karşılık gelen maliyet değerleri ise çizelge 3.17 deki gibi olduğunu düşünelim. Çizelge 3.16 6 popülasyon bireyi ve 6 hava aracına ait veri seti için ilk atamalar 44

Çizelge 3.17 6 görev 6 hava aracına ait veri seti için ilk atamalara karşılık gelen maliyet değerleri İlk atamalar bittikten sonra oluşan toplumda eşik seviyesi değerinden küçük olan değerler için 1, büyük olan değerler 0 olacak şekilde yeni bir seçim matrisi (çizelge 3.18)oluşturulur. Buradaki eşik seviyesi değeri kullanıcı tarafından belirlenen bir parametredir. Çizelge 3.18 Eşik seviyesi 50 için oluşan matris Buna göre oluşan çizelge 3.18 teki matriste her bireye ait olan atamaya karşılık gelen seçim matrisindeki 1 sayıları toplanır ve çizelge 3.19 daki matris elde edilmektedir. 1 değerlerinin çok olması optimal sonuca yakın değerlere karşılık gelindiğini belirtmektedir. 45

Çizelge 3.19 Bireylerdeki eşik seviyesinden küçük değerlerin toplamı Daha sonra bireylere ait atamalar kesme limitinden küçük değerlerin çokluğuna göre sıralanır. Bu sıralama çizelge 3.20 deki gibidir. Çizelge 3.20 Kesme Limiti 0.667 (0.667=4/6) olmak üzere oluşan matris Kullanıcı tarafından belirlenen başlangıç parametresi olan kesme limiti değeri Genetik Algoritmadaki elitizm değerine benzer bir şekilde bir sonraki nesle kaç adet en iyi birey aktarılacağını belirlemektedir. Kesme limitine göre bir sonraki aşamaya aktarılacak birey sayısı kadar en iyi birey seçilir ve bu bireylere ait atama işlemindeki her bir i numaralı görevin yapılma olasılıkları belirlenerek çizelge 3.21 deki görevlerin yapılabilme olasılığı matrisi oluşmaktadır. 46

Çizelge 3.21 Görevlerin yapılabilme olasılığı Bu değerler dahilinde toplumda bir sonraki nesle aktarılacak bireyler tamamlanacaktır. çizelge 3.17 de verilen örnek veri seti için 4 adet en iyi birey bir sonraki nesle aktarılırken geriye kalan 2 birey ise çizelge 3.21 e göre tamamlanacaktır. Bu bireylerin oluşturulması her bir görev için 0-1 aralığında bir değer atılır ve eğer bu değer görevlerin atanma olasılığından küçük ise 1 yani 50 eşik seviyesinden küçük bir değer, eğer atanma olasılığından büyük bir değer ise 0 yani 50-100 arasında bir değer atanacaktır. Burada atama işlemi 2 şekilde yapılmaktadır. 1.sinde eğer 1 değeri gelecek ise bu görevi yapacak hava araçlarından maliyeti 50 değerinin altında olan bir hava aracı, rastgelelik durumuna göre atanır. Aynı şekilde 0 değeri seçilecek ise bu görevi yapacak olan hava araçlarından maliyeti 50-100 arasında olan bir hava aracına atama yapılır. Bir diğer atama işlemi ise 1 olması durumunda yapılacak olan atamada bu görevi yapacak hava araçlarından en minimum maliyet ile görevi gerçekleştirecek olan atanır; bu şekilde toplumda bir sonraki nesile aktarılacak olan eksik bireyler tamamlanır ve maksimum nesil sayısına ulaşılana kadar algoritma çalışarak optimal maliyete sahip olan bir atama bulunmaya çalışılır. 47

4 ARAŞTIRMA BULGULARI 4.1 Benzetim Sonuçları Hava araçlarının yapılması istenilen görevleri eldeki kaynakları en verimli şekilde kullanarak minimum maliyet ile eşleştirilmesi sırasında yukarıda ismi geçen algoritmalar çeşitli özellikler ve algoritmalarda kullanılan başlangıç parametrelerine göre değişik performanslar göstermektedir. Bu parametre değerlerinin uygun seçilmesi ile en verimli bir şekilde atama işlemi yapılabilecektir. Parametre değerlerine ait değişimleri gözlemleyerek yapılmak istenilen hava aracı-görev eşleştirmesi için en uygun parametre değerleri seçilerek en verimli atama işleminin elde edilmesinde kullanılabilecek olan algoritmaya ait sonuç çıkarımı yapmak gerekirse sonuçlar aşağıdaki gibi olacaktır. Bu simülasyon sonuçları Intel Core2 Quad CPU Q6600 2.4GHz 4GB bir masaüstü bilgisayar ile MATLAB2011a ortamında elde edilmiştir. Hava araçlarının görevleri yapma maliyetlerine ait verilerin bulunduğu bir veri seti için işlemler yapılarak sonuçların nasıl değiştiği gözlemlenebilir ve buna göre bir sonuç çıkarımı yapılabilir. Bu amaçla, bütün algoritmalarda kullanılmak üzere bir Maliyet Matris kullanılmıştır. Bu girdi matris, görev sayısı ve hava aracı sayısına göre 0-100 arasında rastgele atanan değerlerden oluşmaktadır. Bu matris 18 15 boyutundadır. Buradaki 18 görev sayısını belirtirken 15 değeri ise hava aracı sayısını belirtmekte olup; test sonuçları üzerinden 18 adet görevin 15 hava aracı tarafından en optimal kaynak kullanılarak en verimli nasıl atanabileceği gözlemlenmiştir. 48

Çizelge 4.1 2 numaralı Maliyet Matrisi (Görev Sayısı = 18 ve Hava Aracı Sayısı = 15 ) 4.1.1 Deterministik Yöntemlere ait Sonuçlar Adım Adım Algoritması, Macar Algoritması, Kaba Kuvvet Algoritması değişik veri setleri için nasıl sonuçlar verdiği araştırılmak istenebilir. Elde edilen sonuçlara göre de belirli özelliklere (matris boyutu,...) göre genelleme yapılabilir. Küçük boyuttaki girdi matrislerinde iyi ve hızlı sonuç veren bir algoritmanın büyük boyutlu girdiler içinde aynı sonucu verip vermediği gözlemlenmek amacı ile maliyet matrislerinden birincisi çizelge 3.17 deki görev sayısı = 4, hava aracı sayısı = 5 olacak şekilde, girdi maliyet matrislerinden ikincicisi ise çizelge 4.1 de verilmiş olan görev sayısı = 18, hava aracı sayısı = 15 olacak şekilde iki veri setine ait sonuçlar kıyaslanacaktır. 49

Çizelge 4.2 1 numaralı Maliyet Matrisi (Görev Sayısı = 4 ve Hava Aracı Sayısı = 5 ) Adım Adım Algoritması, Macar Algoritması, Kaba Kuvvet Algoritmasının bu Maliyet Matrislerini girdi olarak kullanması sonucunda elde edilen atama sonuçları karşılaştırılmak istenirse şu şekilde olacaktır: 4.1.1.1 Adım Adım Algoritması Adım Adım Algoritmasının 1 numaralı girdi maliyet matrisine karşılık atama sonucu 1.Görev 4. Hava Aracına, 2.Görev 4. Hava Aracına, 3.Görev 5. Hava Aracına, 4.Görev 2. Hava Aracına atanacak şekilde sonuç elde edilir. Buna göre Atama Vektörü = [4 4 5 2] olacak buna karşılık gelen Atama Maliyet Değer Vektörü=[14 15 24 51] olmaktadır. Buna karşılık gelen atama işlemi sonucunda oluşan toplam maliyet değeri 104 olmaktadır. Bu değerler ışığında Maliyet Matrisi üzerinde atama yapılan değerler işaretlenecek olursa çizelge 4.3 teki gibi olmaktadır. Adım Adım Algoritması bu sonuca 0.0045 saniyede ulaşmaktadır. Çizelge 4.3 Adım Adım Algoritmasının 1 numaralı Maliyet Matrisi için atama sonucu 50

Adım Adım Algoritmasının 2 numaralı Maliyet Matrisi için Atama Vektörü = [6 6 10 3 9 1 14 9 6 14 7 10 10 2 7 2 2 3] olacak buna karşılık gelen Atama Maliyet Değer Vektörü=[8 5 10 3 18 10 9 5 1 3 8 2 4 3 0 5 10 16] olmaktadır. Buna karşılık gelen atama işlemi sonucunda oluşan toplam maliyet 120 olmaktadır. Elde edilen sonuç ışığında Maliyet Matrisi üzerinde atama yapılan değerler işaretlenecek olursa çizelge 4.4 teki gibi olmaktadır. Algoritma bu sonuca 0.0048 saniyede ulaşmaktadır. Çizelge 4.4 Adım Adım Algoritmasının 2 numaralı Maliyet Matrisi için atama sonucu 4.1.1.2 Macar Algoritması Macar Algoritmasının 1 numaralı girdi maliyet matrisine karşılık atama sonucu 1.Görev 2. Hava Aracına, 2.Görev 4. Hava Aracına, 3.Görev 5. Hava Aracına, 4.Görev 3. Hava Aracına atanacak şekilde sonuç elde edilir. Buna göre Atama Vektörü = [2 4 5 51

3] olacak buna karşılık gelen Atama Maliyet Değer Vektörü=[22 15 24 55] olmaktadır. Buna karşılık gelen atama işlemi sonucunda oluşan toplam maliyet 116 olmaktadır. Bu değerler ışığında Maliyet Matrisi üzerinde atama yapılan değerler işaretlenecek olursa çizelge 4.5 teki gibi olmaktadır. Macar Algoritması bu sonuca 0.0271 saniyede ulaşmaktadır. Çizelge 4.5 Macar Algoritmasının 1 numaralı Maliyet Matrisi için atama sonucu Macar Algoritmasının 2 numaralı Maliyet Matrisi için Atama Vektörü = [8 6 10 3 5 1 14 9 15 11 7 13 12 2 4 2 15 3] olacak buna karşılık gelen Atama Maliyet Değer Vektörü=[8 5 10 3 20 10 9 5 4 8 8 11 21 3 15 5 14 16] olmaktadır. Buna karşılık gelen atama işlemi sonucunda oluşan toplam maliyet 175 olmaktadır. Elde edilen sonuç ışığında Maliyet Matrisi üzerinde atama yapılan değerler işaretlenecek olursa çizelge 4.6 daki gibi olmaktadır. Algoritma bu sonuca 0.0373 saniyede ulaşmaktadır. 52

Çizelge 4.6 Macar Algoritmasının 2 numaralı Maliyet Matrisi için atama sonucu 4.1.1.3 Kaba Kuvvet Algoritması Kaba Kuvvet Algoritmasının 1 numaralı girdi maliyet matrisine karşılık atama sonucu 1.Görev 2. Hava Aracına, 2.Görev 4. Hava Aracına, 3.Görev 5. Hava Aracına, 4.Görev 3. Hava Aracına atanacak şekilde sonuç elde edilir. Buna göre Atama Vektörü = [2 4 5 3] olacak buna karşılık gelen Atama Maliyet Değer Vektörü=[22 15 24 55] olmaktadır. Buna karşılık gelen atama işlemi sonucunda oluşan toplam maliyet 116 olmaktadır. Bu değerler ışığında Maliyet Matrisi üzerinde atama yapılan değerler işaretlenecek olursa çizelge 4.7 deki gibi olmaktadır. Kaba Kuvvet Algoritması bu sonuca 0.0253 saniyede ulaşmaktadır. 53

Çizelge 4.7 Kaba Kuvvet Algoritmasının 1 numaralı Maliyet Matrisi için atama sonucu Kaba Kuvvet Algoritmasının 2 numaralı Maliyet Matrisi için bellek yetersizliğinden dolayı kullanılan bilgisayar ile sonucu elde edememektedir. Bilgisayarın belleğinin yettiği en yüksek değerlerden biri olan Görev Sayısı = 8, Hava Aracı Sayısı = 9 için çizelge 4.8 deki Maliyet Matrisine ait atama sonuçları ile bir yargıya varılabilir. Çizelge 4.8 Görev Sayısı = 8, Hava Aracı Sayısı = 9 için rastgele oluşturulmuş Maliyet Matrisi Çizelge 4.8 deki Maliyet Matrisine ait Atama Sonucu 1.Görev 3. Hava Aracına, 2.Görev 4. Hava Aracına, 3.Görev 1. Hava Aracına, 4.Görev 7. Hava Aracına, 5.Görev 5. Hava Aracına, 6.Görev 6. Hava Aracına, 7.Görev 9. Hava Aracına, 8.Görev 2. Hava Aracına olacak şekilde en minimum değerler ile atama yapılmış olur. Buna göre Atama Vektörü=[3 4 1 7 5 6 9 2] olacak ve buna ait olan Atama Maliyet Değer Vektörü=[5 16 54

25 8 8 11 8 8] olur ve toplam maliyet 89 dur. Bu değerler ışığında Maliyet Matrisi üzerinde atama yapılan değerler işaretlenecek olursa çizelge 4.9 daki gibi olmaktadır. Kaba Kuvvet Algoritması bu sonuca 436.7207 saniyede ulaşmaktadır. Çizelge 4.9 Kaba Kuvvet Algoritmasının çizelge 4.8 deki Maliyet Matrisi için atama sonucu Genel değerlendirme yapacak olursak Adım Adım Algoritması toplam maliyet bakımından en iyi değere ulaşmaktadır ama bu değere ulaşırken aynı hava aracına birden fazla görev ataması yapabilmekte hatta tüm görevleri aynı hava aracına atanabilmektedir. Bu durumda istenmeyen bir durumdur bu yüzden Macar Algoritması, Kaba Kuvvet Algoritması ile istenen sonuca ulaşılabilmektedir. Burada da küçük boyutlu Maliyet Matrisleri için Macar Algoritması, Kaba Kuvvet Algoritması iyi sonuçlara yaklaşık olarak aynı zamanda ulaşabilirken Maliyet matris boyutu artınca Kaba Kuvvet Algoritmasının sonuca ulaşma süresi matris boyutuna bağlı olarak çok büyümektedir. Buradan çıkan sonuç ise hava araçlarına atanan görev sayısı adil olması istenirse Adım Adım Algoritmasının kullanmaması gerekmektedir. Küçük boyutlu Maliyet Matrisleri için Macar Algoritması, Kaba Kuvvet Algoritması iyi sonuç vermesine rağmen büyük boyutlu matrisler için Macar Algoritması iyi sonuca ulaşılmasında yardımcı olacaktır. Genel olarak bütün matris boyutları ile iyi sonuç vermesinin istendiği durumlarda Macar Algoritması kullanılabilir. 55

4.1.2 Olasılık Temelli Yöntemlere ait Sonuçlar 4.1.2.1 Açık Artırma Algoritması Açık Artırma Algoritmasının 1 numaralı girdi maliyet matrisine karşılık atama sonucu 1.Görev 2. Hava Aracına, 2.Görev 4. Hava Aracına, 3.Görev 5. Hava Aracına, 4.Görev 3. Hava Aracına atanacak şekilde sonuç elde edilir. Buna göre Atama Vektörü = [2 4 5 3] olacak buna karşılık gelen Atama Maliyet Değer Vektörü=[22 15 24 55] olmaktadır. Buna karşılık gelen atama işlemi sonucunda oluşan toplam maliyet 116 olmaktadır. Bu değerler ışığında Maliyet Matrisi üzerinde atama yapılan değerler işaretlenecek olursa çizelge 4.10 daki gibi olmaktadır. Adım Adım Algoritması bu sonuca 0.0242 saniyede ulaşmaktadır. Çizelge 4.10 Açık Artırma Algoritmasının 1 numaralı Maliyet Matrisi için atama sonucu Açık Artırma Algoritmasının 2 numaralı Maliyet Matrisi için Atama Vektörü = [8 6 10 3 5 1 14 9 15 11 7 13 12 2 4 2 15 3] olacak buna karşılık gelen Atama Maliyet Değer Vektörü=[8 5 10 3 20 10 9 5 4 8 8 11 21 3 15 5 14 16] olmaktadır. Buna karşılık gelen atama işlemi sonucunda oluşan toplam maliyet 175 olmaktadır. Elde edilen sonuç ışığında Maliyet Matrisi üzerinde atama yapılan değerler işaretlenecek olursa çizelge 4.11 deki gibi olmaktadır. Algoritma bu sonuca 0.0323 saniyede ulaşmaktadır. 56

Çizelge 4.11 Açık Artırma Algoritmasının 2 numaralı Maliyet Matrisi için atama sonucu 4.1.2.2 Açgözlü Algoritma Çizelge 4.1 de verilmekte olan veri seti için 100 birey oluşturulmak istenir ve bu 100 birey ile yapılmış olan atamalar arasında en optimal değer yakalanmak istenirse buna ait 100 Monte Carlo simülasyon koşusu sonucunda elde edilen 100 bireye ait sonuçların histogram grafiği çizilirse Şekil 4.1 deki gibi olmaktadır. Dikkat edilecek olursa adından da bilindiği gibi Açgözlü Algoritması toplam maliyet yönünden beklendiği gibi optimal sonuçlara ulaşamamaktadır. 57

20 18 16 14 12 Adet 10 8 6 4 2 0 860 880 900 920 940 960 En Iyi Toplam Maliyet Şekil 4.1 Açgözlü Algoritmaya ait 100 birey için histogram 4.1.2.3 Rastgele Atama Algoritması Çizelge 4.2 de verilmekte olan veri seti için 100 birey oluşturulmak istenir ve bu 100 birey ile yapılmış olan atamalar arasında en optimal değer yakalanmak istenirse buna ait 100 Monte Carlo simülasyon koşusu sonucunda elde edilen rastgelelik kriterine göre üretilen 100 bireye ait sonuçların histogramı çizilirse Şekil 4.2 deki gibi olmaktadır. Dikkat edilecek olursa rastgele üretilen atamalar toplam maliyet yönünden beklendiği gibi optimal sonuçlara ulaşamamaktadır. 20 18 16 14 12 Adet 10 8 6 4 2 0 860 880 900 920 940 960 En Iyi Toplam Maliyet Şekil 4.2 Rastgele Atama Algoritmasına ait 100 birey için histogram 58

4.1.3 Sezgisel Yöntemlere ait Sonuçlar 4.1.3.1 Genetik Algoritma Genetik Algoritma ile toplam maliyete ulaşmak için kullanılan parametrelerin değiştirilmesinin etkileri araştırılmak istenebilir. Bu kıyaslama işlemi uygulanırken Genetik Algoritmada Hava Aracı Sayısı = 15, Görev Sayısı = 18, Çaprazlama Oranı = %70, Mutasyo Oranı = %50, Elitizm Oranı = %30, Nesil Sayısı = 30, Nüfus Büyüklüğü = 30 olacak şekilde alınarak işlem yapılmaktadır. Burada başlangıç parametreleri olarak bu değerlerin alınmasının sebepleri, aşağıdaki şekilde özetlenebilir. - Literatür araştırmalarında da görüldüğü üzere Çaprazlama Oranının yüksek seçilmesi ile çeşitlilik artacağı için optimal bir sonuca ulaşmak kolaylaşacaktır. Buradaki değerin 1 veya 1 e çok daha yakın bir değer alınmamasının nedeni ise çok iyi optimal sonuçlara ulaşmaya yarayan bireylerin sürekli çaprazlama sonucunda daha kötü bireylere dönüşme ve dolayısıyla ıraksama olasılığına engel olmaktır. - Mutasyon Oranının ortalama bir değer seçilmesi, türdeki çeşitliliği koruyarak lokal optimumlardan kaçınılmasını sağlar. Bu değerin çok yüksek olmaması sayesinde, ıraksama olasılığı minimuma indirgenmektedir. - Elitizm Oranı, nüfusun en kaliteli olarak belirlenen üst (seçkin) tabakasının hangi oranda doğrudan gelecek nesle aktarılacağını belirler. Bu oranın yüksek seçilmesi, bireylerin çoğunluğunun bir sonraki nesle aktarılmasına ve dolayısıyla türdeki çeşitliliğin azalarak lokal optimuma takılınmasına neden olacaktır. 59

- Nüfus Büyüklüğü ile çözüm uzayının ne sıklıkta örnekleneceği kontrol edilmektedir. Bu sayının büyük seçilmesi daha iyi bir arama işlemi sağlayacaktır; öte yandan, işlem miktarı ile birlikte algoritmanın sonuca ulaşma süresi artacaktır. - Nesil Sayısı, yakınsama oranını belirleyen bir parametredir. Bu değerin küçük seçilmesi, global optimuma ulaşamadan algoritmanın kesilmesine yol açabilir. Öte yandan çok büyük seçilmesi de, optimuma ulaştıktan sonra gereksiz işlem yapılmasına sebep olabilir. Performans değerlendirmeleri yapılırken, yukarıda anılan parametre değerlerinden bir tanesi hariç diğerleri sabit tutulmuş; sadece etkisi incelenecek olan parametre değiştirilerek algoritma performansı üzerindeki etkisi gözlemlenmeye çalışılmıştır. Elde edilen sonuçlardan daha objektif bir yargıya varabilmek adına, 100 adet bağımsız Monte Carlo simülasyonu koşturulmuş, elde edilen sonuçların ortalaması alınarak sonuç grafikleri çizdirilmiştir. i. Çaprazlama Oranının Etkisi Öncelikli olarak diğer parametreler sabit tutularak Çaprazlama Oranı= %10, %30, %50, %70, %90 olacak şekilde değiştirilmiştir. Buna göre toplam maliyetteki değişimin 30 Nesil ve 100 bağımsız Monte Carlo koşusu sonrasında elde edilen sonuçların ortalaması Şekil 4.3 teki gibidir. 60

En iyi Toplam Maliyet 650 600 550 500 450 400 350 Caprazlama Orani %= 10 Caprazlama Orani %= 30 Caprazlama Orani %= 50 Caprazlama Orani %= 70 Caprazlama Orani %= 90 300 250 200 0 5 10 15 20 25 30 Nesil Şekil 4.3 Çaprazlama Oranı = %10, %30, %50, %70, %90 değerleri için sonuçlar Şekil 4.3 te görüleceği üzere diğer parametrelerin sabit tutulduğu değerler için elde edilen sonuçlarda Çaprazlama Oranı değişiminin etkisi çok fazla olmamaktadır. ii. Mutasyon Oranının Etkisi Diğer parametreler sabit tutularak Mutasyon Oranı = %10, %30, %50, %70, %90 olacak şekilde değiştirilmiştir. Buna göre toplam maliyetteki değişimin 30 Nesil ve 100 bağımsız Monte Carlo koşusu sonrasında elde edilen sonuçların ortalaması Şekil 4.4 teki gibidir. 61

En iyi Toplam Maliyet 650 600 550 500 450 400 350 Mutasyon Orani %= 10 Mutasyon Orani %= 30 Mutasyon Orani %= 50 Mutasyon Orani %= 70 Mutasyon Orani %= 90 300 250 200 0 5 10 15 20 25 30 Nesil Şekil 4.4 Mutasyon Oranı = %10, %30, %50, %70, %90 değerleri için sonuçlar Şekil 4.4 te görüleceği üzere diğer parametrelerin sabit tutulduğu değerler için elde edilen sonuçlarda Mutasyon Oranı değişiminin önemli bir etkisi olmamaktadır. iii. Elitizm Oranının Etkisi Diğer parametreler sabit tutularak Elitizm Oranı= %10, %30, %50, %70, %90 olacak şekilde değiştirilmiştir. Buna göre toplam maliyetteki değişimin 30 Nesil ve 100 bağımsız Monte Carlo koşusu sonrasında elde edilen sonuçların ortalaması Şekil 4.5 teki gibidir. 62

En iyi Toplam Maliyet 650 600 550 500 450 400 350 Elitizm Orani % = 10 Elitizm Orani % = 30 Elitizm Orani % = 50 Elitizm Orani % = 70 Elitizm Orani % = 90 300 250 200 0 5 10 15 20 25 30 Nesil Şekil 4.5 Elitizm Oranı = %10, %30, %50, %70, %90 değerleri için sonuçlar Şekil 4.5 te görüleceği üzere diğer parametrelerin sabit tutulduğu durumda Elitizm Oranı=%30, %50 olduğu değerler için elde edilen sonuçlarda toplam maliyet bakımından iyi sonuçlara kısa zamanda ulaşılabilmektedir. iv. Nüfus Büyüklüğünün Etkisi Diğer parametreler sabit tutularak Nüfus Büyüklüğü = 5, 10, 30, 50, 100 olacak şekilde değiştirilmiştir. Buna göre toplam maliyetteki değişimin 30 Nesil ve 100 bağımsız Monte Carlo koşusu sonrasında elde edilen sonuçların ortalaması Şekil 4.6 daki gibidir. 63

800 700 600 Genetik Algoritma Nesil Buyuklugu = 5 Nesil Buyuklugu = 10 Nesil Buyuklugu = 30 Nesil Buyuklugu = 50 Nesil Buyuklugu = 100 En iyi Toplam Maliyet 500 400 300 200 100 0 5 10 15 20 25 30 Nesil Şekil 4.6 Nüfus Büyüklüğü = 5, 10, 30, 50, 100 değerleri için sonuçlar Şekil 4.6 da görüleceği üzere diğer parametrelerin sabit tutulduğu durumda Nesil Büyüklüğü arttıkça toplam maliyet bakımından daha iyi sonuçlara ulaşılmaktadır. Çizelge 4.12 Nüfus Büyüklüğü = 5, 10, 30, 50, 100 değerlerinde algoritmanın gerçeklenme süresi Nüfus Büyüklüğü 5 10 30 50 100 Gerçeklenme Süresi 1.6 sn 2.2 sn 4.7 sn 7.5 sn 15.4 sn Nüfus Büyüklüğünün değiştirilmesi sonucunda algoritmanın çalışma süreleri çizelge 4.12 deki gibidir. Algoritmanın toplam maliyet bakımından elde edilen sonuç değerleri ve algoritmanın çalışma süresine göre Nüfus Büyüklüğünün 30 olduğu değerde iyi bir sonuca ulaşılmaktadır. Yukarıda elde edilen sonuçlarda, her bir deneme için Nüfus Büyüklüğü Nesil Sayısı çarpımı farklıdır. Dolayısıyla uygunluk fonksiyonunun hesaplanma sayısı da farklıdır. Bu nedenle, Nüfus Büyüklüğü Nesil Sayısı çarpımı eşit olacak şekilde bir deneme 64

daha yapılmıştır. Buna göre, Nüfus Büyüklüğü Nesil Sayısı = 3000 olacak şekilde Nesil Sayısı ayarlanacak olursa Nüfus Büyüklüğü =5 olan veri seti için Nesil Sayısı=600, Nüfus Büyüklüğü =10 olan veri seti için Nesil Sayısı=300, Nüfus Büyüklüğü =30 olan veri seti için Nesil Sayısı=100, Nüfus Büyüklüğü =50 olan veri seti için Nesil Sayısı=60, Nüfus Büyüklüğü =100 olan veri seti için Nesil Sayısı=30 olacak şekilde algoritma çalıştırılıp yaklaşık eşit sürede elde edilen sonuçlar Şekil 4.7 deki gibidir. Bu sonuçlardan görüleceği üzere en iyi sonuca Nüfus Büyüklüğü =30 olan değerde ulaşıldığı görülmektedir. 900 800 700 Genetik Algoritma Populasyon Buyuklugu = 5 Populasyon Buyuklugu = 10 Populasyon Buyuklugu = 30 Populasyon Buyuklugu = 50 Populasyon Buyuklugu = 100 En iyi Toplam Maliyet 600 500 400 300 200 X: 2989 Y: 173.9 100 0 500 1000 1500 2000 2500 3000 Nesil Şekil 4.7 Nüfus Büyüklüğü = 5, 10, 30, 50, 100 değerlerine ait; toplam 3000 defa Uygunluk Fonksiyonu hesaplanan konfigürasyona ilişkin sonuçlar v. Rulet Çarkı Yönteminin Etkisi Doğadan esinlenerek çözümler elde edilmesinde yardımcı olacak yöntemlerden biri de bireylerin veya genlerin diğer bireylere veya genlere baskınlığına göre daha çok yaşamasını göz önünde bulundurularak oluşturulmuş Rulet Çarkı yöntemidir. Bu yöntemde bireyler veya genlerin en iyiye yakınlığına göre baskınlık miktarı 65

artmaktadır. Burada baskınlık değerleri 1/Maliyet değerleri kıyaslanarak toplam baskınlık değeri 1 olacak şekilde bölüştürülmektedir. En iyi sonuca yakın değerlerde baskınlık değeri 1 değerine yaklaşırken çözüm kötüleştikçe baskınlık değeri azalıp sıfıra yaklaşmaktadır. Diğer parametre değerlerinin değişimlerine göre benzetim sonuçları göz önüne alındığında problemimiz için en iyi pararmetre değerlerinin Çaprazlama Oranı = %70, Mutasyon Oranı = %50, Elitizm Oranı = %30, Nesil Sayısı = 100, Nüfus Büyüklüğü=100 olacak şekilde alınması sonucunda en iyi sonuca ulaşıldığı gözlemlenmiştir. Bu değerler ışığında rulet çarkı yönteminin iki farklı yöntemi kıyaslanmak istenmektedir. Bu yöntemler şu şekildedir: a. Birey bakımından rulet çarkı yöntemi Doğadan esinlenilerek yeni bireyler oluşturulurken, ebeveynlerin kendi aralarındaki baskınlıklarına göre yeni bireylerin oluşturulması yöntemine Birey Bakımından Rulet Çarkı Yöntemi olarak isimlendirilecektir. Bu yöntemde yeni bireyler oluşturulurken toplam maliyet bakımından en iyi sonuca yakın birey baskın, en iyi sonuçtan uzaklaşıldıkça baskınlık azalmaktadır. Burada tüm bireylerin baskınlık değerleri toplamı 1 olacak şekilde her bireye bir baskınlık değeri verilmektedir ve daha sonra Tekdüze Dağılım a göre rastgele sayı üretilerek yeni bireyin hangi baskın ebeveyn ile aynı olacağı belirlenmektedir. b. Gen bakımından rulet çarkı yöntemi Doğadan esinlenilerek yeni bireyler oluşturulurken, genlerin kendi aralarındaki baskınlıklarına göre yeni bireylerin oluşturulması yöntemine Gen Bakımından Rulet Çarkı Yöntemi olarak isimlendirilecektir. Bu yöntemde yeni bireyler oluşturulurken her bir görevin yapılması sonucunda oluşacak maliyet bakımından en iyi sonuca yakın gen baskın, en iyi sonuçtan uzaklaşıldıkça baskınlık azalmaktadır. Burada tüm bireylerin baskınlık değerleri toplamı 1 olacak şekilde her gene bir baskınlık değeri 66

verilmektedir ve daha sonra Tekdüze Dağılım a göre rastgele sayı üretilerek yeni birey oluşturulurken hangi baskın ebeveyn gen ile aynı olacağı belirlenmektedir. Bireydeki bütün genler bu şekilde seçilerek bireyler oluşturulur. Şekil 4.8 Birey ve gen bakımından rulet çarkı yönteminin kıyaslanması Şekil 4.8 den görüleceği üzere gen bakımından rulet çarkı yöntemi ile nesil sayısı az iken iyi sonuca yakın sonuçlar elde edilirken, birey bakımından rulet çarkı yönteminde ise nesil sayısı az iken iyi sonuçlar elde edilememektedir. Bu durum nesil sayısı arttıkça iyileşmektedir. Gen bakımından rulet çarkı yöntemi minimum maliyete sahip hava hava aracı-görev eşleştirmesi yapmaya çalıştığından yerel minimumlara takılmakta, birey bakımından rulet çarkı yöntemi ise zamanla daha iyi sonuçlara yakınsamaktadır. Oluşan yeni nesillerdeki en iyi bireylerin seçilme ihtimalinin artması daha iyi bireylerin üretilmesine ve zamanla daha iyi bireylerin oluşmasını sağlamaktadır. 67

4.1.3.2 Karınca Koloni Optimizasyon Algoritması Daha önceden çalışma prensipleri açıklanan algoritmaların giriş parametreleri değiştirilerek performansta nasıl bir değişim olduğu ve en iyi sonuca nasıl ulaşılabileceği araştırılmak amacı ile çeşitli denemeler yapılmıştır. Bu denemelerde Görev Sayısı = 18, Hava Aracı Sayısı = 15 olacak şekilde 0-100 aralığında rastgele üretilmiş olan değerlerin oluşturduğu bir Maliyet Matrisi göz önünde bulundurularak sonuçlar kıyaslanmaya çalışılmıştır. Çizelge 4.13 Karınca Kolonisi Optimizasyon Algoritması çeşitleri Salgı maddesi güncellemesinde kullanılan Maliyet tipi Öncü karıncaların atanma tipi KKO1 Toplam Maliyet Rulet Çarkı Prensibi KKO2 Yerel Maliyet Rulet Çarkı Prensibi KKO3 Toplam Maliyet Rastgele KKO4 Yerel Maliyet Rastgele Kıyaslama işlemlerinde başarımın belirlenmesi amacı ile bağımsız Monte Carlo simülasyonları yaklaşımı uygulanmıştır. Bu simülasyon işlemlerinde bağımsız Monte Carlo koşusu sayısı yine 100 değeri seçilmiş, aynı kriterler altında Karınca Kolonisi Optimizasyon Algoritması ile elde edilen sonuçlar hakkında genel bir sonuca ulaşılmaya çalışılmıştır. Bu kıyaslama işleminde öncelikli olarak yukarıdaki 4 Karınca Kolonisi Algoritması kendi aralarında çeşitli parametre değerleri değiştirilerek bir sonuca ulaşılmaya çalışılacak daha sonrada bütün algoritmaların aynı veri seti ve aynı parametre değerlerine karşı vermiş olduğu en iyi toplam maliyetleri iterasyon sayısı 30 olacak şekilde nasıl bir değişiklik gösterdiği kıyaslanmıştır. Algoritmalar çalıştırılırken başlangıç parametre değerleri α = 2, β = 2, = 0.3, Karınca Sayısı = 10, İterasyon Sayısı = 30, Q = 1 olacak şekilde seçilerek optimal değere ulaşmak için belirli parametre değerleri bulunmaya çalışılmıştır. Başlangıç değerlerinin böyle seçilmesinin nedenleri, şu şekilde açıklanabilir: 68

- α değerinin büyük seçilmesi durumunda, salgı maddesi maddesine bağlılığı artıracak ve buna bağlı olarak çeşitlilik azalacaktır. Küçük seçilmesi durumunda ise daha önceki karıncaların bırakmış olduğu salgı maddesinin önemi düşürülmüş olacak ve optimal değere yakınlaşmaktansa rastgeleliğe göre sonuç bulunmaya çalışılacaktır. - β değerinin büyük seçilmesi ile hava aracı-görev eşleşmeleri sonucu oluşacak olan toplam maliyete bağlılık artacak ve diğer parametrelere bağlılık azalacaktır. β değerinin küçük değerler seçilmesi durumunda ise yapılacak olan atama işlemindeki toplam maliyete bağlılık azalacaktır. -, yani buharlaşma katsayısının büyük seçilmesi, ortamdaki salgı maddesinin çok miktarda buharlaşmasını sağlayacaktır. Bu durumda, ortamda az miktarda bulunan salgı maddesi daha da azalacak, belki de yok olacaktır; bu şekilde seçilme oranı gereğinden fazla azaltılmış olacaktır. Öte yandan buharlaşma katsayısını artırmak çeşitliliği artıracaktır. - Karınca Sayısının büyük seçilmesi durumunda optimal sonuca çabuk ulaşılması sağlanırken, Karınca Sayısının artması ile algoritma yapılacak işlem sayısı da artacağından sonuca ulaşma süresi artacaktır. Karınca Sayısının küçük değerler seçilmesi de optimal sonuca kısa sürede ulaşılmasını önleyeceğinden problemin büyüklüğüne göre problemdeki matris boyutunun büyüklüğüne eşit veya daha fazla miktar seçilmesinin iyi sonuca ulaşmada yardımcı olabileceği gözlemlenmiştir. - İterasyon Sayısının büyük seçilmesi, Karınca Sayısında olduğu gibi algoritmadaki işlem yükünü artıracak ve dolayısı ile algoritmanın sonuca ulaşma süresini uzatacaktır. Bu yüzden ortalama bir değer seçilmesi beklenen bir durumdur. - Q parametresi salgı maddesi miktarının ne kadar konulacağını belirleyen bir parametre olduğundan; dolaylı olarak sonraki adımlardaki karıncaları etkileyecek ve onların en iyi sonuca ulaşmasında yardımcı olacaktır. Q oranı çok küçük değerler seçilirse ortamda salgı maddesi olmayan bölgeler ile salgı maddesi olan alanlar arasında çok büyük bir fark olmayacak, bundan dolayı da optimal sonuca ulaşmada Karınca Koloni Optimizasyonu Algoritması faydalı 69

olamayacaktır. Q değerinin çok büyük değerler seçilmesi durumunda da salgı maddesi bırakılan bölgeler ile hiç salgı maddesi olmayan bölgeler arasında çekicilik miktarı yönünden çok büyük bir oran olacak ve bu da çeşitliliği önleyeceğinden istenilmeyen bir durumdur. Bu nedenle parametre değerleri iyi sonuçları elde edebilecek değerler seçilmiştir. Bu değerler ile kesin olarak optimal değere ulaşılacağı gibi bir iddia söz konusu değildir. Bu değerler, sadece referans alınmış, parametre değerleri değiştirilip en uygun değer bulunarak optimal sonuç gözlemlenmeye çalışılmıştır. Bu parametre değerleri değiştirildiğinde daha önceden belirtilmiş olan 4 Karınca Koloni Optimizasyon Algoritmasının optimal sonuçlara ulaşmada nasıl değişiklik olduğu gözlemlenmeye çalışılmıştır. i. α parametresinin performans üzerindeki etkisi Diğer parametre değerlerini sabit tutarak sadece α parametresinin değerini 0.1, 1, 2, 5, 20 olacak şekilde değiştirilmesine ait olan sonuçlar Şekil 4.9 daki gibidir. Şekil 4.9 α = 0.1, 1, 2, 5, 20 değerleri için sonuçlar 70

Şekil 4.9 daki grafiklerden görüleceği üzere α değerinin büyük olduğu değerlerde toplam maliyete çok kısa zamanda ulaşılırken lokal minimum değerlerine takılı kalınmaktadır. α=1olduğu değerde optimal sonuçlara ulaşılmaktadır. Daha önceden belirtildiği gibi α parametresi salgı maddesine bağlılığı artırırken bu durumda diğer parametre değerlerine bağlılığı azaltacak ve bu durumda çeşitlilik azalacağından salgı maddesine bağlılığı çok az kullanmayacak olan, salgı maddesine de çokta bağlı olmayan bir parametre değeri olan 1 değeri seçilmiştir. KKO2 algoritmasında α değerinin küçük seçilmesi daha optimal sonuca ulaşılmayı sağlamaktadır ama daha önceden belirtildiği gibi bu durum diğer parametre değerlerine bağlılığa neden olacağından tercih edilmeyecek bir durumdur. ii. β parametresinin performans üzerindeki etkisi Diğer parametre değerlerini sabit tutarak sadece β parametresinin değerini 0.1, 1, 2, 5, 20 olacak şekilde değiştirilmesine ait olan sonuçlar Şekil 4.10 daki gibidir. Şekil 4.10 β = 0.1, 1, 2, 5, 20 değerleri için sonuçlar 71

Şekil 4.10 da görüleceği üzere β değerinin büyük olduğu değerlerde algoritma optimal değere daha 2. iterasyonda ulaşırken β değeri küçüldüğü durumlarda optimal değere yaklaşması zaman almakta bazı durumlarda da ulaşamamaktadır. β değerinin etkilediği toplam maliyete bağlılık için uygun bir değer seçilmelidir. Bu değer çok büyük seçilmesi durumunda daha önceden belirtildiği üzere optimal sonuca kısa zamanda ulaşılırken diğer parametre değerlerine bağlılığı azaltacaktır. Bunun için 2 değeri hem kısa zamanda optimal değere ulaşmada yardımcı olurken hem de atamadaki toplam maliyete bağlılıkta uygun bir seviyede tutulacaktır. iii. parametresinin performans üzerindeki etkisi Diğer parametre değerlerini sabit tutarak sadece parametresinin (buharlaşma katsayısı) değerini 0.1, 0.3, 0.5, 0.9, 1 olacak şekilde değiştirilmesine ait olan sonuçlar Şekil 4.11 deki gibidir. Şekil 4.11 =0.1, 0.3, 0.5, 0.9, 1 değerleri için sonuçlar 72

Şekil 4.11 den görüleceği üzere buharlaşma katsayısını büyütmek erken zamanda optimal değere ulaşılmasını sağlamakta ama ilerleyen aşamalarda KKO3 ve KKO4 te istenilesi sonuçlara ulaşılabiliyorken; KKO1 ve KKO2 de ise buharlaşma katsayısının küçük seçildiği durumlarda yeterli iterasyon işleminden sonra daha iyi bir toplam maliyete ulaşılmaktadır. Bu durumda diğer parametre değerlerine göre bu değer değişiklik gösterebileceği gibi beklenen durum çeşitliliğin sağlanmasında yardımcı olacak olan 0.9 değerinin seçilmesidir. Bu değer ile çeşitlilik artacak ve yeni sonuçlara ulaşma ihtimali artacağından seçilmesi gereken değer 0.9 değeridir. Bu grafiklerde 1 değeri salgı maddesinin tamamının buharlaşmasına neden olacak ve yeni seçilecek olan atamalar geçmiş bilgisi olmadan yapılacaktır. Bu yüzden optimal sonuçlara ulaşılamamakta ve yüksek seviyeli lokal minimum değerlerine takılmaktadır. iv. Karınca Sayısı parametresine göre Diğer parametre değerlerini sabit tutarak sadece Karınca Sayısı parametresinin değerini 3, 10, 20, 50, 100 olacak şekilde değiştirilmesine ait olan sonuçlar Şekil 4.12 deki gibidir. 73

Şekil 4.12 Karınca Sayısı = 3, 10, 20, 50, 100 değerleri için sonuçlar Şekil 4.12 de görüldüğü üzere Karınca Sayısının artması toplam maliyet bakımından daha optimal bir değere ulaşılmasını ve bu seviyeye kısa zamanda ulaşılmasını sağlamaktadır. Bunun nedeni Karınca Sayısının artması ile daha çok atama kıyaslanabilecek ve bunun sonucunda da çeşitlilik artacaktır. Bu sırada işlem sayısında dolaylı olarak artacağından algoritmanın sonuca ulaşma süresi artacaktır. Bu yüzden kısa zamanda iyi sonuçlara ulaşmaya yardımcı olan Karınca Sayısı= 20 değerinin seçilmesi daha doğru olacaktır. Çizelge 4.14 te de Karınca Koloni Algoritmalarının tamamlanma süreleri verilmiştir. Çizelge 4.14 Karınca Sayısına göre algoritmaların gerçeklenme süresi 3 karınca 10 karınca 20 karınca 50 karınca 100 karınca KKO1 6.5 sn 21 sn 42 sn 104 sn 209 sn KKO2 2 sn 6 sn 12 sn 30 sn 59 sn 74

KKO3 6.5 sn 22 sn 43 sn 107 sn 227 sn KKO4 2 sn 6 sn 12 sn 29 sn 58 sn v. İterasyon Sayısı parametresinin performans üzerindeki etkisi Diğer parametre değerlerini sabit tutarak sadece İterasyon Sayısı parametresinin değerini 5, 10, 30, 50, 100 olacak şekilde değiştirilmesine ait olan sonuçlar Şekil 4.13 teki gibidir. Şekil 4.13 İterasyon Sayısı = 5, 10, 30, 50, 100 değerleri için sonuçlar Şekil 4.13 te görüldüğü üzere İterasyon Sayısını değiştirerek ulaşılan toplam maliyet yönünden optimal değerler yaklaşık olarak 10 iterasyondan sonra yakalanmaktadır. 5 iterasyonda yeterli bir optimal seviyeye ulaşılamayacaktır. 30 iterasyonda kesin olarak optimal değere ulaşılacağından parametre değeri olarak bu değer seçilmelidir. İterasyon Sayısı arttıkça karıncaların kendi bilgilerini geliştirme durumu devamlılık göstereceğinden optimal yönden iyi sonuçlara ulaşılmaktadır. İterasyon Sayısını 75

artırınca bireyler kendi toplam maliyetlerini daha iyi bir optimal seviyeye çekmeye çalışacaktır. Karıncalar belirli bir seviyeden sonra kendi gelişimlerini tamamlayacağından belirli bir iterasyon sonrasında gelişme işlemi duracaktır. İterasyon Sayısının artması ile Karınca Sayısının artmasında olduğu gibi algoritmanın tamamlanma süreleri farklılık göstermektedir. Optimal değeri yakaladıktan sonra bu değerde durağan bir duruma gelinmesini sağlayan 30. İterasyon iyi bir sonuç olarak göz önünde bulundurulabilir. Karınca Koloni Algoritmalarının gerçeklenme süreleri çizelge 4.15 teki gibi olacaktır. Çizelge 4.15 İterasyon Sayısına göre algoritmaların gerçeklenme süresi 5 iterasyon 10 iterasyon 30 iterasyon 50 iterasyon 100 iterasyon KKO1 3.5 sn 7 sn 21 sn 35 sn 70 sn KKO2 1sn 2 sn 6 sn 10 sn 20 sn KKO3 3.5sn 7 sn 22 sn 36 sn 72 sn KKO4 1 sn 2 sn 6 sn 10 sn 20 sn vi. Q parametresinin performans üzerindeki etkisi Diğer parametre değerlerini sabit tutarak sadece Q parametresinin değerini 0.01, 1, 100, 10000 olacak şekilde değiştirilmesine ait olan sonuçlar Şekil 4.14 teki gibidir. 76

Şekil 4.14 Q = 0.01, 1, 100, 10000 değerleri için sonuçlar Şekil 4.14 teki grafiklerden elde edilen sonuç Q = 0.01 değeri ile toplam maliyet bakımından optimal sonuçlara ulaşılmaktadır. Q değeri ile salgı maddesinin salınacağı miktar belirlendiği için karıncalar tarafından salınacak olan salgı madde miktarının küçük seviyelerde seçilmesi optimal sonuca ulaşılmasını sağlamaktadır. Buradan çıkan sonuç salgı maddesi miktarı az oranda salınırsa bütün Karınca Koloni Algoritmaları ile iyi sonuç vermektedir. 4.1.3.3 Değişken Parametreli Karınca Kolonisi Optimizasyon Algoritması Karınca Kolonisi Algoritması algoritmalarında elde edilen sonuçlar; toplam maliyet bakımından iyileştirilmek istenebilir. Karınca Koloni Algoritmalarında parametre değerlerini (α, β, ) artırınca algoritma daha kısa zamanda toplam maliyet bakımından iyi sonuçlara ulaştığı, parametre değerlerini azaltınca ise uzun vadede toplam maliyet 77

bakımından daha iyi sonuçlara ulaşıldığı görülmüştü. Bu nedenle α, β, değerlerini zaman içinde değiştirip değişken parametreli bir algoritma ile toplam maliyet bakımından zamanda daha iyi sonuçlar elde edilmeye çalışılabilir. Bu işlem için uygulanacak parametre değerleri şu şekildedir: α=5, 2, 1, β=5, 2, 1, =0.9, 0.5, 0.1. Unutulmamalıdır ki uygulanacak olan parametre değerlerinin uygulanma sırası önem teşkil etmektedir. Daha önceden Karınca Kolonisi Algoritmalarında kullanılan 0-100 aralığında rastgele üretilmiş olan değerlerin oluşturduğu Maliyet Matrisi Görev Sayısı = 18, Hava Aracı Sayısı = 15 olacak şekilde kullanılarak sonuçlara ulaşmaya çalışılmıştır. Algoritmada kullanılan parametre değerleri α=2, β= 2, = 0.3,Karınca Sayısı = 10, İterasyon Sayısı = 30, Q = 1 olacak şekilde algoritma çalıştırılacak, değişken parametreli algoritmada değişikliği gözlemlenmek istenen parametre değeri yukarıda da verildiği şekilde zaman içinde değiştirilerek toplam maliyet bakımından daha iyi sonuç elde edilmeye çalışılacaktır. Elde edilen sonuç değerleri sabit parametre değerleri ile oluşturulmuş olan Karınca Kolonisi Algoritması ile elde edilen sonuç ile karşılaştırılacaktır. Bu işlem daha önceden denenmiş olan 4 adet Karınca Kolonisi Algoritması algoritmaları (KKO1, KKO2, KKO3, KKO4) için tekrarlanacaktır. Parametre değerlerinin sayısına göre iterasyonun kaçıncı değerinde istenen parametrenin değişeceği ayarlanmaktadır. Oluşturduğumuz değişken parametreli algoritmalarda parametreler 3 farklı değer olacak şekilde değişecektir. İterasyon Sayısı=30 olduğu için 30/3=10 iterasyonda parametre değeri değiştirilecektir. 78

i. α parametresinin performans üzerindeki etkisi Şekil 4.15 α = 5, 2, 1 değerleri için sonuçlar Şekil 4.15 ten görüleceğı üzere değişken parametreli karınca kolonisi algoritmalarından KKO1 ve KKO2 algoritmaları ile ilk olarak iyi sonuçlara ulaşılmaktadır. Daha sonradan normal karınca koloni algoritması optimal toplam maliyet değerini yakalamakta hatta KKO2 ile daha iyi sonuçlar elde edilebilmektedir. 79

ii. β parametresinin performans üzerindeki etkisi Şekil 4.16 β = 5, 2, 1 değerleri için sonuçlar Şekil 4.16 dan görüleceği üzere β değeri ile toplam maliyet veya lokal maliyete bağlı olarak optimal maliyetli atamalar çok kısa zamanda yakalanırken zaman içinde maliyet değerine bağlılık artacağından ve bu nedenle lokal minimum değerine takılacağından parametre değerleri değişken parametreli karınca kolonisi algoritmalarından KKO1 ve KKO2 algoritmaları ile ilk olarak iyi sonuçlara ulaşılmaktadır. Daha sonradan normal karınca koloni algoritması optimal toplam maliyet değerini yakalamakta hatta KKO2 ile daha iyi sonuçlar elde edilebilmektedir. Bu durumun nedeni ilk 10 iterasyonda salgılanan feromon maddesi miktarı maliyet bakımından iyi olan bölgelere çokça bırakılacak ve sonraki aşamalarda da önceden fazlaca bırakılmış olan salgı maddeleri sonraki aşamaları da etkilemektedir. 80

iii. parametresinin performans üzerindeki etkisi Şekil 4.17 = 0.9, 0.5, 0.1 değerleri için sonuçlar Şekil 4.17 den görüleceği üzere değerini değiştirerek kısa zamanda optimal değerlere ulaşılmış ama zaman içinde lokal minimum değerlere takılı kalınmıştır. Buharlaşma oranı değeri ile ilk başta beklendiği üzere hızlı bir şekilde yakınsarken, daha sonra iyi sonuçlar yakalanamamış ve normal karınca kolonisi optimizasyon algoritması daha iyi sonuçlar vermiştir. 4.1.3.4 Dağılım Kestirim Algoritması Çizelge 4.1 de verilmekte olan veri seti için elde edilen sonuçlar eşik seviyesi, kesme limiti değeri ve birey sayısına göre kıyaslama yapılacaktır. Bu kıyaslamalar ile bir sonuç çıkarımı yapılmak istenmekte ve toplam maliyet bakımından görev hava aracı eşleştirmesini yaparak en iyi optimal maliyete ulaşılmaya çalışılacaktır. Daha önceden 81

belirtildiği gibi iki çeşit algoritma tanımlanmıştır. Bu algoritmaların atama işleminde minimum değere sahip hava aracının atanmasına Minimum Atamalı Dağılım Kestirim Algoritması, eşik seviyesinin altında bir maliyete sahip hava araçları arasından rastgele birinin atandığı algoritmaya ise Rastgele Atamalı Dağılım Kestirim Algoritması ismi ile bahsedilecektir. Algoritmanın başlangıç parametre değerleri kesme limiti = 0.3, eşik seviyesi = 50, birey sayısı=20, iterasyon sayısı=50 olacak şekilde başlamakta ve gerekli parametre değerleri değiştirilerek sonuçlar kıyaslanacaktır. i. Eşik seviyesi =10 için sonuçlar Eşik seviyesi 10 alınması durumunda kesme limiti değerini değiştirmemiz sonucunda elde edilen sonuçlar Şekil 4.18 deki gibi olmaktadır. Buradan çıkarılacak sonuç ise kesme limiti değerini yüksek seçtiğimizde algoritma yeterli iterasyona ulaşınca optimal değerin yakalanmasında yardımcı olmaktadır. Optimal değer 400 civarı bir değerdir. Şekil 4.18 Eşik seviyesi =10 için limit seviyesi değeri kıyaslaması 82

Şekil 4.19 Eşik seviyesi =10 için birey sayısı kıyaslaması Birey sayısının artırılması ile algoritmanın ulaştığı optimal sonuca yaklaşılmaktadır. Bununla birlikte optimal değere ulaşma süresi işlem sayısı artacağından artacaktır. Birey sayısını artırarak 20 birey ile yakalanan 400 değerinden daha iyi sonuçlar elde edilmektedir. ii. Eşik seviyesi =30 için sonuçlar Şekil 4.20 Eşik seviyesi =30 için limit seviyesi değeri kıyaslaması Eşik seviyesi değeri 30 değeri seçildiğinde görüleceği üzere eşik seviyesi = 10 olması durumundan daha iyi bir sonuç elde edilmiştir. Bunun nedeni eşik seviyesi = 10 iken üretilen atamalarda çeşitlilik yeteri kadar yokken uygun bir değer seçildiğinde uygun bir optimum değere yakınsandığı Şekil 4.20 de görülebilmektedir. 83

Birey sayısının artırılması ile beklendiği gibi süre artıyor olsa da daha iyi bir optimal sonuca yakınsanmaktadır. Birey sayısına göre kıyaslama grafiği Şekil 4.21 deki gibidir. Şekil 4.21 Eşik seviyesi =30 için birey sayısı kıyaslaması iii. Eşik seviyesi =50 için sonuçlar Eşik seviyesi 50 değeri için elde edilen sonuçlar eşik seviyesi=30 değerine göre daha kötüdür. Bunun nedeni 30 değerinde optimal maliyetler ile işlem yapılmaya çalışılırken 50 seviyesi daha büyük ve optimal sonuçların yakalanmasını zorlaştıracak atamalar yapılmasını sağlamakta ve toplam maliyet bakımından daha kötü sonuçlar elde edilecek şekilde atama işlemi yapılmaktadır. Şekil 4.22 Eşik seviyesi =50 için limit seviyesi değeri kıyaslaması Birey sayısı ile süre artmasının yanında optimal değere yaklaşılmaktadır. 84

Şekil 4.23 Eşik seviyesi =50 için birey sayısı kıyaslaması iv. Eşik seviyesi =90 için sonuçlar Eşik seviyesinin yüksek tutulması optimal sonuçlara erişilmesini engellemektedir çünkü yüksek maliyetlerinde atama işleminde kullanılmasına izin verilmektedir. Şekil 4.24 Eşik seviyesi =90 için limit seviyesi değeri kıyaslaması Birey sayısının artması diğer durumlarda olduğu gibi optimal sonuca ulaşılmasına yardımcı olmasına rağmen bu optimal değer diğer parametre değerlerine göre daha kötü bir değerdir. 85

Şekil 4.25 Eşik seviyesi =90 için birey sayısı kıyaslaması Elde edilen simülasyon sonuçlarına göre Karınca Kolonisi Algoritması en iyi sonucu veren algoritma olup Karınca Koloni Algoritmasının 4 adet tipi arasından da maliyet açısından kısa zamanda optimal sonuçlara ulaşılmaktadır. KKO2 algoritmasının başlangıç parametre değerleri α = 1, β = 2, = 0.1, Karınca Sayısı = 20, İterasyon Sayısı = 30, Q = 0.01 olacak şeklinde seçilerek optimal değere ulaşıldığı gözlemlenmiştir. 4.2 Nihai Ürün (Java) Günümüzde Atama Problemlerinin çözümünde kullanılmak üzere çeşitli yazılım ürünlerine ihtiyaç vardır. Bu ürünler yardımı ile planlaması yapılacak olan makine/hava aracı-görev eşleştirmesi yapılarak en iyi sonuç veya kısa zamanda en iyi sonuca yakın bir değerin elde edilmesine ihtiyaç vardır. Matlab 2011a ortamında oluşturulan yazılım platformunda elde edilen benzetim sonuçları yardımı ile atama problemlerini çözebilen bir yazılım ürünü üretilmesi gerekmiştir. Java yazılım ortamında atama problemlerini otomatik olarak çözen ve hava aracı-görev eşleştirmesi için sonuçları görsel arayüz ekranında gösteren bir yazılım ürünü üretilmiştir. Bu ürün oluşturulurken Türk Silahlı Kuvvetlerinin envanterinde bulunan hava araçları ve bu hava araçlarının sahip olduğu çeşitli teknik özellikler göz önünde bulundurulmuştur. Hava aracı-görev eşleştirmesi yapılırken bazı kıstaslar altında eşleştirme yapılmaktadır. Bu kıstaslar şu şekildedir: 86

i. Bütün görevler yapılmaya çalışılacaktır. ii. iii. Hava aracı-görev eşleştirmesi yapılırken hava aracında bulunan yakıtın yeterli olmasına dikkat edilerek minimum miktarda yakıt kullanılarak görevlerin tamamlanmasına çalışılacaktır. Hava aracı-görev eşleştirmesi sırasında her bir hava aracına maksimum iki görev atanabilecektir. 4.2.1 Görsel Arayüz Yazılım ilk çalıştırıldığında Taktik Komut Ekranı adı verilenbir arayüz ekranı açılmaktadır. Ortada dünya haritası bir başka deyişle Sayısal Coğrafi Harita, solda ise çeşitli girdi özelliklerinin (uçak tipi, görev sahası tipi,...) ayarlanabildiği yazılım bileşenlerinin ağacı olarak isimlendirilen bir ekran ve sağda ise çeşitli bilgilerin (görev sahası koordinatları, uçak rotası,...) gösterildiği bir ekranla karşılaşılmaktadır. Hava aracı, hava meydanı, görev sahası,... bulunduğu koordinatlar ve hava aracı-görev eşleştirmelerine ait rotalar yerleştirilirken bulunulan koordinatın coğrafi özelliklerinin de göz önünde bulundurulmak istenilebileceği düşünülerek 3 boyutlu bir şekilde görselleştirme yapılmıştır. Ekrandaki bir noktaya tıklanarak farenin orta tıklama topu tuşu ileri geri oynatılarak haritaya yakınlaşma ve uzaklaşma işlemi yapılabilmektedir. Ayrıca farenin sol tuşuna basılı tutularak farenin oynatılması ile 3 boyutlu görüntü elde edilebilmektedir. Ekranda önemli şehirlerde gösterilerek kullanıcı bilgilendirilmeye çalışılmıştır. Haritanın üst tarafında yer alan küçük dünya haritası ve pusula yardımı ile de kullanıcıya yardımcı olunmaya çalışılmıştır. Şekil 4.26 da Dünya Haritası uzaktan gösterilirken, Şekil 4.27 de ise Türkiye Haritası yakından gösterilmektedir. 87

Şekil 4.26 Görsel Arayüz (Dünya Haritası) 88

Şekil 4.27 Görsel Arayüz (Türkiye Haritası) 89

4.2.1 Nihai Üründeki Algoritmalar Minimum maliyete sahip hava aracı-görev eşleştirmeleri yapılarak otomatik bir rota planlaması yapılmak istenmektedir. Daha önceden belirlenen bütün görevler yapılacaktır, hava aracı -görev eşleştirmesi yapılırken hava aracında bulunan yakıtın yeterli olmasına dikkat edilecektir ve hava aracı -görev eşleştirmesi sırasında her bir hava aracına maksimum iki görev atanabilecektir kıstasları göz önünde bulundurularak atama problemleri çözümüye çalışılmaktadır. Daha önceden Matlab 2011a ortamında performans kıyaslamaları yapılan algoritmalardan bütün olası çözümler arasında en iyi çözümü veren Kaba Kuvvet Algoritması, kısa zamanda maliyet bakımından en iyi sonuca yakın çözümlerin bulunmasını sağlayan Genetik Algoritma ve Karınca Kolonisi Optimizasyon Algoritması Java yazılım ortamında derlenerek hava aracı -görev eşleştirmelerine ait olan rotalar elde edilmeye çalışılmıştır. Atama problemine ait çözümler iki adet senaryo için koşturulmuştur. 1.senaryo : 4 hava aracı (1.hava aracı koordinatı: (enlem, boylam, yükseklik) 40.505, 30.475, 1040.322 (Kocaeli), 2.hava aracı koordinatı: 39.885, 32.890, 112.970 (Ankara), 3.hava aracı koordinatı: 38.215, 39.891, 1495.019 (Diyarbakır), 4.hava aracı koordinatı: 39.618, 27.202, 227.749 (Balıkesir)) ile 6 adet görevin yapılarak 3 hava meydanından (1.hava meydanı koordinatı: 38.228, 40.062, 486.609 (Diyarbakır), 2.hava meydanı koordinatı: 39.708, 31.012, 823.911 (Eskişehir), 3.hava meydanı koordinatı: 39.881, 32.732, 1052.242 (Ankara)) birisine inmesi şeklinde olup, 2.senaryo : 4 hava aracı (1.hava aracı koordinatı: (enlem, boylam, yükseklik) 40.505, 30.475, 1040.322 (Kocaeli), 2.hava aracı koordinatı: 39.885, 32.890, 112.970 (Ankara), 3.hava aracı koordinatı: 38.215, 39.891, 1495.019 (Diyarbakır), 4.hava aracı koordinatı: 39.618, 27.202, 227.749 (Balıkesir)) ile 7 adet görevin yapılarak 3 hava meydanından (1..hava meydanı koordinatı: 38.228, 40.062, 486.609 (Diyarbakır), 2.hava meydanı koordinatı: 39.708, 31.012, 823.911 (Eskişehir), 3.hava meydanı koordinatı: 39.881, 32.732, 1052.242 (Ankara)) birisine inmesi şeklindedir. Şekil 4.34 te 1.senaryoya ait olan koordinatlar görsel arayüz ekranında gösterilmiştir. 90

Şekil 4.34 1.Senaryoya ait koordinat görselleri ekranı 4.2.1.1 Nihai Üründeki Kaba Kuvvet Algoritması Java yazılım ortamındaki Kaba Kuvvet Algoritması ile hava araçları-görevler ile eşleştirilerek herbir hava aracına maksimum iki görev verilecek şekilde eşleştirmeler yapılmakta ve olası çözümler arasındaki en minimum maliyete sahip çözüm probleme ait minimum maliyetli çözümü belirtmektedir. Şekil 4.35 te 1.senaryoya ait Kaba Kuvvet Algoritması sonuçları görülürken Şekil 4.36 da ise 2.senaryoya ait Kaba Kuvvet Algoritması sonuçları görülmektedir. Hava araçlarının görevleri yerine getirmesi sonucunda 1.senaryo için oluşacak toplam maliyet 560 litre yakıt iken 2.senaryo için oluşacak toplam maliyet 634 litre yakıttır. 91

Şekil 4.35 1.Senaryoya ait Kaba Kuvvet Algoritması sonuç görseli ekranı Şekil 4.36 2.Senaryoya ait Kaba Kuvvet Algoritması sonuç görseli ekranı 4.2.1.2 Nihai Üründeki Genetik Algoritma Java yazılım ortamındaki Genetik Algoritma ile hava araçları-görevler ile eşleştirilerek herbir hava aracına maksimum iki görev verilecek şekilde eşleştirmeler yapılmakta ve kısa sürede en iyi maliyetli çözüme yakın bir çözüm elde edilip buna ait rota belirlenmektedir. Matlab yazılım ortamında elde edilen performans sonuçlarına göre 92

Çaprazlama Oranı = %70, Mutasyon Oranı = %50, Nesil Sayısı = 100, Nüfus Büyüklüğü=100 parametre değerleri ile kısa zamanda maliyet bakımından iyi sonuçlara ulaşılmaktadır. Genetik algoritma ile maksimum iki görev yapılacak şekilde uyarlamak için bir karıştırıcı mekanizması kullanılmaktadır. Bu karıştırıcı mekanizmasında hava aracı-görev eşleştirmeleri yapılarak hava aracının daha önceden yapılan eşleştirmeler sonucunda ikiden fazla görev ile eşleştirilip eşleşmediğine bakılarak eğer daha önceden iki görev eşleştirmesi yapıldıysa yapılacak olan görev başka bir hava aracına eşleştirilecek şekilde geri kalan atamalar tamamlanmaktadır. Java ortamında derlenen Genetik Algoritmada Elitism Oranı ortadan kaldırılmış yerine Selection mekanizması adı verilen yöntem konulmuştur. Selection yönteminde eşleştirilebilecek olan olası çözümlere maliyet bakımından rulet çarkı yöntemi uygulanarak az maliyet ile yapılabilecek olan atamalar yani baskın bireylerin hayatta kalma şansının fazla olacağı düşünülerek atamalar yapılmaktadır. Şekil 4.37 de 1.senaryoya ait Genetik Algoritma sonuçları görülürken Şekil 4.38 da ise 2.senaryoya ait Genetik Algoritma sonuçları görülmektedir. Hava araçlarının görevleri yerine getirmesi sonucunda 1.senaryo için oluşacak toplam maliyet 560 litre yakıt iken 2.senaryo için oluşacak toplam maliyet 634 litre yakıttır, yani her iki senaryo içinde maliyet bakımından en iyi sonuç yakalanmıştır. Şekil 4.37 1.Senaryoya ait Genetik Algoritma sonuç görseli ekranı 93

Şekil 4.38 2.Senaryoya ait Genetik Algoritma sonuç görseli ekranı 4.2.1.3 Nihai Üründeki Karınca Kolonisi Optimizasyon Algoritması Java yazılım ortamındaki Karınca Kolonisi Optimizasyon Algoritması ile hava araçlarıgörevler ile eşleştirilerek herbir hava aracına maksimum iki görev verilecek şekilde eşleştirmeler yapılmakta ve kısa sürede en iyi maliyetli çözüme yakın bir çözüm elde edilip buna ait rota belirlenmeye çalışılmaktadır. Matlab yazılım ortamında elde edilen performans sonuçlarına göre α = 1, β = 1, = 0.7, Karınca Sayısı = 100, İterasyon Sayısı = 100, Q = 10 parametre değerleri ile kısa zamanda maliyet bakımından iyi sonuçlara ulaşılmaktadır. Karınca Kolonisi Optimizasyon Algoritması ile maksimum iki görev yapılacak şekilde uyarlamak için bir karıştırıcı mekanizması kullanılmaktadır. Bu karıştırıcı mekanizmasında hava aracı-görev eşleştirmeleri yapılarak hava aracının daha önceden yapılan eşleştirmeler sonucunda ikiden fazla görev ile eşleştirilip eşleşmediğine bakılarak eğer daha önceden iki görev eşleştirmesi yapıldıysa yapılacak olan görev başka bir hava aracına eşleştirilecek şekilde geri kalan atamalar tamamlanmaktadır. Şekil 4.39 da 1.senaryoya ait Karınca Kolonisi Optimizasyon Algoritması sonuçları görülürken Şekil 4.40 da ise 2.senaryoya ait Karınca Kolonisi Optimizasyon Algoritması sonuçları görülmektedir. Hava araçlarının görevleri yerine getirmesi sonucunda 1.senaryo için oluşacak toplam maliyet 593 litre yakıt iken 94