Ha egymás után több liftkabin is felfelé indul, miközben egyik sem áll meg a mi szintünkön, annak jó oka lehet. A vezérlőrendszernek minden gombnyomás után összetett feladatot kell megoldania: el kell döntenie, mikor és melyik kabint küldje a hívás helyére. Azt is mérlegelnie kell, hogy egy ötödik emeleten járó lift előbb vegye-e fel a hetediken várakozókat, vagy induljon lefelé az első szintre. Mindeközben számít, ki vár a legrégebben, melyik útvonal a leghatékonyabb, és mennyi energiát igényel a kiszolgálás.

Egy ilyen rendszer megtervezése és finomhangolása aprólékos mérnöki munkát kíván.

## Amikor még ember irányította a liftet

Az első elektronikus vezérlésű felvonók mozgásáról még emberek döntöttek. A kabinban dolgozó kezelő egy szabályozókarral irányította a liftet fel és le, majd megállította, amikor ő vagy a diszpécser új utast észlelt. A kezelők azonban hibázhattak, ráadásul megfelelő fizetést és munkakörülményeket igényeltek, ezért az 1950-es évek elejére széles körben elektronikus kapcsolók váltották fel őket.

Az önálló vezérléshez olyan algoritmus kellett, amely meghatározza, mikor és merre induljon a kabin. A legegyszerűbb megoldás az lett volna, ha a lift előre rögzített időpontokban jár fel és le, és a kijelölt emeleteken megáll. Az utas számára ez olyan lenne, mint egy átszállásos vonatút: előbb fel kellene jutnia például a tizedikre, ahová 15.10-kor érkezik a következő szakaszra induló lift, majd egy köztes szinten másik kabint kellene keresnie.

Ez aligha volna hatékony. Csúcsidőben az utasok a menetrend szerinti indulásra várnának, kis forgalom idején pedig az üres kabinok fölöslegesen járnák az emeleteket és fogyasztanák az energiát.

1965-re kialakult a ma is ismerős megoldás: az utas megnyomja a hívógombot, a lift pedig megérkezik az adott emeletre. Ezzel azonban új kérdés merült fel: mit tegyen a vezérlés, ha egyszerre több szintről érkezik hívás?

## Nem minden várakozással töltött másodperc egyforma

Az ideális rendszernek a legrégebben várakozó utast kellene előnyben részesítenie, vagy inkább a legközelebbi híváshoz kellene küldenie a kabint? Hogyan teremthető egyensúly a gyors kiszolgálás és az energiafogyasztás között?

Nyilvánvalónak tűnik, hogy az utaztatás idejét optimalizálni kell, a prioritások meghatározása azonban már korántsem ilyen egyszerű. Ha valaki 20 másodperc helyett egy percig vár, vajon háromszor, hatszor vagy hétszer érzi megterhelőbbnek a helyzetet? Még ehhez az egyszerűnek látszó problémához sincs egyértelmű kiinduló adat.

Olykor az sem baj, ha maga az utazás hosszabb. Képzeljünk el két esetet. Az elsőben a lift tíz másodperc alatt érkezik meg, de az út egy percig tart. A másodikban fél percet kell várni, majd további fél percet utazni. Bár az első változat összességében tíz másodperccel hosszabb, a legtöbb ember mégis azt választaná, mert a várakozást különösen kellemetlennek érzi. A mérnökök ezért nem feltétlenül pusztán a teljes időt minimalizálják: az algoritmusban a várakozás terhét kifejező tényező is szerepet kaphat.

A fizikai korlátokat sem lehet figyelmen kívül hagyni. A lift sebessége véges, a vezérlésnek pedig legfeljebb egy-két másodperce van a következő lépés kiszámítására. Hibázni sem lehet: ha a kabin megállás nélkül elhalad a kívánt emelet mellett, az utas joggal lesz elégedetlen. A vezérlésnek tehát össze kell hangolnia a berendezés lehetőségeit az utas céljával, még akkor is, ha az illetőnek már tíz perccel korábban fel kellett volna érnie.

## A legegyszerűbb liftalgoritmus

Sok liftben máig az egyik legkorábbi és legegyszerűbb elektronikus vezérlési elv működik. Két alapvető szabálya van:

1. Amíg a kabinban vagy az útjába eső emeleteken vannak olyan utasok, akik az aktuális haladási irányba szeretnének menni, a lift ugyanabba az irányba halad tovább.

2. Ha ebben az irányban elfogynak a hívások, de az ellenkező irányból még van igény, a lift megfordul. Ha sehol nincs hívás, a következőig megáll.

Ezért található a legtöbb emeleten külön felfelé és lefelé mutató hívógomb. Egy felfelé tartó kabin így útközben felveheti és ki is teheti az azonos irányba utazókat.

A módszer az optimalizálás számos szempontját nem veszi figyelembe, mégsem rossz megoldás. Egyszerűen megvalósítható, viszonylag energiahatékony, és egy ciklus során minden utast ki tud szolgálni. Hasonló algoritmust alkalmaznak a legtöbb merevlemez programozásánál is.

Kisebb irodaházakban és társasházakban, ahol nem követelmény a kiemelkedő energiahatékonyság, ez az egyszerű rendszer megfelelő lehet. Magasabb épületekben viszont gondokat okozhat. A kabin út közben újra és újra kiszolgálja a középső szinteket, miközben előfordulhat, hogy a hetedik emelet felé haladva sokáig nem jut el az alsó szintre. Emiatt éppen az első és a legfelső emeleteken nőhet meg fájdalmasan a várakozás, holott innen érkezik a legtöbb hívás.

A nagy épületekben ráadásul több lift dolgozik egyszerre. Ha valamennyi ugyanazt az egyszerű algoritmust követi, kaotikus helyzet alakulhat ki: ugyanazon az emeleten egymás után több kabin is kinyílhat, miközben mindegyik főként a középső szinteket szolgálja ki. Akár az is megtörténhet, hogy két lift reagál ugyanarra a hívásra.

## Amikor a liftek összehangolják a munkájukat

A mérnökök ezért különböző módszerekkel hangolják össze a liftcsoportokat. Ha például az első emeletről érkezik hívás, miközben az 1-es kabin felfelé tart, helyette a 2-es indulhat lefelé. Az egyes felvonókat meghatározott emeletcsoportokhoz is hozzá lehet rendelni.

Egyes épületek előcsarnokában több, nyitott ajtóval várakozó liftet is láthatunk. Ez az úgynevezett parkolási stratégia: az üres kabinokat oda küldik vissza, ahol várhatóan a legnagyobb lesz irántuk a kereslet. Az utasforgalom előrejelzése és a valós idejű megfigyelés ma már lehetővé teszi, hogy a rendszer a reggeli és esti csúcsidő eltérő igényeihez igazítsa működését.

## A szimulációktól a célállomásos vezérlésig

A liftprogramozás az 1970-es években lépett nagyot előre, amikor lehetővé vált a számítógépek újraprogramozása. Egy új útvonaltervezési stratégiát többé nem kellett előbb eladni egy ingatlanmágnásnak, majd megvárni, amíg az felépít egy felhőkarcolót: a megoldást virtuális szimulátorokban lehetett kipróbálni és finomhangolni.

Ezt követően sok új algoritmus jelent meg. Az egyik ma is népszerű módszer a becsült érkezési idő alapján működik. A számítógép megvizsgálja azokat a kabinokat, amelyek a hívás emelete felé tartanak, majd azt választja, amelyik számításai szerint a leghamarabb ér oda.

Egy másik stratégia mindig azt a kabint küldi, amely az előrejelzés szerint a legkedvezőbb megoldást nyújtja az utasnak. Ebben a rövid utazási idő, az alacsony energiafelhasználás és a tervező által meghatározott további szempontok együtt szerepelhetnek.

Az optimalizálás csúcsát a célállomás szerinti csoportosítás, vagyis a destination dispatch jelenti. Ezt az 1990-es évek után épült vagy korszerűsített felhőkarcolók liftjeiben alkalmazzák. Az ilyen rendszereknél nem felfelé vagy lefelé mutató gombot kell megnyomni, hanem előre ki kell választani a kívánt emeletet. Az intelligens vezérlés ezután megmondja, melyik kabin viszi az utast a céljához.

Mivel a rendszer pontosan tudja, ki hová tart, az azonos emeletre utazókat egy kabinba csoportosíthatja. Így minden csoport fölösleges megállások nélkül érheti el úti célját. Ennek ára lehet, hogy átlagosan nő a várakozás, a vezérlés ezért napszakonként változtathatja a prioritásokat.

A reggeli csúcsban például a szállítási kapacitás lehet a legfontosabb: ilyenkor hosszabb várakozás mellett rövidebbé válhat maga az út. Napközben, amikor kisebb az utasforgalom, a lift hamarabb érkezhet, hogy kevésbé legyen megterhelő a várakozás.

## Gépi tanulással választott stratégia

A sokféle vezérlési lehetőség közül ki kell választani az adott helyzethez legjobban illőt, és ez a döntés is automatizálható. Gépi tanulással a mérnökök modellezik az elérni kívánt eredményt, a vezérlőprogram pedig különböző lépéseket szimulál, hogy a megadott modell szerint optimális hatást érjen el.

A rendszer folyamatosan vizsgálja a liftszimulációk állapotát és a beérkező hívások paramétereit, eldönti, milyen műveletet hajtson végre, majd méri az eredményességet. Így a tényezők különböző kombinációira megtalálhatja a leghatékonyabb útvonalakat. A kialakuló stratégiák olykor annyira összetettek, hogy még a fejlesztők számára sem mindig világos, miért éppen úgy működik a vezérlő, ahogyan.