Uspio sam, izgleda da je najbolji način da se radi samo sa SparseArray, bez Graph. Evo, ak nekom zatreba dost brzi kod za graf dobiven preferencijalnim povezivanjem u mathematici:
[code:1]N0 = 2;
II = 1000;
m = 2;
A = SparseArray[{{i_, j_} /; N0 + 1 > j > i -> 1}, {II, II}];
a = Table[N0 - 1, {N0}];
ProgressIndicator[Dynamic[k], {N0, II}]
Monitor[For[k = N0 + 1, k <= II, k++,
prefodbrid = RandomSample[a -> Range[k - 1], m];
For[j = 1, j <= m, j++, A[[prefodbrid[[j]], k]] = 1;
a[[prefodbrid[[j]]]]++;]; a = Append[a, m];
], k][/code:1]
Za prikaz je onda jednostavno
[code:1]G = FromAdjacencyMatrix[Normal[A]];
GraphPlot3D[G,
VertexRenderingFunction -> ({Sphere[#1,
3*(Degrees[G]/(2*M[G]))[[#2]]]} &),
EdgeRenderingFunction -> (Cylinder[#1, 0.003] &),
Method -> HighDimensionalEmbedding][/code:1]
jedino, na početku treba dodat 2 paketa da bi se prepoznale FromAdjacencyMatrix, Degrees i M, sam se doda
[code:1]<< Combinatorica`
Needs["GraphUtilities`"][/code:1]
Uspio sam, izgleda da je najbolji način da se radi samo sa SparseArray, bez Graph. Evo, ak nekom zatreba dost brzi kod za graf dobiven preferencijalnim povezivanjem u mathematici:
Kod: | N0 = 2;
II = 1000;
m = 2;
A = SparseArray[{{i_, j_} /; N0 + 1 > j > i -> 1}, {II, II}];
a = Table[N0 - 1, {N0}];
ProgressIndicator[Dynamic[k], {N0, II}]
Monitor[For[k = N0 + 1, k <= II, k++,
prefodbrid = RandomSample[a -> Range[k - 1], m];
For[j = 1, j <= m, j++, A[[prefodbrid[[j]], k]] = 1;
a[[prefodbrid[[j]]]]++;]; a = Append[a, m];
], k] |
Za prikaz je onda jednostavno
Kod: | G = FromAdjacencyMatrix[Normal[A]];
GraphPlot3D[G,
VertexRenderingFunction -> ({Sphere[#1,
3*(Degrees[G]/(2*M[G]))[[#2]]]} &),
EdgeRenderingFunction -> (Cylinder[#1, 0.003] &),
Method -> HighDimensionalEmbedding] |
jedino, na početku treba dodat 2 paketa da bi se prepoznale FromAdjacencyMatrix, Degrees i M, sam se doda
Kod: | << Combinatorica`
Needs["GraphUtilities`"] |
_________________ Između ostalog, mislim da bi kolegij mjera i integral trebao imati svoj podforum među kolegijima treće godine
|