Unsupported operand type(s) for +: 'float' and 'tuple'

F

Francesc Segura

Hello all, I'm new to this and I'm having problems on summing two
values at python.

I get the following error:

Traceback (most recent call last):
File "C:\edge-bc (2).py", line 168, in <module>
if (costGG <= cost + T0):
TypeError: unsupported operand type(s) for +: 'float' and 'tuple'

I'm working with networkx and my program is this one:


import networkx as NX
import pylab as P
from math import exp, log
import random
try:
import matplotlib.pyplot as plt
except:
raise

##N=27
N=30
ITERATIONS = 60
T0 = 0.5
RO = 0.99
NK = 20

def costG(G):

bc = NX.edge_betweenness_centrality(G,normalized=True)
edges = NX.edges(G)

for i in range(len(edges)):
total = 0
cost = 0
factor = 1

liedges = list(edges)
linode1 = list(liedges[0])
linode2 = list(liedges[1])

distance = (((linode2[0]-linode1[0])%N)^2)+(((linode2[1]-
linode1[1])%N)^2)

edgecentrality = bc[edges]

factor = (distance-19790)*(-0.000055586)

cost = distance*edgecentrality*factor

total = total + cost

return(total)

def avedistance(G):




return (AvgDist)

def costGeasy(G):
bc = NX.edge_betweenness_centrality(G,normalized=True)
total = 0
for i in range(len(bc)):
total=total+bc.values()

return (total)


G = NX.grid_2d_graph(N,N,True)

for i in range(N):
for j in range(N):
G.add_edge((i,j),((i+1) % N ,(j+1) % N))
G.add_edge((i,j),((i-1) % N ,(j+1) % N))


NODES=NX.number_of_nodes(G)
nod=NX.nodes(G)
EDGES=NX.number_of_edges(G)
edg=NX.edges(G)

pos={}
for i in range(NODES):
pos[nod]=(nod[0]/(N*1.0),nod[1]/(N*1.0))

NX.draw(G,pos,node_color='r',node_size=20,with_labels=False,width=1)
plt.title("Inicial graph, Toroidal 27x27, degree 8")
plt.savefig("initial_grid_malla.png")
plt.show()

pos=NX.spring_layout(G,iterations=100)
NX.draw(G,pos,node_color='r',node_size=20,with_labels=False,width=1)
plt.title("Inicial graph, Toroidal 27x27, degree 8")
plt.savefig("initial_grid_tor.png")
plt.show()

initGr = G
best_graph = G
best_cost = costG(G)
average_distance = avedistance(G)
initCost = best_cost
initGHist = NX.degree_histogram(G)

##print NX.info(initGr)
##print 'Diameter = %f ' % (NX.diameter(G))
##print 'Avg Clust Coeff. NetworkX = %-6.4f ' %
(NX.average_clustering(G))
##print 'Avg Dist. NetworkX = %-6.4f ' % (average_distance)
##print 'Distribucio de Graus'
##print initGHist
##print 'Cost inicial'
##print initCost

T0 = initCost*0,1

for y in range(NK):
for x in range(ITERATIONS):
cost = costG(G)
if (cost < (best_cost)):
best_graph = G
best_cost = cost
GG = G
u = random.randint(0,NODES-1)
while GG.degree(nod) <= 1:
u = random.randint(0,NODES-1)
v = random.randint(0,GG.degree(nod)-1)
GG.remove_edge(nod,GG[nod].keys()[v])
a = random.randint(0,NODES-1)
b = random.randint(0,NODES-1)
adj=G.adjacency_list()
while ((nod in adj[a]) or (b == a)):
a = random.randint(0,NODES-1)
b = random.randint(0,NODES-1)
GG.add_edge(nod[a],nod)
while (NX.is_connected(GG) == 0):
GG = G
u = random.randint(0,NODES-1)
while GG.degree(nod) <= 1:
u = random.randint(0,NODES-1)
v = random.randint(0,GG.degree(nod)-1)
GG.remove_edge(nod,GG[nod].keys()[v])
a = random.randint(0,NODES-1)
b = random.randint(0,NODES-1)
adj=GG.adjacency_list()
while ((nod in adj[a]) or (b == a)):
a = random.randint(0,NODES-1)
b = random.randint(0,NODES-1)
GG.add_edge(nod[a],nod)

costGG = costG(GG)
if (costGG <= cost):
G = GG
else:
if (costGG <= cost + T0):
G = GG

T0 = T0 * RO
print 'IT %d' % y
print 'BEST %f ' % best_cost


best_graph = G
print NX.info(best_graph)
print 'Diameter = %f ' % (NX.diameter(best_graph))
print 'Avg Clust Coeff. NetworkX = %-6.4f ' %
(NX.average_clustering(best_graph))
average_distance = avedistance(best_graph)
print 'Avg Dist. NetworkX = %-6.4f ' % (average_distance)
print 'Distribucio de Graus'
print NX.degree_histogram(best_graph)
print 'Millor Cost'
print best_cost

NX.write_edgelist(best_graph,'optimal-graph.dat')

pos={}
for i in range(NODES):
pos[nod]=(nod[0]/(N*1.0),nod[1]/(N*1.0))


NX.draw(best_graph,pos,node_color='r',node_size=20,with_labels=False,width=1)
plt.title("Final graph, Toroidal 27x27, degree 8")
plt.savefig("final_grid_malla.png")
plt.show()

pos=NX.spring_layout(G,iterations=100)
NX.draw(best_graph,pos,node_color='r',node_size=20,with_labels=False,width=1)
plt.title("Final graph, Toroidal 27x27, degree 8")
plt.savefig("final_grid_tor.png")
plt.show()
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,962
Messages
2,570,134
Members
46,690
Latest member
MacGyver

Latest Threads

Top