Написать программу, которая для заданного аннотируемого метаграфа и агент-функции над ним выполнит вычисление атрибутов всех элементов. Вход программы: файл описанного ниже формата.
- первая строка – пара чисел: количество узлов (NV) и рёбер (NE) графа;
- пустая строка;
- NE пар номеров узлов, соответствующих началу и концу ребра;
- пустая строка;
- NV + NE правил агент-функции (сначала для узлов, потом для рёбер).
a. одно число – значение атрибута; пример – 0.5.
b. буква и число – значение атрибута копируется из указанного ребра (e) или узла (v); пример – v 2.
c. функция и пара элементов – вычисление функции (min – минимум или * – произведение двух значений) от атрибутов указанных элементов; пример – min e 2 e 4.
файл со списком значений атрибутов элементов графа, сначала узлов, затем рёбер.
Программа должна компилироваться/запускаться и решать поставленную задачу
Аннотируемый метаграф — ориентированный граф, каждый элемент которого описывается набором атрибутов. Агент-функция — набор правил преобразования графа и его элементов.
Код реализован на ЯП Python.
- На вход поступает текстовый файл заявленного формата.
- Данные обрабатывается, собрав данные о количестве узлов и рёбер и агент-функций.
- Создаётся список из пустых элементов длинной NV + NE, где сначала идут значения узлов, а затем - рёбер
- Запускается цикл заполнения значениями в соответсвии с правилами.
- Если встречается правило со значениями ещё не назначенных рёбер и/или узлов, то это правило пропускается до назначения нужных узлов и рёбер
- После заполнения всех атрибутов цикл завершается и формирует выходной текстовый файл требуемого формата


