package Ġorg . ev om aster . core . search . gene . sql Ċ Ċ import Ġorg . ev om aster . core . output . Output Format Ċ import Ġorg . ev om aster . core . search . Evalu ated Individual Ċ import Ġorg . ev om aster . core . search . gene . Gene Ċ import Ġorg . ev om aster . core . search . gene . Gene Utils Ċ import Ġorg . ev om aster . core . search . gene . Long Gene Ċ import Ġorg . ev om aster . core . search . impact . Gene Impact Ċ import Ġorg . ev om aster . core . search . impact . Gene Mutation Selection Method Ċ import Ġorg . ev om aster . core . search . impact . sql . Sql UUID Gene Impact Ċ import Ġorg . ev om aster . core . search . service . Adaptive Parameter Control Ċ import Ġorg . ev om aster . core . search . service . Random ness Ċ import Ġorg . ev om aster . core . search . service . mut ator . gene Mutation . Archive Mut ator Ċ import Ġorg . slf 4 j . Logger Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠThe Ġdata Ġtype Ġuuid Ġstores ĠUnivers ally ĠUnique ĠIdent ifiers Ġ( UUID ) Ġas Ġdefined Ġby ĠRFC Ġ 4 1 2 2 , ĠISO / IE C Ġ 9 8 3 4 - 8 : 2 0 0 5 , Ċ Ġ* Ġand Ġrelated Ġstandards . Ġ( Some Ġsystems Ġrefer Ġto Ġthis Ġdata Ġtype Ġas Ġa Ġglobally Ġunique Ġidentifier , Ġor ĠGUID , Ġinstead .) Ċ Ġ* Ċ Ġ* Ġhttps :// www . postgresql . org / docs / 9 . 1 / datatype - uuid . html Ċ Ġ*/ Ċ class ĠSql UUID Gene ( ĊĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġmost Sig Bits : ĠLong Gene Ġ= ĠLong Gene (" most Sig Bits ", Ġ 0 L ), ĊĠĠĠĠĠĠĠ Ġval Ġleast Sig Bits : ĠLong Gene Ġ= ĠLong Gene (" least Sig Bits ", Ġ 0 L ) Ċ ) Ġ: ĠGene ( name ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcopy (): ĠGene Ġ= ĠSql UUID Gene ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmost Sig Bits . copy () Ġas ĠLong Gene , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġleast Sig Bits . copy () Ġas ĠLong Gene ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlog : ĠLogger Ġ= ĠLoggerFactory . getLogger ( Sql UUID Gene :: class . java ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġrandomize ( random ness : ĠRandom ness , Ġforce NewValue : ĠBoolean , Ġall Gen es : ĠList < Gene >) Ġ{ ĊĠĠĠĠĠĠĠ Ġmost Sig Bits . random ize ( random ness , Ġforce NewValue , Ġall Gen es ) ĊĠĠĠĠĠĠĠ Ġleast Sig Bits . random ize ( random ness , Ġforce NewValue , Ġall Gen es ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstandard Mutation ( random ness : ĠRandom ness , Ġap c : ĠAdapt ive Parameter Control , Ġall Gen es : ĠList < Gene >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgene Ġ= Ġrandom ness . choose ( listOf ( most Sig Bits , Ġleast Sig Bits )) ĊĠĠĠĠĠĠĠ Ġgene . standard Mutation ( random ness , Ġap c , Ġall Gen es ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetValue As Print able String ( previous Gen es : ĠList < Gene >, Ġmode : ĠGene Utils . Escape Mode ?, Ġtarget Format : ĠOutput Format ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ"\" ${ getValue As Raw String () }\ "" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetValue As Raw String (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġhttps :// www . postgresql . org / docs / 9 . 1 / datatype - uuid . html ĊĠĠĠĠĠĠĠ Ġreturn ĠgetValue As UUID (). toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetValue As UUID (): ĠUUID Ġ= ĠUUID ( most Sig Bits . value , Ġleast Sig Bits . value ) ĊĊĠĠĠ Ġoverride Ġfun Ġcopy Value From ( other : ĠGene ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠSql UUID Gene ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Invalid Ġgene Ġtype Ġ${ other . java Class }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . most Sig Bits . copy Value From ( other . most Sig Bits ) ĊĠĠĠĠĠĠĠ Ġthis . least Sig Bits . copy Value From ( other . least Sig Bits ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcontains Same Value As ( other : ĠGene ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( other Ġ! is ĠSql UUID Gene ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Invalid Ġgene Ġtype Ġ${ other . java Class }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . most Sig Bits . contains Same Value As ( other . most Sig Bits ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġthis . least Sig Bits . contains Same Value As ( other . least Sig Bits ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġflat View ( exclude Predicate : Ġ( Gene ) Ġ-> ĠBoolean ): ĠList < Gene > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( exclude Predicate ( this )) ĠlistOf ( this ) Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( this ). plus ( most Sig Bits . flat View ( exclude Predicate )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. plus ( least Sig Bits . flat View ( exclude Predicate )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġarchive Mutation ( random ness : ĠRandom ness , Ġall Gen es : ĠList < Gene >, Ġap c : ĠAdapt ive Parameter Control , Ġselection : ĠGene Mutation Selection Method , Ġimpact : ĠGene Impact ?, Ġgene Reference : ĠString , Ġarchive Mut ator : ĠArchive Mut ator , Ġe vi : ĠEvalu ated Individual <* >, Ġtargets : ĠSet < Int >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! archive Mut ator . enable Archive Mutation ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstandard Mutation ( random ness , Ġap c , Ġall Gen es ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġgenes Ġ: ĠList < Pair < Gene , ĠGene Impact >> ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġselects Ġ= Ġ Ġif Ġ( archive Mut ator . apply Archive Selection () Ġ&& Ġimpact Ġ!= Ġnull Ġ&& Ġimpact Ġis ĠSql UUID Gene Impact ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgenes Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( least Sig Bits , Ġimpact . least Sig Bits Impact ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( least Sig Bits Ġ, Ġimpact . most Sig Bits Impact ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarchive Mut ator . select Gen es By Archive ( genes , Ġ 1 . 0 / 2 , Ġtargets ) ĊĠĠĠĠĠĠĠ Ġ} else ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( least Sig Bits , Ġleast Sig Bits ) ĊĊĠĠĠĠĠĠĠ Ġval Ġselected Ġ= Ġrandom ness . choose ( if Ġ( select s . isNotEmpty ()) Ġselects Ġelse ĠlistOf ( least Sig Bits , Ġleast Sig Bits )) ĊĠĠĠĠĠĠĠ Ġval Ġselected Impact Ġ= Ġgenes ?. first Ġ{ Ġit . first Ġ== Ġselected Ġ} ?. second ĊĠĠĠĠĠĠĠ Ġselected . archive Mutation ( random ness , Ġall Gen es , Ġap c , Ġselection , Ġselected Impact , Ġgene Reference , Ġarchive Mut ator , Ġe vi , Ġtargets ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġarchive Mutation Update ( original : ĠGene , Ġmut ated : ĠGene , Ġdoes Current Better : ĠBoolean , Ġarchive Mut ator : ĠArchive Mut ator ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( archive Mut ator . enable Archive Gene Mutation ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( original Ġ! is ĠSql UUID Gene ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . warn (" original Ġ({ }) Ġshould Ġbe ĠSql UUID Gene ", Ġoriginal :: class . java . simple Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( mut ated Ġ! is ĠSql UUID Gene ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . warn (" mut ated Ġ({ }) Ġshould Ġbe ĠSql UUID Gene ", Ġmut ated :: class . java . simple Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! mut ated . least Sig Bits . contains Same Value As ( original . least Sig Bits )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleast Sig Bits . archive Mutation Update ( original . least Sig Bits , Ġmut ated . least Sig Bits , Ġdoes Current Better , Ġarchive Mut ator ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! mut ated . most Sig Bits . contains Same Value As ( original . most Sig Bits )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmost Sig Bits . archive Mutation Update ( original . most Sig Bits , Ġmut ated . most Sig Bits , Ġdoes Current Better , Ġarchive Mut ator ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġreach Opt imal (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġleast Sig Bits . reach Opt imal () Ġ&& Ġmost Sig Bits . reach Opt imal () ĊĠĠĠ Ġ} ĊĊ Ċ }