人工智能与神经网络 树状图程序编写 基础计算问题

考虑如图所示的无权无向图,每一条边上的权值都代表了该链路的通信费用或时间。

x1 = ([1, 0, 0, 1], 1)
x2 = ([0, 1, 1, 0], 2)
x3 = ([0, 0, 0, 1], 2)
x4 = ([1, 0, 0, 0], 1)
x5 = ([1, 1, 1, 0], 1)
x6 = ([0, 1, 1, 1], 2)
x7 = ([1, 1, 1, 1], 1)

w1 = x1[0]
w2 = x2[0]

for x in (x3,x4,x5,x6,x7):
    Cx = x[0]
    p1 = (w1[0]-Cx[0])*(w1[0]-Cx[0])+(w1[1]-Cx[1])*(w1[1]-Cx[1])+(w1[2]-Cx[2])*(w1[2]-Cx[2])+(w1[3]-Cx[3])*(w1[3]-Cx[3])
    p2 = (w2[0]-Cx[0])*(w2[0]-Cx[0])+(w2[1]-Cx[1])*(w2[1]-Cx[1])+(w2[2]-Cx[2])*(w2[2]-Cx[2])+(w2[3]-Cx[3])*(w2[3]-Cx[3])
    if p1 <= p2:
        q = 1
        if(x[1] == q):
            w1[0] = round(w1[0] + 0.1*(Cx[0] - w1[0]),3) 
            w1[1] = round(w1[1] + 0.1*(Cx[1] - w1[1]),3) 
            w1[2] = round(w1[2] + 0.1*(Cx[2] - w1[2]),3) 
            w1[3] = round(w1[3] + 0.1*(Cx[3] - w1[3]),3) 
        else:
            w1[0] = round(w1[0] - 0.1*(Cx[0] - w1[0]),3) 
            w1[1] = round(w1[1] - 0.1*(Cx[1] - w1[1]),3) 
            w1[2] = round(w1[2] - 0.1*(Cx[2] - w1[2]),3) 
            w1[3] = round(w1[3] - 0.1*(Cx[3] - w1[3]),3) 
    else:
        q = 2 
        if(x[1] == q):
            w2[0] = round(w2[0] + 0.1*(Cx[0] - w2[0]),3) 
            w2[1] = round(w2[1] + 0.1*(Cx[1] - w2[1]),3) 
            w2[2] = round(w2[2] + 0.1*(Cx[2] - w2[2]),3) 
            w2[3] = round(w2[3] + 0.1*(Cx[3] - w2[3]),3)  
        else:
            w2[0] = round(w2[0] - 0.1*(Cx[0] - w2[0]),3) 
            w2[1] = round(w2[1] - 0.1*(Cx[1] - w2[1]),3) 
            w2[2] = round(w2[2] - 0.1*(Cx[2] - w2[2]),3) 
            w2[3] = round(w2[3] - 0.1*(Cx[3] - w2[3]),3)  
print(w1,w2)

思路已经非常清晰,这是程序段。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值