亚洲天堂网_国产中出_日韩激情网_97se.com_中国亚洲老少妇色视频

資源共享分類
通信信號 圖像語音 神經網絡 智能優(yōu)化 控制器 數(shù)值仿真 數(shù)學建模 其他專業(yè)

微信:HuangL1121
Q Q:1224848052
團隊:嘉興麥特萊博軟件開發(fā)工作室
地址:嘉興港區(qū)
 
通信信號
MATLAB代做|FPGA代做-基于matlab的遺傳算法的VRP優(yōu)化仿真
來源:本站    日期:2019/7/28    瀏覽量:197  

功能描述:

聯(lián)系:highspeedlogic

QQ :1224848052

微信:HuangL1121

郵箱:1224848052@qq.com

網站:http://www.mat7lab.com/

網站:http://www.hslogic.com/

微信掃一掃:

車輛路徑問題(VRP)是運籌學里重要的研究問題之一。VRP關注有一個供貨商與K個銷售點的路徑規(guī)劃的情況,可以簡述為:給定一個或多個中心(中心車庫)一個車輛集合和一個顧客集合,車輛和顧客各有自己的屬性,每輛車都有容量,所載的貨物不能超過它的容量。 
%D是距離矩陣,n為種群個數(shù)

%C為停止代數(shù),遺傳到第 C代時程序停止,C的具體取值視問題的規(guī)模和耗費的時間而定
%m為適值淘汰加速指數(shù),最好取為1,2,3,4,不宜太大
%交叉概率Pc,變異概率Pm
%R為最短路徑,Rlength為路徑長度
      
function [R,Rlength]=geneticVRP(D,demand,n,C,m,Pc,Pm)
         [N,NN]=size(D);%(31*31)
         farm=zeros(n,N);%用于存儲種群
         for i=1:n
            % flag=0;
             %while flag==0
              %tem=randperm(N); %隨機生成初始種群
             %if validate(tem,demand,N)==1
              %  flag=1;
             %end
             %end
             farm(i,:)=randperm(N);
             end
         R=farm(1,:);%一個隨機解(個體)

                           %farm(1,:)=R;
        len=zeros(n,1);%存儲路徑長度
        fitness=zeros(n,1);%存儲適配值
        counter=0;
        
       while counter<C
            for i=1:n
                len(i,1)=myLength(D,farm(i,:));%計算路徑長度
            end
            %maxlen=max(len);
            minlen=min(len);
           
            %fitness=fit(len,m,maxlen,minlen);%計算適應度
            rr=find(len==minlen);%返回的是在len中路徑最短的路徑坐標(i,1)
            
            R=farm(rr(1,1),:);%更新最短路徑
                                                   %disp('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
            FARM=farm;%優(yōu)勝劣汰,nn記錄了復制的個數(shù)
%選擇,  
          K=30;
          [aa,bb]=size(FARM);
          FARM2=FARM;
          len2=len;
          [len]=sort(len);
          for i=1:aa
              tt= find(len2==len(i,1));
              FARM(i,:)=FARM2(tt(1,1),:);
          end   
          for i=1:K
              j=aa+1-i;
              FARM(j,:)=FARM(i,:);
              
          end
  
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                    
 %                交叉操作
              [aa,bb]=size(FARM);
               FARM2=FARM;
             
               for i=1:2:aa
                    
                       if Pc>rand&&i<aa %交叉概率Pc
                            A=FARM(i,:);
                            B=FARM(i+1,:);
                            [A,B]=intercross(A,B);
                            FARM(i,:)=A;
                            FARM(i+1,:)=B;
                       end  
                      
               end
              %交叉檢驗  (可省去)             
               for i=1:aa
                   if myLength(D,FARM(i,:))>myLength(D,FARM2(i,:))
                       FARM(i,:)=FARM2(i,:);
                   end
               end
               clear FARM2
               
               
               
               
               
               
      
          
             [aa,bb]=size(FARM); %aa=nn2
   
%       變異   
            FARM2=FARM;
            for i=1:aa
                if Pm>=rand                    
                  FARM(i,:)=mutate(FARM(i,:));
                end
            end
             %變異檢驗(可省略)  
               for i=1:aa
                   if myLength(D,FARM(i,:))>myLength(D,FARM2(i,:))
                       FARM(i,:)=FARM2(i,:);
                   end
               end
               clear FARM2
%群體的更新
           %FARM2=zeros(n-aa+1,N);
           %if n-aa>=1             
           %    for i=1:n-aa
           %       FARM2(i,:)=randperm(N);%隨機生成n-aa種群
           %     end
           % end
           FARM=[R;FARM];%將隨機產生的n-aa個體加入從后面種群,將上次迭代的最優(yōu)解從前面加入種群
           [aa,bb]=size(FARM);
                                                   %disp('~~~~~~~~~~~~~~~~4~~~~~~~驗證zong~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
             %保持種群規(guī)模為n                                         
            if aa>n
                FARM=FARM(1:n,:);
            end   
     
    
                                                    %disp('~~~~~~~~~~~~~~~~~~~5~~~~驗證zong~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
            %更新farm
            farm=FARM;
            clear FARM
            %更新迭代次數(shù)
            counter=counter+1 ; 
            
       end
 %結果輸出
      
        Rlength=myLength(D,R)    
        
        R
        Rlength=myLength(D,R)%結果輸出

   上一篇: MATLAB代做|FPGA代做-基于貝葉斯置信網絡的MATLAB源碼    下一篇:    
   相關閱讀
· MATLAB代做|FPGA代做|simulink代做—— 2020/7/14
· MATLAB代做|FPGA代做|simulink代做—— 2020/5/30
· MATLAB代做|FPGA代做|simulink代做—— 2020/5/30
· MATLAB代做|FPGA代做|simulink代做—— 2020/2/1
· MATLAB代做|FPGA代做|simulink代做—— 2019/12/11
· MATLAB代做|FPGA代做|simulink代做—— 2019/12/11
· MATLAB代做|FPGA代做|simulink代做—— 2019/12/11
· Alexnet網絡結構 2019/11/20
· MATLAB代做|FPGA代做|simulink代做—— 2019/9/15
· MATLAB代做|FPGA代做|simulink代做—— 2019/8/29
Copyright 2017-2025 © 嘉興麥特萊博軟件開發(fā)工作室
  • 網站備案號:浙ICP備18008591號-1