• Sonuç bulunamadı

MATLAB PARALEL HESAPLAMA ARACI İLE A* ALGORİTMASININ ROTA PLANLAMA İÇİN ANALİZİ

N/A
N/A
Protected

Academic year: 2022

Share "MATLAB PARALEL HESAPLAMA ARACI İLE A* ALGORİTMASININ ROTA PLANLAMA İÇİN ANALİZİ"

Copied!
8
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

MATLAB PARALEL HESAPLAMA ARACI İLE A* ALGORİTMASININ ROTA PLANLAMA İÇİN ANALİZİ

Sercan Aygün1, Muammer Akçay2

1Yıldız Teknik Üniversitesi sercan@ce.yildiz.edu.tr

2Dumlupınar Üniversitesi muammer.akcay@dpu.edu.tr

ÖZET -Günümüz bilgisayarlarının çok çekirdekli işlemcileri ile paralel hesaplama yaklaşımlarında önemli gelişmeler olmaktadır. O(n) notasyonuna göre karmaşıklığı yüksek bir algoritmanın paralel programlama ile çözülmesi eş zamanlı hesaplama avantajı sayesinde daha hızlı hesaplama sürelerinde yapılmaktadır. MATLAB paralel hesaplama araç kutusu yardımı ile koddan bağımsız, belirlenen sayıdaki (2, 4, 8 vb.) eş zamanlı çalışacak hesaplayıcı ile analiz yapmak mümkündür. Böylelikle çok çekirdekli sistemlere uygun algoritmalar geliştirmek, analizlerini yapmak mümkün olacaktır. Analiz için kullanılan rota planlama problemi; kişinin en yakın yoldan hedefe ulaşması için hangi yolu izlemesi gerektiğini araştıran bir problemdir. Bunun için, kuş uçuşu uzaklık, A* gibi yaklaşımlar kullanmak mümkündür. Yapay zekânın da temel konularından biri olan bu problem, özellikle çoklu modda rota planlama durumunda araştırmacılar için önemli sayılan gelişmeye açık konulardan biridir. Bu çalışmada, tek modda, mesafeleri belli olan iller arasında A ilinden B iline seyahat eden kişinin A* algoritmasını kullanarak sonuca ulaşması ve bu işlemlerin paralel olarak yürütülmesi öngörülmektedir. MATLAB ortamında gerçekleştirilen kodların çalışma analizi, paralelliğe bağlı olarak sunulacaktır.

Anahtar Kelimeler:A*, Paralel Hesaplama, MATLAB PCT, Rota Planlama.

1.

GİRİŞ

İsim kökeni bilim insanı El-Harezmî’ye dayanan algoritma kelimesi, bir sorunun çözümünde tanımlanan işlemlerin elde edilerek sonucu belirlemek amacıyla uygulanmasıdır [1]. Çözüm biyolojik bir problemden matematiksel bir probleme kadar, hatta günlük yaşamda da karşılaşabileceğimiz pek çok sıkıntıya ait olabilir. Rota planlama da bunlardan biridir. Bir noktadan başka bir noktaya seyahat eden yaya, yolcu veya sürücü ulaşmak istediği hedefe en az zahmetle ulaşmak ister. Bu türlü problem çözümlerinde ilk adım problemi doğru tanımlamaktır. Ardından varsa mevcut algoritmaya karar vermek, literatürde mevcut değil ise yeniden tasarlamak gereklidir. Sonraki adım ise problem uzayına ait değişkenleri tam olarak saptayarak çözüm için gerekli araçları, yöntemleri belirlemektir. Bu çalışmada da benzer yollar izleyerek çözüm hedeflenmektedir. Aşağıdaki Şekil 1.’de çalışmamızda izleğimiz yolun açıklamalarıyla birlikte bir problemin çözümünde kullanılacak adımlar sunulmuştur.

Şekil 1. Problem Çözümü için İzlenecek Adımlar

(2)

Bu çalışmaya paralel olarak literatüre bakıldığında oyun sektöründe de çokça A* algoritmasının kullanılmasından dolayı bazı uygulamalara rastlamak mümkündür. Çalışmamıza en yakın yaklaşım, Miller tarafından, yol bulma problemi için kullanılan A* algoritmasına paralel programlama yaklaşımıyla ilgili çalışmadır. A* algoritması eğer bir çözüm var ise doğru ve en az maliyetli olan çözümü sunarken zaman ve hafıza bakımından sıkıntılar yaratabilmektedir. Bu sebeple ardışık hesaplama yöntemlerine karşın paralel olarak hesaplama yaparak zaman konusuna çözüm getirmek mümkündür, çünkü hafıza konusunda günümüz teknolojisindeki gelişmelerden dolayı zaten önemli rahatlamalar sağlanmıştır [2].

Diğer çalışma Inam tarafından yüksek lisans tezi olarak sunulmuş olup, A* algoritmasının çok çekirdekli grafik işlemcilerde paralel olarak kullanımı ile ilgilidir. CUDA mimarisi üzerinden çalışmalar sunulmaktadır [3]. Yine oyun gelişme teknolojileri ile ilgili bir çalışma da Brand ve Bidarra tarafından sunulmuş olup, A* algoritmasının benzer işlev görev farklı algoritmalarla karşılaştırılması gösterilmektedir [4].

Bundan sonraki bölümde çalışmanın amacı açıklanacaktır. Daha sonra kullanılan yöntem ve A*

algoritması, MATLAB paralel hesaplama aracı ve kullanımı incelenecektir. Dördüncü bölümde elde edilen sonuçlar tartışılacaktır. Son bölümde ise çalışmadan elde edilen sonuçlar ve bundan sonra yapılacak çalışmalar verilecektir.

2. ÇALIŞMANIN AMACI

Bu çalışmanın amacı rota planlama problemine A* algoritması ile çözüm üreterek, hesaplama zamanını MATLAB paralel hesaplama aracı ile kısaltmaktır. Böylelikle çalışma zamanı değişik veri kümeleri için farklı sayıdaki paralel çalışan üniteler ile elde edilecek ve sonuçlar karşılaştırılacaktır. A* algoritmasının zaman konusunda bazı durumlarda dezavantaj getirdiği göz önüne alındığında hız konusunda bir gelişme sağlaması açısından da bu yaklaşım önemlidir. Ayrıca bu çalışma teorik yaklaşımları bir uygulama ile ifade etmesi bakımından literatüre katkı sağlama amacındadır. Mühendislik uygulamalarında sıklıkla kullanılan MATLAB yazılımının paralel hesaplama amacıyla bu çalışmada ele alınması ile farklı disiplinlerde büyük veriler üzerinde çalışan kişilerin de daha hızlı sonuçlar elde etmesi öngörülmektedir.

Çalışmanın kapsamını arttırmak ve daha anlaşılır hale getirmek için problem kümesi Türkiye’nin illeri ve bu iller arasında yolculuk yapmak olarak tanımlanmıştır. Böylelikle daha gerçekçi çözüm ortamı amaçlanmaktadır. Örneğin, İstanbul’dan Antalya’ya en kısa yoldan gitmek için çıkan birinin izlemesi gereken yolun hesaplanması sırasında paralel hesaplama aracı ile analiz yapılacaktır. Bu örnek Şekil 2.’de gösterilmektedir.

Şekil 2. Örnek Bir Rota

(3)

3. YÖNTEM

Belirlenen problemin çözümü için kullanılacak olan metotlar ilgili algoritmanın seçimi veya tasarımı ile birlikte yöntemin belirlenmesine yön verir. Bu kapsamda seçilen A* algoritması ile rota planlamaya çözüm üretilerek, ilgili çözümün yöntemleri çalışma zamanı bakımından paralel hesaplama yaklaşımı ile MATLAB Paralel Hesaplama Aracı kullanılarak analiz edilecektir.

3.1. A* (A star – A yıldız) Algoritması

Rota planlamaya çözüm olabilecek algoritmalara bakıldığında; Genetik Algoritmalar, Dijkstra Algoritması, Greedy (açgözlü) Algoritma, Karınca Kolonisi Optimizasyonu gibi örnekler görülmektedir.

Bunlardan arama algoritması olarak Best First Search (BFS) – “En İyi En Önce Arama” algoritmasından A yıldız algoritması, başlangıç noktasından son noktaya kadar olan maliyetin en az olanını bulmayı sağlar. Rota planlama için bu çalışmada sunulan örnek için maliyet şehirlerarasındaki mesafelerin km.

cinsinden değerleri olarak düşünülebilir. Denklem 1’de, g(n) ile gösterilen değişken başlangıç noktasından n noktasına olan maliyeti, h(n) ise n noktasından hedefe olan maliyeti heuristic yani sezgisel olarak ifade ederek toplamları, f(n) değeri tahmini en düşük toplam maliyeti vermektedir. Tahmini olarak verilen sezgisel değer gerçek maliyet değerinden fazla olmamalıdır [5].

f(n)=g(n)+h(n) (1)

3.2. MATLAB ve Paralel Hesaplama

Birçok mühendislik dalına yönelik geliştirme ortamı sağlayan MATLAB, kişisel bilgisayarların çok çekirdekli hale gelmesi ile 2008 sürümünden itibaren paralel hesaplama yaklaşımını (multithreading) kendi işlemlerinde de kullanmaktadır. MATLAB’de paralel hesaplama yapmayı sağlayan bazı araçlar mevcuttur. Bu araçlar MATLAB’de var olan veya MATLAB için üretilmiş bazı araç kutuları olabilir.

GPU için özel olarak üretilmiş olanlar da vardır. Aşağıdaki Şekil 3.’te bazı örnekler sunulmuştur [6].

Şekil 3. MATLAB’de Paralel Hesaplama Araçları

3.2.1. Paralel Hesaplama Aracı – Parallel Computing Toolbox (PCT)

MATLAB’in R2010b sürümü sonrası mevcut olan PCT ile MATLAB içinde tanımlanan worker’lar vasıtasıyla işlemlerin paralel olarak hesaplanması kullanıcıya sunulmuştur. Bu paralel koşan üniteler – worker –daha hızlı hesaplamalar yapmayı ve çok çekirdekli donanıma uygun algoritmalar geliştirmeyi mümkün kılmışlardır. Paralel hesaplamalar sırasında MATLAB, kullanılan kişisel bilgisayarın CPU, GPU gibi donanımsal elemanlarını kullanabilmektedir. MATLAB’de yazılan bir kodun analizi yapılarak en çok zaman harcayan kısımları tespit edilebilir ve paralel koşturma buna göre yapılabilir. Bu kapsamda parfor, batch, distributed gibi komutlar ile mevcut MATLAB kodunun paralel çalışabilir hale

(4)

gelmesi mümkündür. Şekil 4.’de MATLAB’de bulunan paralel komut penceresi gösterilmektedir. Sağ kısımda bulunan “lab” isimli pencereler paralel çalışan üniteleri göstermektedir. Bunlar bilgisayarın yerel (local) donanım kaynaklarını kullanarak işlemleri gerçekleştirirler. Bu sebeple MATLAB’de paralel hesaplama performansı arka planda çalışan programlar, üzerinde çalıştığı bilgisayarın donanımsal yapısı gibi durumlara bağlıdır [7]. MATLAB’de ilgili kod koştuğu sürece geçen sürenin analizi tic ve toc komutları ile yapılabilir.

Şekil 4. MATLAB’de Paralel Komut Penceresinden Bir Örnek: Paralel Çalışan 4 Çalışma Ünitesi, Worker

4. BULGULAR VE TARTIŞMA

Bu bölümde deneysel olarak elde edilen verilere yer verilecektir. Deneyler Intel Core 2 Duo T9550, 2.66 GHz işlemcili, 4 GB RAM, 500 GB sabit diske sahip bilgisayar ortamında 64 Bit Windows 7 işletim sistemi üzerinde gerçekleştirilmiştir. Ayrıca MATLAB’in 2012 yılına ait sürümü kullanılmıştır.

Probleme çözüm getiren A* algoritmasının MATLAB kodunun yazılmasının ardından analizi yapılarak en çok zaman alan kısım parfor komutu ile desteklenmiş ve paralel olarak çalışan 2, 4, 8, sayıdaki ünitede çalıştırılıp analiz sonuçları sunulmuştur. Paralel çalışan ünitelerin sayısı parpool()komutu ile belirlenir. Paralel çalışan işlemci ya da diğer işçilerin (grafiklerde CPU olarak gösterilmiştir) sayısı arttıkça işlem zamanı azalmıştır. Böylece iş yükü azaldığı için gerçek bir multicore – çok çekirdekli donanım üzerinde aynı iş bölümü yapılmış olsa yalnızca zaman ve performans değil, işlemcinin ısınma sorunu gibi fiziksel sıkıntılarla da ilgili olumlu gelişmeler olacaktır [8]. Şekil 5., Şekil 6. ve Şekil 7.’de sırasıyla 1, 10 ve 100 adet değişik rota planlamaya ait hesaplamanın analizleri verilmiştir.

(5)

Şekil 5. 1 Rota Planının Değişik Sayıdaki Hesaplama Ünitesinde Hesaplama Zamanları, Ortalama Hesaplama Zamanı: 54.6895 ms

Şekil 6. 10 Rota Planının Değişik Sayıdaki Hesaplama Ünitesinde Hesaplama Zamanları, Ortalama Hesaplama Zamanı: 66.24125 ms

Şekil 7. 100 Rota Planının Değişik Sayıdaki Hesaplama Ünitesinde Hesaplama Zamanları, Ortalama Hesaplama Zamanı: 96.47654 ms

(6)

Şekil 8. 3 Çeşit Veri Kümesi için 2, 4, 8 İşlemci (İşçi) Ünitesinde Elde Edilen Sonuçların Grafiği, Mavi: 1 veri (en altta), Pembe: 10 veri (ortada), Kırmızı: 100 veri (en üstte)

Tüm sonuçlar Şekil 8.’deki gibi bir MATLAB grafiğinde çizdirildiğinde fark daha açık bir şekilde ortaya çıkacaktır. Sırası ile mavi, pembe ve kırmızı ile gösterilen değerler; 1, 10, 100, işlemden oluşan kod parçasının değişik sayıdaki – 2, 4, 8 işlemci – paralel çalışma ünitelerindeki performansını sunmaktadır.

Şekillerde sunulan grafiklerde işlemci sayısının aynı veri kümesi için arttırılması ile artan hız açıkça görülmektedir. Tek çekirdek özellikle 100 adet veri kümesi içeren örnekte, çift çekirdeğe göre neredeyse iki kat yavaşlamaya neden olmaktadır. Görsel olarak grafiklerde yer verilmeyen ancak var olduğu kesin bir gerçek vardır ki paralel işlemci sayısının üst limitinin olmasıdır. Bu durum donanıma, yani kullanılan bilgisayarın donanımsal yapısına bağlı olmakla birlikte analiz edilen mevcut probleme göre de değişkenlik gösterebilir. Üst limit yapılan bazı testlerle ortaya konabilir. Bizim örneğimizde 8 işlemci sayısı üst limit olarak kaydedilmiştir. Bu noktada bir şeyden kazanmak için başka bir şeyden ödün vermek anlamına gelen trade-off akla gelmektedir. Örneğin, 16 işlemci ile elde edilen performans ve 8 işlemci ile elde edilen arasında ciddi farklar yok ise 16 adet paralel çalışacak ve alandan kayıp sağlayacak ünitenin bu problem için sistem de yer alması anlamlı değildir. Ancak bu durum elbette başka problemlerin çözümü için de analiz edilmeli, hatta veri madenciliği metotları ile farklı sonuçların yorumu tartışılmalıdır. Bu açıdan bakıldığında gelecek çalışmaların da konuları oluşmaktadır.

5. SONUÇ

Bu çalışma ile MATLAB paralel hesaplama aracı kullanarak çok çekirdekli bir yapıda çalışabilecek paralel hesaplamanın rota planlama için çözümde sağladığı hız kazancından bahsedilmiş olup deneysel sonuçlar verilmiştir. Deneysel analizleri gerçekleştirirken elde edilen değerler bir tabloda toplu halde ortalama, en düşük ve en yüksek değerlerle birlikte sunulmaktadır. Tablo 1.’de gösterilen değerler 3 farklı veri kümesi için olmak üzere (1, 10, 100) elde edilen 5 ayrı hesaplamanın ardından ortalama değerlerin sunulması şeklinde gösterilmektedir. Her deney kümesi 2, 4, 8 çekirdekli ünitede paralel hesaplanarak sunulmuştur. Paralel çalışan işlemci sayısı arttıkça aynı veri kümesini hesaplamak için harcanan zaman azalmaktadır.

(7)

Tablo 1. Tüm Deneysel Sonuçlara İlişkin Tablo

5.1. Gelecek Çalışmalar

Bu çalışma gelecekte özellikle paralel hesaplama konusunda yapılacak çalışmalar için problemin belirlenmesi, algoritmanın seçimi ve paralel olarak analizi konularında örnek teşkil etmektedir.

Çalışmanın adımlarını izleyen araştırmacı farklı problemler için benzer yaklaşımlarla MATLAB paralel hesaplama aracı ile bilimsel çalışmalar ortaya koyabilir. Bu açıdan öğretim amaçlı olarak da MATLAB yazılım aracı kullanılabilir.

Ayrıca, yüksek hesaplama gücü gerektiren görüntü işleme, big data – büyük veri içeren bilimsel hesaplamalar, matris çarpımları vb. gibi işlemlerde de MATLAB paralel hesaplama aracının kullanılması zaman kazancı sağlaması açısından önemlidir. Bu kapsamda gelecek çalışmalarda rota planlamadan farklı algoritmaların da analizini aynı yöntemlerle sunmak mümkündür.

KAYNAKLAR

[1] O'Connor, J. J., Robertson, E. F., (2001). The Arabic Numeral System, [Çevrimiçi], Erişim: http://www- history.mcs.st-and.ac.uk/HistTopics/Arabic_numerals.html [06 Nisan 2015]

[2]Miller, W., (2010). Applying Parallel Programming to Path-Finding With the A* Algorithm, [Çevrimiçi], Erişim: http://cs.hood.edu/~xliu/566/curpros/cs566-miller-astar-06262010.pdf [02 Nisan 2015]

[3] Inam, R., (2009). A* Algorithm for Multicore Graphics Processors, (Yüksek Lisans Tezi), Chalmers Teknoloji Üniversitesi, Göteborg.

[4] Brand, S., Bidarra, R., (2011). Multi-core scalable and efficient pathfinding with Parallel Ripple Search, Motion in Games, 4th International Conference, MIG 2011, 290 – 303, Edinburgh – İngiltere.

[5] Sharma, D., Kumar, S. D., (2013). Anytime A* Algorithm – An Extension to A* Algorithm, Dubey International Journal of Scientific & Engineering Research 4, 1, Ocak 2013.

[6] Baida, Z., Shuai, X., Feng, Z., Yuan, B., Linqi, H., (2011). Accelerating MatLab Code using GPU: A Review of Tools and Strategies, Artificial Intelligence, Management Science and Electronic Commerce (AIMSEC), 2nd International Conference, 08-10 Ağustos 2011, Deng Feng – Çin.

(8)

[7] Sever, N. (2014). MathWorks, MATLAB Paralel Hesaplama Araç Kutusu Kullanımı, [Çevrimiçi], Erişim:

http://www.mathworks.com/videos/using-matlab-parallel-computing-toolbox-

99183.html?form_seq=conf1260&elqsid=1430489812650&potential_use=Education&country_code=US [09 Nisan 2015].

[8] Akçay, M., Erdem, H. A., (2013). Intel Parallel Studio ile Paralel Hesaplama, XVIII. Türkiye'de İnternet Konferansı, 9-11 Aralık 2013, İstanbul –Türkiye.

Referanslar

Benzer Belgeler

◦ Kayıt dışı ekonomi: Yasak olması veya ekonomik çıkar elde etmek için devlet kayıtlarına girmeyen işlemler. ◦ Türkiye’de tahmini kayıt dışı ekonomi: %25

Düşük mutlak risk düzeyindeki gençlerin, aynı yaş grubundaki diğer kişilere göre ne kadar görece yüksek.. risk taşıdıklarını

 Yeni reassortant virus – insanda domuz, carnivor kökenli proteinlerin tespiti (türler arası nakil ihtimali!)  İnsanlar için Bovine ve rhesus kökenli vaccine suşları..

Oysa paralı bir ekonomide, tasarruf edilen iktisadi malın, paraya dönüştürülerek saklanması kolay ve masrafsız olduğu gibi ayrıca gelir (örneğin faiz) temin

Jacobi algoritması doğal olarak paralel olmasına rağmen düşük yakınsama oranı nedeniyle çok fazla işlemciler arası haberleşmeye gerek duymakta ve bu nedenle,

Noveck, sivil grupların siyasi aktivizm ve sosyal farkındalığını artırmak için bilgi ve iletişim teknolojilerinin kullanılmaya başlamış olması gibi, bilgi

The book being reviewed here details these repercussions, and in doing so, makes a strong contribution to the academic field, as while most studies concentrate on

Mohammad iM.M.R.,Parisa iR., iAtefeh iA., iAli iR.K., iKinetics iand iequilibrium istudies ion ibiosorption iof icadmium, ilead, iand inickel iions ifrom iaqueous