def runthis(): fin = open("common.txt") String = fin.readlines() fin.close() for i in range(len(String)): String[i] = String[i][:-1] Mapping = {'a': 1, 'b': 2, 'c':3, 'd':4, 'e':5, 'f':6, 'g':7, 'h':8, 'i':9, 'j':10, 'k':11, 'l':12, 'm':13, 'n':14, 'o':15, 'p':16, 'q':17, 'r':18, 's':19, 't':20, 'u':21, 'v':22, 'w':23, 'x':24, 'y':25, 'z':26} ''' numericals = [] for i in range(len(String)): numericals.append((String[i], Mapping[String[i][0]], Mapping[String[i][1]], Mapping[String[i][2]])) print numericals ''' G = nx.Graph() for i in range(len(String)): for j in range(i+1, len(String)): if String[i][0] == String[j][0] and String[i][1] == String[j][1] and String[i][2] != String[j][2] or String[i][0] == String[j][0] and String[i][1] != String[j][1] and String[i][2] == String[j][2] or String[i][0] != String[j][0] and String[i][1] == String[j][1] and String[i][2] == String[j][2]: G.add_edge(String[i], String[j]) fin = open("wordmorph.Mygml", 'w') string = pickle.dumps(G) fin.write(string) fin.close() AtoB.createRealWorld("wordmorph") print "Number of words:", len(String) print "Drawing Graph..." nx.draw(G) plt.show()
def runthis(): fin = open('p2p-Gnutella08.txt','r') String = fin.read() fin.close() ConnectionList = String.rsplit()[29:] EdgeList = [] for i in range(0,len(ConnectionList),2): EdgeList.append((int(ConnectionList[i]), int(ConnectionList[i+1]))) G = nx.Graph() G.add_edges_from(EdgeList) G = nx.subgraph(G,range(500)) fin = open("gnutella.Mygml", 'w') string = pickle.dumps(G) fin.write(string) fin.close() AtoB.createRealWorld("gnutella")
#n = 200 edgeProb = 0.3 degree = 3 #name = "gnutella" #trials = 10000 start = 100 end = 401 step = 20 x = [] plainAdamic = [] twoWayAdamic = [] for n in range(start, end, step): AtoB.createScaleFreeNetwork(n, degree) G = nx.read_gpickle("SFN_" + str(n) + "_" + str(degree) + ".gpickle") result = AtoB.simple_query(G) plainAdamic.append(result[0]) twoWayAdamic.append(result[1]) x.append(n) plt.plot(x, plainAdamic) plt.plot(x, twoWayAdamic) plt.xlabel("Number of Nodes") plt.ylabel("Time Taken") plt.title("Average time taken to compute the approximate shortest path for all the nC2 pairs") plt.show() #AtoB.createErdos(n,edgeProb)
import numpy import math import AtoB import matplotlib.pyplot as plt import random import networkx as nx import pdb import pickle import generateGraph print "Word Morph Game Network:" print "The Path Concatenation Algorithm (PCA) has been applied to the above graph" while(True): word1 = raw_input("Enter word 1: ") word2 = raw_input("Enter word 2: ") AtoB.main(0, "RW", 'wordmorph', [word1,word2]) condition = raw_input("\nContinue? (Y\N): ") if condition != 'Y': break
import numpy import math import AtoB import matplotlib.pyplot as plt import random import networkx as nx import pdb import pickle n = 200 edgeProb = 0.3 degree = 3 # name = "gnutella" # AtoB.createErdos(n,edgeProb) # G = nx.read_gpickle("EG_" + str(n) + "_" + str(edgeProb) + ".gpickle") # AtoB.createScaleFreeNetwork(n, degree) # G = nx.read_gpickle("SFN_" + str(n) + "_" + str(degree) + ".gpickle") AtoB.createRealWorld(name) G = nx.read_gpickle(str(name) + ".gpickle") # AtoB.simple_query(G) AtoB.comparison_query(G)
import numpy import math import AtoB import matplotlib.pyplot as plt import random import networkx as nx import pdb import pickle import generateGraph print "Gnutella P2P Network:" print "Source: http://snap.stanford.edu/data/p2p-Gnutella08.html" print "The Path Concatenation Algorithm (PCA) has been applied to an induced subgraph of the above graph consisting of 500 nodes" while(True): node1 = int(input("Enter node 1: ")) node2 = int(input("Enter node 2: ")) AtoB.main(0, "RW", 'gnutella', [node1,node2]) condition = raw_input("\nContinue? (Y\N): ") if condition != 'Y': break
import numpy import math import AtoB import matplotlib.pyplot as plt import random import networkx as nx import pdb import pickle name = "gnutella" trials = 10000 G = nx.read_gpickle(str(name) + ".gpickle") result = AtoB.simple_query(G, trials) print "The ratio of the time intervals taken to perform One-way Adamic walk and Two-way Adamic walk is " + str(float(result[0])/result[1]) print "Hence, Two-way Adamic walk is faster than One-way Adamic walk by a factor of " + str(float(result[1])/result[0]) ind = numpy.arange(2) width = 0.15 plt.bar(ind, (result[0], result[1]), width) plt.xticks(ind+width/2., ('One-way Adamic', 'Two-way Adamic') ) plt.xlabel("Number of Nodes") plt.ylabel("Time Taken") plt.title("Average time taken to compute the approximate shortest path for all the nC2 pairs") plt.show() #AtoB.createErdos(n,edgeProb) #G = nx.read_gpickle("EG_" + str(n) + "_" + str(edgeProb) + ".gpickle")
import numpy import math import AtoB import matplotlib.pyplot as plt import random import networkx as nx import pdb import pickle import generateGraph #node1 = int(input("Enter node 1: ")) #node2 = int(input("Enter node 2: ")) #generateGraph.runthis() #AtoB.main(0, "RW", 'gnutella', [node1,node2]) AtoB.main(0, "RW", 'gnutella', [0,1])
import numpy import math import AtoB import matplotlib.pyplot as plt import random import networkx as nx import pdb import pickle n = 200 edgeProb = 0.3 degree = 3 name = "gnutella" trials = 10000 #AtoB.createErdos(n,edgeProb) #G = nx.read_gpickle("EG_" + str(n) + "_" + str(edgeProb) + ".gpickle") #AtoB.createScaleFreeNetwork(n, degree) #G = nx.read_gpickle("SFN_" + str(n) + "_" + str(degree) + ".gpickle") #AtoB.createRealWorld(name) G = nx.read_gpickle(str(name) + ".gpickle") AtoB.simple_query(G, trials) #AtoB.comparison_query(G)
#name = "gnutella" #trials = 10000 start = 100 end = 401 step = 20 x = [] oneWayRandom = [] twoWayRandom = [] oneWayAdamic = [] twoWayAdamic = [] for n in range(start, end, step): AtoB.createScaleFreeNetwork(n, degree) G = nx.read_gpickle("SFN_" + str(n) + "_" + str(degree) + ".gpickle") #AtoB.createErdos(n,edgeProb) #G = nx.read_gpickle("EG_" + str(n) + "_" + str(edgeProb) + ".gpickle") result = AtoB.comparison_query(G) oneWayRandom.append(result[0]) twoWayRandom.append(result[1]) oneWayAdamic.append(result[2]) twoWayAdamic.append(result[3]) x.append(n) plt.plot(x, oneWayRandom) plt.plot(x, twoWayRandom) plt.plot(x, oneWayAdamic) plt.plot(x, twoWayAdamic) plt.xlabel("Number of Nodes")
import numpy import math import AtoB import matplotlib.pyplot as plt import random import networkx as nx import pdb import pickle name = "gnutella" trials = 100 G = nx.read_gpickle(str(name) + ".gpickle") result = AtoB.comparison_query(G, trials) ind = numpy.arange(4) width = 0.15 plt.bar(ind, (result[0], result[1], result[2], result[3]), width) plt.xticks(ind+width/2., ('One-way Random walk', 'Two-way Random walk', 'One-way Adamic walk', 'Two-way Adamic walk') ) plt.xlabel("Number of Nodes") plt.ylabel("Average of (length of approx path / length of shortest path) over nC2 pairs") #plt.title("Average time taken to compute the approximate shortest path for all the nC2 pairs") plt.show() #AtoB.createRealWorld(name) #G = nx.read_gpickle(str(name) + ".gpickle") #AtoB.simple_query(G) #AtoB.comparison_query(G)
import numpy import math import AtoB import matplotlib.pyplot as plt import random import networkx as nx import pdb import pickle numOfNodes = 100 degree = 3 edgeProb = 0.3 AtoB.createErdos(numOfNodes,edgeProb) G = nx.read_gpickle("EG_" + str(numOfNodes) + "_" + str(edgeProb) + ".gpickle") #AtoB.createScaleFreeNetwork(numOfNodes, degree) #G = nx.read_gpickle("SFN_" + str(numOfNodes) + "_" + str(degree) + ".gpickle") AtoB.Navigate(G)