LINUX.ORG.RU

Существуют ли в природе средства «денормализации» ориентированного графа?


0

1

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

★★★★★

Последнее исправление: ya-betmen (всего исправлений: 1)

Ответ на: комментарий от dmitry_vk

Я не смог полностью понять вопрос

Я сам не до конца понимаю его в математической терминологии т.к. в теории даже таких задач не встречалось. Попробую объяснить в чём проблема на практике. Есть примерно такой граф

            |#|-----------
        --->|C|--        |
        |   |#| |        |
|#|   |###|     --->|#|  |  |#|
|A|-->| B |<--------|D|  -->|E|
|#|   |###|     --->|#|  -->|#|
       | |  |#| |        |
       | -->|F|--        |
       |    |#|          |
       -------------------
Вершины A и E - соответственно вход и выход. Очевидно что путей выхода несколько:
ABCE
ABCDBCE
...
А ещё можно зациклиться
A{BCD}E
ABCD{BFD}E
...

При этом по документам граф задан через рёбра (начиная от 20-и). Вершин штук 10-15. Порой возникает желание понять, а сколько ещё неожиданных (тех которые не предполагала спецификация, а предполагает она обычно штуки 3-4, остальные в тории никогда не случатся) путей выхода будет у этого графа и где нужно быть внимательнее что б не улететь в цикл. Конечно можно и нарисовать это дело, но в реальности мозгу проще было бы воспринять n-ое число линейных вариантов, вместо дикого клубка на рисунке.

Хм, пожалуй теперь я сформулирую вопрос конкретнее, нужна тулза для поиска всех возможных путей из точки А в точку Е, учитывающая циклы.

но, кажется, вам нужна конденсация исходного графа

Мне нужна прежде всего тулза

ya-betmen ★★★★★
() автор топика
Ответ на: комментарий от ya-betmen

нужна тулза для поиска всех возможных путей из точки А в точку Е, учитывающая циклы.

математические всякие. Wolfram Mathematica, Sage.

arkhnchul ★★★
()
Ответ на: комментарий от ya-betmen
int i;
scanf("%i", &i);
while (i) {
    printf("%i\n", i);
    i--;
}

Вариантов прохождения этой программы столько же, сколько значений может поместиться в int, то есть, обычно, 2 ^ 31 - 1 вариантов. И все они абсолютно корректны и не являются бесконечными циклами. Как ты предлагаешь строить такой граф?

KivApple ★★★★★
()
Ответ на: комментарий от KivApple

А мне не нужен граф что б осознать варианты развития событий при исполнении этой программы. Поэтому я даже не предлагаю строить для неё граф.

ya-betmen ★★★★★
() автор топика
Последнее исправление: ya-betmen (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.