⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 val66.m

📁 这个程序是用遗传算法解决车辆路径问题的.程序完整
💻 M
字号:
% default settings:nparam=2;psz = 10;ngen = 10;pm = 0.04;px = 0.8;xtype = 3;elite = 1;ffunc = 3;for i=1:5  maxval(i)=100;  h2(i)=10;  minval(i)=0;endmfun=1;%%% fig = findobj('Type','figure','Tag','GA Demo'); if isempty(fig)   % Build the GUI  fig = figure('Units','Normal','Position',[.25 .25 .5 .5], ...                'Name','GA Demo',...                'NumberTitle','off','Tag','GA Demo');  set(fig,'DefaultUicontrolUnits','normal')        % % %  end   t = uicontrol('Style','text','Units','normal', ...      'Position',[.05 .95 .7 .05],'String',' Enter number of variables: (def=2)'); num = uicontrol('Style','edit','Units','normal', ...      'Position',[.75 .95 .15 .05]); call = ['str = get(num,''String'');', ...          'nparam = str2num(str);', ...          'fprintf(''The number is %f.\n'',nparam)'];  set(num,'CallBack',call)%    t2= uicontrol('Style','text','Units','normal', ...      'Position',[.05 .89 .39 .05],'String',' Length of individual: (def=10)');     uh2(1) = uicontrol('Style','edit','Units','normal', ...        'Position',[0.45 .89 .06 .05]);      call = ['str = get(uh2(1),''String'');', ...          'h2(1) = str2num(str);', ...          'fprintf(''The length of variable 1 %f.\n'',h2(1))'];        set(uh2(1),'CallBack',call)   %      t12= uicontrol('Style','text','Units','normal', ...      'Position',[.05 .89 .39 .05],'String',' Length of individual: ');      uh2(2) = uicontrol('Style','edit','Units','normal', ...        'Position',[0.52 .89 .06 .05]);      call = ['str = get(uh2(2),''String'');', ...          'h2(2) = str2num(str);', ...          'fprintf(''The length of variable 2 %f.\n'',h2(2))'];        set(uh2(2),'CallBack',call)   %     t13= uicontrol('Style','text','Units','normal', ...      'Position',[.05 .89 .39 .05],'String',' Length of individual: ');      uh2(3) = uicontrol('Style','edit','Units','normal', ...        'Position',[0.59 .89 .06 .05]);      call = ['str = get(uh2(3),''String'');', ...          'h2(3) = str2num(str);', ...          'fprintf(''The length of variable 3 %f.\n'',h2(3))'];        set(uh2(3),'CallBack',call)   %    t13= uicontrol('Style','text','Units','normal', ...      'Position',[.05 .89 .39 .05],'String',' Length of individual: ');      uh2(4) = uicontrol('Style','edit','Units','normal', ...        'Position',[0.66 .89 .06 .05]);      call = ['str = get(uh2(4),''String'');', ...          'h2(4) = str2num(str);', ...          'fprintf(''The length of variable 4 %f.\n'',h2(4))'];        set(uh2(4),'CallBack',call)   % t13= uicontrol('Style','text','Units','normal', ...      'Position',[.05 .89 .39 .05],'String',' Length of individual: (def=10)');      uh2(5) = uicontrol('Style','edit','Units','normal', ...        'Position',[0.73 .89 .06 .05]);      call = ['str = get(uh2(5),''String'');', ...          'h2(5) = str2num(str);', ...          'fprintf(''The length of variable 5 %f.\n'',h2(5))'];        set(uh2(5),'CallBack',call)   %  t3= uicontrol('Style','text','Units','normal', ...      'Position',[.05 .83 .7 .05],'String',' Population size: (default=10)'); psz1 = uicontrol('Style','edit','Units','normal', ...      'Position',[.75 .83 .15 .05]); call = ['str = get(psz1,''String'');', ...          'psz = str2num(str);', ...          'fprintf(''The population size is %f.\n'',psz)'];  set(psz1,'CallBack',call)%t4= uicontrol('Style','text','Units','normal', ...      'Position',[.05 .77 .7 .05],'String',' Number of  generations: (default=10)'); ngen1 = uicontrol('Style','edit','Units','normal', ...      'Position',[.75 .77 .15 .05]); call = ['str = get(ngen1,''String'');', ...          'ngen = str2num(str);', ...          'fprintf(''The number of generations is %f.\n'',ngen)'];  set(ngen1,'CallBack',call)% t5= uicontrol('Style','text','Units','normal', ...      'Position',[.05 .71 .7 .05],'String',' Mutation probability: (default=0.04)'); pm1 = uicontrol('Style','edit','Units','normal', ...      'Position',[.75 .71 .15 .05]); call = ['str = get(pm1,''String'');', ...          'pm = str2num(str);', ...          'fprintf(''The mutation probability is %f.\n'',pm)'];  set(pm1,'CallBack',call)%t6= uicontrol('Style','text','Units','normal', ...      'Position',[.05 .65 .7 .05],'String',' Crossover probability: (default=0.8)'); px1 = uicontrol('Style','edit','Units','normal', ...      'Position',[.75 .65 .15 .05]); call = ['str = get(px1,''String'');', ...          'px = str2num(str);', ...          'fprintf(''The crossover probability  is %f.\n'',px)'];  set(px1,'CallBack',call)%t7= uicontrol('Style','text','Units','normal', ...      'Position',[.05 .59 .7 .05],'String',' Crossover type ( 1=single,2=double,3=uniform) : (def=3)'); xtype1 = uicontrol('Style','edit','Units','normal', ...      'Position',[.75 .59 .15 .05]); call = ['str = get(xtype1,''String'');', ...          'xtype = str2num(str);', ...          'fprintf(''The number is %f.\n'',xtype)'];  set(xtype1,'CallBack',call)%t8= uicontrol('Style','text','Units','normal', ...      'Position',[.05 .53 .7 .05],'String',' Elitism  (1=on,2=off): (default on) '); uelite = uicontrol('Style','edit','Units','normal', ...      'Position',[.75 .53 .15 .05]); call = ['str = get(uelite,''String'');', ...          'elite = str2num(str);', ...          'fprintf(''The number is %f.\n'',elite)'];  set(uelite,'CallBack',call)%t9= uicontrol('Style','text','Units','normal', ...      'Position',[.05 .47 .7 .05],'String',' Function type: (default rosenbrock)'); ffunc1 = uicontrol('Style','edit','Units','normal', ...      'Position',[.75 .47 .15 .05]); call = ['str = get(ffunc1,''String'');', ...          'ffunc = str2num(str);', ...          'fprintf(''The number is %f.\n'',ffunc)'];  set(ffunc1,'CallBack',call)% t11= uicontrol('Style','text','Units','normal', ...      'Position',[.05 .41 .7 .05],'String',' Maximizing (1=on,2=off): (default maximizing)'); mfun1 = uicontrol('Style','edit','Units','normal', ...      'Position',[.75 .41 .15 .05]); call = ['str = get(mfun1,''String'');', ...          'mfun = str2num(str);', ...          'fprintf(''The number is %f.\n'',mfun)'];  set(mfun1,'CallBack',call)%      t12= uicontrol('Style','text','Units','normal', ...     'Position',[.05 .35 .25 .05],'String',' Max values: ');        umaxval(1) = uicontrol('Style','edit','Units','normal', ...         'Position',[0.45 .35 .06 .05]);         call = ['str = get(umaxval(1),''String'');', ...         'maxval(1) = str2num(str);', ...         'fprintf(''Maxval for variable 1 %f.\n'',maxval(1))'];         set(umaxval(1),'CallBack',call)%     t12= uicontrol('Style','text','Units','normal', ...     'Position',[.05 .35 .25 .05],'String',' Max values: ');        umaxval(2) = uicontrol('Style','edit','Units','normal', ...         'Position',[0.52 .35 .06 .05]);         call = ['str = get(umaxval(2),''String'');', ...         'maxval(2) = str2num(str);', ...         'fprintf(''Maxval for variable 2 %f.\n'',maxval(2))'];         set(umaxval(2),'CallBack',call)%    t12= uicontrol('Style','text','Units','normal', ...     'Position',[.05 .35 .25 .05],'String',' Max values: ');        umaxval(3) = uicontrol('Style','edit','Units','normal', ...         'Position',[0.59 .35 .06 .05]);         call = ['str = get(umaxval(3),''String'');', ...         'maxval(3) = str2num(str);', ...         'fprintf(''Maxval for variable 3 %f.\n'',maxval(3))'];         set(umaxval(3),'CallBack',call)%    t12= uicontrol('Style','text','Units','normal', ...     'Position',[.05 .35 .25 .05],'String',' Max values: ');        umaxval(4) = uicontrol('Style','edit','Units','normal', ...         'Position',[0.66 .35 .06 .05]);         call = ['str = get(umaxval(4),''String'');', ...         'maxval(4) = str2num(str);', ...         'fprintf(''Maxval for variable 4 %f.\n'',maxval(4))'];         set(umaxval(4),'CallBack',call)%    t12= uicontrol('Style','text','Units','normal', ...     'Position',[.05 .35 .25 .05],'String',' Max values: (100) ');        umaxval(5) = uicontrol('Style','edit','Units','normal', ...         'Position',[0.73 .35 .06 .05]);         call = ['str = get(umaxval(5),''String'');', ...         'maxval(5) = str2num(str);', ...         'fprintf(''Maxval for variable 5 %f.\n'',maxval(5))'];         set(umaxval(5),'CallBack',call)%     t13= uicontrol('Style','text','Units','normal', ...     'Position',[.05 .29 .25 .05],'String',' Min values: ');         uminval(1) = uicontrol('Style','edit','Units','normal', ...            'Position',[.45 .29 .06 .05]);          call = ['str = get(uminval(1),''String'');', ...          'minval(1) = str2num(str);', ...          'fprintf(''Minval for variable 1 %f.\n'',minval(1))'];          set(uminval(1),'CallBack',call)           %    t13= uicontrol('Style','text','Units','normal', ...      'Position',[.05 .29 .25 .05],'String',' Min values: ');         uminval(2) = uicontrol('Style','edit','Units','normal', ...            'Position',[.52 .29 .06 .05]);          call = ['str = get(uminval(2),''String'');', ...          'minval(2) = str2num(str);', ...          'fprintf(''Minval for variable 2 %f.\n'',minval(2))'];          set(uminval(2),'CallBack',call)   %    t13= uicontrol('Style','text','Units','normal', ...      'Position',[.05 .29 .25 .05],'String',' Min values: ');         uminval(3) = uicontrol('Style','edit','Units','normal', ...            'Position',[.59 .29 .06 .05]);          call = ['str = get(uminval(3),''String'');', ...          'minval(3) = str2num(str);', ...          'fprintf(''Minval for variable 3 %f.\n'',minval(3))'];          set(uminval(3),'CallBack',call)   %    t13= uicontrol('Style','text','Units','normal', ...      'Position',[.05 .29 .25 .05],'String',' Min values: ');         uminval(4) = uicontrol('Style','edit','Units','normal', ...            'Position',[.66 .29 .06 .05]);          call = ['str = get(uminval(4),''String'');', ...          'minval(4) = str2num(str);', ...          'fprintf(''Minval for variable 4 %f.\n'',minval(4))'];          set(uminval(4),'CallBack',call)        %    t13= uicontrol('Style','text','Units','normal', ...      'Position',[.05 .29 .25 .05],'String',' Min values: (0) ');         uminval(5) = uicontrol('Style','edit','Units','normal', ...            'Position',[.73 .29 .06 .05]);          call = ['str = get(uminval(5),''String'');', ...          'minval(5) = str2num(str);', ...          'fprintf(''Minval for variable 5 %f.\n'',minval(5))'];          set(uminval(5),'CallBack',call)%% Create Pushbuttons%  ka(1) = uicontrol('Style','pushbutton','Position',[.02 .025 .3 .1], ...            'call','gademo(nparam,h2,psz,ngen,pm,px,xtype,elite,ffunc,mfun,maxval,minval,2)','string', ...            'Start with min printout');  ka(2) = uicontrol('Style','pushbutton','Position',[.35 .025 .3 .1], ...            'call','gademo(nparam,h2,psz,ngen,pm,px,xtype,elite,ffunc,mfun,maxval,minval,1)','string', ...            'Start with max printout');  ka(3) =  uicontrol('Style','pushbutton','Position',[.68 .025 .1 .1], ...             'call','clear all ; close all ; ','string','Quit');        ka(4) =  uicontrol('Style','pushbutton','Position',[.81 .025 .1 .1], ...             'call',' help gademo ','string','Help');     

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -