Я пытаюсь создать граф со случайно соединенными узлами. Узлы должны быть подключены случайным образом, и если узел уже подключен к другому узлу, он не должен снова подключаться к тому же узлу, используя другой порт inout
.
В документах естьВот этот пример для создания случайного графа:
module RandomGraph {
parameters:
int count;
double connectedness; // 0.0<x<1.0
submodules:
node[count]: Node {
gates:
in[count];
out[count];
}
connections allowunconnected:
for i=0..count-1, for j=0..count-1 {
node[i].out[j] --> node[j].in[i]
if i!=j && uniform(0,1)<connectedness;
}
}
Но этот метод может соединять одни и те же два узла несколько раз, используя разные порты, а это не то, что мне нужно.
Как видно из приведенного выше снимка экрана, node1
подключен к node6
через два разных порта.
Я не хочу этого поведения, потому что в своем коде я отправляю сообщение всемиз портов, используя цикл for, который затем отправляет одно и то же сообщение дважды одному и тому же узлу.
Я мог бы попытаться удалить несколько соединений с одним и тем же узлом в функции initialize()
Я думаю, я просто подумал об этом, пока ясоздаю этот пост. Я еще не пробовал, но буду и буду делиться результатом. Я также хотел бы услышать ваши решения.