Любой алгоритм / подход, чтобы «моделировать» циклический граф во времени? - PullRequest
2 голосов
/ 06 ноября 2011

Я не знаю, возможно ли что-то подобное, или где искать что-то, что могло бы помочь решить то же самое - отсюда и вопрос поиска некоторых указателей.

Вот моя ситуация: у меня естьматричное представление графика деятельности.Каждая запись в матрице указывает на относительное влияние действия на другое, т. Е. (В «системе» есть «n» действий. Матрица представляет собой просто «nxn» представление этих действий, а записи подразумевают относительное влияние)

  • 0 (без воздействия) 1, 2, 3 (низкий, средний, высокий) «положительный» эффект, т. Е. Они положительно (добавляют) способствуют деятельности
  • Отрицательные числа: -1, -2, -3 подразумевают «отрицательное» воздействие, т. Е. Они отрицательно (вычитают) вносят

(числа являются информационными, могут быть любыми числами на самом деле, но просто упростили их до 0-3).

Теперь, учитывая эту матрицу, у меня будет описание графика.То, что я хотел бы сделать, это «симулировать» график во времени, т.е. начиная со времени t=0 Я хотел бы иметь возможность симулировать работу «системы» во времени.У меня наверняка будут циклы на графике (очень вероятно), и поэтому здесь будет уместно моделирование на основе временных шагов.

Я ничего не знаю о том, что я мог бы использовать, чтобы помочь мне понять эффектысо временем для циклического графа.Мне известно ТОЛЬКО одно такое решение, т. Е. Использовать System Dynamics и преобразовать этот график в график запасов / потоков, а затем смоделировать его, чтобы получить то, что я хочу.Фактически график (выше) является тогда диаграммой причинно-следственной связи.

Проблема: я действительно хотел бы перейти от матричного представления к моделируемой системе, не заставляя кого-то понимать динамику системы (в основном делать что-тона заднем плане).

Вопрос в том, является ли System Dynamics единственным способом добиться того, что я ищу?Как мне следует систематически преобразовывать любое произвольное матричное представление графа в динамическую модель системы?

Если НЕ системная динамика, то на какие еще подходы я должен смотреть, чтобы решить такую ​​проблему?Будем признательны за имена алгоритмов с соответствующими указателями для справки!

Пример представления графика:

Скажем, у меня есть следующая матрица из 3 действий: Строки: Узлы, которые являются «причиной» (исходящие)Стрелки) Столбцы: «затронутые» узлы (входящие стрелки)

__| A | B | C |
A | - | 3 | 2 |
B | 1 | - |-2 |
C |-1 | 0 | - |

Если я «запустил» график (симуляцию) с 10 единицами для A, я бы хотел посмотреть, как система проигрывает со временемучитывая относительные воздействия в матричном представлении.

ОБНОВЛЕНИЕ: «Моделирование» будет происходить в виде последовательности временных шагов, т. е. в момент времени t = 0 узел А будет иметь значение10 и B умножают на 3 или добавляют 3 в зависимости от того, как кто-то захочет указать «влияние».Накопленные значения узлов во времени могут быть нанесены на график, чтобы показать тенденцию изменения значения.

Ответы [ 2 ]

5 голосов
/ 06 ноября 2011

Похоже, вы ищете цепи Маркова .

Пусть G - система состояний.

enter image description here

Вероятность перехода системы из одного состояния в другое определяется матрицей T .

enter image description here f

После n переносов, вероятность перехода системы из одного состояния в другое определяется как T n .

enter image description here
Например, после 3 переносов:

enter image description here
Эта матрица представляет:

  • Если система находится в A, она имеет
    • 32,4% вероятность остаться на A
    • 31,2% вероятность перехода на B
    • 36,4% вероятность перехода на C
  • и так далее для Bи C

Я бы попытался применить это к вашей ситуации для вас, но я не совсем понимаю это.Если вы хотите использовать цепи Маркова, вы должны установить вероятность переноса системы.Обратите внимание, что, поскольку это «шанс нахождения системы в данном узле», вы можете применить ее к совокупности систем.Например: после n переносов X.XX% населения будет на Y .

2 голосов
/ 08 ноября 2011

Было предпринято несколько попыток сделать это с различными источниками в литературе по кибернетике и системной динамике, но без особого успеха.

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

Матрица идентифицирует петли обратной связи, которые существуют в вашей системе, но чтобы связать эту структуру с поведением,Вам также необходимо указать отношения фазы и усиления вокруг этих петель (т. е. определить запасы и наклон каждой связи, которая может быть нелинейной).Без этого просто невозможно определить, какие циклы являются доминирующими факторами поведения.

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

...