Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def random_walk(adj_matrix, steps=100, baised=False, alpha=1.0):
- #D_I, D_J, D_K ----- D OF EVERYTHING-------- (DONE)
- d_term=[]
- for i in range(len(adj_matrix)):
- current=adj_matrix[i].count(1)
- d_term.append(current)
- d_sum=sum(d_term)
- #-----------Create C_I TERM FOR BAISED----------
- c_i_term=[]
- c_i_term_list=[]
- for i in range(len(adj_matrix)):
- for j in range(len(adj_matrix)):
- current_term= adj_matrix[i][j]*(adj_matrix[j].count(1)**alpha)
- c_i_term.append(current_term)
- #adding the sum of c_i to the list
- c_i_term_list.append(sum(c_i_term))
- #clear list
- c_i_term[:]=[]
- #---------------DENOMENATOR for T_i_J ----------
- current_term=[]
- current_term_list=[]
- denomenator_list=[]
- for i in range(len(adj_matrix)):
- for k in range(len(adj_matrix)):
- current_term=adj_matrix[i][k]*(adj_matrix[k].count(1)**alpha)
- current_term_list.append(current_term)
- denomenator_list.append(sum(current_term_list))
- #--------DENOMINATOR for P_I (BAISED)---------
- denomenator_term=[]
- for k in range(len(adj_matrix)-1):
- #denomenator for p_i
- d= c_i_term_list[k]*(adj_matrix[k].count(1)**alpha)
- denomenator_term.append(d)
- #------CREATING P_I LISTS -----------#
- if baised==False:
- # make p_i_list
- p_i_list=[]
- for i in range(len(adj_matrix)):
- p_i= adj_matrix[i].count(1)/d_sum
- p_i_list.append(p_i)
- else:
- #creating list of p_i terms
- p_i_list=[]
- for i in range(len(adj_matrix)):
- p_i= (c_i_term_list[i]*(adj_matrix[i].count(1**alpha))/sum(denomenator_term))
- p_i_list.append(p_i)
- #CREATING TRANSITION MATRIX ( DONE - BAISED==FALSE)
- trans_matrix = [ [0 for i in range(len(adj_matrix))] for j in range(len(adj_matrix)) ]
- for i in range(len(adj_matrix)):
- for j in range(len(adj_matrix)):
- #if baised=true
- if baised==False:
- adj_matrix[i][j] = adj_matrix[i][j]/adj_matrix[i].count(1)
- else:
- adj_matrix[i][j] = (adj_matrix[i][j]*adj_matrix[j].count(1))/denomenator_list[i]
- #setting up walk list with starting term
- current_vertex=choose_vertex(p_i_list)
- walk=[current_vertex]
- #adding to walk by iterating through the transition matrix
- for i in range(0, steps):
- new_vertex=choose_vertex(adj_matrix[current_vertex])
- walk.append(new_vertex)
- current_vertex=new_vertex
- print walk
- random_walk(get_graph_from_series(), steps=200, baised=False, alpha=1)
- print''
- print''
- random_walk(get_graph_from_series(), steps=200, baised=True, alpha=5.0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement