FlexCoder: Gyakorlati programszintézis flexibilis input-hosszokkal és kifejező lambdafüggvényekkel Informatika Tudományi

35 OTDK, Informatika Tudományi Szekció, Algoritmusok és mesterséges intelligencia 1 Tagozat.

FlexCoder: Gyakorlati programszintézis flexibilis input-hosszokkal és kifejező lambdafüggvényekkel


Helyezés: 2

Hallgatók: Gyarmathy Bálint
Szak: Programtervező informatikus, Képzés típusa: msc, Intézmény: Eötvös Loránd Tudományegyetem, Kar: Informatikai Kar,
Czapp Ádám Tibor
Szak: Programtervező Informatikus, Képzés típusa: msc, Intézmény: Eötvös Loránd Tudományegyetem, Kar: Informatikai Kar,
Mucsányi Bálint
Szak: Programtervező Informatikus, Képzés típusa: bsc, Intézmény: Eötvös Loránd Tudományegyetem, Kar: Informatikai Kar

Témavazetők: Dr. Pintér Balázs - Egyetemi adjunktus, Eötvös Loránd Tudományegyetem Informatikai Kar ,
Dr. Gregorics Tibor - Egyetemi docens, Eötvös Loránd Tudományegyetem Informatikai Kar


Dolgozatunkban egy flexibilis programszintézis-modellt mutatunk be, melyet FlexCoder-nek neveztünk el.
Ennek feladata egy olyan függvénykompozíció szintetizálása, amely a megadott bemeneti
példákat a hozzájuk tartozó kimeneti példákra transzformálja. A bemeneti példák
rendszerünkben minden esetben listák, a kimeneti példák lehetnek egyaránt listák
és skalárértékek is. A függvénykompozíciókban a funkcionális programozásból már jól ismert
függvényeket alkalmazzuk.

A mély tanulás egyre növekvő népszerűségével a programszintézis kutatási
területe nagy áttöréseket ért el a modellek pontosságában és sebességében
egyaránt (Matej Balog et al., 2016). A gépi tanulási algoritmusok
heurisztikaként történő felhasználása az egyik legprominensebb megközelítése az
integrálásuknak a szintetizálási folyamatba.

A kutatási terület ismertetett munkái között még nem láthattunk sok példát a
valóélet-beli környezetben való alkalmazásukra.
Ennek dolgozatunkban taglalt legfőbb okait az alábbi kontribúcióinkkal oldjuk fel:

  • Egy rekurrens neurális háló architektúrát mutatunk be, amely jól
    általánosít a különböző bemeneti hosszokra.
  • Nyelvtanunkban a lambdakifejezések operátorait külön kezeljük ezek
    paramétereitől. Ez lehetővé teszi a paraméterek intervallumának jelentős
    növelését és a szükséges lambdakifejezések számának csökkentését.
  • Architektúránk nem szab mesterséges határt a bemeneti, közbülső és
    kimeneti listák elemeinek intervallumára. Az eddigi munkákhoz képest
    kiterjesztjük a közbülső és kimeneti listák elemeinek intervallumát.
  • ); INSERT INTO `exams`(`id`, `otdk_szam`, `szekcio`, `tagozat`, `cim`, `otdk_helyezes`, `otdk_kulondij`, `nevezo_intezmeny`, `nevezo_kar`, `rezume`) VALUES (

A FlexCoder pontosnak és hatékonynak bizonyult még ötven hosszúságú bemeneti
listákra történő általánosítás esetén is, melyre az eddigi state-of-the-art rendszerek
nem voltak képesek.

Czapp Ádám Tibor az általunk használt nyelvtant és az adatfeldolgozási pipeline-unkat definiálta.
Ez a nyelvtan a neurális háló tanításához elengedhetetlen példageneráláshoz szükséges.
Mucsányi Bálint a rendszerünkben használt neurális háló architektúráját alkotta meg, és tanítását végezte.
Gyarmathy Bálint pedig egy hatékony keresőalgoritmust implementált, melyben a neurális hálót
heurisztikaként használjuk, és függvényenként építjük fel a megoldó függvénykompozíciót.

A dolgozatunkban közölt eredményeink egy cikk alapját is képzik, melyet teljes
cikként elfogadtak a 2021-es International Conference on Pattern Recognition
Applications and Methods (ICPRAM) konferencián.