Кіріспе

Грамматикалық эволюция (ГЭ) - эволюциялық есептеу және, нақтырақ айтқанда, генетикалық бағдарламалау (ГП) техникасы (немесе тәсіл) 1998 жылы Лимерик университетінің BDS тобында Конор Райан, JJ Коллинз және Майкл О'Нилл бастамашы болды. Басқа GP әдісі сияқты, мақсат берілген мақсатты функция үшін жақсы жарамдылық мәнін қол жеткізетін орындалатын бағдарламаны, бағдарлама фрагментін немесе функцияны табу. GP-де жарияланған жұмыстардың көпшілігінде LISP стиліне ұқсас ағаштың құрылымды өрнегі тікелей манипуляцияланады, ал GE генетикалық операторларды бүтін сандар тізбегіне қолданады, содан кейін бағдарламаға (немесе ұқсас) грамматиканы қолдану арқылы картаға түсіріледі, ол әдетте BackusNaur түрінде көрсетіледі. GE-нің бір артықшылығы - бұл карталау әр түрлі бағдарламалау тілдері мен басқа құрылымдарға іздеуді қолдануды жеңілдетеді.

Мәселе шешілді

Типсіз, әдеттегі Коза стилі GP-де функция жиынтығы жабылу талабына сәйкес болуы керек: барлық функциялар функция жиынтығындағы барлық басқа функциялардың шығысын өз аргументтері ретінде қабылдауға қабілетті болуы керек. Әдетте, бұл екі рет дәлдікті жылжымалы нүкте сияқты бір дерек түрімен жұмыс істеу арқылы жүзеге асырылады. Қазіргі заманғы генетикалық бағдарламалау жүйелері типтеуді қолдайтын болса да, мұндай типтік жүйелердің грамматикалық эволюцияның шектелуі жоқ.

GE шешімі

GE бір типті шектеудің шешімін пайдаланушының грамматикасына сәйкес (әдетте Backus Naur формасындағы грамматика) шешімдерді дамыта отырып ұсынады. Сондықтан іздеу кеңістігін шектеуге болады және проблеманың домендік білімін қосуға болады. Бұл тәсілге "генотипті" "фенотиптен" ажырату ниеті әсер етті: GP-де іздеу алгоритмі жұмыс істейтін объектілер мен жарамдылықты бағалау функциясының түсіндіруі бір-біріне ұқсас. Керісінше, GE-дің "генотиптері" - берілген контекстсіз грамматикадан ережелерді таңдау үшін кодталатын бүтін сандардың реттелген тізімі. Алайда, фенотип Коза стилі GP-дегідей: рекурсивті бағаланатын ағаш тәрізді құрылым. Бұл модель генетиканың табиғатта қалай жұмыс істейтіндігімен көбірек сәйкес келеді, онда организмнің генотипі мен фенотиптің ақуыздарда соңғы көрінісі және т.б. араларында ажырым бар. Генотип пен фенотипті бөлу модульдік тәсілге мүмкіндік береді. Әсіресе, GE парадигмасының іздеу бөлігін белгілі бір алгоритм немесе әдіспен жүргізудің қажеті жоқ. GE іздеуді орындайтын объектілер генетикалық алгоритмдерде қолданылатын объектілермен бірдей екенін байқаңыз. Бұл, негізінен, кез келген генетикалық алгоритмдер топтамасын, мысалы, танымал GAlib-ті іздеуді жүзеге асыруға пайдалануға болады, ал GE жүйесін іске асыратын әзірлеушіге тек бүтін сандар тізімінен бағдарламалық ағашты карталауды жүзеге асыру туралы ғана уайымдауға тура келеді. Сондай-ақ, іздестіруді басқа әдістермен, мысалы, бөлшектер үйірмесін оңтайландыру арқылы (төмендегі ескертуді қараңыз) орындау мүмкін; ГЭ-нің модульдік табиғаты гибридтерге көптеген мүмкіндіктер береді, өйткені шешілетін қызығушылық проблемасы талап етеді. Brabazon және O'Neill GE-ді корпоративтік банкроттықты болжау, қор индекстерін болжау, облигациялардың кредиттік рейтингтерін және басқа да қаржылық қолданбаларды табысты қолданды. ГЭ сонымен қатар классикалық жыртқыш аң үлгісімен жыртқыш тиімділігі, ниша саны және кездейсоқ мутациялар сияқты параметрлердің экологиялық тұрақтылыққа әсерін зерттеу үшін қолданылды. Берілген функция / терминал жиынтығы үшін генетикалық бағдарламалауға тең келетін ГЭ грамматикасын құрылымдау мүмкін.

Сын

Жетістіктерге қарамастан, GE кейбір сынға ұшырады. Бір мәселе - карталау операциясының нәтижесінде GE-дің генетикалық операторлары эволюциялық алгоритмдердегі генетикалық операторлардың жоғары бағаланатын қасиетіне қол жеткізе алмайды.

Қосымша жұмыстар

GE бастапқыда генетикалық алгоритмнің желілік бейнелеуінің комбинациясы болды. Ол бағдарламалық жасақтаманы әзірлеу үшін генетикалық алгоритм (GADS) және Бакус Наур формасының грамматикасы, олар бастапқыда 1995 жылы Вонг пен Льюнг пен 1996 жылы Уигам ағашта негізделген GP-де қолданылған. GE-ның алғашқы мақаласында айтылған басқа да байланысты жұмыстар Фредерик Груаудың тұжырымдамалық жағынан ұқсас "эмбрионалды" әдісті қолданғаны, сондай-ақ Келлер мен Банжафтың да осыған ұқсас сызықтық геномдарды қолданғаны.

Қолданылу

GE-нің бірнеше іске асырылуы бар. Солардың ішінде келесілері бар. +Жобаның атауыТілЖылЖеріGELabMatlab2018https://github. com/adilraja/GELABPonyGE2Python2017https://arxiv. org/abs/1703.08535gramEvolR2016https://cran. жобаны іске асыру. org/web/packages/gramEvol/vignettes/ge intro. pdfPyNeurGenPython2012http://pyneurgen. Sourceforge (Құқық жасаушы) net/Grammatical evolutionRuby2011http://www. ақылды алгоритмдер. com/табиғаттан шыққаны/эволюция/грамматикалық эволюция. rbAGEC, Lua2011http://nohejl.ru/ name/age/pdf/AGE Құжаттама 1.0.2. pdfPonyGEPython2010https://code. Google-де іздеу. Бұл - GERETRuby2010-ді жүктеу. Бұл туралы "Қазақстан Республикасы Президентінің ресми сайты" сайтында жазылған. ОКД. ie/Орындар/GEVA. htmlECJJava2008https://cs. ГМУ. edu/~eclab/projects/ecj/GENNC++2007https://ritchielab.org/ org/research/past research/52 grammatical evolution neural networkslibGEC++, S Lang, tinycc2004http://bds. лық ie/libGE/

Ресурстар

Грамматикалық эволюция бойынша оқулық. Java-дағы грамматикалық эволюция jGE Java грамматикалық эволюция. Лимерик университетінің биокомпьютерлік және даму жүйелері (BDS) тобы. Майкл О'Ниллдің грамматикалық эволюция бетінде библиография бар. DRP, Directed Ruby Programming, пайдаланушыларға гибридті GE/GP жүйелерін жасауға мүмкіндік беретін эксперименталды жүйе. Ол таза Ruby-де іске асырылған. GERET, грамматикалық эволюция рубидің зерттеу құралдары. gramEvol, R үшін грамматикалық эволюция.