A hybrid harmony search algorithm for the flexible job shop
scheduling problem
Yuan Yuan, Hua Xu, Jiadong Yang
State Key Laboratory of Intelligent Technology and Systems,
Tsinghua National Laboratory for Information Science and Technology,
Department of Computer Science and Technology,
Tsinghua University,
Beijing 100084, PR China
Esnek Atölye Tipi Çizelgeleme Problemleri için Bir Melez Harmoni Arama Algoritması
1. Esnek Atölye Tipi Çizelgeleme
Problemlerinde Toplam Akış
Süresini Minimize Eden Bir Hibrit
Harmoni Arama Algoritması (2013)
Yuan Yuan, Hua Xu, Jiadong Yang
State Key Laboratory of Intelligent Technology and Systems,
Tsinghua National Laboratory for Information Science and Technology,
Department of Computer Science and Technology,
Tsinghua University,
Beijing 100084, PR China
Mustafa Tanyer
31.12.2013
2. Atölye Tipi Çizelgeleme (JSP)
KISITLAR
• n iş – m makine
• Her iş için farklı sayıda işlem
• Her işlem için öncelik sırası
• Bir işlemi sadece bir makine yapabilir *
• Bir makinede bir anda en fazla bir iş
• İşlemler bölünemez
• t = 0 ‘da bütün makineler müsait
• Göz ardı edilebilir set up süreleri
KARAR FONKSİYONU:
• İşleri makinelerde nasıl sıralayalım ki verilen performans
göstergesi optimal olsun?
4. Esnek Atölye Tipi Çizelgeleme (FJSP)
• Aynı işlemi yapan makine seti (setleri)
• Gerçek üretim ortamlarına daha uyumlu
• + kısıt: işlem makine atama (daha zor)
• JSP NP-zor dolayısıyla FJSP NP-zor
5. FJSP Modeli
•
•
•
•
•
•
•
•
q adet bağımsız iş J:,J1,J2,…,Jq}
r adet makine M={M1,M2,…,Mr}
Her Ji için gereken işlemler Oi,1,Oi,2,…,Oi,ni
Her işlem için öncelik kısıtı var
Oi,j işlemi Mi,j makine kümesinde yapılabilir
Mi,j ⊂ M ise P-FJSP, Mi,j = M ise T-FJSP (bir iş yeterli)
İşlem süreleri makinelere bağımlı
Pi,j,k = Oi,j işinin Mk makinesinde işlem süresi
6. FJSP Modeli
• Problem:
– Her işlemi uygun bir makineye atama (Rotalama)
– Makineler için işlem sıralaması belirleme (Sıralama)
• Amaç: Toplam işlem süresi minimizasyonu
– Cmax= max1≤i≤q(Ci)
8. Harmoni Arama Algoritması
• Zong Woo Geem, 2001
• Müzisyenin notalarla harmoni oluşturması
• Perde – Kalite – Şiddet
Uyum
• Bir Müzisyenin Doğaçlama Yapması
– Bildiği bir parça çalabilir (Harmoni Hafızası)
– Bildiği bir parçanın benzerini çalabilir (Perde ayarı)
– Tamamen doğaçlama yapabilir (Rastgele yöntemi)
9. Harmoni Arama
• Harmoni Hafızası
– GA’da en iyilerin kalması yöntemine benzer
– En iyi harmoniler hafızaya alınacak
– *0,1+ aralığında harmoni kabul parametresi
• 0’a çok yakın – yakınsama gecikir
• 1’e çok yakın – arama kalitesizleşir
• Perde Ayarlaması
– GA’daki mutasyon operatörüne benzer
– Harmoni hafızasını değiştirir
– Bant aralığı* ve perde ayarlama oranı parametreleri
• 0’a çok yakın - yakınsama gecikir
• 1’e çok yakın - iyi sonuçlar kaybedilir
• Rastgele Yöntemi
– Rastgele sonuç üretir
– Perde ayarlaması - yerel arama /// Rastgele yöntemi - global arama
10. Neden Harmoni Arama ?
• Avantajları
– Daha hızlı
– Basit yapı
– Az parametre
– Kolay uygulama
• Dezavantajı:
– Sürekli yapısı
11. Önerilen Hibrit Harmoni Arama Algoritması
• HM: Harmoni hafızası
• HM= {X1,X2, … , XHMS} ; XHMS=harmoni hafızası boyutu
• Xi={xi(1), xi(2), … , xi(n)} ; i. harmoni vektörü
• Xbest , Xworst ; En iyi ve en kötü harmoni vektörleri
• Daha küçük f(X) daha iyi harmoni
12. Algoritma Akışı
1.
2.
3.
4.
5.
Parametreler ve durdurma kriteri belirlenir
Başlangıç HM, rastgele ve sezgisel yardımı ile belirlenir
HM’deki her vektör FJSP’ye uygulanır
Xbest ve Xworst bulunur
Yeni bir harmoni hafızası;
–
–
–
hafıza faktörleri,
perde ayarı ve
rastgele seçim
dikkate alınarak belirlenir
6. Yeni harmoni hafızasında yerel arama yapılır*
7. Xworst ile bulunan harmoni vektörü kıyaslanır
8. Durdurma kriteri sağlanana kadar işlem devam eder
13.
14. Harmoni Vektörü Özellikleri
•
•
•
•
•
Xi={xi(1), xi(2), … , xi(n)} ; i. harmoni vektörü
Xi aynı zamanda reel sayı vektörü
l , FJSP’de yapılacak toplam işlem sayısı olsun
n = 2l
Harmoni vektörü 2 parçadan (2 vektör kodu) oluşur:
– X(1) = ,x(1), x(2), . . ., x(l)- : İşlem-makine atama bilgileri
– X(2) = ,x(l + 1), x(l + 2), . . ., x(2l)- : Makinelerdeki işlem sıraları
17. Makine Atama Vektörü
•
•
•
•
Harmoni vektörünün ilk kısmı
İşlem sayısı (l) kadar makine atama olur
MA=,u(1), u(2), … , u(l)u(i) : i işini uygun makine setinde kaçıncı makinenin
yaptığı
• Örn:
18. Makine Atama Vektörü Oluşturma
• s(j): j işlemi için uygun alternatif makine sayısı
• round(x): en yakın sayıya yuvarla
• 1 ile s(j) arasında bir tam sayı (makine) bulundu
19. İşlem Sırası Vektörü
•
•
•
•
•
Harmoni vektörünün ikinci kısmı
l adet işlem sıralanır
OS=,v(1), v(2), … , v(l)Sorun: İşlem önceliklerini yansıtma ihtiyacı
Çözüm: İşlem tabanlı gösterim
20. İşlem Sırası Vektörü Oluşturma
•
•
Largest Position Value (LPV) ??? (MAKALEYİ HOCAYA SOR)
L. Wang, Q. Pan, M. Fatih Tasgetiren, Minimizing the total flow time in a flow shop with blocking by
using hybrid harmony search algorithms, Expert Systems with Applications 37 (12) (2010) 7929–
7936.
21. Çizelge Tipleri ve Arama Uzayı Daraltma
•
•
•
•
•
Aktif Çizelge: Makine işleme sıraları değiştirildiğinde en az bir işlemin daha erken
bitirildiği ve hiçbir işlemin daha geç bitirilmediği bir çizelge bulunamıyor ise
Yarı Aktif Çizelge: Makine sıralaması değiştirilmeden hiçbir işlem daha erken
bitirilemiyorsa
Gecikmesiz Çizelge: İşlenmeyi bekleyen bir işlem varken hiçbir makine boşta değilse
Simon French: Toplam işlem süresi minimizasyonunda optimal diziliş “aktif
çizelgelerden birindedir. (kanıtlanmış, 1982)
Yani, arama uzayı uygulanabilir aktif çizelgelere düşürülebilir
22. Aktif Çizelge Elde Etme
• Mk makinesinde işlenecek bir Oi,j işlemi alınır.
• Mk‘nın Oi,j‘yi yerleştirecek bir boş zamanı olup olmadığı aranır.
– Varsa Oi,j boş zamana yerleştirilir
– Yoksa Oi,j sona yerleştirilir
• [SX, EX], Mk‘da bir boş zaman aralığı,
• ci,j , Oi,j işleminin tamamlanma süresi olursa
sağlanır ise uygun bir zaman aralığı vardır.
24. Harmoni Hafızası Başlatma – Sezgisel Kullanımı
• Lokalizasyon Yaklaşımı (AL) uygulanır
• Her işlem için en kısa işlem zamanlı makine seçilir
• Her bir makine için toplam işlem süresi bulunur
• Her makine için en fazla kalan işlemi bulunan iş
öncelikli olarak işlemler sıralanır (MWR kuralı)
• Sıralama harmoni vektörüne çevrilir
25. Harmoni Hafızası Başlatma – Rastgele Yöntemi
• Önemli çünkü;
– Yakınsama hızı
– Son sonuç kalitesini belirler
• X =,x(1), x(2), … , x(n)- harmoni vektörü
Her bir x(i) için:
uygulanarak bulunur
26. Yeni Harmoni Vektörü Oluşumu
• Hafıza kriteri, perde ayarlaması ve rastgele seçim kriterleri
• Xnew ={xnew(1), xnew(2), … , xnew(n)} yeni harmoni vektörü olsun:
Hafıza kriteri
Rastgele seçim kriteri
HMCR: HM’de kaydedilenlerden bir değer seçme olasılığı
• Eğer xnew(j) , HM içinden seçildi ise perde ayarlaması yapılır:
PAR: Perde ayarlama oranı parametresi
28. Probleme Bağlı Yerel Arama
•
•
•
HS’de yok
Ayrımlı grafik modeli (disjunctive graph)
Nodlar
– S sahte başlangıç nodu
– E sahte bitiş nodu
– Diğer nodlar işlemler
•
Oklar
– Birleştirici oklar (C): aynı işin art arda
işlemleri
– Ayırıcı oklar (D): aynı makinede yapılan art
arda işler
•
•
Nod üstündeki rakamlar: işlem süreleri
Ayırıcı Grafik 2 önemli özellik:
–
–
Uygulanabilir çizelgelerde dönüşsel (cyclic) yollar
yoktur
Eğer grafik dönüşsel değilse en uzun yol kritik
yoldur, toplam işlem süresini verir.
Makaledeki grafik ve nod isimleri yanlış
Bu yüzden internet örneği
29. Ayrımlı (Disjunctive) Grafik Devam
Ayrımlı Grafik sayesinde bulunan 3 önemli sonuç:
1.
2.
3.
Kritik yolu kısaltmak toplam süreyi kısaltır
Kritik yolda bulunmayan nodların değişimi gereksizdir
Dolayısıyla, Kritik yol üzerindeki nodlar üzerinde çalışılır
Dolayısıyla, kritik yol üzerindeki nod’un yeri öncelik kuralları dikkate
alınarak, başka makineye atanarak değiştirilir.
Yapılan işlem kritik yolu büyütürse başka nod denenir,
Belirtilen işi tek makine yapıyorsa başka nod denenir.
KRİTİK YOL ÜSTÜNDEKİ NOD SAYISI ÇOK YÜKSEK İSE?
30. Genel Kritik İşlemler
•
İşlem süreleri tam sayı ve dar aralıkta bulunan rakamlardan oluşan çizelgelerde
birden çok kritik yol olma olasılığı çok yüksektir
– İşlem yükü azalıyor, kod yükü artıyor
Eğer Böyle Bir Çizelge Varsa:
• Bir işlemin en erken başlama süresi, toplam süreyi uzatmayan en geç başlama
süresine eşitse bu işlem“kritik işlem”dir
• Ayrımlı grafikteki bir kritik yolda yalnız kritik işlemler bulunur
• Bir kritik işlem bütün kritik yollarda bulunuyorsa bir “genel kritik işlem”dir
Eğer iki kritik işlemin işlem sürelerinde çakışma varsa ikisi de genel kritik işlem
olamaz.
• Genel kritik işlem varsa, sadece onlar yer değiştirir, kritik işlemlere
dokunulmaz. Çünkü böyle durumlarda kritik işlemlerin değişmesi
toplam süreyi düşürmez
• Bu prosedür yerel aramadaki işlem sayısını azaltarak etkinliği artırır.
32. Harmoni Vektörü Güncelleme
• Belirtilen işlemler belirli iterasyon sayıları
kadar yapılır
• Eğer Xnew , Xworst ‘ten iyiyse değiştirilir,
• Yeniden etiketleme yap
• Eğer Xnew , Xworst ‘ten kötüyse hiçbir şey yapma
33. Deney Kurulumu
• PC özellikleri: 2.83 GHz 15.9 GB Ram hafızası
•
Test Grupları:
– Kacem data
– Fdata
– BRdata
– DPdata
– BCdata
– HUdata
Çalıştırma Sayıları
30
30
30
5
5
5
Kıyaslama Kriterleri:
BCmax: Çalıştırmalar arasındaki en kısa
toplam akış süreleri
AV(Cmax): Ortalama toplam akış süreleri
SD: Toplam akış süresi standart sapmaları
AV(CPU): Ortalama sonuca ulaşma süreleri
**AV(CPU) değerleri orijinal makalelerden
alınma
• Kıyaslanan algoritmalar makalelerden alınma
•Bilgisayar özellikleri farklı
• Ayrıca 2 farklı GA çözdürülüyor
•Program dilleri farklı
• Bu algoritma parametrelerini yazar atıyor
HHS Parametreleri:
• Harmoni hafızası büyüklüğü (HMS) = 5
• Harmoni hafızası gözden geçirme oranı (HMCR) = 0.95
• Perde ayarlama oranı (PAR) = 0.3
• Kısıtlama oranı (&) = 1
• Doğaçlama sayısı (NI) = iterasyona bağımlı
• Yerel arama maksimum sayısı (loopmax) = Iterasyona bağımlı
34. BR Verilerine göre standart sapmalar
KACEM verilerine göre örnek kıyaslama
Çözdürülen GA’lara göre yakınsama eğrileri