Построение разбиения двудольного графа занимает гораздо больше времени, чем весь граф

Вы были прав, чтобы использовать WaitForSeconds. Но я подозреваю, что вы пытались использовать его без сопрограмм. Вот как это должно работать:

public void SomeMethod()
{
    StartCoroutine(SomeCoroutine());
}

private IEnumerator SomeCoroutine()
{
    TextUI.text = "Welcome to Number Wizard!";
    yield return WaitForSeconds (3);
    TextUI.text = ("The highest number you can pick is " + max);
    yield return WaitForSeconds (3);
    TextUI.text = ("The lowest number you can pick is " + min);
}
0
задан raffamaiden 3 March 2019 в 08:51
поделиться

1 ответ

Я думаю, что это будет лучше в качестве комментария. Но у меня нет необходимой репутации. Таким образом, я отвечу на ваш вопрос более подробно.

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

Двусторонняя проекция из ненаправленной сети с 500 ребрами приведет к 124750 (или n * (n-1) / 2) ребрам.

library(igraph)
library(tictoc)

g <- data.frame(c(1:500), "A")
g <- graph_from_data_frame(g)
V(g)$type <- bipartite_mapping(g)$type
bp <- bipartite_projection(g)

gsize(g)
500

gsize(bp$proj1)
124750

А время печати увеличилось бы на 8,5 с (MacBook Pro с 2015 г. с Intel i7 и 16 ГБ ОЗУ):

tic("Plotting bibpartite net")
plot(g)
toc()
Plotting bibpartite net: 1.194 sec elapsed

tic("Plotting projected net")
plot(bp$proj1)
toc()
Plotting projected net: 9.621 sec elapsed

Проблема в том, что количество связей в проектируемой сети растет в геометрической прогрессии и время создания сюжета.

0
ответ дан Dimitri Graf 3 March 2019 в 08:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: