Тип работы:
Предмет:
Язык работы:


Реализация и экспериментальное исследование GLL-парсера, основанного на рекурсивном автомате

Работа №143060

Тип работы

Дипломные работы, ВКР

Предмет

программирование

Объем работы38
Год сдачи2023
Стоимость4800 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
28
Не подходит работа?

Узнай цену на написание


Введение 4
1. Постановка задачи 7
2. Обзор 8
2.1. Базовые определения из теории формальных языков . . 8
2.2. Базовые определения из теории графов 11
2.3. Задачи поиска путей с контекстно-свободными ограниче­
ниями 12
2.4. Обобщенный LL алгоритм 12
2.5. Алгоритм выполнения контекстно-свободных запросов, ба­
зирующийся на GLL 14
3. Реализация алгоритма 16
3.1. Мотивация 16
3.2. Особенности реализации 17
3.3. Архитектура 18
4. Экспериментальное исследование 21
4.1. Оборудование 21
4.2. Эспериментальные данные 21
4.3. Постановка экспериментов 27
4.4. Результаты экспериментов 28
Заключение 36
Список литературы 37

Представление данных в виде помеченных графов находит широкое применение во многих научных областях, таких как анализ соци­альных сетей, биоинформатика, статический анализ кода и т.д. Одним из основных преимуществ данной модели над реляционной моделью является более быстрое получение информации об отношени­ях между объектами, ведь взаимосвязи между узлами не вычисляются во время выполнения запроса, а хранятся в самой модели.
При работе с такими данными зачастую возникают запросы нави­гации и поиска путей между вершинами. Одним из способов выраже­ния такого рода запросов является определение формальных грамма­тик над алфавитом меток ребер графа. Путь в графе удолетворя- ет ограничениям, задаваемым данной формальной грамматикой, если ему принадлежит слово, получаемое конкатенацией меток на ребрах данного пути. Наибольшее практическое применение находят регуляр­ные грамматики, несколько менее популярными являются контекстно­свободные свободные грамматики. Однако, с точки зрения приложений к языкам программирования и компиляции наиболее важными являют­ся именно контекстно-свободные грамматики. Таким образом встает во­прос о необходимости разработки и реализации алгоритмов поиска пу­тей с контекстно-свободными ограничениям (англ. «Context-Free Path Querying», кратко CFPQ).
Несмотря на то, что проблема выполнения контестно-свободных за­просов широко изучена и существует целый ряд алгоритмов, ее решаю­щих , тем не менее одной из наиболее остро стоящих проблем является низкая производительность существующих алгоритмов, по­этому актуальной задачей является разработка и реализация новых ал­горитмов, решающих данную проблему.
Одним из недавно разработанных методов решения данной зада­чи является алгоритм, использующий матричное представление для получения информации о достижимостях в графе. Данный алгоритм был предложен Азимовым Р.Ш. и основан на матричных операци­ях. В его работе было показанно, что данный алгоритм демонстриру­ет достаточно хорошую производительность. Кроме того, основанный на матрицах CFPQ-алгоритм в дальнейшем стал основой для первой полноценной поддержки контекстно-свободных запросов в результате расширения графовой базы данных RedisGraph.
Матричное представление не единственный возможный способ ре­шения такого рода задач. Более того, результаты исследований пока­зали, что базовые алгоритма распознавания строк по заданной грам­матике могут быть ествественным путем обобщены на входные данные в виде граф. Например, существуют описания того, как пробле­ма поиска путей с контекстно-свободными ограничениями может быть решена с помощью использования обобщенного LL-парсера или обобщенного LR-парсера. Более того, такой подход позволяет получать информацию не только о достижимостях в графе, но и о са­мих путях .
Так, в рамках предыдущих работ была получена реализация алгоритма для выполнения контекстно-свободных запросов в графовой базе данных Neo4j. Данный алгоритм является адаптацией классиче­ского алгоритма синтаксического анализа Generlized LL для выполне­ния контекстно-свободных запросов на графах. Важно отметить, что полученный алгоритм поддерживает весь класс контекстно-свободных языков. Модифицированный GLL, так же как и оригинальный алго­ритм, возвращает информацию не только о достижимостях между вер­шинами, но и информацию для построения самих путей. Несмотря на то, что проведенное экспериментальное исследование показало практи­ческую эффективность полученного решения при работе с контекстно­свободными грамматиками, тем не менее данная реализация не позво­ляет напрямую работать наиболее распространненым на сегодняший день способом задания ограничений — с регулярными выражениями. Для их обработки сначала необходимо преобразование грамматики, что ведет к увеличению количества продукций в ней и, как следствие, ухуд­шению производительности алгоритма GLL. Обойти данную проблему может помочь выражение грамматик в виде реккурсивных автоматов, которые одинаково оптимально поддерживают как регулярные, так и контекстно-свободные грамматики.
Таким образом, целью данной работы является предоставление ре­ализации GLL алгоритма, основанного на рекурсивном автомате, для обработки входных данных в виде графа как для решения задачи до­стижимости, так и для поиска путей. Далее планируется проведение экспериментального исследования с целью выявления значимого повы­шения эффективности по сравнению с альтернативными решениями.

Возникли сложности?

Нужна помощь преподавателя?

Помощь студентам в написании работ!


В ходе работы были достигнуты следующие результаты.
• Реализован классический GLL алгоритм.
• Алгоритм GLL был модификацирован для поддержки представ­ления грамматики в виде рекурсивного автомата.
• Реализовано расширение модификацированного GLL алгоритма на входные данные в виде графа.
• Проведено экспериментальное исследование, по результатам кото­рого можно сделать выводы о том, что полученная модификация алгоритма GLL работает существенно эффективнее классическо­го алгоритма GLL.
Можно выделить несколько дальнейших возможных направлений работы.
• Проведение экспериментального исследования на более широком наборе реальных данных. Примером таких данных являются гра­фы MemoryAliases [21]
• Интеграция с одной из графовых баз данных. Примером такой базы является графовая база данных Neo4j.
Реализация представлена в репозитории: https://github.com/vadyushkins/kotgll.


[1] Azimov Rustam, Grigorev Semyon. Context-Free Path Querying by Matrix Multiplication. - GRADES-NDA ’18. - New York, NY, USA : Association for Computing Machinery, 2018. — 10 p. — URL: https: //doi.org/10.1145/3210259.3210264.
[2] Barcelo Baeza Pablo. Querying Graph Databases // Proceedings of the 32nd ACM SIGMOD-SIGACT-SIGAI Symposium on Principles of Database Systems. — PODS ’13. — New York, NY, USA : Association for Computing Machinery, 2013. — P. 175-188. — URL: https://doi. org/10.1145/2463664.2465216.
[3] Barrett Chris, Jacob Riko, Marathe Madhav. Formal-
Language-Constrained Path Problems // SIAM Journal on Computing. — 2000. — Vol. 30, no. 3. — P. 809-837. —
https://doi.org/10.1137/S0097539798337716.
[4] Zhang Xiaowang, Feng Zhiyong, Wang Xin et al. Context-Free Path Queries on RDF Graphs. — 2016. — 1506.00743.
[5] Context-Free Path Querying with Single-Path Semantics by Matrix Multiplication / Arseniy Terekhov, Artyom Khoroshev, Rustam Az­imov, Semyon Grigorev // Proceedings of the 3rd Joint Interna­tional Workshop on Graph Data Management Experiences & Sys­tems (GRADES) and Network Data Analytics (NDA).— GRADES- NDA’20. — New York, NY, USA : Association for Computing Ma­chinery, 2020.— 12 p.— URL: https://doi.org/10.1145/3398682. 3399163.
[6] An Experimental Study of Context-Free Path Query Evaluation Meth­ods / Jochem Kuijpers, George Fletcher, Nikolay Yakovets, Tobias Lin- daaker // Proceedings of the 31st International Conference on Scientific and Statistical Database Management.— SSDBM ’19.— New York, NY, USA : Association for Computing Machinery, 2019. — P. 121— 132. — URL: https://doi.org/10.1145/3335783.3335791.
[7] Fast Algorithms for Dyck-CFL-Reachability with Applications to Alias Analysis / Qirun Zhang, Michael R. Lyu, Hao Yuan, Zhendong Su // SIGPLAN Not. - 2013. - Vol. 48, no. 6. - P. 435-446. - URL: https: //doi.org/10.1145/2499370.2462159.
[8] Grigorev Semyon, Ragozina Anastasiya. Context-Free Path Querying with Structural Representation of Result // Proceedings of the 13th Central amp; Eastern European Software Engineering Conference in Russia. — CEE-SECR ’17.— New York, NY, USA : Association for Computing Machinery, 2017.— 7 p. — URL: https://doi.org/10. 1145/3166094.3166104.
[9] Grigorev Semyon, Ragozina Anastasiya. Context-free path querying with structural representation of result // Proceedings of the 13th Central & Eastern European Software Engineering Conference in Russia. - ACM, 2017. - oct. - URL:
[10] Hellings Jelle. Querying for Paths in Graphs using Context-Free Path Queries. - 2016. - 1502.02242.
[11] Hellings Jelle. Explaining Results of Path Queries on Graphs // Soft­ware Foundations for Data Interoperability and Large Scale Graph Data Analytics / Ed. by Lu Qin, Wenjie Zhang, Ying Zhang et al. — Cham : Springer International Publishing, 2020. — P. 84-98.
[12] Medeiros Ciro M., Musicante Martin A., Costa Umberto S. Efficient Evaluation of Context-Free Path Queries for Graph Databases // Pro­ceedings of the 33rd Annual ACM Symposium on Applied Comput­ing. — SAC ’18.— New York, NY, USA : Association for Comput­ing Machinery, 2018.— P. 1230-1237.— URL: https://doi.org/10. 1145/3167132.3167265.
[13] Medeiros Ciro M., Musicante Martin A., Costa Umberto S. An Algo­rithm for Context-Free Path Queries over Graph Databases. — 2020. — 2004.03477.
[14] Multiple-Source Context-Free Path Querying in Terms of Linear Alge­bra / Arseniy Terekhov, Vlada Pogozhelskaya, Vadim Abzalov et al. // International Conference on Extending Database Technology.— 2021.
[15] Shemetova Ekaterina, Azimov Rustam, Orachev Egor et al. One Algo­rithm to Evaluate Them All: Unified Linear Algebra Based Approa
... всего 22 источников


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2024 Cервис помощи студентам в выполнении работ