-
Notifications
You must be signed in to change notification settings - Fork 104
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
5 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,10 @@ | ||
# Задача 9. Матричный алгоритм решения задачи достижимости с КС ограничениями | ||
# Задача 9. Алгоритм решения задачи достижимости с КС ограничениями, основанный на GLL | ||
|
||
* **Мягкий дедлайн**: 20.04.2023, 23:59 | ||
* **Жёсткий дедлайн**: 24.04.2023, 23:59 | ||
* Полный балл: 12 | ||
* **Жёсткий дедлайн**: 01.05.2024, 23:59 | ||
* Полный балл: 14 | ||
|
||
## Задача | ||
|
||
- [ ] Реализовать **функцию**, основанную на матричном алгоритме, решающую задачу достижимости между всеми парами вершин для заданного графа и заданной КС грамматики. | ||
- Результат работы функции --- множество троек вида (вершина, нетерминал, вершина). | ||
- Предусмотрите возможность получать граф из различных источников в различных форматах. | ||
- Предусмотрите возможность получать грамматику из различных источников (из файла, как результат работы других функций). | ||
- Для преобразования грамматики в ОНФХ использовать результаты предыдущих работ. | ||
- Для реализации матричных операций использовать [sciPy](https://docs.scipy.org/doc/scipy/reference/sparse.html). | ||
- [ ] На основе предыдущей функции реализовать функцию, позволяющую решать задачу достижимости для заданного набора стартовых и финальных вершин, и заданного нетерминала. | ||
- [ ] Реализовать **функцию**, основанную на алгоритме GLL (работающего RSM), решающую задачу достижимости между всеми парами вершин для заданного графа и заданной КС грамматики. | ||
- Для работы с графами и RSM использовать функции из предыдущих задач. | ||
- [ ] Добавить необходимые тесты. | ||
|
||
## Замечания | ||
|
||
Обратите внимание, что реализуемая в данной задаче функция --- уже вторая для решения задачи достижимости с КС ограничениями. Постарайтесь организовать код так, чтобы эти функции, с одной стороны, могли быть использованы вместе (например, в дальнейшем, при сравнении производительности), а с другой --- так, чтобы было понятно, какой именно алгоритм реализуется. Один из возможных вариантов: создать пространство имён (модуль) cfpq, а в него "поселить" функции hellings, matrix, tensor, каждая из которых уже реализует свой алгоритм. Тогда использование будет выглядеть как cfpq.hellings. Данный вариант, конечно, не единственный, но варианты в духе cfqp1, cfpq2, cfpq_N --- плохие. |