📄 rectmain.m
字号:
% RECTMAIN Main program of square box pushing.% Copyright (c) 1998-2000 Jiming Liu and Jianbing Wuclose all;clear all;clc;global GoalVaryTm RegionNum DirectionNum StepRatio RotateRatio;global RobotNum WorkArea RobotSize ObjectSize ObjectShape;global BitLength PopulationSize TotalGenerations CrossProb;global MutationProb RegionCodeLen DirectCodeLen BreakGARatio SingleCodeWidth;global MinInterval RunTimes CurrentPopulations FitnessFun FitnessValue;global RobotHistory ObjectHistory GoalHistory ChromHistory FitnessEq;global ObjectPosition GoalPosition CompareDist NewGoalLimit;global AxisDirection StepChangeRatio LastMoveDierction EdgeLimit;initial;precalcu;initpos;[SaveDirectory,SaveItem]=saveini;CurrentChrom=getchrom(CurrentPopulations);TheFlag=1;MutProb=0.3;for loops=1:RunTimesloops GoDiff=GoalPosition-ObjectPosition(1:2); GODist=sqrt(GoDiff(1)*GoDiff(1)+GoDiff(2)*GoDiff(2)); if TheFlag if GODist<20 MutProb=MutationProb(3); StepRatio=StepChangeRatio(3); elseif GODist<40 MutProb=MutationProb(2); StepRatio=StepChangeRatio(2); elseif GODist<50 MutProb=MutationProb(1); StepRatio=StepChangeRatio(1); end; end; if GODist<20 StepRatio=StepChangeRatio(3); elseif GODist<40 StepRatio=StepChangeRatio(2); elseif GODist<50 StepRatio=StepChangeRatio(1); else StepRatio=4; end; if (GODist<=CompareDist) | loops==90 TheFlag=0; GoalPosition=newgoal; end; objaxis; for loop1=1:TotalGenerations [SelectedChrom,FittestValue,IsBreak]=select(FitnessFun,CurrentChrom); FittestChrom=SelectedChrom(1,:); if (TotalGenerations>1) & IsBreak break; end; CrossOverChrom=crosover(SelectedChrom,CrossProb); MutateChrom=mutate(CrossOverChrom,MutationProb); CurrentChrom=normal(MutateChrom); end; FitnessValue=[FitnessValue;FittestValue]; kerncalc(FittestChrom); RunedTimes=loops;end;eval(['save ' SaveDirectory ' ' SaveItem ';']);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -