circlmain.m
来自「多智能体工具包」· M 代码 · 共 78 行
M
78 行
% CIRCLMAIN Main program of Round 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; 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==80 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,MutProb); CurrentChrom=normal(MutateChrom); end; FitnessValue=[FitnessValue;FittestValue]; kerncalc(FittestChrom); RunedTimes=loops;end;eval(['save ' SaveDirectory ' ' SaveItem ';']);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?