4. NP-Complete Nedir?
● NP, belirsiz Turing Makinesi ile çok terimli (polinomsal) zamanda çözülebilen karar problemlerini içeren
karmaşıklık sınıfıdır.
● Bu sınıftaki problemler belirli Turing Makinesi ile çok terimli zamanda doğrulanabilirler ve bu şekilde
doğrulanabilen her problem NP sınıfındadır. Bu nedenle NP, (belirli Turing Makinesi ile) çok terimli zamanda
doğrulanabilen problemlerin sınıfı olarak da tanımlanabilir.
● Belirli Turing makinesi aynı zamanda belirsiz Turing makinesi olduğundan, P sınıfındaki bütün problemler aynı
zamanda NP'dedir.
● NP-Tam (NP-complete), hem NP olup hem NP-Zor olan problemlerin sınıfıdır. Dolayısıyla bu sınıftaki problemler
NP sınıfının en zor problemleridir.
● Yukarıdaki tanımdan yola çıkarak, herhangi biri çok terimli zamanda çözülebilirse, bütün hepsi çok terimli
zamanda çözülebilir.
6. Bileşenleri
1- Yukarıdaki yapı figüründeki gibi iç içe geçmiş zarlar ile ayrılmış bölgelerde bir
dizi olarak.
2- Her bölgede, bir alt algoritma / işlemi çözerek optimizasyon sorununu
gidermek ya da geçici olarak çözmek.
3- Komşu bölgelerin aralarında ulaşım çözüm sistemleri.
7. Başlangıç Kuralları
1- Yukarıdaki yapı figüründeki gibi iç içe geçmiş zarlar ile ayrılmış bölgelerde bir
dizidir.
2- Her bölgede, bir alt algoritma / işlemi çözerek optimizasyon sorununu giderir
ya da geçici olarak çözer.
3- Komşu bölgelerin aralarında ulaşım çözüm sistemleri uygulanır (örn. tabu
search).
En iyi çözüm en içteki bölgededir.
8. Membrane Algoritmasının Ayrıntıları
m membrane sayısı olsun ve bölge 0 içteki bölge ve m-1 dıştaki bölge olmak
üzere sıralayalım.n düğümleri ile bir örnek olarak İki boyutlu uzayda noktalara
karşılık gelen gerçek sayılar (xi
,yi
) (i=0.1,……,n-1) çiftini içermektedir. İki
düğüm arasındaki mesafe
v i
= (xi
, yi
) ve vj
= (xj
,yj
) geometrik mesafesi d(vi
, vj
) = (xi - xy
)2+(yi - yj)2dir.
Bu çözüm listesi (v0
, v1
, …., vn-1
) olur. v = (v0
,v1
,.....,vn-1
) ile gösterilen değer
kümesi W(v) ile belirtilmiştir;
9.
10. Gösterilen iki çözüm olan u ve v için, v u dan daha iyi ise W(v)<W(u) olur. Olası
tüm çözümlerde minimum değeri olan çözüm örneğinin kesin çözüm olduğu
söylenir. Tam çözüme yakın değeri olan çözüm yaklaşık değer olarak
adlandırılır. Algoritmanın 0 bölgesinde belirsiz, 1 den m-1 e kadar olan
bölgelerde ise iki çözüm vardır. 0 bölgesinde tabu arama algoritması gibi bir alt
algoritma kullandık. Tabu algoritması çözümün içindeki iki düğüm arasında
belirsiz çözüme yakın bir çözüm arar. Arama sonuçlarında iki kez aynı
çözümün görünmesini engellemek için düğümleri listede tutar. Tabu listesindeki
düğümler tekrar değiştirilmez. Eğer aşağıdaki üç durumdan biri oluşursa tabu
arama algoritması belirsiz çözümü sıfırlar ve listeyi sıfırlar:
11. 1. Komşu çözümün değeri belirsiz çözümden daha az ise, Komşu çözüm
belirsiz bir çözüm olur.
2. En iyi çözümün değeri Bölge 1 dedir. Bu geçici çözümünkinden daha
düşüktür.
En iyi çözüm Bölge 1 de yeni geçici çözümle oluşur.
3. Komşu araması önceden belirlenmiş turların aşılmasıdır(n/5 durumunda).
Geçici çözüm kalır. Sadece tabu listesi boşaltılır.
12. Durum 3 te hiçbir gelişme oluşmaz. Fakat tabu aramada diğer komşuları da
aranarak denenir. Çünkü aranamayan komşularda vardır.
Geçici çözümler Bölge 1 ile m-1 arasındadır(Her bölgede iki çözüm vardır.).
Bunlar aşağıda özetlenen bir alt algoritma tarafından geliştirilmiştir.
13. 1. Eğer iki çözüm de aynı sonuca sahipse, çözümün bir parçası iptal edilir.
(Burada ihtimal seçilir.)
2. İki sonucu yeniden işleme sokar ve iki yeni sonuç üretir.
3.İki yeni sonuca nokta değişimi uygulanır. i-th durumunda, değişimde i/m den
daha düşük bir ihtimal oluşur.
14. Belli ki alt algoritmalar yukarıda genetik algoritmayı andırarak tanımlanıyor.
Fakat alt algoritmalar her zaman genetik algoritmanın rastgele işleme sokmak
için seçtiği durumlarda iki sonucu işleme tabi tutar. Eğer iki çözümde bir
durumda aynıysa işlem yenilendiğinde yeni sonuç üretilmez. İlk adım bu
durumu önler ve geri çevirme işleminde kullanılan yeni bir çözüm tanımlar.
15. Genel Bakış
1. TSPnin örneği verilmiştir.
2. Bütün Durum 1 ile m-1 arasındaki Durum 0 ve yeni geçici çözümler için gelişigüzel bir
geçici çözüm oluşturulur.
3. d zamanı kadar 3.1 ile 3.3 arasında tekrar ederler.(d değeri bir parametre olarak
verilmiştir.)
3.1 Alt algoritmayı kullanan bütün durumlar aynı anda geçici çözümler oluştururlar.
3.2 Bütün durumlar için i(1 <= i <= m-2), durum(son durum ve yenilenen durum) ile
durum i-1 arasında ve en kötü çözüm de durum i+1 iken durumların en iyi durumunu
gönderir.
3.3 Bütün durum 1 ile m-1 arasındaki çözümleri temizlerler.
4. Geçici çözüm çıktılarında Durum 0 algoritmanın çıktısıdır.
16. Algoritmalar Membrane 2 Membrane 10 Membrane 30 Membrane 50 SA
İyi 440 437 433 429 430
Orta 544 450 442 435 438
Kötü 786 457 450 444 445
17. Membrane algoritması 3. adımı 40000 kez kadar tekrar eder. Membrane
algoritmasının denenme sayısı 10dur. Membrane 2,10,30, ve 50 sırasıyla
2,10,30 ve 50 durumları için algoritmaları geçerli olur.
18. Algoritmalar Membrane 2 Membrane 10 Membrane 30 Membrane 50 SA
İyi 24524 22319 21770 21651 21369
Orta 32973 23422 23200 22590 21763
Kötü 49667 24862 23940 24531 22564
19. iyileştirilmiş Membrane
Bileşik Membrane algoritması iki aşamadan oluşur(Şekil 3). İlk aşaması bir dizi
membrane algoritmasını rastgele oluşturulan ilk sonuçlarından iyi sonuçlar
oluşturur. Bu iyi çözümler sonuçlarla sırasıyla ikinci adımdaki ilk sonuçları
üretir. Sonunda en iyi sonuç elde edilmiş olur.
20.
21. Takip eden parametreleri ile birleşik membrane algoritması incelendiğinde:
● İlk adımda membrane algoritmasının dizisi 100dür.
● Bütün membrane algoritmaları 50 membraneden oluşur.
● Eğer en iyi sonucu 500 iterasyonda yakalayamazsa her bir membrane algoritması ilk adımda
sonlandırılır.
● Eğer en iyi sonucu 5000 iterasyonda yakalayamazsa her bir membrane algoritması ikinci adımda
sonlandırılır.
Birleşik Membrane algoritmalarında bilgisayar deneylerinin sonuçlarını Tablo 3 te gördük.
Fark ettik ki birleşik membrane algoritmalarında her zaman neredeyse birbirine çok ykın sonuçlar üretiliyor.
Bir süreçte birleşik membrane algoritmasının zamanını tek bir membrane algoritmasından çok daha uzundur.
Çünkü membrane algoritmasında birinci adım bütün işlemlerden bağımsızdır.
22.
23. eil51 eil51 eil51 kroA100 kroA100 kroA100
bileşik membrane SA bileşik membrane SA
en iyi 429 429 430 21431 21651 21369
ortalama 431 435 438 21616 22590 21763
en kötü 435 444 445 21816 24513 22564
24. Sonuç
● Optimizasyon problemlerinin çözümü için membrane algoritmasını yeni bir
algoritmayı uyarlarken ve sunarken kullandık. Bilgisayar deneylerinin TSP*
için membrane algoritmasının en iyi çözüm yaklaşımı olduğunu gördük.
● Membrane algoritmasının yaklaşımı hızlıdır.
● Gelişmiş membrane algoritmasının, birleşik membrane algoritmasından
TSP* için genelde neredeyse tam sonuç çözümdür.
TSP; Travelling Salesman Problem (Seyyar Satıcı Problemi) : Bulunan her node a en az bir kere uğrayarak en kısa
yolu bulma problemidir.
25. $ source.list
[1] Taishin Y. Nishida, Toyama Prefectural University, Toyama - Japan
[2] C.A Floudas and P.M. Pardalos (eds), Encyclopedin of Optimization
(Kluwer, Dordrecht, 2001).
[3] M.R Garey and D.S. Johnson, Computers and Intractability: A Guide to the
Theory of NP-Completeness, (Freeman,1979).