質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Q&A

0回答

830閲覧

pythonのライブラリであるNetworkxを用いて重みありのグラフを作成し,その重み成分を二次元配列として取り出したい

toshi77

総合スコア16

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

0グッド

0クリップ

投稿2018/12/24 13:18

前提・実現したいこと

現在大学学部三年生でネットワークの勉強をしています.
pythonのライブラリであるNetworkxを用いて重みありのスモールワールドネットワークのグラフを作成し,その重み成分を二次元配列として取り出したい方法がわかりません.もしよろしければ相談乗っていただけると幸いです.
また,ネットワークの構築方法そのものに対して何かツッコミどころがあれば助言くださると嬉しいです.
よろしくお願いします.

python

1### 該当のソースコード 2import networkx as nx 3import matplotlib.pyplot as plt 4import numpy as np 5from numpy.random import * 6 7#グラフオブジェクトの作成 8G = nx.Graph() 9 10#n個のノードオブジェクトを作成 11nodes = np.array(range(1,n+1)) 12 13#エッジの空のリストを作成 14edges=[] 15 16#始めのエッジの重みの初期重み :i行j列の乱数がi番目のノードとj番目のノード 間のエッジの重みになる 17reservoir_weights = np.random.rand(n,n) - 0.5 #-0.5~0.5の一様乱数 18 19#n:ノード 数,k:隣接するノードへのリンクの数,p:各リンクの繋ぎかえ確率 20n = 100 21k = 5 22p = 0.1 23 24#レギュラーグラフを作成 25for i in range(1,n+1): 26 for j in range(1, k+1): 27 v = i 28 u = i + j 29 if u > n: 30 u = u % (n + 1) + 1 31 32 tpl = (nodes[v-1], nodes[u-1],reservoir_weights[i-1, u-1]) 33 edges.append(tpl) 34 35G.add_weighted_edges_from(edges) 36 37#確率p=0.1でエッジをつなぎ変えてスモールワールドネットワークを作成 38for i in range(1, n+1): 39 for j in range(1, k+1): 40 if random() < p: 41 v = i 42 old_u = i + j 43 if old_u > n: 44 old_u = old_u % (n +1) + 1 45 new_u = randint(1, n) 46 while v != new_u and G.has_edge(v, new_u): 47 new_u = randint(1,n) 48 49 tpl = (nodes[v-1], nodes[new_u-1],reservoir_weights[i-1, new_u-1]) 50 edges.append(tpl) 51 G.remove_edge(v,old_u) 52 53G.add_weighted_edges_from(edges) 54 55#グラフのエッジの重みを表示 56G.edges(data = True)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2018/12/24 13:21

インデントが消されたりコメントがmarkdownとして解釈されたりと読めたものではないので、https://teratail.com/tour を参考にシンタックスハイライト・マークダウンでコード部分を囲み適切に表示されるようにしてください。質問は再編集できます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問