NetworkX: swap - double edge swap
๐ ๋ชฉ์ฐจ (Contents)
1-line summary
- Before: (u, v) and (x, y)
- AFter : (u, x) and (v, y)
network - double edge swap
- network์ ์ ํ, ํน์ฑ๋ค์ ํ๋จํ๋ ์งํ๋ค์ ์ ํจํจ์ ๋ณด์ด๊ธฐ ์ํด์๋ ๋ณดํต reference network๋ฅผ ์ ์ํ๊ณ ์ฐจ์ด๋ฅผ ๋ณด์ด๋ ์์ผ๋ก ์งํ๋์ฃ .
- ์ด ๋, ๋ง์ด ์ฐ์ด๋ reference network๋ โdegree distribution์ ๋์ผํ๊ฒ ์ ์งํ๊ณ , edge๋ฅผ ์ฌ๋ฌ๋ฒ ๋ฐ๊พผ ๋คํธ์ํฌโ์ ๋๋ค. ํํ equivalent random network๋ผ๊ณ ํ์ฃ .
- ์ด ๋, ํ๋ฒ ๋ฐ๊พธ์ด์ฃผ๋ edge swap์ด ๋ฐ๋ก networkx.algorithms.swap.double_edge_swap์ด๋ฉฐ, ๊ทธ๋ฆผ์ผ๋ก ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ฃ .
- ์ด๋ฅผ ์ฌ๋ฌ๋ฒ ๋ฐ๋ณตํ๋ฉด, degree distribution์ ๋์ผํ๋๋ผ๋ ๋ค๋ฅธ ํํ์ G๊ฐ ๋์ค๊ฒ ๋ฉ๋๋ค.
- ๋ฐ๋ผ์, ์ด๋ฐ equivalent network์ ๋ํด์๋ ์ฐจ์ด์ ์ด ๋ช ํํ๊ฒ ๋๋ฌ๋๋ฉด, ๊ทธ network๋ ํ์คํ ์ฐจ๋ณ์ ์ ๊ฐ์ง๊ณ ์๋ค, ๋ผ๊ณ ํ ์ ์๋ ๊ฒ์ด์ฃ .
u--v u v
becomes | |
x--y x y
do it.
- ์ฝ๋๋ ๊ฐ๋จํฉ๋๋ค.
import networkx as nx
G = nx.Graph()
G.add_edges_from([
(0, 1),
(2, 3)
])
print(f"Before: {G.edges()}")
# nswap: ๋ช ๊ฐ์ edge๋ฅผ ๋ฐ๊ฟ ๊ฒ์ธ์ง,
# maxtries: 1๋ฒ swapํ ๋, ์๋๋ฅผ ๋ช ๋ฒ์ธ๋ ํ ๊ฒ์ธ์ง?
nx.double_edge_swap(G, nswap=1, max_tries=100, seed=0)
print(f"After : {G.edges()}")
Before: [(0, 1), (2, 3)]
After : [(0, 3), (1, 2)]
reference
GitHub์์ ์ด ๊ธ์ ๋งํฌ๋ค์ด ์๋ณธ ๋ณด๊ธฐ & ์์ ์ ์src/content/posts/2020-02-26-nx_double_edge_swap
๐ ์ฐ๊ด ์ง์ ํ๋ธ:๐ python-libs ์นดํ
๊ณ ๋ฆฌ๐ธ NetworkX ์ปค๋ฆฌํ๋ผ#python#python-libs#networkx
๐กRELATED ARTICLES ยท ํจ๊ป ์ฝ์ผ๋ฉด ์ข์ ์ฐ๊ด ํฌ์คํธ
python-libs
NetworkX: second order centrality
์ฝ์ด๋ณด๊ธฐ→
python-libs
Networkx์์ node ํฉ์น๊ธฐ(MERGE node)
์ฝ์ด๋ณด๊ธฐ→
python-libs
ํ๊ตญ ํํฉ์ฌ ํผ์ณ๋ง ๋คํธ์ํฌ ๋ถ์ - 2ํธ - Data Collection Wisely
์ฝ์ด๋ณด๊ธฐ→
python-libs
ํ๊ตญ ํํฉ์ฌ ํผ์ณ๋ง ๋คํธ์ํฌ ๋ถ์ - 3ํธ - Data Analysis
์ฝ์ด๋ณด๊ธฐ→