Skip to content

Task6 - #6

Open
ns-58 wants to merge 27 commits into
mainfrom
Task6
Open

Task6#6
ns-58 wants to merge 27 commits into
mainfrom
Task6

Conversation

@ns-58

@ns-58 ns-58 commented Jan 23, 2026

Copy link
Copy Markdown
Owner
  • Используя возможности pyformlang для работы с контекстно-свободными грамматиками реализовать функцию преобразования контекстно-свободной грамматики в ослабленную нормальную форму Хомского (ОНФХ).
    def cfg_to_weak_normal_form(cfg: pyformlang.cfg.CFG) -> pyformlang.cfg.CFG:
        pass
  • Реализовать функцию, основанную на алгоритме Хеллингса, решающую задачу достижимости между всеми парами вершин для заданного графа и заданной КС грамматики (не обязательно в ОНФХ).
    • Для работы с графом использовать функции из предыдущих задач.
    def hellings_based_cfpq(
      cfg: pyformlang.cfg.CFG,
      graph: nx.DiGraph,
      start_nodes: set[int] = None,
      final_nodes: set[int] = None,
    ) -> set[tuple[int, int]]:
       pass

@ns-58

ns-58 commented Apr 8, 2026

Copy link
Copy Markdown
Owner Author

@aartdem, готово к ревью

Comment thread project/hellings.py Outdated
result = {
(v, u)
for (nt, v, u) in r
if nt == pyformlang.cfg.Terminal("S") and v in start_nodes and u in final_nodes

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nt == pyformlang.cfg.Terminal("S") Достаточно хрупкая проверка, я так понимаю, она проходит только потому, что в тестах статртовый символ всегда "S". Нужно заменить на cfg.start_symbol

Comment thread project/hellings.py Outdated
result = {
(v, u)
for (nt, v, u) in r
if nt == pyformlang.cfg.Terminal("S") and v in start_nodes and u in final_nodes

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

акже если сейчас передать start_nodes=None или final_nodes=None, то это упадет

@ns-58
ns-58 requested a review from aartdem April 20, 2026 21:08
@ns-58

ns-58 commented Apr 20, 2026

Copy link
Copy Markdown
Owner Author

@aartdem, вновь готово к ревью. Также запросил ревью на задачи 8,9,11

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants