GOC京东物流车辆调度A榜赛题Python实现


该资源为2018年5月份京东举办的物流车辆调度比赛的测试代码,该比赛的参与者来时与全球500所高等院校,值得你学习!是Python写的
资源截图
代码片段和文件信息
# -*- coding: utf-8 -*-
“““
Created on Sat Jul 07 23:24:28 2018

@author: jiuxia
“““

import random math sys
import matplotlib.pyplot as plt # 
from copy import deepcopy
import copy
import pandas as pd

data = pd.Dataframe()
result = pd.Dataframe()
distance = pd.read_table(‘input_distance_time.txt‘sep = ‘‘)

for c in [0]:    
    for i in range(3):
        data1_title = str(c) +‘_‘+str(i)+‘.xlsx‘
        result_title = ‘result_‘ + str(c) +‘_‘ +str(i) + ‘.csv‘
        data1 = pd.read_excel(data1_title)
        result1 = pd.read_csv(result_title)
        data = data.append(data1)
        result = result.append(result1)

data.set_index([‘ID‘]inplace = True)

station = []
for i in data.index:
    if i>1000 and i not in station:
        station.append(i)
print(station)       

result = result[‘经过的点‘]
result = pd.Series.to_frame(result)
node =[]
station_used = []
for i in range(len(result)):
    each = result.iloc[i0]
    each = each[1:len(each)-1]
    each = each.split(‘‘)
    each = [int(x) for x in each]
    node.append(each)
print(node)
for i in range(len(node)):
    for j in range(len(node[i])):
        if node[i][j]>1000:
            station_used.append(node[i][j])
            if station_used.count(node[i][j])>1:
                for s in station:
                    if s not in station_used:
                        station_used[len(station_used)-1] = s
                        node[i][j] = s
                        break


cus_data = data[data[‘type‘]==2]
Node = [0] +list(cus_data.index) + station_used    
all_Node = [0] +list(cus_data.index) + station

print(Node)
final_data = pd.Dataframe()
final_all_data = pd.Dataframe()

for i in Node:
    final_data = final_data.append(data.ix[i])
final_data.drop_duplicates(subset=None keep=‘first‘ inplace=True)

for i in all_Node:
    final_all_data = final_all_data.append(data.ix[i])
final_all_data.drop_duplicates(subset=None keep=‘first‘ inplace=True)

d_1 = pd.merge(final_all_datadistancehow = ‘inner‘left_on = ‘ID‘ right_on = ‘from_node‘)
d_2 = pd.merge(final_all_datad_1how = ‘inner‘left_on = ‘ID‘right_on = ‘to_node‘)
d_2 = d_2[[‘from_node‘‘to_node‘‘distance‘‘spend_tm‘]]  


test_data = final_all_data
test_dist = d_2


DEBUG = False
initial = []
l = []
for i in range(29):
    l.append(i)

for i in Node:
    each = []
    random.shuffle(l)
    for j in l:
        each = each+node[j]
    each.append(0)
    initial.append(each)

geneNum =200  # 种群数量
generationNum = 1000 # 迭代次数

CENTER = 0  # 配送中心

HUGE = 999999999999
VARY = 0.5  # 变异几率

n = len(test_data[test_data[‘type‘] == 2])  # 客户点数量
print(n)
m = len(test_data[test_data[‘type‘] == 3])  # 换电站数量
k =999  # 车辆数量
Q = 2.5  # 额定载重量 t
Q_V = 16.0
dis = 120000  # 续航里程 m
costPerKilo = 0.014  # 油价
epu = 0.04  # 早到惩罚成本
lpu = 999999999999  # 晚到惩罚成本

X = {}
Y = {}
t_w ={}
t_v ={}
eh = {}
lh = {}
h = {}
Distance = {}
Time = {}


for i in all_Node:
    #坐标
    X[i] = test_data.loc[i‘lng‘]
    Y[i] = test_data.loc[i‘lat‘]
    #需求量
    t_w[i] = te

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-11-17 14:18  GOC-EVRPTW-master
     目录           0  2018-11-17 14:18  GOC-EVRPTW-masterGA
     文件       16457  2018-11-17 14:18  GOC-EVRPTW-masterGA_0.xlsx
     文件       15640  2018-11-17 14:18  GOC-EVRPTW-masterGA_1.xlsx
     文件       15459  2018-11-17 14:18  GOC-EVRPTW-masterGA_2.xlsx
     文件       17793  2018-11-17 14:18  GOC-EVRPTW-masterGAGA.py
     文件    30309734  2018-11-17 14:18  GOC-EVRPTW-masterGAinput_distance_time.txt
     文件        1637  2018-11-17 14:18  GOC-EVRPTW-masterGA
esult_0_0.csv
     文件        1743  2018-11-17 14:18  GOC-EVRPTW-masterGA
esult_0_1.csv
     文件        1815  2018-11-17 14:18  GOC-EVRPTW-masterGA
esult_0_2.csv
     文件        1100  2018-11-17 14:18  GOC-EVRPTW-masterREADME.md
     目录           0  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegion
     文件         549  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegionallcmd.sh
     文件         501  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegionchecktask.sh
     文件         444  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegionclearout.sh
     文件        6068  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegioncluster.py
     文件         691  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegioncopymdoel.sh
     文件        2356  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegiongroup.py
     文件          46  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegionhost.txt
     目录           0  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegioninput
     文件    30309734  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegioninputinput_distance_time.txt
     文件       80550  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegioninputinput_node.xlsx
     文件        9230  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegioninputm.xlsx
     文件       17691  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegionmodel.sh
     文件        3383  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegiononce.sh
     文件         385  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegionpid
     文件         291  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegion
esult.txt
     文件         182  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegion
un.sh
     文件         387  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegion
unstep2.sh
     文件         564  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegion
unstep3.sh
     文件        7097  2018-11-17 14:18  GOC-EVRPTW-masterVRP_SubRegionsolver.py
............此处省略3个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)