A teljes folyamat

A teljes szobabeosztási folyamat három részre osztható. Első lépésben a páros, heterogén szobák feltöltése történik meg, mivel nem minden szoba alkalmas erre a feladatra. Kikeressük az adatbázisból az erre alkalmas szobákat, illetve azokat a különböző nemű hallgatókat, akik egymást jelölték meg első helyen. Ezekkel a csoportokkal prioritási sorrendben feltöltjük a szobákat. Ha marad felhasználatlan páros szoba, akkor azokat fel lehet használni még a későbbiekben, mint homogén szoba. Ha nem marad, akkor néhány (a prioritás sor végén lévő) hallgatópáros nem fog közös szobába kerülni. Ezek a kívánságok később törölve lesznek, hiszen erőforrás hiányában nem teljesíthetőek.

Második illetve harmadik lépésben a fiú-, illetve a lánycsoportok szobákhoz való hozzárendelése történik meg. Ha hozzárendelünk egy csoportot egy szobához, akkor a csoportlistából nem csak ezt a csoportot kell törölni, hanem minden olyan másikat is, amelynek van olyan tagja, aki a most beosztott csoportban is benne volt. Ennek következtében előfordulhat, hogy egy hallgató kívánságlistáján szereplő összes ember beosztásra kerül egy a prioritási sorban előrébb levő csoporttal. Így a hallgató gyakorlatilag „egyedül” marad, egy kívánsága sem teljesíthető.

Az 5. ábrán lévő D hallgató így járhat, ha az {A, B, C} trió nagyobb prioritás miatt bekerül egy háromágyas szobába. Ugyanígy, a beosztási folyamat végén „egyedül” maradnak azok a hallgatók, akik egy kölcsönös kapcsolatban sem szerepelnek. Őket a megmaradt helyekre kell berakni.

Az eddig ismertetett lépések csak egy-egy épületre vonatkoznak, ezeket az összes épületre külön-külön végre kell hajtani, mert általában a kollégiumi felvétel adott épületre szól (például nem mindenki kerülhet be a szakkollégiumba). A kívánságok felvételekor is csak azokat szabad engedélyezni, amelyek azonos épületekbe beosztott hallgatók közöttiek.

Az egész beosztást ajánlatos többször is lejátszani, majd az eredmények ismeretében esélyt adni a hallgatóknak kívánságaik módosítására. A kívánságok számát tízre maximalizálva egy 500 fős épületben legrosszabb esetben az 500∙500-as kívánságmátrix csupán 5000 eleme lesz nullától különböző. Ez az összes elem 0.2 százaléka, amihez még hozzáadódik a főátló, de ezek az elemek gyakorlatilag kihagyhatók a számításból. Ugyanakkor még ez is tekintélyes méretű számítást jelent, de ez egy átlagos PC-n futtatva is maximum egy-két órát vesz igénybe. A szobabeosztás hátterét jelentő gépen ezért ajánlott egy néhány hetes tesztidőszakot hagyni a rendszer kitapasztalására, megismerésére mind a hallgatóknak, mind a rendszert üzemeletetőknek. Ehhez az is szükséges, hogy éjszakánként újabb és újabb szobabeosztási variációkat generáljunk az épp aktuális kívánságokból. Ennek eredményét másnap ellenőrizhetik a hallgatók, s ha még nem az igazi, nyugodtan módosíthatnak rajta, hiszen reggelre megjelenik az új variáció.

Kisebb épületek, esetleg külön kezelt épületrészek esetén ezek az időtartamok csökkenhetnek, s növelhető a szobabeosztások generálásának sűrűsége, amivel gördülékenyebbé tehető a szobabeosztási folyamat. Ugyanígy a PC-k állandó sebességnövekedésével, újabb, gyorsabb szerver üzembe állításával is ugyanez a hatás érhető el.

Az erőforrások szűkössége miatt, illetve ha azokat a hallgatók nem veszik figyelembe, akkor elég sok olyan hallgató lehet, aki minden, a kívánságlista alapján összeállított csoportból kimarad. Ez történhet, ha a hallgatók hármas csoportokat hoznak létre a kívánságaikkal, de többségében kétágyas szobák vannak. Ekkor a hallgatók harmada olyan hallgatótársával fog egy szobába kerülni, akit nem jelölt meg a kívánságlistáján. A tesztidőszak alatt ezen problémákat láthatóak lesznek a hallgatók számára, amit kívánságaik módosításával orvosolhatnak.

Elmondható, hogy fontos a kiszámíthatóság, ezért is kerülni kell a véletlenszerű működést, a rendszernek teljesen determinisztikusnak kell lennie. Nem elfogadható, ha a kívánságok változatlansága mellett minden futtatásnál más-más csoportok lesznek létrehozva, illetve ténylegesen beosztva a szobákba.

Tartalom átvétel