Çoklu Asansörler için bir Genetik Algoritma Önerisi, Kullanımın Yoğun Olduğu Öğle Yemeği Saatleri için Analiz ve Simulasyonu
1.
2. Özet
İşyeri Asansörleri için bir GA önerilmiş,
Universal kontrol algoritması (THV) ile Arena
kullanılarak sonuçları karşılaştırılmış,
Önerilen GA'nın bekleme zamanını kısalttığı
görülmüştür.
3. Giriş
Şehir Merkezlerinde arsa fiyatlarının artması ile
yüksek binalar inşa edilmektedir.
Bu binalarda senkronize çoklu asansör sistemleri
kullanılmaktadır.
Asansör sistemi algoritmalarının temel amaçları
vardır:
Ortalama sistem bekleme süresi, en uzun bekleme
süresi, kuyruk büyüklüğü ve enerji kullanımı
minimizasyonu
Sistem Bekleme Zamanı = Asansörü bekleme süresi +
Asansörle yolculuk süresi
4. Asansör Varsayımları
Bir çağrıya yalnız 1 asansör gitmektedir.
Bir seferde asansör kapasitesi kadar kişi
taşınabilmektedir.
Asansör bir katta sadece o kattan çağrıldıysa
durmaktadır.
Asansörün hareket yönündeki kattan gelen çağrıya
öncelik verilir.
Asansör önce binen yolcusunu indirmeden yönünü
değiştiremez.
5. Mevcut Algoritmalar
IF-ELSE temelli algoritmalar
University of Manchester Institute of Science and Technology
tarafından önerilen THV algoritması.
İlk Asansör algoritmalarından
Asansör çağrısına, aynı yönlü hareket eden en yakın asansörü
gönderiyor.
Şu anda daha iyi sonuç veren dinamik programlama & Yapay
sinir ağı algoritmaları kullanılıyor.
Genetik algoritma önerileri de var fakat kullanımı yok.
7. Animasyon Bölümü
Modüller ve attributeleri ve İstatistikler:
Arrive: Yolcu gelişleri
Yolcu geliş süresi dağılımı
Time_Arrival: Yolcu varış zamanı
Origin: Yolcunun asansörü çağırdığı kat
Destination: Yolcunun indiği kat
Depart: Yolcu çıkışları
Yolcu çıkışını 1 artırır (counter)
Time_System: Yolcunun sistemde geçirdiği süre (tally)
Kuyruk bekleme süreleri
8. Kontrol Bölümü
İçinde bulunan bütün entity'lerin özelliklerini taşıyan controller
isminde asansör gibi bütün katları gezen bir entity bulunur.
Yolcu Bölümü
UpDown: Origin ve Destination attribute'lerinin durumuna göre,
yukarı çıkan yolcular için 1, aşağı inenler için 2 tutar
9. Asansör Bölümü
state: Aldığı değere göre asansörün geçtiği katta yapacağı
aksiyonu belirler
Waiting_for_Calls: Asansör boşaldı ise, son gelinen katta beklerken
Leaving_the_Lift: Asansörde yolcu varsa ve o katta inen-binen yoksa
Taking_Passengers:Asansör yolcu almak için bir katta durduğunda
(Time_Doors: Kapı açılması için geçen süre - delay, 2 sn)
Arrival_Evaluation (submodül): Asansörün bir katta
yapacağı hareketin yönünü belirler (yukarı, aşağı, durma)
Level = LDX(Transporter ID, unit number) Asansörün
bulunduğu katı döner
11. KONTROL ALGORİTMASI
Kromozomlar: 2 X Number_of_Floors - 2 boyutlu tek satırlı 2 dizi
Dizilerin ilk kat sayısı-1 elemanı yukarı yönlü, ikinci kat sayısı -1
elemanı ilgili kattan aşağı yönlü hareket taleplerini tutmaktadır. Bunu
state kromozomuna depolar.
Binary dizide 0 olan konumlarda ilgili kattan ilgili yönde bir çağrı
olmadığını gösterir. 1 olanlarda ise ilgili kattan ilgili yönde bir çağrı
vardır.
Populasyon büyüklüğü 20 seçilmiştir.
12.
13. UYGUNLUK (FITNESS) FONKSİYONU
Uygunluk fonksiyonu mevcut çağrıların tamamına
cevap vermek için gereken süreyi verir.
Katlara yolcu gelişleri rasgele olduğundan ve
gidecekleri katlar bilinmediğinden yaklaşık değer alır.
Uygunluk fonksiyonu asansörün gidiş yönüne göre
farklı hesaplanmaktadır.
14. Asansör dururken veya yukarı çıkarken:
P1: Mevcut asansörün bulunduğu kat
P2: Yukarı çıkacak yolcu alınacak en üst kat
P3: Yukarı çıkacak yolcu alınacak en alt kat
P4: P1'den aşağıda yukarı çıkacak yolcu
alınacak en üst kat
Asansör aşağı inerken:
P1: Mevcut asansörün bulunduğu kat
P2: Aşağı inecek yolcu alınacak en alt kat
P3: Aşağı inecek yolcu alınacak en üst kat
P4: P1'den yukarıda aşağı inecek yolcu
alınacak en alt kat
15. Gecikmeler (Delays)
Toplam süreç zamanını doğru hesaplamak için göz
önünde bulundurulan gecikmeler:
Katta duracak asansörün yavaşlaması 2sn
Kapıların açılması 2sn
Yolcu iniş/binişleri 5sn
Kapıların kapanması 2sn
Asansörün tekrar harekete geçmesi 2sn
Kabullenme: Katlar arasında son hız yol alma 5 sn
16. GA Operatörleri
Çaprazlama (Crossover)
Uniform Crossover Operator: 2 kromozomu rasgele seçer, aynı
genleri tutar, farklı her geni çaprazlama olasılığına göre çaprazlar
Mutasyon (Mutation)
Kromozomdan 2'li gen seçer, mutasyon olasılığına göre 01 seçtiyse
10; 10 seçtiyse 01 yapar.
Değişim Kuralı (Replacement Rule)
q x (1-q)i değişim olasılığı ile uygunluk fonksiyonunda en iyi değeri
veren i. kromozom populasyondan atılmaktadır.
Testlerde %85 çaprazlama, %15 mutasyon, q=%60 değişim
olasılığı kullanılmıştır.
Her run için en az 20 iterasyon yapılmıştır.
17. SİMULASYON SONUÇLARI
Deney Koşulları:
Deneyde 12 katlı bir iş merkezi simule edilmiştir.
7. ve 12. kat hariç her katta 30 çalışan vardır.
İdari birim olan 7. katta 60 çalışan vardır.
Yönetim birimi olan 12. katta 15 çalışan vardır.
Toplam 375 çalışan, tamamı asansörü kullanacak.
Binada her biri 20 kişi kapasiteli 2 asansör vardır.
Çalışanlar merdivenleri kullanmamaktadır.
Replikasyon sayısı: 20
18. Katlar arası ulaşım olasılıkları:
Zemin kattan:
7.kata: %15
12. kata %4
Diğer katlara %9
Diğer katlardan:
Zemin kata %95
Diğer katlara %5 (toplam)
Yolcu Gelişleri:
Saat 14:00-16:10 arası
(lunchpeak - gerçek bir binadan alınma)
19. ALGORİTMALARIN KIYASLANMASI
Üretilen algoritma THV Algoritması ile kıyaslanmıştır.
Kriterler:
Sistem bekleme zamanları
Asansör bekleme kuyruk uzunlukları
Asansör meşguliyet oranları
22. 14:50 civarı bekleme zamanındaki artış, 14:00 - 15:00
arası yemek çıkış izni olan çalışanların yığılmasından
kaynaklanıyor.
15:20'den sonraki düzenli artış ise çalışanların
yemekten dönüşte zemin katta yığılmalarından
kaynaklı.
25. SONUÇ
Asansör sistemleri için önerilen GACHA algoritması
sık kullanılan THV ile kıyaslanmış,
Sistem bekleme zamanları ve kuyruk uzunluklarında
daha iyi sonuçlar elde edilmiştir.
Ortalama bekleme süresi 3 dk 15 sn'den 2 dk 30 sn'ye
inmiştir.
Editor's Notes
( Nerdeyse her yerde asansörler böyle çalışıyor zaten)
(Sonuçlar bu algoritma ile kıyaslanıyor)
(bizimki v. 14.0) 4 bölümde oluşturulmuş simulasyon
(çıkış ve inişler için ayrı, ilk ve en üst katta tek kuyruk, diğer katlarda 2)
(state 0 ve 1'lerden oluşan bir arraydir) (Bu 3 submodülden birini çalıştırır) (LDX bir tanımlı guided transportation variable)
(kat sayısı-1 olmasının nedeni ilk ve son katta tek yönlü hareket olması) (Yani mesela yukardaki örnekte 7. kattan aşağı yönlü bir çağrı varsa dizinin 17. elemanı 1 olur.)
(Yani yukarıdaki kromozomlardan 20 adet var)
THV Algoritması bekleme zamanları Genetik Algoritma bekleme zamanları
Ortalama: 195,60 sn Ortalama: 149,98 sn (%23,35 azalma)
minimum:20 - 25 sn arası minimum: 20,333 sn
maksimum 2899,3 sn maksimum: 662,75 sn
THV algoritması her seferinde inen yolcular için almaya en üstten asansör çağıran yolculardan başladığı için alt katlardaki yolcuların bekleme süreleri aşırı uzun çıkıyor.
Soldaki THV, sağdaki GAHCA. 0'dan 8'e kadar olan x ekseni, saat 14:00 ile 16:00 arasının 8 eşit parçaya bölümünü ifade ediyor.
NQ(Queue Name) = Queue Length
Asansör meşguliyet oranları sistem enerji tüketimini göstermek için iyi bir gösterge olabilir.
THV'de asansör boş süreleri %2 ve %3,95 iken GAHCA'da %2,77 ve %2,8. THV'de asansörler 664 defa dururken GAHCA'da 514 defa duruyor. Bir asansörün en çok enerji kullanımının çalışması sırasında yaşandığını belirtirsek, iki sistem de yakın enerji harcıyor