우노
[Matrix] MATLAB을 사용한 정방형 Sparse Matrix 만들기 본문
참고사이트(graph500)
SCALE=15
edgefactor=32
%% Set number of vertices.
N = 2^SCALE;
%% Set number of edges.
M = edgefactor * N;
%% Set initiator probabilities.
[A, B, C] = deal (0.57, 0.19, 0.19);
%% Create index arrays.
ijw = ones (3, M);
%% Loop over each order of bit.
ab = A + B;
c_norm = C/(1 - (A + B));
a_norm = A/(A + B);
for ib = 1:SCALE,
%% Compare with probabilities and set bits of indices.
ii_bit = rand (1, M) > ab;
jj_bit = rand (1, M) > ( c_norm * ii_bit + a_norm * not (ii_bit) );
ijw(1:2,:) = ijw(1:2,:) + 2^(ib-1) * [ii_bit; jj_bit];
end
%% Generate weights
ijw(3,:) = unifrnd(0, 1, 1, M);
%% Permute vertex labels
p = randperm (N);
ijw(1:2,:) = p(ijw(1:2,:));
%% Permute the edge list (shuffle)
p = randperm (M);
ijw = ijw(:, p);
%% Adjust to zero-based labels.
ijw(1:2,:) = ijw(1:2,:) - 1;
jiw = transpose(ijw);
writematrix(jiw,'텍스트명.txt','Delimiter',' ')
Kronecker Generator 알고리즘 기반
- SCALE = 노드 수를 결정하는 변수
- edgefactor = 엣지 수를 결정하는 변수
- N = 노드 수(원하는 정방형 메트릭스의 행렬 크기)
- M = 엣지 수(요소수, number of nonzero)
- Density = M / N^2
'Data > Graph & Matrix' 카테고리의 다른 글
[Graph] Matrix의 Node 별 NNZ 구하기 (0) | 2020.12.01 |
---|---|
[Graph] SNAP Stanford 의 Undirected Graph data 를 Matrix data 로 변환하는 방법 (0) | 2020.11.30 |
[Graph] Graphalytics의 Graph data를 Matrix data로 변환하는 방법 (0) | 2020.10.07 |
[Matrix] 희소행렬(SparseMatrix) - COO, CSR, CSC (0) | 2020.07.06 |
[Graph] Graph란? (Undirected, Directed) (0) | 2020.07.03 |
Comments