Skip to content

[WIP] Редизайн книги #36

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions tex/FormalLanguageConstrainedReachabilityLectureNotes.bib
Original file line number Diff line number Diff line change
Expand Up @@ -1465,7 +1465,7 @@ @article{BEATTY1980193

@misc{VavilovGroups,
language={russian},
author = {{\CYRN}иколай Вавилов},
author = {Николай Вавилов},
title = {КОНКРЕТНАЯ ТЕОРИЯ ГРУПП},
year = {2005},
url = {http://dobrochan.com/src/pdf/1512/Вавилов-Н.-Конкретная-теория-групп.-Основные-понят.pdf},
Expand All @@ -1475,15 +1475,15 @@ @misc{VavilovGroups

@misc{VavilovRings,
language={russian},
author = {{\CYRN}иколай Вавилов},
author = {Николай Вавилов},
title = {КОНКРЕТНАЯ ТЕОРИЯ КОЛЕЦ},
year = {2006},
url = {http://www.add3d.ru/wp-content/uploads/2019/10/Vavilov-Rings.pdf},
note = {Дата доступа: 29 июня 2021 г.}
}

@misc{das2018lower,
title={Lower bounds for Combinatorial Algorithms for Boolean Matrix Multiplication},
title={Lower bounds for Combinatorial Algorithms for Boolean Matrix Multiplication},
author={Debarati Das and Michal Koucký and Michael Saks},
year={2018},
eprint={1801.05202},
Expand All @@ -1492,7 +1492,7 @@ @misc{das2018lower
}

@misc{alman2020refined,
title={A Refined Laser Method and Faster Matrix Multiplication},
title={A Refined Laser Method and Faster Matrix Multiplication},
author={Josh Alman and Virginia Vassilevska Williams},
year={2020},
eprint={2010.05846},
Expand All @@ -1502,8 +1502,8 @@ @misc{alman2020refined

@INPROCEEDINGS{5438580,
author={Bansal, Nikhil and Williams, Ryan},
booktitle={2009 50th Annual IEEE Symposium on Foundations of Computer Science},
title={Regularity Lemmas and Combinatorial Algorithms},
booktitle={2009 50th Annual IEEE Symposium on Foundations of Computer Science},
title={Regularity Lemmas and Combinatorial Algorithms},
year={2009},
volume={},
number={},
Expand All @@ -1528,7 +1528,7 @@ @InProceedings{10.1007/978-3-662-47672-7_89


@article{ArlDinKro70,
author = {{\CYRV}. Арлазаров and {\CYRE}. Диниц and {\CYRM}. Кронрод and {\CYRI}. Фараджев},
author = {В. Арлазаров and Е. Диниц and М. Кронрод and И. Фараджев},
title = {Об экономном построении транзитивного замыкания ориентированного графа},
journal = {Докл. АН СССР},
year = {1970},
Expand Down Expand Up @@ -1731,7 +1731,7 @@ @article{10.1145/3571252
}

@misc{istomina2023finegrained,
title={Fine-grained reductions around CFL-reachability},
title={Fine-grained reductions around CFL-reachability},
author={Aleksandra Istomina and Semyon Grigorev and Ekaterina Shemetova},
year={2023},
eprint={2306.15967},
Expand Down Expand Up @@ -1981,4 +1981,4 @@ @article{chomsky1958finite
pages={91--112},
year={1958},
publisher={Elsevier}
}
}
290 changes: 145 additions & 145 deletions tex/FormalLanguageTheoryIntro.tex

Large diffs are not rendered by default.

415 changes: 208 additions & 207 deletions tex/GraphTheoryIntro.tex

Large diffs are not rendered by default.

71 changes: 37 additions & 34 deletions tex/Introduction.tex
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
\chapter*{Введение\markboth{Введение}{}}
\chapter*{Введение}

Теория формальных языков находит применение не только в ставших уже классическими задачах синтаксического анализа кода (языков программирования, искусственных языков) и естественных языков, но и в других областях, таких как статический анализ кода, графовые базы данных, биоинформатика, машинное обучение.

Например, в машинном обучении использование формальных грамматик позволяет передать искусственной генеративной нейронной сети, предназначенной для построения цепочек с определёнными свойствами, знания о синтаксической структуре этих цепочек, что позволяет существенно упростить процесс обучения и повысить качество результата~\cite{10.5555/3305381.3305582}.
Вместе с этим, развиваются подходы, позволяющие нейронным сетям наоборот извлекать синтаксическую структуру (строить дерево вывода) для входных цепочек~\cite{kasai-etal-2017-tag,kasai-etal-2018-end}.
Например, в машинном обучении использование формальных грамматик позволяет передать искусственной генеративной нейронной сети, предназначенной для построения цепочек с определёнными свойствами, знания о синтаксической структуре этих цепочек, что позволяет существенно упростить процесс обучения и повысить качество результата~\sidecite{10.5555/3305381.3305582}.
Вместе с этим, развиваются подходы, позволяющие нейронным сетям наоборот извлекать синтаксическую структуру (строить дерево вывода) для входных цепочек~\sidecite{kasai-etal-2017-tag,kasai-etal-2018-end}.

В биоинформатике формальные грамматики нашли широкое применение для описания особенностей вторичной структуры геномных и белковых последовательностей~\cite{Dyrka2019,WJAnderson2012,zier2013rna}.
В биоинформатике формальные грамматики нашли широкое применение для описания особенностей вторичной структуры геномных и белковых последовательностей~\sidecite{Dyrka2019,WJAnderson2012,zier2013rna}.
Соответствующие алгоритмы синтаксического анализа используются при создании инструментов обработки данных.

Таким образом, теория формальных языков выступает в качестве основы для многих прикладных областей, а алгоритмы синтаксического анализа применимы не только для обработки естественных языков или языков программирования.
Expand All @@ -25,16 +25,16 @@ \chapter*{Введение\markboth{Введение}{}}
Иными словами, задача поиска путей может быть сформулирована следующим образом: необходимо найти такие пути в графе, что слова, получаемые конкатенацией меток их рёбер, принадлежат заданному языку.
Такой класс задач будем называть задачами поиска путей с ограничениям в терминах формальных языков.

Подобный класс задач часто возникает в областях, связанных с анализом граф-структурированных данных и активно исследуется~\cite{doi:10.1137/S0097539798337716,axelsson2011formal,10.1007/978-3-642-22321-1_24,Ward:2010:CRL:1710158.1710234,barrett2007label,doi:10.1137/S0097539798337716}.
Подобный класс задач часто возникает в областях, связанных с анализом граф-структурированных данных и активно исследуется~\sidecite{doi:10.1137/S0097539798337716,axelsson2011formal,10.1007/978-3-642-22321-1_24,Ward:2010:CRL:1710158.1710234,barrett2007label,doi:10.1137/S0097539798337716}.
Исследуются как классы языков, применяемых для задания ограничений, так и различные постановки задачи.

Граф-структурированные данные встречаются не только в графовых базах данных, но и при статическом анализе кода: по программе можно построить различные графы отображающие её свойства.
Скажем, граф вызовов, граф потока данных и так далее.
Оказывается, что поиск путей в специального вида графах с использованием ограничений в терминах формальных языков позволяет исследовать некоторые нетривиальные свойства программы.
Например проводить межпроцедурный анализ указателей или анализ псевдонимов (алиасов)~\cite{Zheng,10.1145/2001420.2001440,10.1145/2714064.2660213}, строить срезы программ~\cite{10.1145/193173.195287}, проводить анализ типов~\cite{10.1145/373243.360208}.
Например проводить межпроцедурный анализ указателей или анализ псевдонимов (алиасов)~\sidecite{Zheng,10.1145/2001420.2001440,10.1145/2714064.2660213}, строить срезы программ~\sidecite{10.1145/193173.195287}, проводить анализ типов~\sidecite{10.1145/373243.360208}.

В данной работе представлен ряд алгоритмов для поиска путей с ограничениями в терминах формальных языков.
Основной акцент будет сделан на контекстно-свободных языках, однако будут затронуты и другие классы: регулярные, многокомпонентные контекстно-свободные (Multiple Context-Free Languages, MCFL~\cite{SEKI1991191}) и конъюнктивные языки.
Основной акцент будет сделан на контекстно-свободных языках, однако будут затронуты и другие классы: регулярные, многокомпонентные контекстно-свободные (Multiple Context-Free Languages, MCFL~\sidecite{SEKI1991191}) и конъюнктивные языки.
Будет показано, что теория формальных языков и алгоритмы синтаксического анализа применимы не только для анализа языков программирования или естественных языков, а также для анализа графовых баз данных и статического анализа кода, что приводит к возникновению новых задач и переосмыслению старых.


Expand All @@ -47,32 +47,35 @@ \chapter*{Введение\markboth{Введение}{}}
Большинство алгоритмов будут основаны на классических алгоритмах синтаксического анализа, таких как CYK или LR.
%Все главы, начиная с~\ref{chpt:GraphTheoryIntro}, снабжены списком вопросов и задач для самостоятельного решения и закрепления материала.

\begin{center}

\begin{figure*}
\begin{center}
\begin{tikzpicture}[shorten >=1pt,on grid,auto]
\node (q_linal) [text width=4cm] {Некоторые понятия линейной алгебры};
\node (q_graphtheory) [below of=q_linal, text width=4cm] {Некоторые сведения из теории графов};
\node (q_fortmallang) [right of=q_graphtheory, text width=4cm] {Общие сведения теории формальных языков};
\node (q_reglang) [below of=q_fortmallang, text width=4cm] {Регулярные языки};
\node (q_cflang) [right of=q_reglang, text width=4cm] {Контекстно-свободные языки и грамматики};
\node (q_mcfl) [right of=q_cflang, text width=4cm] {Многокомпонентные контекстно-свободные языки};
\node (q_flpq) [below of=q_graphtheory, text width=4cm] {Пути с ограничениями в терминах формальных языков};
\node (q_rpq) [below of=q_reglang, text width=4cm] {Поиск путей с регулярными ограничениями};
\node (q_cfpq) [below of=q_cflang, text width=4cm] {Пути с ограничениями в терминах контекстно-свободных языков};
\node (q_mcfpq) [below of=q_mcfl, text width=4cm] {Пути с ограничениями в терминах многокомпонентных контекстно-свободных языков};
\path[->]
(q_linal) edge node {} (q_graphtheory)
(q_graphtheory) edge node {} (q_flpq)
(q_fortmallang) edge node {} (q_flpq)
(q_fortmallang) edge node {} (q_reglang)
(q_fortmallang) edge node {} (q_cflang)
(q_fortmallang) edge node {} (q_mcfl)
(q_reglang) edge node {} (q_rpq)
(q_cflang) edge node {} (q_cfpq)
(q_mcfl) edge node {} (q_mcfpq)
(q_flpq) edge node {} (q_rpq)
(q_flpq) edge node {} (q_cfpq)
(q_flpq) edge node {} (q_mcfpq)
;
\node (q_linal) [text width=4cm] {Некоторые понятия линейной алгебры};
\node (q_graphtheory) [below of=q_linal, text width=4cm] {Некоторые сведения из теории графов};
\node (q_fortmallang) [right of=q_graphtheory, text width=4cm] {Общие сведения теории формальных языков};
\node (q_reglang) [below of=q_fortmallang, text width=4cm] {Регулярные языки};
\node (q_cflang) [right of=q_reglang, text width=4cm] {Контекстно-свободные языки и грамматики};
\node (q_mcfl) [right of=q_cflang, text width=4cm] {Многокомпонентные контекстно-свободные языки};
\node (q_flpq) [below of=q_graphtheory, text width=4cm] {Пути с ограничениями в терминах формальных языков};

\node (q_rpq) [below of=q_reglang, text width=4cm] {Поиск путей с регулярными ограничениями};
\node (q_cfpq) [below of=q_cflang, text width=4cm] {Пути с ограничениями в терминах контекстно-свободных языков};
\node (q_mcfpq) [below of=q_mcfl, text width=4cm] {Пути с ограничениями в терминах многокомпонентных контекстно-свободных языков};
\path[->]
(q_linal) edge node {} (q_graphtheory)
(q_graphtheory) edge node {} (q_flpq)
(q_fortmallang) edge node {} (q_flpq)
(q_fortmallang) edge node {} (q_reglang)
(q_fortmallang) edge node {} (q_cflang)
(q_fortmallang) edge node {} (q_mcfl)
(q_reglang) edge node {} (q_rpq)
(q_cflang) edge node {} (q_cfpq)
(q_mcfl) edge node {} (q_mcfpq)
(q_flpq) edge node {} (q_rpq)
(q_flpq) edge node {} (q_cfpq)
(q_flpq) edge node {} (q_mcfpq)
;
\end{tikzpicture}
\end{center}
\end{center}
\end{figure*}
Loading
Loading