Johdanto
Geneticprogrammingisaspecialmachinelearningtechnologythatusesevolutionaryalgorithms.Itstartsfromagroupof"crowds"composedofmillionsofrandomlygeneratedcomputerprograms,andthenDeterminethesuitabilityofaprogrambasedontheabilityofaprogramtocompleteagiventask.Darwin’snaturalselection(survivalofthefittest)isusedtodeterminethewinningprogram.Computerprogramsalsosimulategendercombination,mutation,geneduplication,genedeletion,etc.Evolvefromgenerationtogenerationuntilapredeterminedstoppingconditionisreached.Thebasicideaofgeneticprogrammingalsodrawsonthebiologicalevolutiontheoryandtheprincipleofheredityinnature,andisamethodofautomaticallyandrandomlygeneratingsearchprograms.Asanewglobaloptimizationsearchalgorithm,thisalgorithmissimple,versatile,robust,andshowsstrongabilitytosolvenonlinearcomplexproblems,soithasbeensuccessfullyappliedinmanydifferentfields,andInrecentyears,morein-depthresearchhasbeenobtained.
Sovellusalue ja ominaisuudet
TheapplicationrangeofGPisverywide.Intheory,anyfunctionthatobtainsavaluebasedonmultipleinputvalues,suchas:forf(x1,x2,...,xn)SuchfunctionscanbegeneratedusingGP.Whentheprogramisrelativelysimpleinlogic,itcanbedirectlywrittenbyhand,andthereisnoneedtouseGPtogenerateit,butforsomelogicallycomplexprograms,itcanbeusedtoautomaticallyevolveandgenerateaprogram.
Forexample,itisverydifficulttogeneratecontrolprogramsforagentsthathavemorecontrolresponses.Theyoftengeneratecorrespondingdecisions(actions)basedonmultipleexternalstimuli.ThistypeofprogramcanbeusedGPtogenerate.
Inthespecificimplementation,ithasthefollowingcharacteristics:
(1)Mitä GP ratkaisee ongelman kuvaava ohjelma (suullinen goritmi).
(2)GPisusuallyrepresentedbyatreestructure,andthedescriptionisrelativelycomplicated.
(3)G:n sukupolven yksilöiden pituus(syvyys)on yleensä erilainen, jopa saman sukupolven yksilöiden välinen pituus(syvyys)on myös erilainen.
(4)TheresourcesconsumedbyGPareuncontrollable(uncontrollableheremeansthatitcannotbeaccuratelydescribed),itneedstoconsumealotofmemoryspace,sotheevolutionofeachgenerationisrelativelyslow.
Toteutusprosessi
Kielen valinta
Geneticprogramminghasdifferentimplementationmethodsindifferentlanguages.Theprogramgeneratedbygeneticprogrammingcanberegardedasbothprogramanddata.Intheprocessofgeneticprogramming,itisdata,whichneedstoberandomlygenerated,crossed,mutated,andevaluated;aftergeneticprogramming,itisaprogramandneedstobeexecuted.Lisplanguageisverysuitableforgeneticprogramming,becauseLisplanguagecanoperateontheprogramitselfandthenexecuteit.
Ohjelman esitystapa
Programcanhavetworepresentationmethods:treestructurerepresentationandstringrepresentation.Thetreestructurerepresentationmethodhasaclearstructure.Itisrelativelysimpletoperformcrossoverandmutationoperations,butrequiresalargestoragespace.Sincegeneticprogrammingrequiresalargenumberoftreestructuresforeachgeneration,thestorageoverheadisverylarge.Spacecomplexityisatopicthatneedstobestudiedingeneticprogramming;expressingprogramswithstringscansavealotofstoragespace,butitismoredifficulttoperformgeneticoperations,suchascomparisonwhenselectingrandomintersectionsormutationpointsof"parents"Complexandneedtobeconverted.
FortheLisplanguage,itisastringitself,soitismoresuitabletouseastringtorepresentgeneticprograms;fortheClanguage,thesetwomethodscanbeselected.Sothereare4waysofcombining:Clanguage+treestructure,Clanguage+stringrepresentation,Lisp+treestructure,Lisp+stringrepresentation,ofwhichthethirdmethodisnotcommonlyused(theClanguagereferredtoheremeansinadditiontoLispMostoftheothercommonlanguages).
ItisseldomusedtoexpresstreestructureinLisplanguage,becauseitisnotnecessary.IftheClanguageisusedtorepresentthestringstructure,itissimilartotheLisplanguage,anditisrelativelysimple.YoucantreatthegeneticprogramasdataandexpresstheprogramasapseudoLisplanguage.Aftertheinheritanceisover,youcanuseitasaprogram.Ofcourse,itshouldbeexecutedasaprogramduringperformanceevaluation,whichwillbedescribedindetailbelow.
Ohjelman suoritusmenetelmä
ForLisplanguage,programexecutionisrelativelysimple,becausethedatageneratedbygeneticsistheprogramandcanbeexecutedimmediately.FortheClanguage,itisverycomplicated,becausetheprogramsgeneratedbytheClanguagearejustdataandcannotbeexecuted.Forthisreason,aninterpretermustbedesignedtointerpretthegeneratedprogram,anddifferentinterpretersneedtobegeneratedforthetreestructureandthestringstructure.Butdifferentapplicationsneeddifferentinterpretationmethods,sotheexecutionmethodsafterinterpretationarealsodifferent.Inordertobeuniversal,anexecutioninterfaceisdesigned.Forallapplications,thesameinterpretercanbeused,whichiscalledavirtualmachine.Onlytheexecutionpartcanbechanged.Fordifferentapplications,differentexecutionfunctionsarecalled.
Arviointifunktion valinta
Fordifferentapplications,differentevaluationfunctionsneedtobeselected,soauniversalevaluationfunctioncannotbemadeintheprogramdesign.Theselectionoftheevaluationfunctioniscurrentlyasubjectthatneedstobestudied,andthereiscurrentlynouniversalandeffectivesettingmethod.Inthiscase,youcansetageneralinterface(usingthepolymorphismoftheclass),andsetdifferentevaluationfunctionsfordifferentapplications(usingasubclasstoimplementthisinterface).
Kehitysprosessi
ThefirstexperimentsongeneticprogrammingwerepublishedbyStephenSmith(1980)andCramm(1985).JohnKoza(1992)alsowroteafamousbooktointroducegeneticprogramming.
Computerprogramsusinggeneticprogrammingcanbewritteninmanyprogramminglanguages.Intheearly(ortraditional)implementationofGP,programinstructionsanddatavalueswereorganizedinatreestructure,sothoseprogramminglanguagesthatoriginallyprovidedatreestructureweremostsuitableforGP,suchastheLisplanguageusedbyKoza.OtherformsofGPhavealsobeenpromotedandimplemented,suchasrelativelysimplelineargeneticprogrammingsuitablefortraditionalprogramminglanguages(suchasFortran,BASIC,andC).TherearecommercialGPsoftwarethatcombineslineargeneticprogrammingwithassemblylanguagetoobtainbetterperformance,andsomeimplementationmethodsdirectlygenerateassemblyprograms.
Theamountofcalculationrequiredforgeneticprogramming(processingalargenumberofcandidatecomputerprograms)issolargethatitcouldonlybeusedtosolvesomesimpleproblemsinthe1990s.Inrecentyears,withthedevelopmentofgeneticprogrammingtechnologyandtheexponentialincreaseinthecomputingpowerofthecentralprocessingunit,GPhasbeguntoproducealargenumberofsignificantresults.Forexample,around2004,GPachievednearly40achievementsinvariousfields:quantumcomputing,electronicdesign,gamecompetition,sorting,searchandsoon.Someofthesecomputer-generatedprograms(algorithms)areverysimilartoartificialinventionsafter2000,andeventworesultshaveresultedinnewinventionsthatcanbepatented.
Inthe1990s,itwasgenerallybelievedthatitwasverydifficulttodevelopatheoryforgeneticprogramming,andGPwasalsoatadisadvantageinvarioussearchtechnologies.After2000,thetheoryofGPhasmadesignificantdevelopment,andithasbecomepossibletoestablishanexactGPprobabilitymodelandMarkovchainmodel.Geneticprogramminghasawiderrangeofapplicationsthangeneticalgorithms(actuallyincludinggeneticalgorithms)
JuergenSchmidhuberfurtherproposedmacrogeneticprogramming,atechnologythatusesgeneticprogrammingtogenerateageneticprogrammingsystem.Somecommentsthinkthatmacro-geneticprogrammingisnotfeasibleintheory,butmoreresearchisneededtoconfirmit.