- Operasi elevator bukan sekadar merespons panggilan, melainkan masalah optimasi penjadwalan yang mempertimbangkan jumlah kabin, arus penumpang, muatan, dan arah pergerakan secara bersamaan
- SCAN untuk satu kabin berbalik arah di lantai teratas, sedangkan LOOK berbalik di lantai tertinggi yang benar-benar memiliki permintaan, sehingga lebih dekat dengan ekspektasi umum tentang cara elevator beroperasi
- RSR (Relative System Response) untuk banyak kabin memberi skor berdasarkan estimasi waktu tiba, muatan, dan faktor lain, lalu mengoptimalkan ulang penjadwalan setiap 5 detik sehingga penumpang dari kabin yang tertunda dapat dialihkan ke kabin lain
- Jika kabin terus-menerus penuh, berhenti di hampir setiap lantai karena arus penumpang sangat tinggi, dan jumlah kabin sedikit, LOOK yang lebih sederhana bisa lebih baik daripada RSR yang kompleks
- Destination Dispatch, yaitu memasukkan lantai tujuan terlebih dahulu, memperoleh lebih banyak informasi tetapi sulit mengubah kabin yang telah ditetapkan; kecuali pada beberapa kasus seperti gedung supertinggi atau grup dengan 8 kabin ke atas, waktu tunggunya umumnya lebih lama daripada tombol naik/turun tradisional
Di mana satu kabin berbalik arah
- SCAN, yang dipatenkan pada 1961, berangkat dari lobi, naik hingga lantai teratas, lalu berbalik turun sambil menaikkan dan menurunkan penumpang di sepanjang rutenya
- LOOK tidak selalu naik sampai lantai teratas, tetapi hanya berjalan sampai lantai tertinggi yang diminta lalu berbalik
- Cara operasi elevator yang umumnya diketahui dan diharapkan orang lebih dekat dengan LOOK
Penjadwalan dasar untuk banyak kabin
- Jika ada beberapa elevator, sistem harus mengatur kabin mana yang menangani panggilan mana
- Dalam sistem dasar, penjadwal pusat menentukan lantai berhenti untuk tiap kabin dan menugaskan panggilan baru ke kabin terdekat
- Namun, penjadwalan yang hanya berbasis jarak sulit mencerminkan kondisi seperti kabin terdekat yang sudah penuh
Cara mengevaluasi waktu tunggu
- Metrik evaluasi paling intuitif untuk algoritme elevator adalah waktu tunggu dari panggilan hingga kabin tiba
- Secara sederhana, sistem dapat mengukur persentase kabin yang tiba dalam 30 detik atau 90 detik
- Untuk evaluasi yang lebih ketat, kumpulkan waktu tunggu dari ribuan perjalanan lalu periksa distribusi dan histogram
- Jika p90 adalah 2 menit, artinya 90% penumpang menunggu tidak lebih dari 2 menit
- Jika p50 adalah 1 menit, artinya pada separuh panggilan, kabin tiba dalam 1 menit
- Penumpang cenderung lebih kuat mengingat kasus p90, yaitu saat mereka menunggu jauh lebih lama daripada rata-rata
Arus penumpang yang berubah menurut waktu
- Pada pagi hari di gedung perkantoran besar, sebagian besar pergerakan berasal dari lobi menuju lantai atas
- Pada sore hari, arus dari lantai atas ke bawah menjadi dominan karena orang pulang kerja
- Saat makan siang, perjalanan naik dan turun bercampur, sedangkan pada waktu lain banyak terjadi perpindahan antarlantai
- Distribusi waktu tunggu sangat berubah menurut waktu dan pola lalu lintas, dan statistiknya buruk terutama pada jam masuk kerja pagi
Bagaimana RSR memilih kabin
- RSR (Relative System Response) dari Otis memberi skor seberapa cocok tiap kabin untuk menjemput penumpang; makin rendah skornya, makin cocok kabinnya
- Skor penjemputan dihitung dari kombinasi beberapa faktor
- Estimasi waktu tiba ke lantai pemanggil
- Penalti muatan berdasarkan jumlah penumpang yang sedang naik
- Penalti anti-pengelompokan yang diterapkan ketika sudah ada kabin yang menuju lantai yang sama dalam arah yang sama
- Bonus kesesuaian arah pergerakan
- Bonus untuk kabin menganggur yang berada dalam jarak dua lantai dari lantai pemanggil
- Bonus muatan rendah
- Anti-bunching menekan penugasan tambahan jika kabin lain sudah menuju lantai yang sama dalam arah yang sama
- RSR mengoptimalkan ulang seluruh penjadwalan setiap 5 detik
- Jika kabin A tertunda, penumpang yang semula akan dijemput A dapat dialihkan ke kabin B
- Optimasi ulang berkelanjutan seperti ini adalah kunci untuk membuat arus penumpang lebih lancar
Perbedaan performa LOOK dan RSR
- Dengan alat analisis waktu tunggu, rasio kedatangan dalam 30 detik dan 90 detik untuk LOOK dan RSR dapat dibandingkan
- Semakin tinggi arus penumpang, LOOK mulai mengungguli RSR
- Jika kabin selalu penuh dan berhenti di semua lantai, manfaat dari aturan tambahan RSR berkurang
- Di gedung kecil dengan jumlah elevator per grup kabin yang sedikit, LOOK juga cenderung lebih baik daripada RSR, sehingga pendekatan sederhana bisa lebih cocok
- Selain waktu tunggu, waktu perjalanan setelah naik hingga mencapai lantai tujuan juga dapat diukur
- LOOK dan RSR menunjukkan karakteristik berbeda pada metrik ini juga, tetapi perbandingan spesifiknya tidak dibahas
Mengapa destination dispatch merugikan meski punya lebih banyak informasi
- Destination Dispatch adalah metode di mana penumpang memasukkan lantai tujuan terlebih dahulu di kios pada tiap lantai, lalu sistem menetapkan elevator yang harus dinaiki
- Sistem optimasi dapat mengetahui semua tujuan tiap penumpang sebelum kabin tiba, tetapi waktu tunggunya umumnya lebih lama daripada metode tombol naik/turun tradisional
- Ada pengecualian ketika metode kios lebih menguntungkan, misalnya pada gedung yang sangat tinggi dengan 8 kabin atau lebih per grup kabin
- Penyebab utama penurunan performa adalah kekakuan penjadwalan
- Pada metode tradisional, rute kabin dan penugasan penumpang dapat dioptimalkan ulang setiap 5 detik
- Dalam destination dispatch, penumpang harus naik kabin yang pertama kali ditetapkan
- Meski kondisi operasi berubah 30 detik setelah panggilan, kabin yang ditetapkan tidak dapat diganti secara fleksibel
- Kerugian akibat hilangnya fleksibilitas penugasan ulang lebih besar daripada manfaat informasi tambahan berupa tujuan
Parameter dan cakupan simulasi
- Dalam simulasi keseluruhan, jumlah lantai, jumlah kabin, dan arus penumpang per menit dapat diatur untuk memeriksa persentase kedatangan dalam 30 detik dan 90 detik
- Algoritme elevator nyata memiliki lebih banyak pertimbangan, dan cakupan yang dibahas di sini hanyalah sebagian dari keseluruhan bidang
- Input tombol panggilan memang diteruskan, tetapi karena elevator menghitung berbagai kondisi operasi sekaligus, kabin mungkin tidak langsung tiba
1 komentar
Komentar Hacker News
Selama kira-kira separuh dari setengah abad terakhir, elevator dikendalikan hanya dengan relay tanpa komputer, dan algoritme seperti ini pun diimplementasikan sebagai rangkaian logika berkabel
Detail menarik seperti diagram rangkaiannya bisa dilihat di paten-paten lama Otis
Saat kelas ilmu komputer di SMA, saya mengimplementasikan beberapa simulasi algoritme elevator sebagai proyek pribadi
Hard disk berputar mirip elevator yang sangat panjang yang melilit spindle, bukan vertikal, dan SCAN memang merupakan algoritme penjadwalan disk: https://en.wikipedia.org/wiki/Elevator_algorithm
Saya penasaran apakah hasil bahwa destination dispatch secara umum buruk muncul karena lantai tujuan diatur secara acak
Di gedung nyata, kebanyakan orang yang bukan berada di lantai dasar akan pergi ke lantai dasar, sementara dari lantai dasar, orang-orang yang bekerja di lantai yang sama cenderung keluar bersama saat makan siang lalu kembali bersama ke lantai yang sama. Destination dispatch bisa mengelompokkan rombongan besar dengan tujuan yang sama, sehingga cocok untuk pola seperti ini
Sistem kios di sebagian hotel bahkan mengubah antarmuka penggunanya sesuai jam sibuk sarapan
Efek pengelompokan orang yang pergi makan siang atau kembali dari makan siang juga nyata, dan lebih menonjol di tengah hari dibanding pagi atau sore
Ada juga artikel yang menyebut waktu tunggu berkurang banyak setelah kantor atau hotel beralih ke cara ini
Gedung baru yang saya kunjungi baru-baru ini juga memakai cara ini. Saat kuliah, teman sekamar saya yang mengambil teknik elektro membuat rangkaian elevator dengan tombol panggil, motor, dan piringan transparan bertanda kotak-kotak hitam untuk deteksi posisi yang terhubung ke breadboard; kemungkinan algoritmenya sederhana
Jika baru pertama kali mengenal penjadwalan elevator, saya merekomendasikan game ini: https://play.elevatorsaga.com/
Saat mengembangkan game kontrol dan otomasi elevator untuk iOS dan Android, Sky Lobby, saya banyak memikirkan masalah ini
Saya mengadopsi algoritme mirip LOOK yang paling mendekati pergerakan yang diharapkan pemain, tetapi ketika pilihan ambigu, saya memprioritaskan lantai yang sudah lama menunggu untuk memperbaiki p90 yang penting dalam game. Namun ketika ditambah elevator dua tingkat yang melayani dua lantai sekaligus, lantai transfer antar-shaft, sampai shaft ekspres, algoritme yang optimal atau paling intuitif menjadi jauh lebih tidak jelas. Karena ini game, bukan sistem nyata, saya mencari heuristik yang cukup baik, lalu membiarkan pemain menimpa rencana operasi secara manual jika tidak suka; kebanyakan puas
Setiap kali menunggu elevator, saya memikirkan betapa rumitnya membuat algoritme yang meminimalkan waktu tunggu sampai penumpang naik dan sampai di tujuan
Kadang saya juga bertanya-tanya apakah orang yang mengimplementasikannya adalah sadis jahat yang sengaja membuat kita menunggu lebih lama
Pagi setelah konferensi besar, semua orang ingin turun, tetapi elevator yang sudah penuh berhenti di setiap lantai. Jika elevator berkapasitas 10 orang sudah mengangkut penumpang panggilan dari 10 lantai, seharusnya ia bisa langsung menuju lantai dasar dan menghemat 5 menit, alih-alih di tiap lantai mengulang “tidak ada tempat, saya naik yang berikutnya”. Ini bisa menjadi masalah serius, terutama jika penyandang disabilitas di lantai 2 harus mengejar penerbangan
Jika melihat posisi dan pergerakan semua elevator, jadwalnya luar biasa padat. Di lobi, menunggu terasa tanpa akhir, tetapi dari sudut pandang dispatch, aktivitasnya terus berjalan tanpa henti, dan selama jam penggunaan gedung, elevator hampir tidak pernah menganggur. Melihat panel status saja sudah menarik. Selain itu, jika teknisi elevator berkata “mari bertemu pagi-pagi”, biasanya maksudnya sekitar pukul 4 pagi, karena mereka ingin menyelesaikan pekerjaan sebelum orang-orang masuk kerja
Elevator mahal dan pemilik gedung tidak berinvestasi berlebihan secara impulsif, jadi biasanya mereka memasang jumlah elevator minimum yang cukup untuk menangani permintaan yang diperkirakan, kadang malah kurang dari itu
Di atas masing-masing dari 4 elevator ditampilkan lantai berhenti yang direncanakan, dan bahkan saat kita menunggu, penugasan elevator dan lantai diubah sambil diberi notifikasi suara. Sepertinya ini fitur yang dibuat agar dispatch optimal bisa dilakukan
Masalah terbesar pada elevator bukan algoritmenya, melainkan orang-orang yang tidak memahami konsep menekan tombol panggil naik/turun sesuai arah tujuan
Jika menekan kedua tombol karena “yang datang lebih cepat”, separuhnya akan lebih dulu menuju arah berlawanan, dan menambah pemberhentian yang tidak perlu bagi orang yang sudah di dalam
Mungkin mirip psikologi indikator loading palsu. Menunggu tanpa tahu waktu kedatangan terasa membosankan dan menyebalkan, tetapi jika naik elevator yang bergerak meski ke arah berlawanan, rasanya ada kemajuan. Pada akhirnya, meski memakan waktu lebih lama, keadaan ketika sesuatu sedang terjadi terasa kurang menyebalkan
Sebaliknya, jika permintaan naik sedikit, naik dulu lalu ikut sampai berputar kembali bisa menjadi strategi yang lebih rasional daripada menunggu sambil berharap ada ruang kosong
Dalam kasus ini, menekan tombol naik dan turun sekaligus bukan tindakan bodoh, melainkan logis
Terlepas dari performa algoritme, psikologi persepsi waktu tunggu orang juga penting
Menunggu tanpa melakukan apa-apa sangat menjengkelkan, tetapi melakukan sesuatu selama durasi yang sama terasa seperti kemajuan sehingga keluhan berkurang. Di bandara pun ada contoh: alih-alih membuat penumpang langsung berjalan dari gate ke baggage belt lalu menunggu koper pertama keluar, mereka sengaja membuat rute yang lebih panjang dan memutar; total waktunya sama, tetapi penumpang lebih puas
Dalam berbagai algoritme elevator, total keausan dan biaya pemeliharaan jarang dibahas
Semakin banyak pergerakan, semakin cepat oli hidraulik perlu diganti dan komponen rusak. Algoritme yang efisien kadang melakukan repositioning lebih dulu bergantung pada waktu atau posisi elevator lain; misalnya, ketika satu elevator turun, elevator lain bisa dikirim naik. Algoritme berbasis sinyal permintaan meminimalkan pergerakan seperti ini. Penting menyeimbangkan pengurangan pemeliharaan meskipun waktu tunggu bertambah, dan pemilik gedung yang menanggung biaya mungkin tidak begitu memprioritaskan waktu tunggu penumpang