gezgin satıcı probleminin benzetilmiş tavlama yöntemiyle ...ab.org.tr/ab15/sunum/329.pdf ·...

Post on 12-Jun-2018

230 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

E M R U L L A H S O N U Ç

A K A D E M I K B I L I Ş I M

Ş U B A T 2 0 1 5

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

Hesaplamanın Kullanılması

E M R U L L A H S O N U Ç , B A H A Ş E N , Ş A F A K B A Y I R

İçindekiler

Gezgin Satıcı Problemi

Benzetilmiş Tavlama

Benzetilmiş Tavlama Algoritmasının Paralelleştirilme Nedenleri

Literatürde Paralel Benzetilmiş Tavlama

BT ile Seri GSP

CPU Üzerinde Yapılan Paralelleştirme Çalışmaları

GPU Üzerinde Yapılan Paralelleştirme Çalışmaları

Sonuç ve Öneriler

Kaynaklar

2

Gezgin Satıcı Problemi

Gezgin Satıcı Problemi (GSP) bir seyyar satıcınınelindeki mallarını n şehirde satmak istemesindenoluşmaktadır.

Satıcı tüm şehirlere mümkün olduğu kadar en kısayoldan ve maksimum bir kez uğrayarak turlamakistemektedir.

Problemin çözümünde amaç ise satıcıya en kısa yolusunabilmektir.

3

Gezgin Satıcı Problemi

Optimizasyon konusunda başı çeken konular arasındayer alır. "Hesaplamanın karmaşıklığı" teorisine göreçözümü NP-Tam (NP-complete) olan en önemlialgoritma problemlerinden biridir.

Bu problemleri tam bir şekilde çözebilecek bir algoritmaolmadığı kabul edilmektedir. Şu anda çözülmeye çalışılanen büyük problem dünya üzerinde kayıtlı yerleşimi olanher nokta için en kısa yol problemidir. Bu problem1.904.711 şehir içermektedir

4

Gezgin Satıcı Problemi

Çok şehirli GSP’leri çözmek için yaklaşık çözümüreten sezgisel algoritmalar kullanılmaktadır.

Sezgisel algoritmalar, en iyi çözüm hakkındaherhangi bir garanti vermemelerine karşılık, en iyiçözüme yakın iyi bir sonucun makul bir süredebulunmasını sağlarlar.

5

Benzetilmiş Tavlama

Bilgisayar bilimlerinde, özellikle hesaplama alanındakullanılmaktadır.

Amacı, Herhangi bir problem için genel iyileştirme (global optimization)

elde etmek.

Herhangi bir fonksiyonun genel minimum veya maksimum (globalminimum) değerini elde etmek.

Özellikle matematiksel modellerle gösterilemeyenkombinasyonel problemlerin eniyileme uygulamalarındatercih edilir.

6

Benzetilmiş Tavlama

Yöntem bölgesel en iyi çözümlere (local optimum)takılmamak için kullanılır.

Soğutma işlemi bu algoritmada daha iyi sonuçlarınbulunmasını sağlayacak yeni komşu çözümlerinüretilmesini sağlar.

Kirkpatrick ve arkadaşları tarafından 1983 yılındaönerilmiştir.

7

Benzetilmiş Tavlama

s ← s0; e ← E(s) // İlk durum, enerji. sbest ← s; ebest ← e // Başlangıçta en iyi çözüm. k ← 0 // İterasyon sayısı while k < kmax and e > emax // İterasyon bitene kadar döngüde kal: T ← temperature(k/kmax) // Sıcaklığın düşürülmesi snew ← neighbor(s) // Yeni bir konfigürasyon seç. enew ← E(snew) // Enerjiyi hesapla. if P(e, enew, T) > random() then // Yeni durum kabul edilebilir mi? s ← snew; e ← enew // Evet ise mevcut durumu değiştir if e < ebest then // Enerji daha düşükse en iyi çözüm yap. sbest ← snew; ebest ← enew // Mevcut durumu en iyisiyle değiştir k ← k + 1 // İterasyon sayısını artır. return sbest // En iyi durum bulundu.

8

Benzetilmiş Tavlama

Algoritma rastgelelik üzerine kurulu bir yöntemdir.

Literatürde yöntemin birden çok kez uygulandığıgörülmüş ve daha iyi sonuçlar elde edilmiştir.

BT’de genel olarak 4 ana parametre vardır. Bunlar:

Başlangıç Sıcaklığı,

Soğutma Katsayısı,

Hedef Sıcaklık ve

İterasyon Sayısıdır.

9

Benzetilmiş Tavlama Algoritmasının Paralelleştirilme Nedenleri

Seri algoritmada her adımda tek bir çözüm bulunur vemevcut ile karşılaştırılır.

Günümüzde kullanılan paralelleştirme yöntemlerikullanılarak her adımın iş parçacıklarına dağıtılmasıylabirden fazla çözüm üretilip bunlar için en uygun olanıseçebilmek mümkündür.

Seri algoritma için gereken süre içerisinde paralel biryöntemde birden fazla çözüm üretilerek daha iyi sonuçbulabilme ihtimali de artmış olmaktadır.

10

Literatürde Paralel Benzetilmiş Tavlama

Literatürde BT ile ilgili yapılan paralelleştirmeçalışmaları Graphics Processing Unit (GPU)teknolojisinin gelişmesiyle birlikte CentralProcessing Unit (CPU)’dan GPU’ya doğru kaymıştır.

Yapılan birçok çalışmada, CPU ve GPU arasındaperformans değerlendirmeleri yapılmış, kriter olaraksüre ve sonuçların doğruluğu değerlendirilerekanalizlerde bulunulmuştur.

11

Literatürde Paralel Benzetilmiş Tavlama

Kullanılan iş parçacığı sayısı da bir başka kriterolarak ortaya çıkmaktadır. Algoritmanın CPUüzerinde çalışırken işletim sistemi tarafından işparçacıklarının meşgul edilmesi gibi sebepler CPU’yubu konuda dezavantajlı hale getirildiği belirtilmiştir.

Ayrıca GPU teknolojisinin gelişmesinden kaynaklıortaya konulan yeni çalışmalar ve yaklaşımlar ilesonuçların her geçen gün daha da iyileştirildiğigörülmektedir.

12

BT ile Seri GSP

Öncelikle program seri olarak kodlanarakuygulanmıştır. GSP yaygın bir problem olduğundanparalelleştirme çalışmaları GSP üzerinde testedilmiştir.

GSP için veri seti olarak TSPLIB kütüphanesinde bulunan Berlin52 veri seti kullanılmıştır.

Berlin52 veri seti için optimum değer 7542’dir.

13

BT ile Seri GSP

Seri çalıştırılan programda BT’ye ait parametrelerdeğiştirilerek probleme uygun hale getirilmeyeçalışılmıştır.

İterasyon sayısı olarak 1000 belirlenmiştir. Heriterasyonda yaklaşık 30000 adım test edilmiştir.

Seri çalıştırılan programda BT’ye ait parametrelerdeğiştirilerek probleme uygun hale getirilmeyeçalışılmıştır.

14

BT ile Seri GSP

Toplamda 92 adımda maliyet indigenmiş, sonuçlargrafik olarak Şekil 1’de gösterilmiştir.

En düşük maliyet 9417 olarak bulunmuştur.Programın parametre değerleri ise şunlardır:

Başlangıç Sıcaklığı = 1000000000,

Soğutma Katsayısı = 0.999,

Hedef Sıcaklık = 0.0001,

İterasyon Sayısı = 1000.

15

BT ile Seri GSP16

6500

8000

9500

11000

12500

14000

15500

17000

18500

20000

21500

1 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 91 92

Seri Uygulamada Toplam Maliyet

Şekil 1. BT’nin seri çalıştırılması sonucunda elde edilen maliyet değerleri.

CPU Üzerinde Yapılan Paralelleştirme Çalışmaları

CPU üzerinde paralelleştirme çalıştırmaları yapılmadanönce BT’nin paralel versiyonları incelenmiş ve enoptimum paralel algoritma üzerinde kodlama çalışmalarıyapılmıştır. Bu algoritmanın çalışma prensibi şu adımlarıiçerir:

1. Başlangıç sıcaklığı T ve ilk konfigürasyon E ilealgoritma ayarlanır. T ve E değerleri her bir işparçacığına gönderilir.

2. Her bir iş parçacığı seri bir şekilde BT algoritmasınıçalıştırır ve maliyet hesabı yapar.

17

CPU Üzerinde Yapılan Paralelleştirme Çalışmaları

3. Her bir iş parçacığı işlemini tamamladıktan sonraelde ettiği değeri ve konfigürasyonu ana işparçacığına gönderir. Burada en düşük enerjiye(maliyete) sahip değer ve konfigürasyonkarşılaştırma yöntemiyle ya da belirlenen biralgoritma yardımıyla belirlenir.

4. Elde edilen yeni konfigürasyon tekrar işparçacıklarına dağıtılır. 2. ve 3. adım sıcaklık değerihedef sıcaklığa indirgene kadar tekrarlanır.Algoritma bu şekilde sonlandırılır.

18

CPU Üzerinde Yapılan Paralelleştirme Çalışmaları

CPU üzerinden parallelleştirme çalışmalarındaOpenMP kullanılmıştır. OpenMP birçok işletimsistemleri üzerinde çoğu işlemci mimarisi üzerindeFortran, C++, C programlama dillerinde çokluplatform paylaşımlı bellek çoklu işlemeyi destekleyenbir uygulama geliştirme arayüzüdür.

Toplamda 20 adımda maliyet indigenmiş, buindirgeme durumlarının farklı iş parçacıklarıtarafından elde edildiği görülmüştür. En düşükmaliyet 8099 olarak elde edilmiştir.

19

CPU Üzerinde Yapılan Paralelleştirme Çalışmaları

OpenMP kullanılarak CPU üzerinde 8 iş parçacığı ileprogram çalıştırılmıştır. Sonuçlar Şekil 2’tegösterilmiştir.

20

5000

8000

11000

14000

17000

20000

23000

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Paralel Uygulamada (CPU) Toplam Maliyet

Şekil 2. BT’nin CPU üzerinde paralel çalıştırılması sonucunda elde edilen maliyet değerleri.

GPU Üzerinde Yapılan Paralelleştirme Çalışmaları

GPU’nun CPU’ya nazaran en önemli özelliği çekirdeksayısının fazla olmasıdır. GPU’nun binlerce işparçacığı aynı anda işlem yapabilmekte ve paralelhesaplamaya uygun dizayn edilmesi neticesindeverimli sonuçlar elde edilebilmektedir.

GPU üzerinde CUDA kullanılarak yapılan çalışmadaCPU tarafında kullanılan algoritma temel alınmıştır.Algoritmanın çalıştırılması esnasındaki GPU’daki işparçacığı sayısı CPU ile karşılaştırma açısından 8olarak belirlenmiştir.

21

GPU Üzerinde Yapılan Paralelleştirme Çalışmaları

22

Şekil 3. CPU ve GPU yapısının karşılaştırılması.

CUDA, NVIDIA’nın GPU (grafik işlem birimi)gücünü kullanarak hesaplama performansındabüyük ölçüde artışlara olanak veren paralelhesaplama mimarisidir.

GPU Üzerinde Yapılan Paralelleştirme Çalışmaları

Algoritmanın çalıştırılması sonucunda en düşükmaliyet 7976 olarak bulunmuştur. Toplamda 5adımda maliyet indirgenmiş ve Şekil 4’tegösterilmiştir. En düşük maliyet 25. Adımdabulunmuştur.

Sonraki yaklaşık 975 adımda daha uygun bir sonuçelde edilememiştir. Bu açıdan bakılacak olursaGPU’daki hesaplama yetenekleriyle sonuca daha azadımda erişilmiştir.

23

GPU Üzerinde Yapılan Paralelleştirme Çalışmaları

24

0

2000

4000

6000

8000

10000

12000

1 2 3 4 5

Paralel Uygulamada (GPU) Toplam Maliyet

Şekil 3. BT’nin GPU üzerinde paralel çalıştırılması sonucunda elde edilen maliyet değerleri.

GPU Üzerinde Yapılan Paralelleştirme Çalışmaları

Yapılan çalışmalardaki ilk amaç maliyeti düşürmekolduğundan süreler kriter olarakdeğerlendirilmemiştir. Gerek CPU’da gerekseGPU’da uygulanan paraleleştirme seri uygulamayanazaran daha uzun sürmüştür.

GPU tarafında kullanılan teknolojinin son teknolojiolmaması (Compute Capability 1.1) vedeğerlendirilen veri setinin küçük boyutlu olmasıbunda etken olarak değerlendirilebilir.

25

Sonuç ve Öneriler

Sonuca bakılacak olursa BT algoritmasının bu tarz problemleriçin uygun bir yöntem olduğunu söylemek mümkündür.

Ayrıca problemin çözümüne göre uygun parametrelerbelirlemek optimum çözüm elde etmek konusunda etkilidir.İterasyon sayısının artması yani algoritmayı birden çok kezçalıştırmak daha iyi sonuçların elde edilmesine imkansağlamak ile birlikte zaman problemini ortaya çıkarmaktadır.

Çözülecek problemin boyutu arttıkça zaman problemi debüyük bir problem haline gelmektedir. Bu yüzden paralelçalışmaların bu konudaki çözümleri önemlidir.

26

Kaynaklar

http://tr.wikipedia.org/wiki/Sezgisel_algoritma http://bilgisayarkavramlari.sadievrenseker.com/2009/11/23/

simulated-annealing-benzetilmis-tavlama/ http://www.yapay-

zeka.org/modules/wiwimod/index.php?page=Simulated+Annealing

Kirkpatrick S., Gerlatt C. D. Jr., Vecchi M.P., “Optimization bySimulated Annealing”, Science, 220, 671-680, (1983).

http://163.18.62.64/wisdom/Simulated%20annealing%20overview.pdf (Simulated annealing overview, Franco Busetti)

http://en.wikipedia.org/wiki/Simulated_annealing Petru Eles, Simulated Annealing Lecture Notes, Department

of Computer and Information Science (IDA) LinköpingsIniversitet, http://www.ida.liu.se/~petel/

27

Kaynaklar

http://en.wikipedia.org/wiki/Traveling_salesman_problem(Travelling salesman problem - Wikipedia, the free encyclopedia)

http://www.matematikdunyasi.org/arsiv/PDF/03_3_37_40_GEZGIN.pdf (Gezgin Satıcı Problemi, Haldun SURAL)

http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/ (TSPLIB -Ruprecht-Karls-Universität Heidelberg).

http://www.ccs.neu.edu/course/com3620/projects/simul_annealing/parallel-final-report.doc (Parallel Simulated Annealing)

http://openmp.org/wp/ (The OpenMP® API specification forparallel programming).

http://www.nvidia.com/object/cuda_home_new.html (CUDAParallel Computing Platform)

http://docs.nvidia.com/cuda/curand/ (cuRAND :: CUDA ToolkitDocumentation)

28

~ Son ~29

Dinlediğiniz için teşekkürler.

Emrullah SONUÇ – Akademik Bilişim (Şubat 2015)

top related