Autoři
Ing. Michal Balda <michal@michalbalda.cz>
Ing. Robert Pergl, Ph.D. <robert.pergl@fit.cvut.cz>
Anotace
Systém řeší problematiku inteligentního párování poptávek a nabídek studentských brigád na základě různých kritérií a algoritmů. Systém je implementován pomocí čistého objektového paradigma ve formě webové client-server aplikace.
Motivace
Brigády patří mezi oblíbený způsob, jakým si studenti mohou přivyďělat při studiu. Tradiční způsob výběru brigády studentem spočívá v návštěvě zprostředkující agentury, kde proběhne registrace zájemce. Součástí registrace je i sepsání dotazníku, ve kterém student uvede svoje údaje, znalosti, dovednosti a praxi. Na základě těchto údajů jsou poté studentovi nabízeny vhodné brigády. Lepší agentury též dokáží nabídku přizpůsobit studentovým časovým možnostem.
Druhou stranou jsou firmy, které hledají brigádníky. Firmy uzavírají spolupráci s agenturami, kterým předávají své potřeby na brigádníky. Zodpovědností agentury je najít pro firmu vhodné brigádníky, kteří splní požadovaná kritéria.
Současný stav řešení problematiky
Problematika párování nabídky a poptávky na brigádu je komplexní záležitostí. Na straně studentů evidujeme jejich schopnosti a omezení (především časová), na straně firem poté požadavky na brigádníky. Manuální párování nabídek a poptávek je velmi časově náročné, neefektivní a náchylné k chybám.
Z těchto důvodů je nutná podpora moderních informačních technologií. Základní podporou, kterou využívá řada agentur jsou databáze uchazečů a firem. V těchto databázích je možné vyhledávat, čímž se zefektivní proces párování. Takové databáze mohou být realizovány pomocí tabulkového procesoru (známý Excel) či jako více či méně sofistikované relační databáze a aplikace nad nimi.
Požadavky na párovací systém
Přirozeným trendem je samozřejmě přesunout co nejvíce inteligence do strojového zpracování samotného párování. Požadavky na takovýto párovací systém jsou ovšem značné:
- Systém musí brát v potaz všechny relevantní parametry jak na straně brigádníka, tak na straně firmy.
- Algoritmus párování musí pracovat optimálně, či alespoň suboptimálně.
- Z hlediska uživatelského ovšem musí systém na obou stranách vypadat jednoduše; Řada uživatelů je netechnického zaměření.
- Postup párování a jeho volby musí být možné flexibilně měnit, aby bylo možné reagovat na nové a měnící se požadavky a potřeby vylepšení na základě zkušeností z provozu.
Popis řešení
V rámci našeho projektu smluvního výzkumu SMV|18102|ext:1815000038| jsme se zaměřili na uvedené požadavky a navrhli a realizovali jádro párovacího systému.
Párování nabídek a brigádníků funguje jako samostatný proces, který asynchronně vyřizuje požadavky na spárování konkrétní nabídky se všemi možnými brigádníky, nebo konkrétního brigádníka se všemi možnými nabídkami. Požadavky vznikají po registraci nového brigádníka a vložení nové nabídky, nebo při jejich změně. Vzhledem k asynchronnímu zpracování není reakce na změny okamžitá. Výsledky párování jsou ukládány a následně využívány hlavní aplikací.
Párování probíhá ve třech hlavních krocích:
- V prvním kroku dochází k porovnání kvalifikace brigádníků na straně jedné s požadavky na brigádníka uvedených v nabídce na straně druhé. Vše probíhá na úrovni relační databáze, jednotlivé atributy sloužící k porovnání generují SQL podmínky pro výběr odpovídajících objektů, respektive databázových řádků. Mezi porovnávané atributy patří v současnosti pohlaví, úroveň vzdělání, pracovní zkušenosti včetně délky praxe, jazykové a IT dovednosti, vlastnictví řidičského průkazu, věková kategorie, výška postavy a konfekční velikost. Atributy se vzájemně liší způsobem porovnání, na příklad požadavky na délku praxe nebo minimální věk splní i brigádník s delší praxí nebo vyšším věkem, požadavky na pohlaví nebo druh dovednosti vyžadují přesnou shodu, a v případě požadavku na konfekční velikost je možné stanovit rozsah, jak uzavřený, tak jednostranně otevřený. Každý atribut si jako plnohodnotný objekt určí potřebnou podmínku. Další atributy je možné kdykoliv přidat za předpokladu kompatibilních hodnot na straně brigádníka i nabídky.
- Druhý krok kontroluje časovou dostupnost brigádníka proti pracovním dnům (směnám) nabídky. Zde se již pracuje s plnohodnotnými objekty namísto databázových řádků. Důvodem je netriviální logika porovnávání, protože některé druhy událostí vyústí v kolizi jen za určitých podmínek, a na příklad omezení dostupnosti brigádníka může být definováno opakovanou událostí s volitelnou četností a otevřeným nebo uzavřeným intervalem platnosti.
- Třetím krokem jsou vybrány pouze nabídky, které splňují požadavky brigádníka na druh pracovního místa a oblast konání. Tento krok je zařazen jako poslední, jelikož jeho splnění není závazné a brigádník si přesto může dočasnou úpravou požadavků nevyhovující nabídky zobrazit a přihlásit se na ně.
Z důvodu optimalizace jsou brigádníci a nabídky nevyhovující již v prvním nebo druhém kroku z párování okamžitě vyloučeny a do dalších kroků nepostupují.
Technické parametry
Párovací jádro je realizováno ve formě čistě objektově-orientovaného kódu v technologii Pharo. Tím je naplněn požadavek vysoké flexibility pro případné úpravy.
Jádro využívá ke své práci údaje uložené v relační databázi, které mapuje na své vnitřní objekty. V tuto chvíli je realizováno připojení do technologie PostgreSQL.
Pro provozování systému postačí běžný server na platformě Linux.
Uplatnění systému
Popsané jádro je možné využít v libovolné aplikaci postavené v systému Pharo. Přes rozhraní REST (nyní neimplementováno) je možné systém napojit i na jiné technologie.
V současné době je jádro využíváno ve webovém systému pro párování nabídky a poptávky brigád Daywork.cz.
Licenční podmínky
Pro získání software párovacího systému je třeba nabytí licence. V případě zájmu kontaktujte Ing. Roberta Pergla, Ph.D. na adrese robert.pergl@fit.cvut.cz.