1 Star 0 Fork 0

loveknt / ant-colony-optimization

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
antCalculateCompend.py 2.61 KB
一键复制 编辑 原始数据 按行查看 历史
loveknt 提交于 2015-01-27 21:15 . create
import numpy as np
import networkx as nx
import antCalculatePass as acp
import antGenerateGraph as agg
import copy
import pylab as plt
def Deal(OneAntStatus,route,Price):
#print len (OneAntStatus)
G=nx.Graph()
for n in range(len(OneAntStatus)-1):
#print OneAntStatus[n]
G.add_edge(OneAntStatus[n],
OneAntStatus[n+1],
weigh=route[OneAntStatus[n]][OneAntStatus[n+1]],
price=Price[OneAntStatus[n]][OneAntStatus[n+1]])
#print 'this is '+ str(n)+'of data'
#print ' | - |'+ str(len (OneAntStatus))
#print ' | - |'+ str(G.number_of_edges())
return G
##def UnitaryList(data):
## mmax=max(data)
## mmin=min(data)
## for n in range(len(data)):
## #print data[n][0]
## #print type(mmin)
## print mmin[0]
## print mmax[0]
## #print type(mmax)
## #print type(data[n][0])
## data[n][0]=(float(data[n][0])*1.0-float(mmin[0])*1.0)/(float(mmax[0])*1.0-float(mmin[0])*1.0)
## return data
def UnitaryList(data):
for n in range(len(data)):
data[n]=np.log10(data[n])
return data
def CalculateCompend(AntStatus,Antcompend,route,Price):
AntN=np.size(AntStatus)
resultcompend=[]
resultprice=[]
resultPossibilityOfPass=[]
resultweigh=[]
for n in range(AntN):
G=copy.deepcopy(Deal(AntStatus[n],route,Price))
price=G.size(weight='price')
#print 'this is '+str(n)+' of data'
weigh=G.size(weight='weigh')
PossibilityOfPass=acp.ReturnPossibilityOfPass(agg.GenerateGraph(AntStatus[n]))
resultprice.append(price)
resultPossibilityOfPass.append(PossibilityOfPass)
resultweigh.append(weigh)
rresultPossibilityOfPass=UnitaryList(copy.deepcopy(resultPossibilityOfPass))
rresultweigh=UnitaryList(copy.deepcopy(resultweigh))
rresultprice=UnitaryList(copy.deepcopy(resultprice))
for n in range(AntN):
resultcompend.append(4200000/rresultprice[n]+0.91/rresultPossibilityOfPass[n])
#0.91/rresultPossibilityOfPass[n]+
MAXresultcompend=max(resultcompend)
INDEXresultcompend=resultcompend.index(MAXresultcompend)
G=agg.GenerateGraph(AntStatus[INDEXresultcompend])
print ("price: "+str(resultprice[INDEXresultcompend]))
print ("Pass : "+str(resultPossibilityOfPass[INDEXresultcompend]))
edges=G.edges()
Antcompend=Antcompend*0.50
for e in edges:
Antcompend[e[0]][e[1]]=Antcompend[e[0]][e[1]]+MAXresultcompend
Antcompend[e[1]][e[0]]=Antcompend[e[1]][e[0]]+MAXresultcompend
return [Antcompend,
resultprice[INDEXresultcompend],
resultPossibilityOfPass[INDEXresultcompend],
AntStatus[INDEXresultcompend]]
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/loveknut/ant-colony-optimization.git
git@gitee.com:loveknut/ant-colony-optimization.git
loveknut
ant-colony-optimization
ant-colony-optimization
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891