精华内容
下载资源
问答
  • 电动车辆路径优化问题(Electric vehicle routing problem,EVRP)是电动车运行管理和物流优化中的核心问题之一.对此,首先介绍电动车辆路径问题的研究现状;然后,从充电优化、路径优化和车队配置优化的不同侧重角度,着重...
  • 提出解决车辆路径优化问题的方法, 针对蚁群算法的缺点, 分别对信息素更新策略、启发因子进行改进, 并引入搜索热区机制, 有效解决了蚁群算法的缺陷。最后, 以哈尔滨市局部地图为原型, 应用MATLAB软件对改进蚁群算法...
  • 将粒子群算法应用于带时间窗的多车场车辆路径优化问题,构造了一种适用于求解车辆路径问题的粒子编码方法,建立了相应的数学模型,在此基础上设计了相应的算法。算例通过和遗传算法、蚁群算法进行比较,证明了其搜索...
  • 针对冷链物流配送车辆路径优化问题,分析云计算模式下处理配送车辆实时路径的优势,建立了冷链物流配送车辆路径优化应用服务架构;并在该架构下获取多源实时交通信息,分析车辆配送时间和综合成本,构建了冷链物流...
  • 关于多目标车辆路径优化问题的源代码,C语言,包含文档描述。
  • 车辆路径优化.zip

    2020-05-10 17:10:18
    压缩包中有两个版本,一个是带时间窗的和一个是不带时间窗的,惩罚函数也有两个,分别是一次惩罚函数和二次惩罚函数。如果有问题可以我。
  • 提出解决车辆路径优化问题的方法,针对蚁群算法的缺点,分别对信息素更新策略、启发因子进行改进,并引入搜索热区机制,有效解决了蚁群算法的缺陷。最后,以哈尔滨市局部地图为原型,应用MATLAB软件对改进蚁群算法...
  • 对于动态多目标车辆路径问题,通常将车辆的等待时间,服务车辆的数量,路线的总距离作为优化目标。 除上述目标外,本文还重点研究了导致环境污染和能源消耗的燃油消耗。 考虑车辆的负载和行驶距离,建立了相应的碳...
  • 基于改进遗传算法的车辆路径优化,李轶舜,徐建闽,自从VRP被证明为NP难题后,许多学者进行了各种求解算法的研究。本文采用遗传算法来求解VRP问题, 其思想是对遗传算法初始种群确定、�
  • 基于蚁群算法的物流车辆路径优化问题的研究.pptx
  •  一种基于蚁群算法的多配送中心车辆路径优化方法,首先,针对多配送中心车辆路径优化问题,对各个客户点设计了以最近配送中心为启发式信息的惩罚函数;其次,将具有上述启发式信息的罚函数加入到各配送点的信息素更新...

    1模型介绍

     一种基于蚁群算法的多配送中心车辆路径优化方法,首先,针对多配送中心车辆路径优化问题,对各个客户点设计了以最近配送中心为启发式信息的惩罚函数;其次,将具有上述启发式信息的罚函数加入到各配送点的信息素更新过程中,从而提高了算法的搜索效率.本发明在实际物流配送车辆路径优化应用中可以快速的得到可靠的最佳配送路径.

    1.1 多中心VRP模型

    img

    1.2 蚁群算法原理

     蚁群算法(AG)是一种模拟蚂蚁觅食行为的模拟优化算法,它是由意大利学者Dorigo M等人于1991年首先提出,并首先使用在解决TSP(旅行商问题)上。之后,又系统研究了蚁群算法的基本原理和数学模型1、蚂蚁在路径上释放信息素。

    2、碰到还没走过的路口,就随机挑选一条路走。同时,释放与路径长度有关的信息素。

    3、信息素浓度与路径长度成反比。后来的蚂蚁再次碰到该路口时,就选择信息素浓度较高路径。

    4、最优路径上的信息素浓度越来越大。

    5、最终蚁群找到最优寻食路径。

    1.3 蚁群算法流程图

    img

    2 部分代码

    % 锐镱朦珞 嚯泐痂蜢 祗疣恻桧 觐腩龛?潆 镱耱痤屙? 爨瘌痼蝾? 禧
    % 镱耠邃钼囹咫??镳铞羼皴 恹镱腠屙? 嚯泐痂蜢? 疣玑桠噱?% 爨瘌痼螓 磬 镱潇囵篁? 桉躅? 桤 沭箸钼戾耱桁铖蜩 已
    function [ Route, Length_Route, vehicles ] = ANT_colony_algorithm_VRP( ...
       distances, distances_bases, demands, param, vehicles_capacity ...
    )
    clc
    waitBar = waitbar(0,'Please wait...');
    %%
    %软桷栲腓玎鲨 溧眄
    iter_max = 7; % 100/爨犟桁嚯铄 觐腓麇耱忸 栩屦圉栝
    
    distances = add_bases_to_distances(distances, distances_bases);
    vehicles_capacity = sort(vehicles_capacity,'descend'); %耦痱桊箦?沭箸忸忪羼蜩祛耱?爨??筢帼?镱?潢?demands = [vehicles_capacity(1) demands]; 
    %耦玟噱?耱痼牝箴?溧眄 潆 已, 沅?狍潴?躔囗栩? 桴
    %沭箸铒钿祉铖蜩 ?爨瘌痼螓
    cell_capacities = vehicles_capacities_to_cellarray(vehicles_capacity); %耦躔囗屐 沭箸铒钿祉铖螯 赅驿钽?已
    vehicles = struct('capacity',cell_capacities,'route',cell(1,length(vehicles_capacity)));
    %桧桷栲腓玷痼屐 耱囵蝾怏?徉珞 潆 怦艴 已
    for i = 1:length(vehicles)
       vehicles(i).route = 1;
    end
    nvehicle = 1; %磬麒磬屐 ?1-泐 已
    
    dim = length(distances); %觐腓麇耱忸 泐痤漕?Route = zeros(1,dim); %耦玟噱?爨耨桠 镱?狍潴?爨瘌痼?c = demands(1); %沭箸钼戾耱桁铖螯 1-钽?已
    N_of_vehicles = length(vehicles);
    
    evaporation_fer = param(1);%觐翳鲨屙?桉镟疱龛 翦痤祛磬 [0;1]
    alpha = param(2); %橡?alpha = 0 狍溴?恹狃囗 犭桄嚅?泐痤? 黩?耦铗忮蝰蜮箦?驵漤铎?嚯泐痂?祗 ?觌囫耔麇耜铋 蝈铕梃 铒蜩扈玎鲨? 篷腓
    beta = param(3); %beta = 0, 蝾沅?疣犷蜞弪 腓 翦痤祛眄铄 篑桦屙桢, 黩?怆鬻弪 玎 耦犷?猁耱痤?恹痤驿屙桢爨瘌痼蝾??钿眍祗 耋犷矧桁嚯铎?疱龛?
    tau0 = param(4); %觐腓麇耱忸 翦痤祛磬
    tau = zeros(dim); %爨蝠桷?觐腓麇耱忄 忤痱筻朦睇?翦痤祛眍?eta = zeros(dim); %"忤滂祛耱? 泐痤溧, 痂耱梓羼觐?驽豚龛?镱皴蜩螯 泐痤?j 桤 泐痤溧 i ?麇?犭桄?泐痤? 蝈?犷朦 驽豚龛?镱皴蜩螯 邈?
    Q = 0; %镱?漕?潆桧?铒蜩爨朦眍泐 爨瘌痼蜞
    N_ants = dim; %觐腓麇耱忸 祗疣恻邂
    
    ants_in_cities = zeros(1, N_ants); %祗疣恻??泐痤溧?route_ants = zeros(N_ants, 2*N_ants + 1); %爨瘌痼?潆 赅驿钽?桤 祗疣恻邂
    length_route_ants = zeros(1, N_ants);%潆桧?爨瘌痼蜞 潆 赅驿钽?桤 祗疣恻邂
    entries_in_cities = zeros(1, dim); %爨耨桠 潆 铒疱溴脲龛, 猁?腓 祗疣忮??泐痤溴(1 - 猁? 0 - 礤 猁?
    
    for i = 1:dim
       for j = 1:dim
           if i ~= j
               eta(i,j) = 1/distances(i,j); %忤滂祛耱?           tau(i,j) = tau0; %翦痤祛?       else
               tau(i,j) = 0;
           end
       end  
    end
    %疣珈妁噱?赅驿钽?祗疣恻 ?耠篦嚅眍 恹狃囗睇?泐痤?
    ants_in_cities = randperm(N_ants);
    %蔓徼疣屐 篑腩忭?牮囹鬣轼栝 爨瘌痼?Route ?疣聍栩噱?邈?潆桧?Route = ants_in_cities;
    Length_Route = length_of_route(Route, distances) * 10; %潆 筲屦屙眍耱? 黩??潆桧?礤 '耩噌铗噱?
    Q = Length_Route;
    P = zeros(1, dim); %忮痤蝽铖蜩 镱皴龛 祗疣恻 铗 1-泐 泐痤溧 漕 dim-泐 泐痤溧
    %%
    %----------------------铖眍忭铥?鲨觌---------------------------------------
    for iter = 1: iter_max
       
       for ant = 1: N_ants
           %钺眍怆屐 沭箸钼戾耱桁铖蜩 已
           nvehicle = 1;
           c = vehicles(nvehicle).capacity; 
       %-----------------潆 赅驿钽?祗疣恻 耱痤桁 爨瘌痼??疣耨麒螓忄屐 邈?潆桧?-------
           i = ants_in_cities(ant); %磬躅滂?耱囵蝾恹?泐痤?祗疣恻
           q2 = demands(i); % 磬躅滂?玎镳铖 镳钿箨鲨?镱 泐痤潴(镳邃镱豚汔, 黩?玎镳铖 耱囵蝾忸泐 泐痤溧 礤 镳邂帼?沭箸铎羼蜩祛耱?爨睇)
           entries_in_cities(i) = 1;
           route_ants(ant, 1) = i;
           ind_city_for_route_ant = 1; %镱?潢钼 眍戾?泐痤溧 ?爨瘌痼蝈
           while ~all(entries_in_cities) %镱赅 羼螯 礤 镱皴眄 泐痤溧
                   ind_city_for_route_ant = ind_city_for_route_ant + 1; %镥疱躅滂??桧溴犟?耠邃. 泐痤潴
                   for j = 1: dim
                       %聍栩噱?忮痤蝽铖螯 镱躅溧 ?赅驿 礤 镱皴眄 泐痤?                   if entries_in_cities(j) == 0 %羼腓 礤 镱皴眄 泐痤?                       sum = 0;
                           for el = 1: dim
                               if entries_in_cities(el) == 0
                                   sum = sum + (tau(i,el)^alpha * eta(i,el)^beta);
                               end
                           end
                           P(j) = (tau(i,j)^alpha * eta(i,j)^beta)/sum;
                       end
                   end
                   P(1) = 0; %钺眢?屐 徉珞 ?玎镟襦扈, 赅?磬桠屦?蝽彘?恹犷?               %///
                  [~, city_ind_P_max] = max(P);%磬躅滂?爨犟桁嚯 屐屙??忮牝铕?忮痤蝽铖蝈?               q1 = demands(city_ind_P_max);
                   if q1 + q2 <= c 
                       route_ants(ant, ind_city_for_route_ant) = city_ind_P_max; %漕徉怆屐 泐痤??爨瘌痼?蝈牦泐 祗疣恻
                       entries_in_cities(city_ind_P_max) = 1;
                       i = city_ind_P_max; %耠邃. 泐痤?磬桠屦?蝽邋 ?扈? 疣耨蝾龛屐
                       q2 = q2 + q1;
                   else
                       route_ants(ant, ind_city_for_route_ant) = 1; %忸玮疣?磬 徉珞 玎镟耦?                   entries_in_cities(1) = 1;
                       i = 1; %忸玮疣?磬 徉珞 
                       q2 = 0;
                       nvehicle = get_No_vehicle(nvehicle,N_of_vehicles);
                       c = vehicles(nvehicle).capacity; 
                   end
                   %//
                   %__________________________________________________________
                   P = zeros(1, dim); %钺眢?屐 怦?忮痤蝽铖蜩 ?泐痤溧?               %___________________________________________________________
           end
           route = [1, route_ants(ant, :)];
           route(route == 0) = []; %筢桊噱?礤眢骓 眢腓 
           route(end + 1) = 1; %忸玮疣?磬 徉珞 
           length_route_ants(ant) = length_of_route(route, distances); %聍栩噱?潆桧?爨瘌痼蜞 蝈牦泐 祗疣恻
           entries_in_cities = zeros(1, dim); %铗戾?屐 怦?镱皴龛 泐痤漕?镳邃簌邈?祗疣恻
       %-------------------------------------------------------------------------------------
       
       res = ((iter - 1)+(ant/N_ants))/(iter_max);
       waitbar(res,waitBar,sprintf('Processing... %d %%',round(res*100)));
       
       end
       %___________________________袜殇屙?腓 疱龛?_____________________
      [min_length_route, ind_min_len_route] = min(length_route_ants);
       if Length_Route > min_length_route %羼腓 蝈牦 潆桧?爨瘌痼蜞 犷朦 磬殇屙眍泐 扈龛爨朦眍泐
           Length_Route = min_length_route; %钺眍怆屐 潆桧?蝈牦泐 爨瘌痼蜞
           route = [1, route_ants(ind_min_len_route, :)];
           route(route == 0) = []; 
           Route = [route, 1]; %钺眍怆屐 磬桦篦?爨瘌痼?       Route = delete_duplicates_stations(Route);
           Q = Length_Route;
       end
       %__________________________________________________________________
       %-----------吾眍怆屐 耠邃?翦痤祛磬--------------------------------
       sum_delta_tau = zeros(dim);
       for ant = 1: N_ants
           delta_tau = zeros(dim); %觐腓麇耱忸 翦痤祛磬 磬 赅驿铎 桤 疱徨?       for w = 1:length(route_ants(ant, :)) - 1
               Ri = route_ants(ant, w); Ri(Ri == 0) = [];
               Rj = route_ants(ant, w + 1); Rj(Rj == 0) = [];
               i = Ri;
               j = Rj;
               delta_tau(i,j) = Q/length_route_ants(ant);
           end
           sum_delta_tau = sum_delta_tau + delta_tau;
       end
       tau = (1 - evaporation_fer) * tau + sum_delta_tau;
       tau(1,1) = 0;
       %-------------------------------------------------------------------
       route_ants(:,:) = 0;
    end
    
    %%
    delete(waitBar);
    
    %%
    
    vehicles = create_routes_for_vehicles(vehicles,Route);
    
    %vehicles(1:end).route %桧纛痨圉? ?爨瘌痼蜞?潆 赅驿钽?已
    %Length_Route
    %create_plot_route_with_vehicles(distances,vehicles,demands);
    %_______________________________________________________________________
    %潆 恹忸溧 玎镳铖钼 镱蝠遽栩咫彘
    % sum_demands = 0;
    % for i = 1:length(Route)
    %   if Route(i) == 1
    %       sum_demands
    %       sum_demands = 0;
    %   else
    %       sum_demands = sum_demands + demands(Route(i));
    %   end
    % end
    %_______________________________________________________________________
    end
    
    function [vehicles] = create_routes_for_vehicles(vehicles,ROUTE)
       nvehicle = 1; %磬麒磬屐 ?1-泐 已 
       N_of_vehicles = length(vehicles);
       bases = find(ROUTE == 1); %棂屐 桧溴犟??徉珙??爨瘌痼蝈 
       for i = 1:length(bases) - 1
           ind_start = bases(i) + 1;
           ind_end = bases(i + 1);
           vehicles(nvehicle).route = [ vehicles(nvehicle).route ROUTE(ind_start:ind_end)];
           nvehicle = get_No_vehicle(nvehicle, N_of_vehicles);
       end
    end
    
    %项塍鬣屐 眍戾?已(镱耠邃钼囹咫?
    function [nvehicle] = get_No_vehicle(nvehicle, N_of_vehicles)
       nvehicle = nvehicle + 1;                
       if nvehicle > N_of_vehicles
      nvehicle = 1; %磬麒磬屐 ?1-泐 已 
       end
    end
    
    %恹麒耠屐 镳铗驽眄铖螯 怦邈?爨瘌痼蜞 潆 已
    function [ length_of_path ] = length_of_route_for_vehicles( vehicles, distances)
       length_of_path = 0;
       for k = 1:length(vehicles)
           route = vehicles(k).route;
           for i = 1:length(route) - 1
               length_of_path = length_of_path + distances(route(i),route(i + 1)); 
           end
       end
    end
    
    %恹麒耠屐 镳铗驽眄铖螯 怦邈?爨瘌痼蜞
    function [ length_of_path ] = length_of_route( route, distances)
       length_of_path = 0;
       for m = 1:length(route) - 1
          length_of_path = length_of_path + distances(route(m),route(m + 1)); 
       end
    end
    

    3 仿真结果

    4 参考文献

    [1]唐增明. 基于蚁群算法的多中心车辆调度问题研究[D]. 桂林电子科技大学, 2007.

    5 MATLAB代码与数据下载地址

    见博客主页

    展开全文
  • 该资源有利用对物流配送车辆路径优化问题论文的参考和运用
  • 通过该模型求解带软时间窗的vrptw模型,得到车辆路径问题的最优解
  •  一种基于蚁群算法的多配送中心车辆路径优化方法,首先,针对多配送中心车辆路径优化问题,对各个客户点设计了以最近配送中心为启发式信息的惩罚函数;其次,将具有上述启发式信息的罚函数加入到各配送点的信息素更新...

    1模型介绍

     一种基于蚁群算法的多配送中心车辆路径优化方法,首先,针对多配送中心车辆路径优化问题,对各个客户点设计了以最近配送中心为启发式信息的惩罚函数;其次,将具有上述启发式信息的罚函数加入到各配送点的信息素更新过程中,从而提高了算法的搜索效率.本发明在实际物流配送车辆路径优化应用中可以快速的得到可靠的最佳配送路径.

    1.1 多中心VRP模型

    1.2 蚁群算法原理

     蚁群算法(AG)是一种模拟蚂蚁觅食行为的模拟优化算法,它是由意大利学者Dorigo M等人于1991年首先提出,并首先使用在解决TSP(旅行商问题)上。之后,又系统研究了蚁群算法的基本原理和数学模型1、蚂蚁在路径上释放信息素。

    2、碰到还没走过的路口,就随机挑选一条路走。同时,释放与路径长度有关的信息素。

    3、信息素浓度与路径长度成反比。后来的蚂蚁再次碰到该路口时,就选择信息素浓度较高路径。

    4、最优路径上的信息素浓度越来越大。

    5、最终蚁群找到最优寻食路径。

    1.3 蚁群算法流程图

    2 部分代码

    clc;
    clear;
    %% 多配送中心的车辆调度问题
    %加载数据
    load data.mat
    %计算位置矩阵
    m=size(X,1);
    D=zeros(m,m);
    for i=1:m
       for j=1:m
           D(i,j)=norm(X(i,:)-X(j,:));
           D(j,i)=D(i,j);
           D(i,i)=eps;
       end
    end
    %计算配送中心的位置
    nume=zeros(20,20);
    for i=1:20
       for j=1:20 
           temp=[D(:,i) D(:,j)];
          [num,pp]=min(temp,[],2);
           nume(i,j)=sum(num);
       end
    end
    [mum1,index1]=min(nume);
    [mun2,index2]=min(mum1,[],2);
    w1=index1(index2);
    w2=index2;
    %给各个配送中心分配顾客集
    H=[];
    S=[];
    for i=1:20
       if D(i,w1)<D(i,w2)
           H=[H i];
       else 
           S=[S i];
       end
    end
    n1=size(H,2);
    n2=size(S,2);
    %蚁群算法求最小的车辆总行程
    %设置参数
    Pop=60;%蚁群数目
    Alpha=1;%重要度系数
    Beta=1;%Beta:能见度系数
    gama=2;
    Rho=0.15;%挥发度系数
    MAXGEN=50;%迭代次数
    Q=15;%信息更新参数
    W=9;%W:车辆载重量
    T=10;
    w=[2.5,1.5,1.8,2.0,0.8,1.5,1.0,2.5,3.0,1.7,0.6,0.2,2.4,1.9,2.0,0.7,0.5,2.2,3.1,0.1];%每个客户所需的货物重量
    t=[1.5,3.8,0.5,3,2.6,3.6,1.4,2.4,2,3.4,2,1.2,0.5,0.8,1.3,1.6,1.7,0.5,0.8,1.4];%每个客户所需的货物的容积
    load_w_H=0;
    load_t_H=0;
    load_w_S=0;
    load_t_S=0;
    Eta=1./D;%启发因子,设为距离的倒数
    Tau_H=ones(m,m);%信息素矩阵
    Tau_S=ones(m,m);
    Tabu_H=zeros(Pop,n1+10);%存储并记录路径的生成
    iter=1;
    G_best_route_H=[MAXGEN,n1+10];%各代最佳路线 
    G_best_route_S=[MAXGEN,n2+10];
    G_best_length_H=zeros(MAXGEN,1);
    G_best_length_S=zeros(MAXGEN,1);
    length_ave_H=zeros(MAXGEN,1);%各代路线的平均长度
    length_ave_S=zeros(MAXGEN,1);
    G_best_length=zeros(MAXGEN,1);
    %开始进行迭代
    
    Tabu_H=zeros(Pop,n1); 
    load_w_H=0;
    Tabu_S=zeros(Pop,n2); 
    load_w_S=0;
    end
    
    
    %% 第七步:输出结果 
    [best_length_H,index_H]=min(G_best_length_H);
    [best_length_S,index_S]=min(G_best_length_S);
    best_length=best_length_H+best_length_S;
    best_route_H=G_best_route_H(index_H(1),:);
    best_route_H=best_route_H(best_route_H>0);
    best_route_S=G_best_route_S(index_S(1),:);
    best_route_S=best_route_S(best_route_S>0);
    disp('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
    disp(['最短路径为:',num2str(best_route_H)]);
    disp(['           ',num2str(best_route_S)]);
    disp(['最短路程为:',num2str(best_length)]);
    %% 第八步:绘制散点图和巡游过程图
    %画出散点图,并标注配送中心的位置
    figure(1)
    plot(X(:,1),X(:,2),'o');
    hold on
    plot(X(best_route_H,1),X(best_route_H,2),'o-');
    plot(X(best_route_S,1),X(best_route_S,2),'o-');
    %plot([X(w1,1),X(w2,1)],[X(w1,2),X(w2,2)],'rs','MarkerSize',9);
    text([X(w1,1),X(w2,1)],[X(w1,2),X(w2,2)],'\leftarrow 配送中心');
    for i=1:m
       text(X(i,1),X(i,2),[' ' num2str(i)]); 
    end
    figure(2)
    plot(1:MAXGEN,G_best_length) ;
    hold on 
    plot(1:MAXGEN,length_ave);
    xlabel('迭代次数/次');
    ylabel('路径长度/km');
    legend('最优路径长度的变化 ',' 路径长度均值变化 ');

    3 仿真结果

    4 参考文献

    [1]唐增明. 基于蚁群算法的多中心车辆调度问题研究[D]. 桂林电子科技大学, 2007.

     

    展开全文
  • 车联网环境下交叉口车辆路径优化控制研究.pdf
  • 为提高应急物流工作效率,需对应急资源分配和运输车辆路径进行统一优化决策。针对救援关键期内应急物资可能供应不足的特点,在假设物资需求为随机服从正态分布的前提下,以最小化供应不足和供应过量所带来的损失、...
  • 论文研究-基于实时交通信息的城市动态网络车辆路径优化问题.pdf, 将动态城市交通路网与车辆路径问题相结合, 考虑一类实时交通信息下的城市动态网络车辆路径优化问题. 在...
  • 针对物流配送中的带有容量约束的车辆路径优化问题,提出了一个基于多邻域的迭代局部搜索算法HILS。首先用简单插入法构造可行解,然后从该初始解出发,在多邻域内进行局部优化。当陷入局部最优解后,根据解的接受准则,...
  • 针对物流车辆路径优化问题,考虑到基本蚁群算法有收敛速度慢、易陷人局部最优的缺点,采用了自适应蚁群算法和最大最小蚁群算法进行车辆路径优化,分析、比较了这两种算法的不同并在Matlab上做了仿真。仿真实验结果...
  • 针对客户需求不一定能被所有配送中心满足的情况,建立起基于客户需求差异性的多配送中心车辆路径优化模型,制定了分类、分组、定线、调度四阶段的求解思路,在传统遗传算法基础上进行了算法设计。为了防止收敛于局部...
  • matlab能够运行的源代码,单供应点多需求点,多车辆最后返回配送中心的车辆路径优化问题的VRP源代码代码。
  • 针对智能交通系统中的车辆路径优化问题,运用蚁群算法进行求解,并对状态转移概率公式的选择做出了调整,进一步对信息素挥发因子进行改进,从而改进了基本蚁群算法到一定阶段后容易陷入局部最优的缺点,提高了算法的运算...
  • 将铁路物流中心集配货路径问题抽象为行驶时间和服务时间随机的集送货一体的分批配送车辆路径问题进行优化.根据问题特点建立带修正的随机规划模型,对迭代局部搜索算法进行改进,设计允许分批配送的初始解构造算法、...
  • 提出一种基于遗传算法的求解清运车队车辆路径优化问题方法.对具有时间约束的路径采用整数编码,并利用AOE网验证其有效性.利用多分组多目标交叉进化方法,对具有不同适应度值的分组个体采用不同交叉算子,提高算法...
  • 车辆路径问题 ​ 车辆路径问题(Vehicle Routing Problem-VRP)是为一些车辆(确定或不确定数量)确定访问一些客户的路径,每一客户被而且只被访问一次,且每条路径上的客户需求量之和不超过车辆的能力。目标是使总...

    车辆路径问题

    ​ 车辆路径问题(Vehicle Routing Problem-VRP)是为一些车辆(确定或不确定数量)确定访问一些客户的路径,每一客户被而且只被访问一次,且每条路径上的客户需求量之和不超过车辆的能力。目标是使总成本(如距离、时间等)为最小。有时间窗车辆路径问题(V ehicle Routing Problem with Time Windows-VRPTW)是在VRP上加上了客户的被访问的时间窗约束.在VRPTW问题中,除了行驶成本之外,成本函数还要包括由于早到某个客户而引起的等待时间和客户需要的服务时间。

    算例介绍
    某物流配送中心为25个客户点提供配送服务,每个客户的货物需求量、时间窗不同。配送中心拥有3辆同- -类型的电动汽车,其续驶里程dis为160kn,额定载重量Q为5t。假设电动汽车进入充电站就选择充满电,充电时间为0.4h;假设电动汽车从配送中心出发的时间为0h,且在配送过程中的行驶速度恒定为40km/h。电动汽车的行驶成本为10元/km,惩罚成本系数epu为20元/h,lpu 为30元/h。算例的其他数据在表5.1中列出。表5.1中的第- -列数据代表配送中心、客户点及充电站的编号,0代表配送中心,1,2,3,-,.25 代表客户点,26,27 代表充电站:第二列和第三列分别表示配送中心、客户点、充电站的X坐标和Y坐标, .
    本文假定客户之间的距离为欧氏距离;表中第四列表示客户点的货物需求量;第五、六列分别表示客户要求的服务时间窗;第七列表示客户点需要服务的时间。.如何安排车辆才能使得总费用最小。

    展开全文
  • 数学建模-基于改进遗传算法的车辆路径优化.zip
  • 基于数据挖掘的云计算车辆路径优化系统.pdf
  • 提出了一种基于人机协同策略的蚁群算法,以解决两级车辆路径问题(2E-VRP)。 首先,我们使用计算机游戏来实现针对2E-VRP问题专门设计的人类认知采样。 其次,采用人工卫星-客户分配策略来分析游戏结果,以便将客户...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,568
精华内容 3,427
关键字:

车辆路径优化

友情链接: Character-recognition-.rar