Skip to content

Rocket-coder/rhythm_test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Задание

Написать программу, которая для заданного аннотируемого метаграфа и агент-функции над ним выполнит вычисление атрибутов всех элементов. Вход программы: файл описанного ниже формата.

  1. первая строка – пара чисел: количество узлов (NV) и рёбер (NE) графа;
  2. пустая строка;
  3. NE пар номеров узлов, соответствующих началу и концу ребра;
  4. пустая строка;
  5. NV + NE правил агент-функции (сначала для узлов, потом для рёбер).

Варианты правил:

a. одно число – значение атрибута; пример – 0.5.

b. буква и число – значение атрибута копируется из указанного ребра (e) или узла (v); пример – v 2.

c. функция и пара элементов – вычисление функции (min – минимум или * – произведение двух значений) от атрибутов указанных элементов; пример – min e 2 e 4.

Результат работы программы:

файл со списком значений атрибутов элементов графа, сначала узлов, затем рёбер.

Ожидаемый результат: исходный код программы.

Программа должна компилироваться/запускаться и решать поставленную задачу

Определения

Аннотируемый метаграф — ориентированный граф, каждый элемент которого описывается набором атрибутов. Агент-функция — набор правил преобразования графа и его элементов.

Пример

Метаграф:

image

image

image

Решение

Код реализован на ЯП Python.

  1. На вход поступает текстовый файл заявленного формата.
  2. Данные обрабатывается, собрав данные о количестве узлов и рёбер и агент-функций.
  3. Создаётся список из пустых элементов длинной NV + NE, где сначала идут значения узлов, а затем - рёбер
  4. Запускается цикл заполнения значениями в соответсвии с правилами.
  5. Если встречается правило со значениями ещё не назначенных рёбер и/или узлов, то это правило пропускается до назначения нужных узлов и рёбер
  6. После заполнения всех атрибутов цикл завершается и формирует выходной текстовый файл требуемого формата

About

Тестовое задание

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages