DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Gerçek-Zamanlı Veri Dağıtımı Dokümanı v 1.0.1 01.08.2011



Benzer belgeler
DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Algoritmalar Dokümanı v Sefai Tandoğan Mustafa Atanak Doç. Dr.

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Kullanıcı Rehberi Dokümanı v Safai Tandoğan Mustafa Atanak Doç. Dr.

Algoritmalar. Çizge Algoritmaları. Bahar 2017 Doç. Dr. Suat Özdemir 1

Zeki Optimizasyon Teknikleri

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Veri Grid Sistem Modelleri Dokümanı v

Algoritmalar ve Karmaşıklık

HF TELSİZ AĞLARDA DSR TABANLI ROTALAMA UYGULAMASI

Zeki Optimizasyon Teknikleri. Karınca Algoritması (Ant Algorithm)

Kredi Limit Optimizasyonu:

köşe (vertex) kenar (edg d e)

Bilgisayar Ağları Computer Networks

METASEZGİSEL YÖNTEMLER

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#9: AÇGÖZLÜ ALGORİTMALAR

Algoritmalara Giriş. Prof. Erik Demaine. November 16, 2005 Copyright by Erik D. Demaine and Charles E. Leiserson L18.1

Zeki Optimizasyon Teknikleri

HF Tasarsız Ağlarda Rotalama. Makbule Gülçin Özsoy TUBITAK-BILGEM/G227

11.Hafta En kısa yollar I-II-III Devam. Negatif Ağırlıklı En Kısa Yollar Doğruluk Çözümleme

Uzaktan Algılama Teknolojileri

Çizgeler (Graphs) Doç. Dr. Aybars UĞUR

Kısıtsız Optimizasyon OPTİMİZASYON Kısıtsız Optimizasyon

4. HAFTA BLM323 SAYISAL ANALİZ. Okt. Yasin ORTAKCI.

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği

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

10.Hafta Minimum kapsayan ağaçlar Minimum spanning trees (MST)

Algoritma Geliştirme ve Veri Yapıları 10 Graf Veri Modeli. Mustafa Kemal Üniversitesi

TOPSIS yönteminin adımları 5 Adım 1. Normalize karar matrisinin oluşturulması 6 Karar matrisinin normalizasyonu aşağıdaki formül kullanılarak yapılır:

Nesne Yönelimli Programlama

3.2. Raster Veriler. Satırlar. Sütunlar. Piksel/hücre büyüklüğü

Sınav Dağılım & IMKB Endeks

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

İşletim Sistemlerine Giriş

YÖNEYLEM ARAŞTIRMASI - I

İleri Diferansiyel Denklemler

BİL-341 ALGORİTMALAR BÜYÜK O NOTASYONU AHMET ATAKAN atakanahmet@hotmail.com KIRGIZİSTAN-TÜRKİYE MANAS ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

Arızalara Karşı Dayanaklı Optik Örgüsel (Mesh) Ağlar 1. Kısım: Koruma. BSM 450 Fiber Optik Ağlar Bahar Yrd. Doç. Dr.

PARALOG SÜT PROGRAMLARINDA ROTA ĐCMALĐ

F(A, N, K) // A dizi; N, K integer if N<0 then return K; if A[N]>K then K = A[N]; return F(A, N-1, K);

Paket Anahtarlama ve Yönlendirme

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

1 Actions-> Generate Random TSP yolunu izleyerek 100 şehirden oluşan bir gezgin satıcı problemi oluşturunuz.

ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.

BİL-142 Bilgisayar Programlama II

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

Veri Ağlarında Gecikme Modeli

ISK116 - Bölüm 1. Grup Teknolojisi

Katmanı Tasarımı kaydet-yönlendir

EVREN, ÖRNEK, TEMSİLİYET. Prof. Mustafa Necmi İlhan

KABLOSUZ İLETİŞİM

GEZGİN SATICI PROBLEMİ. Feasible Çözümler? Optimal Çözüm?

Anadolu Üniversitesi Endüstri Mühendisliği Bölümü İST328 Yöneylem Araştırması 2 Dersi Bahar Dönemi. Hazırlayan: Doç. Dr.

KENDĐ KENDĐNE YOL BULAN ARAÇ

RSA ANAHTAR DAĞITIMI VE RSA İLE DİJİTAL İMZA OLUŞTURMA

Bilgisayar Programcılığı

for döngüsü for (başlangıç değeri; şart; artım) ifade; for (başlangıç değeri; şart; artım) { ifadeler; }

YZM 2116 Veri Yapıları

DGridSim Gerçek Zamanlı Veri Grid Simülatörü. Yazılım Tasarımı Dokümanı v Mustafa Atanak Sefai Tandoğan Doç. Dr.

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar

Döngü Komutları. Komutu. while Komutu Diğer Operatörler Bileşik Komut for Komutu. İçiçe Döngüler break ve continue Komutları

OBS REZERVASYON YÖNTEMLERİNİN KARŞILAŞTIRMALI PERFORMANS ANALİZİ

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları

VERİ MADENCİLİĞİ (Sınıflandırma Yöntemleri) Yrd.Doç.Dr. Kadriye ERGÜN

İSTATİSTİK 2. Hipotez Testi 21/03/2012 AYŞE S. ÇAĞLI.

Alıştırma 1: Yineleme

Mann-Whitney U ve Wilcoxon T Testleri

VAN EDREMİT İLÇE MİLLİ EĞİTİM MÜDÜRLÜĞÜ

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

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

ELEKTRİK DEVRELERİ-2 LABORATUVARI VIII. DENEY FÖYÜ

DENEY 3: DTMF İŞARETLERİN ÜRETİLMESİ VE ALGILANMASI

BÖLÜM-IV ÜRÜN GELİSTİRME İŞLEMİ Genel Problem Çözme İşlemi

SOME-Bus Mimarisi Üzerinde Mesaj Geçişi Protokolünün Başarımını Artırmaya Yönelik Bir Algoritma

Synergi Gas. Gelişmiş Hidrolik Modelleme. Doğalgaz dağıtım şebekeleri için optimizasyon ve simülasyon yazılımı ARCUMSOFT

BIL222 Veri Yapıları ve Algoritmalar

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

PARALOG SÜT PROGRAMLARINDA KADEMELĐ FĐYAT UYGULAMASI

ProModel ile Modelleme. Benzetim 14. Ders

C Dersleri Bölüm 3 : Program akışı

VERİ MADENCİLİĞİ (Birliktelik Kuralları) Yrd.Doç.Dr. Kadriye ERGÜN

ANONİM ŞİRKET KURULUŞ İŞLEMLERİ

Eğitim seti (training set) sınıflandırma modelinin elde edileceği kayıtları içerir

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

YÜZÜNCÜ YIL ÜNİVERSİTESİ ELEKTRİK ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ ANALOG ELEKTRONİK DENEY RAPORU

Sayısal Filtre Tasarımı

Kritik Yol Yöntemi / CPM

BAŞLANGIÇ TEMİNATI VE GARANTİ FONU HESAPLAMASI

Endüstri Mühendisliğine Giriş

FEI, Rules, Jumping, Steward Manual Annex VII - updated in a Power-Point pictures presentation Türkçe Tercümesi 21/01/2009

Çok işlemli (multitasking) sistemlerde işlemler (process) kısıtlı kaynakları kullanmak zorundadırlar.

ÇİZGE KURAMI KESİKLİ MATEMATİKSEL YAPILAR GÜZ

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

Makine Öğrenmesi 3. hafta

Chapter 12: Depolama Sistemleri

IE 303T Sistem Benzetimi L E C T U R E 3 : O L A Y Ç I Z E L G E L E M E A L G O R I T M A S I

Yrd. Doç. Dr. Fatih TOSUNOĞLU Erzurum Teknik Üniversitesi Mühendislik Fakültesi İnşaat Mühendisliği Bölümü

Data Communications. Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü. 8. Anahtarlama

Çekişme Temelli Ortam Erişimi Algoritmaları Dilim Atama İhtimalleri Karşılaştırması

VERİ MADENCİLİĞİ (Kümeleme) Yrd.Doç.Dr. Kadriye ERGÜN

YGS MATEMATİK SORU BANKASI

Transkript:

DGridSim Gerçek Zamanlı Veri Grid Simülatörü Gerçek-Zamanlı Veri Dağıtımı Dokümanı v 1.0.1 01.08.2011 Mustafa Atanak Sefai Tandoğan Doç. Dr. Atakan Doğan

1. Tek Rotadan Veri Dağıtımı 1.1 Gerçek-Zamanlı Rota Seçimi Algoritmaları 1.1.1 En Az Atlamalı Uygun Rota Algoritması En Az Atlamalı Uygun Rota (Minimum Hop Feasible Path First - MinHop/FPF) Algoritması Şekil 1 de gösterilmiştir. Bu algoritma, Bellman-Ford en kısa yol algoritması temel alınarak hazırlanmıştır. Algoritma, kaynak-hedef arasındaki en az atlamalı uygun rotalara öncelik tanır. Rota hesaplanırken, sadece gerekli bant genişliğine sahip olan linkler kullanılır. Bellman-Ford algoritması, en az atlamalı yolun da içinde olduğu en kısa yol yaklaşımları için en verimli çalışan algoritmalardandır. MinHop/FPF programı //Giriş: G(V,E) ve istek r //Çıkış: istek r için en az atlamalı uygun rota p r.gereklibantgenişliği = r.veribüyüklüğü/r.sonzaman; for each köşe v in V if v is r.kaynak then v.atlamasayısı=0; else v.atlamasayısı=sonsuz; v.selef=boş; for each köşe v in V for each kenar e in E if e.bantgenişliği > r.gereklibantgenişliği if e.hedef.atlamasayısı > e.kaynak.atlamasayısı + 1 e. Hedef.AtlamaSayısı = e. Kaynak.AtlamaSayısı + 1; e.hedef.selef = e.kaynak; Şimdiki = r.hedef; repeat rota p ye (Şimdiki.Selef, Şimdiki) arasındaki linki ilave et; Şimdiki = Şimdiki.Selef; if Şimdiki == boş //kaynak-hedef arasında uygun rota bulunamadı return boş rota; until Şimdiki!= r.kaynak; return p; Şekil 1. MinHop/FPF algoritması.

MinHop/FPF kullanarak GZRS programı //Giriş: G(V,E) ve istek kümesi R //Çıkış: istek r ϵ R için en az atlamalı uygun rota p ϵ P p = MinHop/FPF (G, r); Şekil 2. MinHop/FPF kullanarak GZRS algoritması. Bellman-Ford en kısa yol algoritması O( V E ) de çalışır. Dolayısı ile MinHop/FPF algoritması da O( V E ) de ve MinHop/FPF (Şekil 2) kullanarak GZRS algoritması da O( V E R ) de çalışır. 1.1.2 En Az Atlamalı En Az Gecikmeli Uygun Rota Algoritması MinHop/FPF, önceliği en az atlayışa sahip rotalara verirken, link gecikmelerini hesaba katmaz. Ancak toplam gecikmesi daha az olan rotalar, gecikmesi fazla olan rotalara göre önceliğe sahip olmalıdırlar. Gerekli önceliği vermek için bu çalışmada Şekil 3 te gösterilen En Az Atlamalı En Az Gecikmeli Uygun Rota (Minimum Hop Minimum Delay Feasible Path First - MinMin/FPF) algoritması önerilmiştir. Bu algoritmada, eğer iki rotanın atlama sayısı eşit ise, daha az toplam gecikmesi olan rotalar tercih edilir. MinHop/FPF algoritması O( V E ) de çözülür. MinMin/FPF algoritmasında ilave olarak her kenar için rota gecikmesi hesap edilir. Bu işlem, en kötü senaryo da E aşamada yapılır. Bu durumda MinMin/FPF algoritması bir istek için gerekli rotayı O( V E 2 ) de ve MinMin/FPF kullanarak GZRS algoritması (Şekil 4) da tüm rotaları O( V E 2 R ) de bulur. MinMin/FPF programı //Giriş: G(V,E) ve istek r //Çıkış: istek r için en az atlamalı en az gecikmeli uygun rota p //ilk kullanıma hazırlama r.gereklibantgenişliği = r.veribüyüklüğü/r.sonzaman; for each köşe v in V if v is r.kaynak then v.atlamasayısı=0 else v.atlamasayısı=sonsuz v.selef=boş;

//Bellman-Ford ana döngü for each köşe v in V for each kenar e in E if e.bantgenişliği > r.gereklibantgenişliği if e.hedef.atlamasayısı > e.kaynak.atlamasayısı + 1 e. Hedef.AtlamaSayısı = e. Kaynak.AtlamaSayısı + 1; e.hedef.selef = e.kaynak; else if e.hedef.atlamasayısı == e.kaynak.atlamasayısı +1 r.kaynak ile e.hedef arası link gecikmelerinin toplamını bul (PD1); r. Kaynak ile e.kaynak arası link gecikmelerinin toplamını bul (PD2); if PD1 > PD2 + e.gecikme e. Hedef.AtlamaSayısı = e. Kaynak.AtlamaSayısı + 1; e.hedef.selef = e.kaynak; Şimdiki = r.hedef; repeat rota p ye (Şimdiki.Selef, Şimdiki) arasındaki linki ilave et; Şimdiki = Şimdiki.Selef; if Şimdiki == boş //kaynak-hedef arasında uygun rota bulunamadı return boş rota; until Şimdiki!= r.kaynak; return p; Şekil 3. MinMin/FPF algoritması. MinMin/FPF kullanarak GZRS programı //Giriş: G(V,E) ve istek kümesi R //Çıkış: istek r ϵ R için en az atlamalı uygun rota p ϵ P p = MinMin/FPF (G, r); Şekil 4. MinMin/FPF kullanarak GZRS algoritması.

1.1.3 En Az Çakışmalı Uygun Rota Algoritması MinMin/FPF önceliği az atlamalı az gecikmeli rotalara öncelik verir. Ancak algoritma sonucu bulunan rotalar, bazı linkleri daha sık kullanıyor olabilirler. Bu durumda, bazı linkler az kullanılır iken bazıları da çok fazla kullanılır olabilirler. Yine linklerin kapasiteleri de farklılık göstermektedirler. Az bant genişliğine sahip linklerin bant genişliği kapasiteleri daha çabuk tükenir ve bu nedenle daha az kullanılmalıdırlar. Dolayısı ile istekler için rota bulma algoritması olarak MinHop/FPF veya MinMin/FPF kullanıldığında link kullanım yüzdeleri arasında ciddi dengesizlikler oluşabilir. Önerilen En Az Çakışmalı Uygun Rota (Minimum Contention Feasible Path First - MinCon/FPF) algoritmasında, öncelikle linklere ağırlık olarak 1 atanır. Şekil 5 te gösterilen MinCon/FPFalgoritması, en az ağırlıklı en az gecikmeli uygun rotayı bulur. Bu rota üzerindeki linklerin ağırlıkları ALPHA*AverageBandwidth/e.bandwidth kadar arttırılır. Formülde bulunan ALPHA, sıfırdan büyük bir parametredir. Linklere ilave edilen ağırlık, linkin bant genişliği ile ters orantılıdır. Bu durumda, daha az bant genişliğine sahip olan linkler, daha fazla ağırlığa sahip olacaklardır ve daha sonraki rotalarda seçilme olasılıkları da azalmış olacaktır. Söz konusu algoritmanın zaman karmaşıklığı, MinMin/FPF ile GZRS algoritması ile aynıdır. MinCon/FPF programı //Giriş: G(V,E), istek r ve link ağırlıkları //Çıkış: istek r için en az atlamalı en az gecikmeli uygun rota p //ilk kullanıma hazırlama r.gereklibantgenişliği = r.veribüyüklüğü/r.sonzaman; for each köşe v in V if v is r.kaynak then v.atlamasayısı=0; else v.atlamasayısı=sonsuz v.selef=boş; //Bellman-Ford ana döngü for each köşe v in V for each kenar e in E if e.bantgenişliği > r.gereklibantgenişliği if e.hedef.atlamasayısı > e.kaynak.atlamasayısı + e.ağırlık e. Hedef.AtlamaSayısı = e. Kaynak.AtlamaSayısı + e.ağırlık; e.hedef.selef = e.kaynak; else if e.hedef.atlamasayısı == e.kaynak.atlamasayısı + e.ağırlık r.kaynak ile e.hedef arası link gecikmelerinin toplamını bul (PD1); r. Kaynak ile e.kaynak arası link gecikmelerinin toplamını bul (PD2);

if PD1 > PD2 + e.gecikme e. Hedef.AtlamaSayısı = e. Kaynak.AtlamaSayısı + e.ağırlık; e.hedef.selef = e.kaynak; Şimdiki = r.hedef; repeat rota p ye (Şimdiki.Selef, Şimdiki) arasındaki linki ilave et; Şimdiki = Şimdiki.Selef; if Şimdiki == boş //kaynak-hedef arasında uygun rota bulunamadı return boş rota; until Şimdiki!= r.kaynak; return p; Şekil 5. MinCon/FPF algoritması. MinCon/FPF kullanarak GZRS programı //Giriş: G(V,E) ve istek kümesi R //Çıkış: istek r ϵ R için en az atlamalı uygun rota p ϵ P OrtalamaBantGenişliği ni bul; for each kenar e in E e.ağırlık = 1; p = MinCon/FPF (G, r, e.ağırlık Listesi); for each kenar e in E ϵ p e.ağırlık += ALPHA* OrtalamaBantGenişliği/e.BantGenişliği; Şekil 6. MinCon/FPF kullanarak GZRS algoritması. 1.1.4 Link Akış Sınırlamalı En Az Çakışmalı Uygun Rota Algoritması Link Akış Sınırlamalı En Az Çakışmalı Uygun Rota (Link-Flow Limited Minimum Contention Feasible Path First - LFL/MinCon/FPF) algoritması, MinCon/FPF algoritmasının daha da geliştirilmiş bir sürümüdür. MinCon/FPF kullanarak GZRS algoritmasında her geçişte linklere atanan ağırlıklar değiştirilerek çakışma sayısı azaltılmaya çalışılır. Ancak bazı linklerin çok kullanılması sorunu devam edebilir. LFL/MinCon/FPF de amaç, linklerin fazla kullanımının önüne geçerek çakışmaları azaltmaktır.

Öncelikle AZAMİ_LİNK_AĞIRLIĞI, bir parametre olarak belirlenir. Birinci geçişte AZAMİ_LİNK_AĞIRLIĞI na ulaşan linkler kullanılamaz olarak işaretlenir ve geçiş sona erene kadar bu linkler rota bulma işleminde kullanılamazlar. İkinci geçişin başında tüm linkler kullanılabilir durumdadır. 2*AZAMİ_LİNK_AĞIRLIĞI na ulaşan linkler kullanılamaz olarak işaretlenirler ve geçiş sonuna kadar kullanılamazlar. Geçişler, tüm istekler için birer rota bulunana kadar devam eder. Geçişler, en kötü durumda istek sayısı, R, kadar tekrar eder. Bu durumda Şekil 16 da gösterilen LFL/MinCon/FPF GZRS algoritması, MinCon/FPF kullanarak GZRS algoritmasından en kötü durumda R kadar yavaş çalışır. Algoritmanın zaman karmaşıklığı O( V E 2 R 2 ) olarak bulunur. LFL/MinCon/FPF GZRS programı //Giriş: G(V,E) ve istek kümesi R //Çıkış: istek r ϵ R için en az atlamalı uygun rota p ϵ P OrtalamaBantGenişliği ni bul for each kenar e in E e.ağırlık = 1; LoopCount = 1; do for each kenar e in E Kenar e yi G ye ilave et; p = MinCon/FPF (G, r, e.ağırlık Listesi); for each kenar e in E ϵ p e.ağırlık += ALPHA* OrtalamaBantGenişliği/e.BantGenişliği; if e.ağırlık > LoopCount* AZAMİ_LİNK_AĞIRLIĞI Kenar e yi G den çıkar; while Şekil 7. LFL/MinCon/FPF GZRS algoritması.

1.2 Gerçek-Zamanlı İstek Seçimi Algoritmaları 1.2.1 En Fazla Sayıda Çıkan Akışlı İstek Algoritması En Fazla Sayıda Çıkan Akışlı İstek (Maximum Number of Outgoing Flows First MNOFF) algoritması Şekil 8 de gösterilmiştir. MNOFF, ana döngüde GZRS algoritmalarının rotalara bağlı olarak bir çakışma grafiği oluşturur. Çakışma grafiği çift taraflı (bipartite) grafiktir ve şu şekilde oluşturulur: Her link için, linki kullanan istekler bulunur. Tüm isteklerin minimum bant genişliği ihtiyaçları kadar bant kullandıkları varsayılır. Bu durumda bant genişliği kapasitesini aşan linklere tıkanık link adı verilir. Çakışma grafiğinin sağ tarafına tıkanık linkler, sol tarafına ise tıkanıklığa sebep olan istekler yerleştirilir. Her bir istek ile o isteğin gerçekleşmesinde kullanılacak olan tıkanık linkler arasına bir bağlantı kurulur. Çakışma grafiğinde bulunan bir kenar, bir veya birden fazla isteğin karşılanamayacağını gösterir. Dolayısı ile en az bir istek çakışma grafiğinden silinmelidir. Her iterasyonda MNOFF en fazla sayıda çıkan akışa sahip olan köşeyi (çakışma grafiğinde en fazla sayıda kenara sahip olan istek) karşılanamaz olarak işaretler. Eşitlik durumunda, daha yüksek bant genişliği ihtiyacı olan istek işaretlenir. Karşılanamaz olarak işaretlenmemiş istekler kullanılarak prosedür tekrar edilir. Bu işlem, çakışma grafiğinde hiç tıkanık link kalmayana kadar tekrar eder. MNOFF programı //Giriş: G(V,E), istek kümesi R, ve rota kümesi P //Çıkış: karşılanabilir istek listesi //ilk kullanıma hazırlama r.durum = karşılanabilir; Çakışma grafiğini oluştur; //ana döngü while çakışma grafiğinde tıkanık link var r = çakışma grafiğinde en fazla sayıda çıkan akışlı istek; r.durum = karşılanamaz; Çakışma grafiğini güncelle; if r.durum == karşılanabilir KarşılanabilirİstekListesi ne r yi ekle; return KarşılanabilirİstekListesi; Şekil 8. MNOFF algoritması. Çakışma grafiğinin oluşturulması veya güncellenmesi O( E R ) zaman alır. En kötü durumda ana döngü R defa tekrar eder. Bu durumda MNOFF algoritması en kötü durumda O( E R 2 ) zaman alır.

1.2.2 En Fazla Miktarda Çıkan Akışlı İstek Algoritması Şekil 9 da gösterilen En Fazla Miktarda Çıkan Akışlı İstek (Maximum Outgoing Flows First Algorithm - MOFF) algoritması, genel olarak MNOFF algoritmasına benzer. Ancak MOFF algoritmasının eğer çakışma grafiğinde tıkanık link var ise, en fazla sayıda çıkan akışlı istek değil, en fazla miktarda çıkan akışlı istek karşılanamaz olarak işaretlenir. İstekler için çıkan akış miktarları ise, çıkan istek sayısının isteğin karşılanması için gerekli olan minimum bant genişliğine çarpılması sonucunda bulunur. MOFF algoritmasının zaman karmaşıklığı ile MNOFF algoritmasının zaman karmaşıklığı eşittir. MOFF programı //Giriş: G(V,E), istek kümesi R, ve rota kümesi P //Çıkış: karşılanabilir istek listesi //ilk kullanıma hazırlama r.durum = karşılanabilir; Çakışma grafiğini oluştur; //ana döngü while çakışma grafiğinde tıkanık link var r = çakışma grafiğinde en fazla miktarda çıkan akışlı istek; r.durum = karşılanamaz; Çakışma grafiğini güncelle; if r.durum == karşılanabilir KarşılanabilirİstekListesi ne r yi ekle; return KarşılanabilirİstekListesi; Şekil 9. MOFF algoritması.

2. Çoklu Rotadan Veri Dağıtımı 2.1 Gerçek-Zamanlı Rota Seçimi Algoritmaları Gerçek-zamanlı çoklu rotadan veri dağıtımı probleminin çözümü için öncelikle verinin gönderileceği k adet rotanın bulunması gereklidir. Bu işlem için k-en kısa yol veya k-en kısa ayrık yol gibi yaklaşımlar ile rotalar bulunur. 2.1.1 k-en Kısa Yol Algoritması 1. Dijkstra veya Bellman-Ford u kullanarak, linklerin kullanılabilir bant genişliklerinin çarpmaya göre terslerini link ağırlığı olarak al ve en kısa yolu bul. Bu rotayı, i=1 için i ninci rota olarak sakla. 2. B = boş küme 3. i ninci en kısa yoldan tüm sapmaları oluştur ve B ye ilave et. Bu çalışmada sapmalar aşağıdaki şekilde bulunmuştur. a. i ninci en kısa yolda bulunan link sayısı n olsun. b. x=1 den n e kadar aşağıdaki işlemi tekrar et c. i ninci en kısa yolun x inci linkini sil ve kalan linkler ile en kısa yolu bul. Eğer yol bulunmuş ise B kümesine ekle. 4. B kümesinin içinden en kısa yolu bul ve (i+1) inci yol olarak kaydet. 5. k adet rota bulunana kadar veya B eşittir boş küme olana kadar aşama 2 den itibaren tekrar et. 2.1.2 k-en Kısa Ayrık Yol Algoritması Önceki bölümde tanıtılan k-en kısa yol algoritması kullanılan rotalarda kullanılan link adedini düşürse de, bazı linklerin diğerlerine göre daha fazla kullanıldığı durumlar olabilir. Bu durumda bazı linklerin kullanım miktarları, diğerlerinden oldukça fazla olabilmektedir. Linklerin kullanım oranlarının mümkün olduğu kadar dengeli olabilmesi için k-en kısa ayrık yol yaklaşımı kullanılabilir. Bu yaklaşım, özellikle ağ yapısındaki bozulmalarda, sistemi çalışır hale getirme aşamasında kullanılır. 1. Dijkstra veya Bellman-Ford u kullanarak, linklerin kullanılabilir bant genişliklerinin çarpmaya göre terslerini link ağırlığı olarak al ve en kısa yolu bul. 2. Bulunan rota üzerindeki tüm linkleri ağ yapısından sil. 3. Kalan ağ üzerinden en kısa yolu bul. 4. k adet rota bulunana kadar veya kalan linkleri ile rota bulunamayana kadar ikinci adımdan itibaren tekrar et.

2.2 Gerçek-Zamanlı Rota Seçimi Algoritmaları Verinin gönderileceği rotalar bulunduktan sonra ise, veri transferi isteğinin başarılı biçimde gerçekleştirilebilmesi için hangi rotaya ne kadarlık akış tahsis edilmesi gerektiği problemi çözülmelidir. Tek rotadan veri dağıtımı bölümünde anlatıldığı üzere, önceki bölümde belirtilen GZRS algoritmalarından biri kullanılarak her istek için k-adet rota öncelikle bulunur. GZİS ise, daha once belirtildiği gibi, karşılanan istek sayısını en fazlaya çıkartacak şekilde karşılanan isteklerin seçilmesi problemidir. 2.2.1 Eşit Bölüşümlü Çoklu Rotadan Gönderim Eşit Bölüşümlü Çoklu Rotadan Gönderim (Equal Share Multi Path - ESMP) algoritması Şekil 10 da gösterilmiştir. ESMP algoritması, en fazla k rotayı kullanarak isteğin karşılanması için çalışır. Öncelikle tek rotadan gönderime çalışır. Olmaz ise, eşit miktarda veri transferi yapan iki rotadan gönderime çalışır. Bu işlem, en fazla k rotaya kadar tekrar edilir. Eğer k rotada da gönderim başarılı olmaz ise istek karşılanamaz durumdadır. ESMP programı //Giriş: G(V,E), istek kümesi R, ve rota kümesi P //Çıkış: karşılanabilir istek listesi //ana döngü r.durum = karşılanamaz; k adet rota bul; i=1; while i k Herbir rotadan DosyaBüyüklüğü/i yi son zamanından önce göndermek için gerekli bant genişliğini bul; Herbir rotadaki linklerin kullanılan bant genişliğini arttır; if linklerden herhangi birisi kapasitesini aşmış ise Linklerde arttırılan tüm bant genişliklerini azalt; i=i+1; continue; else r.durum = karşılanabilir; KarşılanabilirİstekListesi ne r yi ilave et; break; return KarşılanabilirİstekListesi; Şekil 10. ESMP algoritması.

2.2.2 Dengeli Bölüşümlü Çoklu Rotadan Gönderim ESMP algoritmasında, her rotadan eşit miktarda verinin transfer edildiği varsayılmakta idi. Ancak, daha fazla kullanılabilir bant genişliğine sahip olan rotalardan daha fazla verinin gönderilmesi daha verimli olacaktır. Bu düşünceden hareketle geliştirilmiş olan ve Şekil 11 de gösterilmiş olan Dengeli Bölüşümlü Çoklu Rotadan Gönderim (Balanced Share Multi Path - BSMP) algoritmasında, rotalardan gönderilecek olan verinin büyüklüğü eşit olarak değil, kullanılabilir bant genişlikleri ile doğru orantılı olarak paylaştırılmıştır. BSMP programı //Giriş: G(V,E), istek kümesi R, ve rota kümesi P //Çıkış: karşılanabilir istek listesi //ana döngü r.durum = karşılanamaz; k adet rota bul; i=1; while i k Her j <i rotasının kullanılabilir bant genişliklerini olan KBW j değerlerini bul; i rotadaki kullanılabilir bant genişliklerinin toplamı olan TKBW değerini bul; Herbir rotadan KBW j *DosyaBüyüklüğü/ TKBW yi son zamanından önce göndermek için gerekli bant genişliğini bul; Herbir rotadaki linklerin kullanılan bant genişliğini arttır; if linklerden herhangi birisi kapasitesini aşmış ise Linklerde arttırılan tüm bant genişliklerini azalt; i=i+1; continue; else r.durum = karşılanabilir; KarşılanabilirİstekListesi ne r yi ilave et; break; return KarşılanabilirİstekListesi; Şekil 11. BSMP algoritması.