Depo Yönetim Sistemi Probleminin Ate¸sböce˘gi Algoritması ile Çözümü
Storage Management System Problem and Firefly Algorithm Solution
Kubilay ATA ¸S1, Tülay YILDIRIM2
1 2Elektronik ve Haberle¸sme Mühendisli˘gi Bölümü, Yıldız Teknik Üniversitesi, ˙Istanbul, TÜRK˙IYE
2[email protected] Özetçe —Günümüzde birçok kara kutu problemine do˘gadan
esinlenilmi¸s sezgisel algoritmalarla çözüm bulunabilmektedir.
Kombinasyonel zorlu˘ga sahip olan, Gezgin Satıcı Problemi, Sırt Çantası Problemi, Grafik Renklendirme ve Araç Güzer- gahı Olu¸sturma gibi problemlerin çözümlerinde bu algoritmalar sıklıkla kullanılmaktadır. Bu çalı¸smada, Gezgin Satıcı Proble- mine benzeyen, Depo Yönetim Sistemi problemi tanıtılmı¸stır. Bu problemde, yatayda ve dikeyde ba˘gımsız hareket edebilen bir platforma sahip olan bir raf sisteminde eri¸sim ve stok istekleri listesinin en kısa sürede tamamlanmasını sa˘glayan en uygun dizilimin bulunması amaçlanmaktadır. Çalı¸smada, Depo Yönetim Sistemi probleminin çözümü için Ate¸sböce˘gi Algoritması kul- lanılması önerilmi¸stir. Ate¸sböce˘gi Algoritmasının ayrık çözümü kullanılmı¸s, uzaklık ve ı¸sık yo˘gunlu˘gu gibi fonksiyonlar probleme uyarlanmı¸stır.
Anahtar Kelimeler—Depo Yönetim Sistemi Problemi; Gezgin Satıcı Problemi; Ate¸sböce˘gi Algoritması.
Abstract—Today, many black box problems can be solved with nature-inspired meta-heuristic algorithms. These algorithms are used frequently to solve problems such as Traveling Sales- man Problem, Knapsack Problem, Graph Coloring and Vehicle Routing problems which have combinatorial difficulties. In this study, Storage Management System problem which is similar to Traveling Salesman Problem is introduced. In this problem, it is aimed to find the most appropriate sequence in order to complete the list of access and stock requests in a short time in a rack system having a platform that can move independently in horizontal and vertical positions. In the study, Firefly Algorithm is proposed to solve the Storage Management System problem.
Discrete solution of Firefly Algorithm is used and functions such as distance and light intensity are adapted to the problem.
Keywords—Storage Management System Problem; Traveling Salesman Problem; Firefly Algorithm.
I. G˙IR˙I ¸S
Uzun yıllar boyunca varlı˘gını sürdüren do˘ga, milyonlarca yıldır biriktirdi˘gi bilgi birikimi ile, her bir parçası arasındaki müthi¸s dengeyi hiç bozmadan, birçok probleme çözüm bu- labilmi¸stir. Biz insanlar, do˘gayı taklit ederek kar¸sıla¸stı˘gımız problemlere çözüm bulabilmeyi ö˘grendik. Günümüzde birçok probleme do˘gadan esinlenilmi¸s sezgisel algoritmalarla çözüm
bulabiliyoruz. Sezgisel algoritmalar, Gezgin Satıcı Problemi de dahil olmak üzere bir çok kombinasyonel zorlayıcı probleme uygulanmı¸slardır [1]–[5]. Gezgin Satıcı Problemini çözmek için birçok yöntem önerilmi¸stir. Bu yöntemlerden bazılarına, Dorigo (ve ark.) [1] ve Chawda (ve ark.) [2] tarafından önerilen Karınca Kolonisi Optimizasyonu Algoritması, Book- staber [3] tarafından önerilen Benzetimli Tavlama Algorit- ması, Kumbharana [6] tarafından önerilen Ate¸sböce˘gi Al- goritması ve Jati (ve ark.) [7] tarafından önerilen Evrimsel Ayrık Ate¸sböce˘gi Algoritması örnek gösterilebilir. Ate¸sböce˘gi Algoritması, aslında sürekli fonksiyonların optimizasyon prob- lemini çözmek için 2008 yılında Xin-She-Yang tarafından duyurulan [8], do˘gadan esinlenerek olu¸sturulmu¸s sezgisel bir algoritmadır. Ancak Ate¸sböce˘gi Algoritması ayrık problemlere de uygulanabilmektedir. Jati (ve ark.) [7] önerdi˘gi Evrim- sel Ayrık Ate¸sböce˘gi Algoritması buna örnek gösterilebilir.
Ayrıca Ate¸sböce˘gi Algoritmasının Gezgin Satıcı Problemine uyarlanması sonucu, Karınca Kolonisi Algoritması, Genetik Algoritmalar ve Benzetimli Tavlama Algoritmasına göre daha ba¸sarılı oldu˘gu görülmektedir [6].
Bu çalı¸smada Ate¸s Böce˘gi Algoritması, Gezgin Satıcı Problemi benzeri yeni bir Kombinasyonel Zorlayıcı problem olan ve bir sonraki bölümde açıklanacak olan Depo Yönetim Sistemi Problemi’ne uygulanmı¸stır. Bu problem, Gezgin Satıcı Problemi’nde oldu˘gu gibi, kombinasyonel bir çok çözümden optimum olanı bulabilme problemidir. Amaç yatay ve dikey yönlerde ba˘gımsız olarak hareket edebilen bir platforma sahip olan bir raf sisteminde, eri¸silmek istenen veya raf sistemine stoklanmak istenen malzemelerin, en kısa zamanda yerle¸sti- rilmesi veya alınmasıdır. Gezgin Satıcı Problemi’nden farklı olan kısmı ise, sistemdeki bo¸s rafların, tamamlanma süresini kısaltacak biçimde kullanılabilmesidir. Çalı¸smada problem hakkında detaylı bilgiler, Ate¸sböce˘gi Algoritmasının temelleri ve algoritma parametrelerinin probleme uyarlanması anlatıla- caktır. Algoritmanın test edilmesi için probleme özgü bir test fonksiyonu olu¸sturulacak ve sonuçlar tartı¸sılacaktır.
II. DEPOYÖNETIMSISTEMIPROBLEMI
Depo Yönetim Sistemi Problemi’nin amacı, sıralı bir ¸se- kilde yan yana ve üst üste dizilmi¸s gözlerden olu¸san bir raf sisteminde, yatay ve dikey yönlerde ba˘gımsız hareket edebilen bir makinenin, kendisinden istenen koordinatlardaki paketi
978-1-7281-2868-9/19/$31.00 c 2019 IEEE
alma veya kendisine verilen bir paketi istenilen koordinatlara götürüp yerle¸stirme i¸slemlerini en kısa sürede tamamlamaktır.
Sisteme bir liste verilmektedir. Bu listede, raftan alınması istenen paketlerin veya rafa yerle¸stirilmesi istenen paketlerin, koordinatlarıyla birlikte, geli¸sigüzel sıralandırılmı¸s hali bulun- maktadır. Sistem bu listeyi hiç düzenlemeden ve sırasına bak- madan, ilk satırdaki komuttan itibaren ba¸slayarak sırayla ken- disine verilen komut listesindeki i¸slemleri yerine getirmektedir.
Bu listenin en kısa sürede tamamlanması için gereken sıralı düzene getirilmesi i¸slemi, kullanılacak algoritmanın görevidir.
Raflı sistemin yapısı ¸Sekil-1’de görülmektedir.
¸Sekil 1: Depo Yönetim Sistemi’nin görünü¸sü
Sistem bir Giri¸s/Çıkı¸s noktasına sahiptir. Bu giri¸s çıkı¸s noktası zeminde yer almaktadır. Sistemde bulunan her göz bir koordinat ile adreslendirilmi¸stir. Bu adresleme, birinci de˘gi¸sken yatay yönde, ikinci de˘gi¸sken dikey yönde olmak üzere (x,y) biçiminde yapılmaktadır. Raf gözlerinin koordinat- ları 1’den ba¸slayarak artmaktadır. Giri¸s/Çıkı¸s noktasının koor- dinatı (0,1) dir. Sistemin gözlerini temsil eden gösterim ¸Sekil- 2’deki gibidir. Sisteme verilen listede koordinatların ba¸sında
¸Sekil 2: Depo Yönetim Sistemi yapısı ve koordinat sistemi
’E’,’S’ veya ’M’ komutlarından biri yer almaktadır. Bu ko- mutlar sırasıyla, verilen koordinatlardaki paketi alıp Giri¸s/Çıkı¸s noktasına getirme, Giri¸s/Çıkı¸s noktasındaki paketi verilen ko- ordinatlara götürüp yerle¸stirme ve biri bo¸s di˘geri dolu olan iki noktayı belirten koordinatlarla birlikte verilen ’M’ komutu ise, dolu olan gözden bo¸s olan göze paket ta¸sıma i¸slemlerini gerçekle¸stirmektedir. Tablo-I’de verilen komut listesi ve ¸Sekil- 3’te verilen komut listelerinin da˘gılımı görülmektedir. Sistemin daha iyi anla¸sılması için, verilen bu komut listesi üzerinden a¸sa˘gıdaki açıklamalar takip edilebilir:
• Paketlerin Giri¸s/Çıkı¸s konumu olan (0,1) den alınıp
istenilen koordinatlardaki göze yerle¸stirilmesi komutu
’S’ komutudur.
• Paketlerin, koordinatı verilen gözden alınıp Giri¸s/Çıkı¸s konumu olan (0,1)’e getirilmesi i¸slemini gerçek- le¸stiren komut ’E’ komutudur.
• Komut listesindeki Eri¸sim (E) komutu ile istenilen paketlerin, di˘ger i¸slemler gerçekle¸stirilirken maki- nenin gezintisi sırasında, tamamlanma süresini kısalta- cak ¸sekilde sistemde o an bo¸s olan di˘ger gözlere yerle¸stirilmesi i¸slemini gerçekle¸stiren komut ise ’M’
komutudur.
¸Sekil 3: Komut listesi örne˘ginin gözlere da˘gılımı
Komut Listesi örne˘gi E(4,4) E(8,4) E(6,6) E(3,9) E(9,8) E(8,9) S(4,3) S(10,2) S(6,7) S(3,7)
Tablo I: Sisteme verilebilecek bir komut listesi örne˘gi
¸Sekil 4: Komut listesi örne˘ginde ba¸slangıç komutu olan E(4,4) komutunun i¸slenmesi
• Verilen komut listesi örne˘gindeki ilk komut E(4,4) oldu˘gu için, sistem i¸slemlere bu komuttan ba¸slayacak- tır. Bu komut alındı˘gında, makine en son bulundu˘gu konumdan (4,4) konumuna gidecektir. Buradaki paketi alıp Giri¸s/Çıkı¸s konumu olan (0,1)’e gidecektir ve paketi teslim edecektir. Makine daha sonraki komutları beklemek üzere bu konumda kalacaktır.
• Makine sırayla E(4,4) E(8,4) E(6,6) E(3,9) E(9,8) E(8,9) komutlarını i¸sledikten sonra sıra S(4,3) komu-
¸Sekil 5: M((9,8),(5,7)) komutunun i¸slenmesi
tuna geldi˘ginde, bulundu˘gu son konumdan Giri¸s/Çıkı¸s konumu olan (0,1)’e gelip, gözlere yerle¸stirilmek is- tenen paketi alacaktır ve (4,3) konumuna gidecek- tir. Aldı˘gı paketi bu konumdaki göze yerle¸stirecek ve daha sonra gelecek olan komutları bekleyecektir.
Dolayısıyla makinenin bulundu˘gu son konum (4,3) olacaktır.
• Makine, kendisine verilen komut listesini daha kısa sürede bitirmek amacıyla, i¸slem yaptı˘gı andaki bo¸s gözleri de de˘gerlendirmek için "M" komutlarını türetip listeye ekleyebilir. "M" komutu i¸sletilmesi ¸Sekil-5’te gösterilmektedir.
¸Sekil 6: E(8,9) komutu i¸slendikten sonra S(4,3) komutunun i¸slenmesi
• Sistem listeyi ilk aldı˘gında ba¸slangıç konumu Giri¸s/Çıkı¸s konumudur. Aynı ¸sekilde tüm listeyi bitirdi˘ginde de gidece˘gi son konum Giri¸s/Çıkı¸s konu- mudur.
Makinenin yatayda ve dikeyde yaptı˘gı hareketler bir- birinden ba˘gımsız kabul edildi˘gi için, iki konum arasındaki zaman farkı Denklem-1’de gösterilmektedir.
t = max |x2− x1| ∗ Lx
V x ,|y2− y1| ∗ Ly V y
!
(1) Burada Vx makinenin yataydaki hızını, Vy dikeydeki hızını temsil etmektedir. Ayrıca Lx ve Ly ise sırasıyla her bir gözün yatay uzunlu˘gunu ve dikey uzunlu˘gunu temsil etmektedir.
Sistem parametrelerinden biri de, makinenin bir paketi alma veya yerle¸stirme süresidir. Toplam süre hesaplanırken bu parametre de dikkate alınmaktadır. Ancak gerçek zaman problemlerinde önemli olabilecek bu parametreler, algoritma
test etme a¸samasında önemsizdirler. Bu nedenle Lx=Ly=1, Vx=Vy=1 ve paket alma-yerle¸stirme süresi 0 kabul edilir.
Ancak ’M’ komutunun da kullanıldı˘gı algoritmalarda paket alma-yerle¸stirme süresi kar¸sıla¸stırmalı testlerde ayırt edici bir parametre olaca˘gından, 1 saniye olarak belirlenebilir.
Açıklanan bu sisteme göre bu i¸slemlerin daha kısa zamanda yapılması, makinenin mümkün oldu˘gunca sürekli bir paket ta¸sıma halinde olmasına ve mümkün oldu˘gunca bo¸s hareket et- memesine ba˘glıdır. Ba¸ska bir deyi¸sle, sisteme verilen komutlar
’S,E’ komut çiftleri ¸seklinde seçildi˘ginde, sürekli üzerinde bir paket ta¸sıyarak hareket edece˘gi için komut listesini daha kısa zamanda tamamlayacaktır. Kullanılacak algoritmaya bu yönde bir i¸slem yapması için herhangi bir ekleme yapılmamı¸stır ancak algoritmadan beklenen çözüm bu yöndedir.
Tablo-I’de verilen örnek komut listesinin tamamlanma süresi, Denklem-1’deki e¸sitlikten hesaplandı˘gında 112 saniye olmaktadır. Ancak Tablo-II’deki sırayla komutlar i¸slendi˘ginde komut listesi 90 saniyede tamamlanmaktadır.
Optimize Komut Listesi S(4,3) E(9,8) S(10,2) E(8,4) S(6,7) E(8,9) E(6,6) E(4,4) S(3,7) E(3,9)
Tablo II: Optimize edilmi¸s komut listesi
III. ATE ¸SBÖCE ˘GIALGORITMASI
A. Temel Tanımlar
Ate¸sböce˘gi Algoritması 2008 yılında Xin-She-Yang tarafın- dan duyurulmu¸stur [8]. Bu algoritmada, muhtemel çözümleri temsil eden ate¸sböcekleri, birbirlerinin ı¸sık yo˘gunlu˘gundan et- kilenerek hareket ederler. Ate¸sböce˘gi algoritması ¸su varsayım- lar üzerine kurulmu¸stur:
• Ate¸sböcekleri cinsiyetsizdirler. Böylece her bir ate¸sböce˘gi, cinsiyete bakılmaksızın di˘ger bir ate¸sböce˘ginden etkilenebilir.
• Ate¸sböceklerinin çekicili˘gi, parlaklıkları ile orantılıdır.
Bir ate¸sböce˘gi kendisinden daha parlak oldu˘gunu gördü˘gü ate¸sböce˘gine do˘gru hareket etme e˘gili- mindedir. E˘ger ortamda en parlak ate¸sböce˘gi kendisi ise, rastgele bir yönde hareket edecektir. Bu parlaklık, di˘ger bir ate¸s böce˘gine olan uzaklıkla de˘gi¸smektedir.
• Ate¸sböceklerinin ı¸sık yo˘gunlu˘gu, uygunluk fonksi- yonunda buldukları sonuçla ili¸skilidir.
B. Temel Parametreler
1) I¸sık Yo˘gunlu˘gu ve Çekicilik: Ate¸sböce˘gi algoritmasın- daki önemli iki parametre, ı¸sık yo˘gunlu˘gu I ve çekicilik β’dır.
Bu iki paremetrenin formülize edilmesi, algoritmanın sonuca ula¸sması açısından önemlidir. Uygulanması kolay olmasından dolayı global maksimum problemlerinde ı¸sık yo˘gunlu˘gu I,
hedef fonksiyondan bulunan sonuçla do˘gru orantılı olarak formülize edilir. Global minimum problemleri için de ters orantılı olarak formülize edilmesi mümkündür. Çekicilik β ise, göreceli bir kavramdır. Ayrıca ı¸sık yo˘gunlu˘gu, iki ate¸sböce˘gi arasındaki uzaklı˘gın karesi ile ters orantılı olarak azalır. Bu ili¸ski Denklem-2’deki gibi ifade edilebilir.
I(r) = Is
r2 (2)
Bir ate¸sböce˘ginin çekicili˘gi, di˘ger ate¸sböceklerinin gördü˘gü ı¸sık yo˘gunlu˘guna ba˘glı oldu˘gundan, çekicilik Denklem-3’teki gibi tanımlanabilir.
β(r) = βs
r2 (3)
Ancak bu tanımlar r=0 da tanımsızlık gösterece˘gi için, gauss formunda yeniden düzenlenmelidir. Ortamın ı¸sı˘gı so˘gurma katsayısı da eklenildi˘ginde Denklem-4 ve Denklem-5 elde edilir.
I(r) = I0e−γr2 (4)
β(r) = β0e−γr2 (5)
Burada I0 kayna˘gın yani ate¸sböce˘ginin r=0 iken yaydı˘gı ı¸sık yo˘gunlu˘gudur. Aynı ¸sekilde β0 da r=0 daki çekiciliktir.
2) Uzaklık ve Ate¸sböce˘ginin hareketi: ˙Indisleri i ve j olan iki ate¸s böce˘ginin arasındaki uzaklık, kartezyen koordinat sisteminde öklid uzaklı˘gı ile Denklem-6 daki gibi bulunur.
rij= q
(xi− xj)2+ (yi− yj)2 (6) Ate¸sböce˘gi i’nin, daha çekici olan ba¸ska bir ate¸sböce˘gi j’ye do˘gru hareket etmesi ise Denklem-7’deki gibi tanımlanır.
xt+1i = xti+ β0e−γr2ij(xtj− xti) + αtti (7) Bu denklemde ikinci terim çekicilik, üçüncü terim ise rastgele- liktir. Üçüncü terimde αt rastgelelik katsayısıdır ve ti terimi ise [0,1] arasında düzgün da˘gılım gösteren bir rastgele sayı üretecidir.
C. Algoritma
Ate¸sböce˘gi algoritması, hedef fonksiyonun tanımlanması ile ba¸slar. Global maksimum aranıyorsa, hedef fonksiyonundan bulunan sonuç ile ı¸sık yo˘gunluk ¸siddeti do˘gru orantılı olarak tanımlanmalıdır. E˘ger global minimum aranıyorsa, ı¸sık yo˘gunluk ¸siddeti hedef fonksiyon ile ters orantılı olacak ¸sekilde tanımlanmalıdır. ˙Ikinci adımda, ate¸sböcekleri olu¸sturulur.
Muhtemel çözümleri temsil eden ate¸sböcekleri, rastgele birer sayıdan olu¸smaktadır. Bu sayılar hedef fonksiyonda uygulandı˘gında elde edilen sonuçlar, ate¸sböceklerinin ı¸sık yo˘gunlu˘gu ile ili¸skili olacaktır. Bununla birlikte ortamın ı¸sı˘gı so˘gurma katsayısı da tanımlandıktan sonra jenerasyon sayısı kadar tekrarlanacak i¸slemler tanımlanır. Bu i¸slemlerde ilk olarak her bir ate¸sböce˘ginin di˘ger ate¸sböceklerinden etkilenmesi hesaplanır. Sonrasında bu etkilenme durumuna göre ate¸sböceklerinin hareket edecekleri yön bulunur. Hareket do˘grultusu bulunan ate¸s böcekleri hareket ettirildikten sonra tekrar ı¸sık yo˘gunlu˘gu ve etkilenme durumları hesaplanır. Her tekrarda, hedef fonksiyonda en iyi sonucu veren ate¸sböce˘ginin de˘geri kaydedilir.
Temel ate¸sböce˘gi algoritması:
f (x) ⇐ x1, x2, x3... . Hedef fonksiyon belirlenir xi, i = 1, 2, 3...n ⇐ random() . Ba¸slangıç de˘gerleri atanır Ii ⇐ f (xi) . I¸sık yo˘gunlu˘gu belirlenir γ ⇐ 0.1 . I¸sık so˘gurma katsayısı belirlenir while t < M axGeneration do
for i = 1 : n do for j = 1 : n do
if Ii< Ij then
Ate¸sböce˘gi i’yi j yönünde hareket ettirin;
end if
Çekicili˘gi güncelleyin;
Yeni de˘gerleri hedef fonksiyonda uygulayın;
I¸sık yo˘gunlu˘gunu güncelleyin;
end for end for
Ate¸sböceklerini sıralayın ve en iyi sonuç vereni bulun;
Jenerasyon sayacı t’yi arttırın;
end while
Sonuçları gösterin;
IV. YÖNTEM
A. Ate¸sböce˘gi Algoritması’nın Probleme Uyarlanması Ate¸sböce˘gi algoritması normalde sürekli fonksiyonların çözümü için tasarlanmı¸stır. Algoritmanın çalı¸sabilmesi için bu fonksiyonları sa˘glayan rastgele sayıların belirlenmesi ve her adımda bu sayıların güncellenmesi gerekmektedir.
Ancak ate¸sböce˘gi algoritması, permütasyon problemlerine de uyarlanabilir. Depo Yönetim Sistemi Problemi de bir permütasyon problemidir.
Ate¸sböce˘gi algoritmasının bu probleme uyarlanması için algoritmada bazı de˘gi¸siklikler yapılması gerekmektedir. Bu de˘gi¸siklikler algoritmanın ba¸slangıç ko¸sullarında, uzaklık hesabında ve ate¸sböceklerinin hareket etmesinde yapılmalıdır.
Normalde ba¸slangıç ko¸sullarında, ate¸sböcekleri arama uza- yındaki herhangi bir sayı iken, bu problemde çözüm uza- yındaki herhangi bir permütasyon olmaktadır. Ayrıca iki ate¸sböce˘gi arasındaki uzaklı˘gı temsil etmenin yolları aran- malıdır. Ate¸sböceklerinin hareketlerini de tanımlamak gereke- cektir. Ate¸sböceklerinin rastgele sıralı permütasyonlardan olu¸s- ması, bu fonksiyonlarda de˘gi¸siklik yapılmasını gerektirmekte- dir.
1) Ba¸slangıç Ko¸sulları ve Ate¸sböceklerinin Olu¸sturulması:
Sürekli fonksiyonlarda ate¸sböce˘gi algoritması çalı¸stırılırken, ba¸slangıçta ate¸sböce˘gi sayısı kadar, arama uzayından rastgele sayılar olu¸sturulur. Bu sayılar olası çözümleri yani ate¸sböceklerini temsil eder. Bu problemde arama uzayı sürekli bir fonksiyon de˘gil, sıralı permütasyonlardan olu¸san listelerdir. Dolayısıyla bu problem için ate¸sböceklerini temsil eden çözümler, sıralı permütasyonlar olmalıdır. Bu nedenle ba¸slangıç ko¸sulunda, makineye verilen komut listesinin rastgele karı¸stırılmı¸s bir sırası, bir ate¸sböce˘gini olu¸sturacaktır.
Ate¸sböceklerinin sayısı kadar rastgele diziler olu¸sturulur.
2) Uzaklık Fonksiyonu: Bir di˘ger önemli de˘gi¸siklik ise uzaklık fonksiyonu olacaktır. Normalde uzaklık fonksiyonu iki ate¸sböce˘gi arasındaki öklid uzaklı˘gı iken, bu problem için iki permütasyon arası uzaklık olacaktır. Rastgele ifadelerden
olu¸san iki dizi arasındaki uzaklı˘gı temsil etmenin birkaç yolu vardır. Hamming Uzaklı˘gı, Levensthein Uzaklı˘gı [9] ve Damerau-Levenshtein uzaklı˘gı [10] bu yollardan birkaçıdır.
Bu problemde Hamming uzaklı˘gı kullanılmı¸stır. Hamming uzaklı˘gı, iki aynı uzunluktaki dizide birbiri ile örtü¸smeyen elemanların sayısı olarak tanımlanır.
P 1 = {E, S, E, E, S, E, S, E, E}
P 2 = {S, E, E, E, S, E, S, E, E}
P 3 = {S, S, S, E, E, E, E, E, E}
Örnek olarak verilen P 1 ve P 2 permütasyonlarının Hamming uzaklı˘gı 2’dir. Çünkü sadece 2 elemanı birebir örtü¸smemek- tedir. Ancak P 1 ve P 3 permütasyonları arasındaki Hamming uzaklı˘gı 4’tür.
Sistem için verilen komut listesi uzunlu˘gu (komut sayısı) de˘gi¸sebilece˘ginden, bulunan bu uzunluk de˘gerinin normalize edilmesi gerekmektedir. Bu nedenle iki ate¸sböce˘gi arasındaki uzaklık Denklem-8’deki ifadede oldu˘gu gibi normalize edilir.
r = HammingU zakligi
ListeU zunlugu (8)
3) Ate¸sböce˘ginin Hareketi: Bir ba¸ska ate¸sböce˘ginden et- kilenen ve ona do˘gru hareket edecek olan ate¸sböce˘ginin hareket etmesi, bu iki ate¸sböce˘ginin yani permütasyonların bir- birine adım adım benzetilmesi olarak tanımlanabilir. Etkilen- mi¸s olan ate¸sböce˘gi, çekicili˘gi olan ate¸sböce˘gine benzetilerek, ona do˘gru ilerlemesi sa˘glanabilir. ˙Ilerleyece˘gi adım sayısı ise 1 ile aralarındaki uzaklık (Hamming uzaklı˘gı) arasında üretile- cek rastgele sayı ile belirlenir. Böylece çekicilik faktörünün ate¸sböce˘ginden ate¸sböce˘gine farklılık göstermesi tasvir edilmi¸s olur. ˙Ilerleme adımlarının uygulanması, üretilen bu rastgele sayı kadar elemanın birbirine benzemesi ile mümkün olacaktır.
Uzaklık fonksiyonu kısmında verilen P 2 ve P 3 örnek- lerinden, P 2 çekici olan ate¸sböce˘gi ve P 3 etkilenmi¸s olan ate¸sböce˘gi olsun ve rastgele üretilmi¸s olan ilerleme adımı da 2 olarak seçilmi¸s olsun. Bu durumda P 3 ve P 2 permütasyonları arasındaki Hamming uzaklı˘gı 4’ten 2’ye inecek veya 3 adım ilerlenerek 1’e inecek demektir. 3 adım ilerlenmesinin sebebi, bu yakınla¸smanın 3 adıma çıkabilme olasılı˘gındandır. Çünkü rastgele seçilmi¸s, P 3 permütasyonunda P 2’ye göre yanlı¸s yerde bulunan bir elemanın do˘gru yere getirilmesi sırasında, yeri de˘gi¸stirilen di˘ger eleman da do˘gru sıraya getirilmi¸s ola- bilir. Bu durumda tek adımda 2 Hamming uzaklı˘gı kadar yakınla¸sma sa˘glanmı¸s olunur.
P 2 = {S, E, E, E, S, E, S, E, E}
P 3yeni= {S, E, S, E, S, E, E, E, E}
Yukarıdaki örnekte P 3 permütasyonunun 2. elemanı ile 5.
elemanı yer de˘gi¸stirilerek, P 2 permütasyonuna yakınla¸sması sa˘glanmı¸s ve P 3yeni permütasyonu olu¸sturulmu¸stur. Ancak örnekten de anla¸sıldı˘gı üzere P 2 permütasyonuna 1 adım yakınla¸sma istenirken 2 adım yakınla¸sma sa˘glanmı¸stır. Çünkü yeri de˘gi¸stirilen di˘ger elemanın yeri de do˘gru sıralamaya gelmi¸stir. Yukarıdaki elemanlar örnek temsil etmektedir. Sis- temdeki listenin optimizasyonu sırasında ise komutların indeks numaralarının olu¸sturdu˘gu listeler kullanılmaktadır.
Ate¸sböce˘gi Algoritmasının bu probleme uyarlanması sonucu, ate¸sböceklerinin di˘ger ate¸sböceklerinden etkilen- mesinin ifadesi Denklem-9’da görülmektedir.
β = Iβ0e−γrij2 (9)
Burada β0 ifadesi çekicilik katsayısıdır. Denklem-7’deki ifadeden anla¸sılaca˘gı üzere β0 çekicilik parametresi, bir ate¸sböce˘ginin di˘ger bir ate¸s böce˘gine ilerlemesi durumunda aktif role sahiptir. Ate¸s böceklerinin ilerlemesi, ilerleme adım- larının 1 ile rij arasında rastgele seçilmesi ile sa˘glandı˘gından dolayı, çekicilik parametresinin rastgeleli˘gi sa˘glanmı¸s olur.
Bu nedenle Denklem-9’daki β0 ifadesi yerine 1 yazılabilir.
rij ise iki ate¸sböce˘gi arasındaki Hamming Uzaklı˘gı’dır. I ise Denklem-1’de verilen ifade ile bulunan listenin tamamlanma süresinin çarpmaya göre tersi alınarak bulunan ifadedir. Al- goritmanın global minimumu bulması istenildi˘gi için, bulunan tamamlanma süresinin çarpmaya göre tersi alınmı¸stır. Böylece Denklem-10’daki ifade elde edilmi¸stir.
I = 1
max |x2−xV x1|∗Lx,|y2−yV y1|∗Ly
! (10)
Denklem-10’daki ifade ate¸sböceklerinin ı¸sık yo˘gunlu˘gunu tem- sil etmektedir. Her bir ate¸sböce˘gi kendi yaydı˘gı ı¸sı˘gın ı¸sık yo˘gunlu˘gunu bu ifade ile hesaplamaktadır. Denklem-9’daki ifadeden hesaplanan ı¸sık yo˘gunlukları ile kendi ı¸sık yo˘gun- luklarını kar¸sıla¸stırarak hareket edecekleri yöne karar verirler.
Kendi ı¸sık yo˘gunluklarından daha fazla ı¸sık yayan ate¸sböce˘gi görürlerse, o ate¸sböce˘gine do˘gru yöneleceklerdir. E˘ger en parlak ı¸sı˘gı kendilerinin yaydı˘gına karar verirlerse, rastgele bir yönde hareket edeceklerdir.
V. SONUÇ
Probleme uyarlanan Ate¸sböce˘gi algoritmasının test edilmesi için 20 sütun ve 10 satırdan olu¸san bir raf sistemi ve Tablo-III’te verilen komut listesi kullanılmı¸stır. Bu komut listesinde Eri¸sim (E) ve Stok (S) istekleri sayısı e¸sittir. Komut listesi uzunlu˘gu ise 26’dır. Test fonksiyonu olarak verilen liste optimize edilmeden önce 422 saniyede tamamlanmaktadır. Bu komut listesinin da˘gılımı ¸Sekil-7’den görülebilir.
Test Fonksiyonu Komut Listesi Test Fonksiyonu Komut Listesi(devamı)
S(8,1) E(13,1)
S(10,3) E(19,2)
S(17,3) E(5,3)
S(4,4) E(11,3)
S(5,4) E(14,4)
S(9,5) E(4,5)
S(18,5) E(4,7)
S(12,6) E(7,7)
S(1,7) E(11,8)
S(19,7) E(4,9)
S(6,8) E(19,9)
S(16,8) E(9.10)
S(12,9) E(16,10)
Tablo III: Test için verilen komut listesi
Test için olu¸sturulan bu komut listesi, 10 adet ate¸sböce˘gi ile 400 jenerasyon boyunca 5 farklı sefer optimize edilmi¸s ve elde edilen sonuçların ortalaması Tablo-IV’te gösterilmi¸stir.
Bununla birlikte ortamın ı¸sı˘gı so˘gurma katsayısı γ’nın de˘gi¸simi ile çekicilik parametresi β0’ın rastgele seçilmesi veya 1 olarak
¸Sekil 7: Test Fonksiyonu için verilen komut listesinin da˘gılımı
¸Sekil 8: β0 Parametresine göre optimizasyon performansı
alınması durumunda elde edilen sonuçlar gösterilmi¸stir. Bu- radan da anla¸sılaca˘gı gibi, ortamın ı¸sı˘gı so˘gurma katsayısı (γ), algoritmanın çalı¸smasında önemli bir etkendir. Algoritmanın önemli parametrelerinden biri de çekicilik parametresi olan β0’dır. Bu çalı¸smada β0 parametresinin 1 olarak alınması önerilmektedir. Bunun nedeni, ate¸sböceklerinin hareket etmesi sırasında rastgeleli˘gin sa˘glanmı¸s olmasıdır. Sürekli fonksiyon- larda bu parametre, bir ate¸sböce˘ginin di˘ger bir ate¸sböce˘gine yakınla¸sma derecesini belirler. Ancak Depo Yönetim Sistemi Problemi’nde rastgele bir sayı üreterek bu yakınla¸sma derecesi belirlenemez. Bu durum ¸Sekil-8’de açıkça görülmektedir.
Test fonksiyonunda verilen istek listesi, 10 adet ate¸sböce˘gi ile γ = 0.025 alınarak 1000 jenerasyon boyunca optimize edilmi¸s ve performans grafi˘gi çizilmi¸stir. ¸Sekil-8’de görüldü˘gü üzere β0= 1 alındı˘gında optimizasyon i¸slemi amacına uygun ilerlerken β0 parametresi rastgele üretildi˘ginde optimizasyon sa˘glanamamı¸stır. Bir di˘ger etken ise jenerasyon sayısıdır. Je- nerasyon sayısının do˘gru seçilmesi, global minimumu bul- mak açısından önemlidir. ¸Sekil-8’de görüldü˘gü gibi jenerasyon sayısı arttıkça bazı noktalarda grafik tepe yapmaktadır. Opti- mizasyonun bu noktalarda bitirilmesi halinde genelden daha kötü bir sonuca ula¸sılması olasıdır. Bu çalı¸sma boyunca bahsedilen tamamlanma süreleri, Denklem-1’deki ifade ile hesaplanan zamanı ifade eder. Dolayısıyla burada bulunan sonuçlar, bir ba¸ska deyi¸sle makinenin buldu˘gu en kısa yolları temsil eder.
VI. TARTI ¸SMA
Bu çalı¸smada, kombinasyonel-zorlayıcı bir problem olan Depo Yönetim Sistemi Problemi sunulmu¸s ve bu problemin çözümü için Ate¸sböce˘gi algoritması, çe¸sitli modifikasyonlarla
1 2 3 4 5 Ortalama
β0=1
γ = 0.025 321 316 317 316 319 317.80
γ = 0.05 321 324 319 321 322 321.40
γ = 0.1 319 321 324 321 320 321.00
γ = 0.2 366 386 316 326 395 357.80
γ = 0.3 388 377 393 383 379 384.00
γ = 0.4 388 383 367 384 377 379.80
β0=rnd
γ = 0.025 379 388 372 382 355 375.20
γ = 0.05 386 383 393 381 371 382.80
γ = 0.1 387 385 372 367 380 378.20
γ = 0.2 381 384 382 386 370 380.60
γ = 0.3 392 385 383 371 367 379.60
γ = 0.4 375 388 376 394 376 381.80
Tablo IV: β0 ve γ parametrelerinin de˘gi¸simine göre op- timizasyon sonucu elde edilen listelerin tamamlanma süreleri (saniye)(rnd : 0<β0<1 rastgele sayı)
probleme uygulanmı¸stır. Problemin, gerçek zamanlı çalı¸san bir sistemin optimize çalı¸smasının sa˘glanması amacıyla çözüme ula¸stırılması hedeflenmi¸stir. Gelecekteki çalı¸smalarda, bu prob- lemin çözümü için kullanılan teknikler geli¸stirilerek, sistemin bo¸s raflarının de˘gerlendirilmesi ve komut listelerinin tamam- lanması için geçen sürenin kısaltılması sa˘glanılabilir.
Akıllı sistemler her geçen gün hayatımızı kolayla¸stırmak üzere çözümler üretmektedir. Gelecekte akıllı ¸sehirler, akıllı araçlar, akıllı ula¸sım sistemleri, akıllı lojistik sistemler ve benzeri gibi birçok alanda çözümler geli¸stirilmesi kaçınılmaz görülmektedir. Bu sistemlerin bir parçası olabilecek nitelikte olan Depo Yönetim Sistemleri ve bu sistemlerin zamandan ve enerjiden tasarruf edilerek optimize bir ¸sekilde çalı¸sması günümüzde veya gelecekte bir ihtiyaç haline dönü¸sebilir.
KAYNAKÇA
[1] M. Dorigo and L. M. Gambardella, “Ant colonies for the travelling salesman problem,” biosystems, vol. 43, no. 2, pp. 73–81, 1997.
[2] B. V. Chawda and N. M. Sureja, “An aco approach to solve a variant of tsp,” Int. J. Adv. Res. Comput. Eng. Technol. IJARCET, vol. 1, no. 5, p. 222, 2012.
[3] D. Bookstaber, “Simulated annealing for traveling salesman problem,”
SAREPORT. nb, 1997.
[4] P. Toth and D. Vigo, Vehicle routing: problems, methods, and applica- tions. SIAM, 2014.
[5] K. K. Bhattacharjee and S. P. Sarmah, “Shuffled frog leaping algorithm and its application to 0/1 knapsack problem,” Applied soft computing, vol. 19, pp. 252–263, 2014.
[6] S. N. Kumbharana and G. M. Pandey, “Solving travelling salesman problem using firefly algorithm,” International Journal for Research in science & advanced Technologies, vol. 2, no. 2, pp. 53–57, 2013.
[7] G. K. Jati et al., “Evolutionary discrete firefly algorithm for travelling salesman problem,” in International Conference on Adaptive and Intel- ligent Systems. Springer, 2011, pp. 393–403.
[8] X.-S. Yang, “Firefly algorithms for multimodal optimization,” in In- ternational symposium on stochastic algorithms. Springer, 2009, pp.
169–178.
[9] L. Yujian and L. Bo, “A normalized levenshtein distance metric,” IEEE transactions on pattern analysis and machine intelligence, vol. 29, no. 6, pp. 1091–1095, 2007.
[10] R. Gabrys, E. Yaakobi, and O. Milenkovic, “Codes in the damerau distance for dna storage,” in 2016 IEEE International Symposium on Information Theory (ISIT). IEEE, 2016, pp. 2644–2648.