ውጫዊ የጄኔቲክ አልጎሪዝም መጣጥፍ። የጄኔቲክ አልጎሪዝም - የእይታ አተገባበር

  • ፕሮግራም ማውጣት
  • ከአራት ዓመታት በፊት በዩኒቨርሲቲ ውስጥ ጄኔቲክ አልጎሪዝም ስለተባለው የማመቻቸት ዘዴ ሰማሁ። በሁሉም ቦታ ስለ እሱ በትክክል ሁለት ነገሮች ተዘግበዋል: እሱ አሪፍ ነው እና አይሰራም. ወይም ይልቁንስ, ይሰራል, ግን ቀርፋፋ, የማይታመን, እና በየትኛውም ቦታ ጥቅም ላይ መዋል የለበትም. ግን የዝግመተ ለውጥን ዘዴዎች በሚያምር ሁኔታ ማሳየት ይችላል. በዚህ ጽሑፍ ውስጥ የዚህን ቀላል ዘዴ ምሳሌ በመጠቀም የዝግመተ ለውጥ ሂደቶችን በቀጥታ ለመመልከት ውብ መንገድ አሳይሻለሁ. የሚያስፈልግህ ትንሽ ሂሳብ፣ ፕሮግራም እና አንዳንድ ምናብ ብቻ ነው።

    ስለ ስልተ ቀመር በአጭሩ

    ስለዚህ የጄኔቲክ አልጎሪዝም ምንድን ነው? ይህ በመጀመሪያ ደረጃ, ባለብዙ-ልኬት ማሻሻያ ዘዴ ነው, ማለትም. ባለብዙ-ልኬት ተግባር ዝቅተኛውን ለማግኘት ዘዴ። ምናልባትም ይህ ዘዴ ለአለምአቀፍ ማመቻቸት ጥቅም ላይ ሊውል ይችላል, ነገር ግን ከዚህ ጋር ችግሮች አሉ, በኋላ ላይ እገልጻለሁ.

    የስልቱ ዋናው ነገር መስተካከል ነው። የዝግመተ ለውጥ ሂደትየሚራባው የተወሰነ ህዝብ (የቬክተር ስብስብ) አለን ይህም በ ሚውቴሽን ተጎድቷል እና የተፈጥሮ ምርጫ በመቀነስ ላይ የተመሰረተ ነው. ተጨባጭ ተግባር. እነዚህን ሂደቶች ጠለቅ ብለን እንመልከታቸው።

    ስለዚህ በመጀመሪያ ደረጃ ህዝባችን መሆን አለበት። ማባዛት. የመራቢያ መሰረታዊ መርህ ዘሩ ከወላጆቹ ጋር ይመሳሰላል. እነዚያ። አንድ ዓይነት የውርስ ዘዴን መግለፅ አለብን። እና የአጋጣሚ ነገርን ካካተተ የተሻለ ይሆናል. ነገር ግን የእንደዚህ አይነት ስርዓቶች የእድገት ፍጥነት በጣም ዝቅተኛ ነው - የጄኔቲክ ልዩነት ይቀንሳል, የህዝብ ቁጥር ይቀንሳል. እነዚያ። የተግባሩ ዋጋ መቀነስ ያቆማል.

    ይህንን ችግር ለመፍታት አንድ ዘዴ ተጀመረ ሚውቴሽንበአንዳንድ ግለሰቦች ላይ የዘፈቀደ ለውጦችን ያካተተ። ይህ ዘዴ አዲስ ነገርን በጄኔቲክ ልዩነት ውስጥ ለማስተዋወቅ ያስችለናል.
    ቀጣዩ አስፈላጊ ዘዴ ነው ምርጫ. እንደተባለው ምርጫ የግለሰቦች ምርጫ ነው (ከተወለዱት ወይም ከሁሉም ሊሆን ይችላል - ልምምድ እንደሚያሳየው ይህ ምንም ችግር የለውም. ወሳኝ ሚና), ይህም በተሻለ ሁኔታ ተግባሩን ይቀንሳል. ብዙውን ጊዜ, ከመባዛት በፊት እንደነበሩት ብዙ ግለሰቦች ይመረጣሉ, ስለዚህም ከዘመናት እስከ ዘመን ድረስ በህዝቡ ውስጥ ቋሚ ቁጥር ያላቸው ግለሰቦች አሉን. “እድለኞችን” መምረጥም የተለመደ ነው - የተወሰነ ቁጥር ያላቸው ግለሰቦች ተግባሩን በጥሩ ሁኔታ መቀነስ አይችሉም ፣ ግን በሚቀጥሉት ትውልዶች ውስጥ ልዩነትን ያስተዋውቁ።

    እነዚህ ሶስት ስልቶች አብዛኛውን ጊዜ ተግባርን ለመቀነስ በቂ አይደሉም። የህዝብ ብዛት በዚህ መልኩ ነው የሚሽከረከረው - ይዋል ይደር እንጂ የአካባቢ ዝቅተኛው ዋጋ ሁሉንም ህዝብ ያጨናንቀዋል። ይህ በሚሆንበት ጊዜ, አንድ ሂደት ይባላል መንቀጥቀጥ(በአናሎግ ተፈጥሮ - ዓለም አቀፍ አደጋዎች) ከሞላ ጎደል መላው ሕዝብ ሲጠፋ እና አዲስ (በነሲብ) ግለሰቦች ሲጨመሩ።

    የጥንታዊው የጄኔቲክ አልጎሪዝም መግለጫ እዚህ አለ ፣ ለመተግበር ቀላል እና ለምናብ እና ለምርምር ቦታ አለ።

    የችግሩ መፈጠር

    ስለዚህ፣ ይህን አፈ ታሪክ (ያልተሳካለት ቢሆንም) ስልተቀመር ለመተግበር መሞከር እንደምፈልግ አስቀድሜ ወስኜ ሳለሁ፣ ውይይቱ ወደ ምን ልቀንስ ነው? ብዙውን ጊዜ አንዳንድ አስፈሪ ባለ ብዙ ልኬት ተግባራትን በሳይንስ፣ ኮሳይንስ፣ ወዘተ ይወስዳሉ። ግን ይህ በጣም አስደሳች አይደለም እና በጭራሽ ግልጽ አይደለም. አንድ ቀላል ሀሳብ መጣ - እሴቱ ለብሩህነት ተጠያቂ የሆነበት ምስል ሁለገብ ቬክተር ለማሳየት ፍጹም ነው። ስለዚህ, ቀላል ተግባርን ማስተዋወቅ እንችላለን - ወደ ዒላማችን ምስል ያለው ርቀት, በፒክሰል ብሩህነት ልዩነት ይለካል. ለቀላልነት እና ፍጥነት፣ ምስሎችን በ 0 ወይም 255 ብሩህነት አንስቻለሁ።

    ከሂሳብ እይታ አንጻር እንዲህ ያለው ማመቻቸት ተራ ተራ ነገር ነው። የእንደዚህ አይነት ተግባር ግራፍ ትልቅ ባለብዙ-ልኬት “ቀዳዳ” ነው (በሥዕሉ ላይ እንደ ባለ ሶስት አቅጣጫዊ ፓራባሎይድ) ፣ ወደ ግራዲውን ከተከተሉ መንሸራተትዎ የማይቀር ነው። ብቸኛው የአካባቢ ዝቅተኛው ዓለም አቀፍ ነው። .

    ብቸኛው ችግር ቀድሞውኑ ወደ ዝቅተኛው ቅርብ ነው ፣ እርስዎ ሊወርዱባቸው የሚችሉባቸው መንገዶች ብዛት በእጅጉ ቀንሷል ፣ እና በአጠቃላይ ልኬቶች እንዳሉት ብዙ አቅጣጫዎች አሉን (ማለትም የፒክሰሎች ብዛት)። በግልጽ ለማየት እንደሚቻለው, ይህንን ችግር በጄኔቲክ አልጎሪዝም በመጠቀም መፍታት ዋጋ የለውም, ግን እኛ ማየት እንችላለን አስደሳች ሂደቶችበሕዝባችን ውስጥ እየተከሰተ ነው።

    መተግበር

    በመጀመሪያው አንቀጽ ላይ የተገለጹት ሁሉም ዘዴዎች ተተግብረዋል. ማባዛት የተካሄደው ከ"እናት" እና "ከአባት" የዘፈቀደ ፒክሰሎችን በማቋረጥ ብቻ ነው። ሚውቴሽን የተደረገው በዘፈቀደ ግለሰብ ውስጥ ያለውን የዘፈቀደ ፒክሰል ዋጋ ወደ ተቃራኒው በመቀየር ነው። እና መንቀጥቀጡ የተካሄደው ዝቅተኛው ከአምስት እርከኖች በላይ ካልተለወጠ ነው። ከዚያም "እጅግ ሚውቴሽን" ይከሰታል - መተኪያው ከተለመደው የበለጠ ኃይለኛ ነው.

    እንደ መጀመሪያው ሥዕሎች nonograms (“የጃፓን ስካን ቃላቶች”) ወስጃለሁ ፣ ግን እውነቱን ለመናገር ፣ ጥቁር ካሬዎችን ብቻ መውሰድ ይችላሉ - ምንም ልዩነት የለም። የበርካታ ምስሎች ውጤቶች ከዚህ በታች አሉ። እዚህ, ከ "ቤት" በስተቀር ለሁሉም ሰው, ሚውቴሽን ቁጥር ለእያንዳንዱ ግለሰብ በአማካይ 100 ነበር, በህዝቡ ውስጥ 100 ግለሰቦች ነበሩ, እና በመራባት ጊዜ ህዝቡ በ 4 እጥፍ ጨምሯል. በእያንዳንዱ ዘመን 30% እድለኞች ነበሩ. ለቤቱ, ትናንሽ እሴቶች ተመርጠዋል (በህዝቡ ውስጥ 30 ግለሰቦች, በግለሰብ 50 ሚውቴሽን).




    ለሙከራ ያህል፣ “እድለኞች”ን በምርጫ መጠቀማቸው የህዝቡን ቁጥር በትንሹ የመቀነስ ደረጃን እንደሚቀንስ ተረድቻለሁ፣ ነገር ግን ከመቀዛቀዝ ለመውጣት ይረዳል - ያለ “እድለኞች” መቀዛቀዝ የማያቋርጥ ይሆናል። ከግራፎቹ ላይ የሚታየው ግራፍ ግራፍ የ "ፈርዖን" ህዝብ እድለኞች ናቸው, ትክክለኛው እድለኛ የሌላቸው ናቸው.


    ስለዚህ, ይህ አልጎሪዝም ችግሩን ለመፍታት እንደሚፈቅድ እናያለን, ምንም እንኳን በጣም ለረጅም ግዜ. በጣም ብዙ ብዙ ቁጥር ያለውመንቀጥቀጦች, በትላልቅ ምስሎች ሁኔታ, ሊፈቱ ይችላሉ ትልቅ መጠንበሕዝብ ውስጥ ያሉ ግለሰቦች. ከዚህ ልጥፍ ወሰን ውጭ ለተለያዩ ልኬቶች ጥሩውን የልኬቶች ምርጫ እተወዋለሁ።

    ዓለም አቀፍ ማመቻቸት

    እንደተባለው፣ የአካባቢ ማመቻቸት ለዚያም ቢሆን ተራ ተራ ተግባር ነው። ሁለገብ ጉዳዮች. አልጎሪዝም ከአለምአቀፍ ማመቻቸት ጋር እንዴት እንደሚቋቋም ማየት የበለጠ ትኩረት የሚስብ ነው። ግን ይህንን ለማድረግ በመጀመሪያ ከብዙ የአካባቢ ሚኒማዎች ጋር አንድ ተግባር መገንባት ያስፈልግዎታል። እና በእኛ ሁኔታ ይህ በጣም አስቸጋሪ አይደለም. ዝቅተኛውን ከርቀት ወደ ብዙ ምስሎች (ቤት, ዳይኖሰር, ዓሳ, ጀልባ) መውሰድ በቂ ነው. ከዚያ የመነሻው ስልተ ቀመር ወደ አንዳንድ የዘፈቀደ ጉድጓድ ውስጥ "ይንሸራተታል". እና ብዙ ጊዜ ብቻ ማሄድ ይችላሉ።

    ግን ተጨማሪ አለ አስደሳች መፍትሔችግር ተፈጥሯል፡ ወደ ዝቅተኛው አካባቢ ሾልከው እንደገባን፣ ጠንከር ያለ መንቀጥቀጥ (ወይም እንደገና ግለሰቦችን እንደጀመርን) እና ወደ የታወቀ ዝቅተኛ ስንቃረብ ቅጣቶችን እንጨምር። እንደሚመለከቱት, ስዕሎቹ ይለዋወጣሉ. ዋናውን ተግባር የመንካት መብት እንደሌለን አስተውያለሁ። ነገር ግን እኛ አካባቢያዊ minima ማስታወስ እና እራሳችንን ቅጣቶች መጨመር እንችላለን.

    ይህ ሥዕል ውጤቱን የሚያሳየው በአካባቢው ዝቅተኛ (ጠንካራ መቀዛቀዝ) ላይ ሲደርስ ህዝቡ በቀላሉ ሲሞት ነው።

    እዚህ ህዝቡ ይሞታል እና ትንሽ ቅጣት ይጨመራል (ከተለመደው ርቀት እስከ የታወቀ ዝቅተኛ) ጋር እኩል ነው. ይህ የመድገም እድልን በእጅጉ ይቀንሳል።

    ህዝቡ በማይሞትበት ጊዜ የበለጠ ትኩረት የሚስብ ነው, ነገር ግን በቀላሉ ከአዳዲስ ሁኔታዎች ጋር መላመድ ይጀምራል (ቀጣይ ምስል). ይህ በ 0.000001 * ድምር ^ 4 ቅጣት ተገኝቷል. በዚህ ሁኔታ, አዲሶቹ ምስሎች ትንሽ ጫጫታ ይሆናሉ:

    ይህ ጩኸት ቅጣቱን ወደ ከፍተኛ (0.000001 * ድምር ^ 4, 20) በመገደብ ይወገዳል. ነገር ግን አራተኛው የአካባቢ ዝቅተኛ (ዳይኖሰር) ሊደረስ እንደማይችል እናያለን - ምናልባትም ከሌላው ጋር በጣም የቀረበ ስለሆነ።

    ባዮሎጂካል ትርጓሜ


    ከየትኛው መደምደሚያ ላይ መድረስ እንችላለን, እኔ ልናገር, ሞዴሊንግ? በመጀመሪያ ደረጃ, እናያለን ወሲባዊ እርባታ- በጣም አስፈላጊው የእድገት እና የመላመድ ሞተር. ግን ያ ብቻ በቂ አይደለም። የዘፈቀደ, ትናንሽ ለውጦች ሚና እጅግ በጣም አስፈላጊ ነው. በዝግመተ ለውጥ ሂደት ውስጥ አዳዲስ የእንስሳት ዝርያዎች መኖራቸውን የሚያረጋግጡ ናቸው, እና በአገራችን ውስጥ የህዝቡን ልዩነት ያረጋግጣል.

    በምድር ዝግመተ ለውጥ ውስጥ በጣም አስፈላጊው ሚና የተጫወተው በ የተፈጥሮ አደጋዎችእና የጅምላ መጥፋት(የዳይኖሰርስ፣ የነፍሳት፣ ወዘተ መጥፋት - ወደ አሥር የሚጠጉ ዋና ዋና ሰዎች ነበሩ - ከታች ያለውን ሥዕላዊ መግለጫ ይመልከቱ)። ይህ በእኛ አስመሳይነትም ተረጋግጧል። እና "እድለኞች" የሚለው ምርጫ ዛሬ በጣም ደካማ የሆኑት ፍጥረታት ለወደፊት ትውልዶች መሠረት ለመሆን እንደሚችሉ አሳይቷል.

    እነሱ እንደሚሉት, ሁሉም ነገር በህይወት ውስጥ ነው. ይህ "እራስዎ ያድርጉት የዝግመተ ለውጥ" ዘዴ አስደሳች የሆኑ ዘዴዎችን እና በልማት ውስጥ ያላቸውን ሚና በግልጽ ያሳያል. እርግጥ ነው, ወደ ሕይወት የሚቀርቡትን ተጨማሪ ምክንያቶች ግምት ውስጥ በማስገባት ብዙ ተጨማሪ ዋጋ ያላቸው የዝግመተ ለውጥ ሞዴሎች (በእርግጥ, በ difurs ላይ የተመሰረቱ) አሉ. በእርግጥ ተጨማሪዎች አሉ ውጤታማ ዘዴዎችማመቻቸት.

    ፒ.ኤስ.

    በ Matlab (ወይም ይልቁንም በኦክታቭ ውስጥ እንኳን) አንድ ፕሮግራም ጻፍኩኝ, ምክንያቱም እዚህ ያለው ሁሉም ነገር ባዶ ማትሪክስ ነው, እና ከስዕሎች ጋር ለመስራት መሳሪያዎች አሉ. የምንጭ ኮድ ተያይዟል።

    ምንጭ

    ተግባር res = ጄኔቲክ (ፋይል) % የሚያመነጭ ግሎባል A B; im2line (ፋይል); ዲም = ርዝመት (A (1,:)); ቆጠራ = 100; ማባዛት = 4; mut = 100; ይምረጡ = 0.7; stagn = 0.8; ፖፕ = ክብ (ራንድ (ቆጠራ, ዲም)); ረስ =; B = ; localmin =; localcount =; ለ k = 1:300% መባዛት ለ j = 1: ቆጠራ * reprod pop =; መጨረሻ% ሚውቴሽን idx = 10 * (ርዝመት (res) > 5 && std (res(1:5)) == 0) + 1; ለ j = 1: ቆጠራ * mut a = ወለል (ራንድ () * ቆጠራ) + 1; b = ወለል (ራንድ () * ዲም) + 1; ፖፕ(a,b) = ~ፖፕ(a,b); መጨረሻ% ምርጫ ቫል = func(ፖፕ); ቫል (1: ቆጠራ) = ቫል (1: ቆጠራ) * 10; npop = ዜሮዎች (መቁጠር, ዲም); = ዓይነት (ቫል); ረስ =; መርጦ = ፖፕ (i (1),:); fn = sprintf("ውጤት/%05d-%d.png",k,s(1)); line2im(opt*255,fn); ከሆነ (ዎች (1) == 0 || localcount > 10) localmin =; localcount =; B = ; % ፖፕ = ክብ (ራንድ (ቆጠራ, ዲም)); ቀጥል; % መሰባበር; መጨረሻ ለ j = 1: ወለል (መቁጠር * ይምረጡ) npop (j,:) = ፖፕ (i (j),:); መጨረሻ % እድለኞች መጨመር ለ j = (ፎቅ (መቁጠር * ምረጥ)+1) : ቆጠራ npop (j,:) = ፖፕ (ፎቅ (ራንድ () * ቆጠራ) + 1,:); መጨረሻ % መጠገን መቀዛቀዝ ከሆነ (ርዝመት (res) > 5 && std (res(1:5)) == 0) ከሆነ (localmin == res (1)) localcount = localcount+1; ሌላ የአካባቢ ቁጥር = 1; መጨረሻ localmin = ሪስ (1); ለ j = 1: ቆጠራ * stagn a = ወለል (ራንድ () * ቆጠራ) + 1; npop(a,:) = መሻገሪያ(npop(a,:),ራንድ(1፣ዲም)); መጨረሻ መጨረሻ ፖፕ = npop; መጨረሻ res = res (ርዝመት(res):-1:1); የመጨረሻ ተግባር res = መሻገሪያ (a, b) x = ክብ (ራንድ (መጠን (ሀ))); res = a .* x + b .* (~x); መጨረሻ ተግባር res = func (v) ግሎባል A B; res = inf; ለ i = 1: መጠን (A,1) res = ደቂቃ (res, ድምር (v ~= A (i,:),2)); መጨረሻ ለ i = 1: መጠን (B,1) res = res + ከፍተኛ (0.000001 * ድምር (v == B (i,),2) .^ 4.20); የመጨረሻ መጨረሻ ተግባር = im2line (ፋይሎች) ግሎባል A sz; አ = ; ፋይሎች = cellstr (ፋይሎች); ለ i = 1: መጠን (ፋይሎች, 1) imorig = ያልተነበበ (ቻር (ፋይሎች (i,:))); sz = መጠን (imorig); ሀ =)]; መጨረሻ A = A / 255; የመጨረሻ ተግባር = line2im (im, file) global sz; መፃፍ (መቅረጽ (im*255,sz)፣ፋይል); መጨረሻ

    መለያዎች

    • የጄኔቲክ አልጎሪዝም
    • ሁለገብ ማመቻቸት
    • ዝግመተ ለውጥ
    • ማትላብ
    መለያዎችን ያክሉ

    ክቡር ባዶነትን አሳልፎ ሰጠ። ቢሆንም በቂ ያልሆነ ደረጃ*በሳንሱር የተቋረጠ* የሕትመት ቀንን ገፍቶበታል፣ እና አሁን ብቻ፣ በእኔ በኩል አሳፋሪ አሰልቺ ልመና፣ ይህ መጣጥፍ እራሱን ለአለም ለማሳየት እድሉን አገኘ። በዚህ ጊዜ ውስጥ፣ ቢያንስ ሶስት (ይህን ያህል ነው ዓይኔን የሳበው) መጣጥፎች ላይ ተመሳሳይ ርዕስእና ከታች ከተጻፉት አንዳንዶቹን ስታነብ ይህ የመጀመሪያ ጊዜ ላይሆን ይችላል። እንደዚህ አይነት ሰዎች አሁንም ቢሆን ልምድ በሌላቸው ወጣቶች GA በታዋቂ ሳይንስ መንገድ ለማስረዳት ባደረገው ሙከራ ፊታቸውን እንዳያበሳጩ፣ ነገር ግን ወደ ቀጣዩ ኤግዚቢሽን እንድንሸጋገር ሀሳብ አቀርባለሁ፣ ወደ ሁለተኛው ክፍል፣ ይህም በ GA ላይ የተመሰረተ ቦት መፍጠርን ይገልጻል። የፕሮግራም ጨዋታ ሮቦኮድ. ይህ, እንደ የቅርብ ጊዜ የመረጃ መረጃ, እስካሁን ድረስ በማዕከሉ ላይ አልተገኘም.

    ክፍል አንድ. የጄኔቲክ አልጎሪዝም ሕይወት እና ሥራ።

    ከሩቅ እንጀምር። መፍታት ያለባቸው የተወሰኑ ችግሮች ስብስብ አለ. ግባችን ሊለወጡ የሚችሉ ድርጊቶችን መፈለግ ነው። የተሰጠው(የችግሮቹ የመጀመሪያ ሁኔታዎች) በ መልስ(የዒላማ ሁኔታ).

    ሁኔታው ቀላል ከሆነ እና ለእንደዚህ አይነት ችግር መፍትሄው ከሁኔታዎች በግልፅ ሊሰላ ይችላል በእነዚህ ማታኖችዎ እርዳታ ፣ ታዲያ ጥሩ ፣ እዚህ ሁሉም ነገር ያለ ጥበባችን እንኳን ደህና ነው ፣ ተበድበናል ፣ ሁላችንም ተለያይተናል ። መንገዶች. ለምሳሌ, ሲፈታ ኳድራቲክ እኩልታመልሱ (እሴቶች x1, x2) የተገኘው ከመጀመሪያው ሁኔታ (coefficients a, b, c) ሁላችንም በትምህርት ቤት የተማርነውን ቀመር በመተግበር ነው. በጣም በሚያሳዝን ሁኔታ ውስጥ ምን ማድረግ እንዳለበት, መቼ የሚፈለገው ቀመርበመማሪያ መጽሐፍ ውስጥ አይደለም? ጋር መሞከር ይችላሉ። አእምሮን ማወዛወዝከችግሮቹ ውስጥ አንዱን መፍታት. በትንታኔ። የቁጥር ዘዴዎች. በተስፋ መቁረጥ ተግባራት ኃይል። ከጥቂት ጊዜ በኋላ ህልም ያለው ተማሪ "ምነው እራሱን ቢፈታ" ይሰማል. አዎ, ከመጋረጃው በስተጀርባ የምንወጣው እዚህ ነው. ስለዚህ ግቡ የግቤት ውሂብ የሚቀበል እና ትክክለኛ ቁጥሮችን የሚመልስ ተግባር (ፕሮግራም) የሚያገኝ ፕሮግራም መጻፍ ነው። የሜታፕሮግራም ሃይል፣ ወደ ጦርነት!

    ሆ፣ ይህን ግብ እንዴት እናሳካው? በእሳት ለተደጋገሙ አማልክቶች እንሰዋው፡ አንድ ተግባር (ፕሮግራም) የሚያገኝ ፕሮግራም የሚጽፍ ፕሮግራም እንጽፋለን... አይ፣ ይህ ለሁለተኛ ጊዜ አይሰራም። እንደ የዝግመተ ለውጥ ዘዴ እና የተፈጥሮ ምርጫ ባሉ ክስተቶች ላይ እይታችንን በመመልከት ከተፈጥሮ ምሳሌ መውሰድ የተሻለ ነው። ሁሉም ነገር በህይወት ውስጥ ነው፡ ፕሮግራሞቻችን በህይወት ይኖራሉ፣ ይገናኛሉ፣ ይወልዳሉ እና በበለጠ የተስተካከሉ ግለሰቦች ቀንበር ስር ይሞታሉ፣ ህይወታቸውን ያስተላልፋሉ። ምርጥ ባሕርያትዘሮች. እብድ ነው የሚመስለው ነገር ግን በቅርበት መመልከት ተገቢ ነው።

    የሶፍትዌር አለም አምላክ የእኛ ተግባር ነው። መርሃ ግብሮች በእሱ ማመን አለባቸው ፣ ለእሱ መተባበር ፣ በቤተክርስቲያን ውስጥ ሻማ ማብራት እና የህይወትን ትርጉም ለማግኘት እና ይህንን ችግር ለመፍታት ብቸኛው ዓላማ መኖር አለባቸው ። ከአካባቢው ጋር በጣም የሚስማማው (ችግሩን ለመፍታት የቀረበ) የአልፋ ተባዕት ይሆናል, ይድናል እና ጠንካራ ዘሮችን ያፈራል. ህይወቱን በሙሉ በእስር ቤት ያሳለፈ ተሸናፊ የመስመር ላይ ጨዋታዎችችግሩን በመፍታት ረገድ ስኬት አላሳየም ፣ ዘር የመውለድ እድሉ በጣም ትንሽ ነው ። የዘረመል ገንዳው ከነዚህ አጉል ጓዶች አስተዋፅዖ ይጸዳል፣ እና መላው የፕሮግራም ማህበረሰብ ወደ ተፈታው ችግር ብሩህ የወደፊት ጉዞ ይሄዳል። ደህና ፣ ውስጥ አጠቃላይ መግለጫቀድሞውኑ ግልፅ ነው ፣ አሁን ምስሎቹን መረዳት ያስፈልግዎታል በመጀመሪያ ፣ ፕሮግራሞችን ማጣመር እንዴት ያስባሉ? ሁለተኛ የመጀመርያውን የፕሮግራም ትውልድ ከየት እናገኛለን? በሶስተኛ ደረጃ የግለሰቦችን ብቃት በምን አይነት ባህሪ እንወስናለን እና መሻገሪያ ላይ ምን ተጽእኖ ይኖረዋል? በአራተኛ ደረጃ ፣ የአልጎሪዝም ሥራው መጨረሻ ላይ እና ይህንን ሙሉ ኦርጂያ መቼ ማቆም እንዳለበት ሁኔታዎችን መወሰን ጠቃሚ ነው።

    የፕሮግራም ማጣመር ጥበብ

    ብዙዎቻችን አንዳንድ ጊዜ ወሲባዊ ጥቃትን በፕሮግራሞች ላይ የመተግበር ፍላጎት የሚሰማን ይመስለኛል። እዚህ እንደነዚህ ዓይነት የዝርያ ልዩነቶችን እንደማናበረታታ አስቀድመን ለማስጠንቀቅ እንገደዳለን. ሁሉም ነገር እንደፈለግን ነው። የካቶሊክ ቤተ ክርስቲያን: ፕሮግራም ያለው ፕሮግራም ከጋብቻ በኋላ ብቻ ... እና አጋሮችን አይቀይሩም, ምንም እንኳን ያ ደካማ ሰው ቡና ቤት ውስጥ ኮክቴል ቢገዛም. ምንም እንኳን የለም፣ እዋሻለሁ፣ የሃረም አይነት ከአንድ በላይ ማግባት እያደገ ነው። አዎ፣ እና እንዲሁም፣ ከዚህ በታች እንደ “አባት” ወይም “ልጅ” ያሉ ቃላትን ቢጠቀሙም ፕሮግራሞቻችን ሄርማፍሮዳይትስ ናቸው። ደህና፣ የዝምድና ግንኙነትም... ኧረ እኔም ስለ ቤተ ክርስቲያን * የፊት ፓልም* ተናግሬ ነበር። እሺ፣ በኋላ ላይ ተጨማሪ።

    ፕሮግራሞችን የማቋረጡ ጉዳይ በጣም ቀላል አይደለም. በአጋጣሚ ተግባራትን፣ ገመዶችን ወይም ተለዋዋጮችን መለዋወጥ የስብ ክር ያስከትላል አስፈሪ ቃላትከአቀናባሪ/ተርጓሚው ወደ እርስዎ የተላከ እንጂ አይደለም። አዲስ ፕሮግራም. ማለትም ፕሮግራሞችን ለመሻገር መንገድ መፈለግ አስፈላጊ ነው በትክክል. ብልህ ሰዎች መውጫ መንገድ አግኝተዋል። እና የአቀናባሪዎችን መዋቅር ያጠኑ ብልጥ ወንዶች እና ልጃገረዶች እንዲሁ ገምተውታል። አዎ፣ አዎ፣ ይህ የአገባብ ዛፍ ነው።

    ወዲያውኑ የኔን ጠረን ልገግም፡ ጢማችን ገና ብዙ ስላልሆነ በጣም እንጠቀማለን። ቀላል ዓይነቶችፕሮግራሞች. የሚፈልጉ ሰዎች ስፍር ቁጥር በሌላቸው የፕሮግራም ሀብቶች ሸለቆ ውስጥ ሊገቡ ይችላሉ ፣ ግን እዚህ ሁሉም ነገር ቀላል ነው - ፕሮግራሙ መግለጫዎችን ያቀፈ ነው ፣ በተራው ደግሞ ቀላል ተግባራትን ከአንዳንድ ብልህነት ፣ ተለዋዋጮች እና ቋሚዎች ጋር ያካትታል። እያንዳንዱ አገላለጽ በፕሮግራሙ ከተመለሱት እሴቶች ውስጥ አንዱን ይቆጥራል።

    ለምሳሌ፡- አንዳንድ የግለሰብ ፕሮግራም ካሬ ሁለት አባባሎችን ያቀፈ ነው፣የአራትዮሽ እኩልታን ለመፍታት በመሞከር (በጣም በተሳካ ሁኔታ አይደለም)
    የተግባር ካሬ (a, b, c) (x1 = ደቂቃ (ኃጢአት (ለ)*(a+1), 0); x2 = 3 + ኤክስፕ (ሎግ (b*a)); መመለስ (x1, x2);)
    በአቀራረብ ላይ ወስነናል፣ አሁን ማከማቻውን ማስተካከል አለብን። ከስርአቱ ክፍል ወደ ሌላው ማስተላለፍን ጨምሮ በነዚ ተመሳሳይ ፕሮግራሞች ዙሪያ ብዙ ጭፈራዎች ስላሉ (በአጠቃላይ አነጋገር በእኔ ሁኔታ በአጠቃላይ የተፃፉት የተለያዩ ቋንቋዎች), ከዚያም የእኛን ናሙና በዛፍ መልክ ማከማቸት በጣም ምቹ አይደለም. እሱን ይበልጥ ምቹ በሆነ መንገድ ለመወከል (በሀሳብ ደረጃ፣ በተወሰኑ የመጨረሻ ፊደላት ላይ ያሉ የሕብረቁምፊዎች ስብስብ)፣ የኛ ነጠላ-ፕሮግራም-የዛፎች ስብስብ ኮድ መፍታት/መግለጥን መማር አለበት።

    ዛፍ ይመስላል, ግን አይደለም
    ስለዚህ, ዛፉን እንደ ክር መወከል ያስፈልገናል. እዚህ የካርቫ ዛፎች ኃይል ይረዳናል. በመጀመሪያ, በዛፉ ውስጥ ሊታዩ የሚችሉትን የተግባር, ተለዋዋጭ እና ቋሚዎች ስብስብ መወሰን አለብዎት. ተለዋዋጮች እና ቋሚዎች ከዛፉ ቅጠሎች ጋር ይዛመዳሉ እና ተርሚናሎች ይባላሉ, ተግባራት - ወደ ቀሪዎቹ (ውስጣዊ) የዛፉ አንጓዎች, ተርሚናል ያልሆኑ ተብለው ይጠራሉ. በተጨማሪም ተግባራት ሊኖራቸው ለሚችለው እውነታ ትኩረት መስጠት ተገቢ ነው የተለያዩ መጠኖችክርክሮች ፣ ስለሆነም እንደዚህ አይነት እውቀት በእውነት እንፈልጋለን (“አሪቲ” ፣ ቃሉ በጸጥታ በባለሙያዎች ከንፈር ውስጥ ገባ)። ውጤቱ የኢንኮዲንግ ሠንጠረዥ ነው ፣ ለምሳሌ ፣ እንደዚህ

    እዚህ n, +, *, ተግባራት ከሆኑ; 2 - ቋሚ; a እና b ተለዋዋጮች ናቸው። ውስጥ እውነተኛ ችግሮችየክብደት ሠንጠረዥ ፣ በእንደዚህ ዓይነት ስብስብ የኳድራቲክ እኩልታን እንኳን መፍታት አይችሉም። እንዲሁም በዜሮ እና በሌሎች የአፖካሊፕስ ሁኔታዎች መከፋፈልን ለማስወገድ ሁሉም ተግባራት በእውነተኛ ቁጥሮች ስብስብ ላይ መገለጽ አለባቸው (በጥሩ ፣ ​​ወይም በችግሩ ውስጥ የሚጠቀሙበት ማንኛውም ስብስብ) የሚለውን እውነታ ማስታወስ ያስፈልግዎታል። ያለበለዚያ በጥበቃ ላይ መቀመጥ ፣ ሎጋሪዝምን ከዜሮ ይያዙ እና ከዚያ ምን ማድረግ እንዳለቦት ማወቅ አለብዎት። እኛ ኩሩ ሰዎች አይደለንም, እንደዚህ አይነት አማራጮችን ሳያካትት ቀላሉ መንገድ እንሄዳለን.

    ስለዚህ, በእንደዚህ አይነት ጠረጴዛ እርዳታ, ከዛፍ ወደ ረድፍ እና ወደ ኋላ የሚሄዱ ተግባራትን ማካሄድ ችግር አይደለም. ለምሳሌ፣ ኮድ ለማውጣት የሚከተለውን መስመር ተቀብለናል፡-

    ሰንጠረዡን በመጠቀም እያንዳንዱን ንጥረ ነገር ለይተን እናስባለን እና እንዲሁም ስለ ስነምግባር እናስታውሳለን፡

    አሁን፣ አሪቲ በመጠቀም፣ የተግባር ነጋሪ እሴቶችን ማጣቀሻዎችን እናስቀምጣለን፡

    እባክዎን ያስታውሱ የዝርዝሩ የመጨረሻዎቹ 3 አካላት ለማንም ምንም ፋይዳ አልነበራቸውም ፣ እና እሴቶቻቸው በምንም መልኩ የተግባሩን ውጤት አይጎዱም። ይህ የተከሰተው የተካተቱት የዝርዝር ንጥረ ነገሮች ብዛት, የዛፍ ኖዶች ብዛት, እንደ አርቲስቶቻቸው ላይ በመመስረት በቋሚነት ስለሚንሳፈፉ ነው. ስለዚህ በኋላ ላይ ትክክል ባልሆነ ዛፍ ላይ ከመሰቃየት ይልቅ በመጠባበቂያ ክምችት ላይ ማከማቸት የተሻለ ነው.

    አሁን በመጀመሪያው አካል ካነሳነው፣ የገለጻው ዛፉ በእጃችን ይንቀጠቀጣል፡-

    ዛፉን በተደጋጋሚ በማለፍ የተግባሩ ዋጋ ሊሰላ ይችላል ፣ እሱ እንደሚከተለው ይሆናል።

    የአባቴ አይኖች እንደዚህ ናቸው።
    ወደ ሞቃታማው ነገር እንመለስ - መሻገር። የማቋረጫ መርሃ ግብሮችን እናስቀምጣለን የሚከተሉት ሁኔታዎችበመጀመሪያ ደረጃ, ሁለት ግለሰቦች የሚጣመሩ ሁለት ልጆችን ያፈራሉ (ማለትም የህዝብ ብዛት ቋሚ ነው); በሁለተኛ ደረጃ, በመቋረጡ ምክንያት, ዘሮቹ, በተወሰነ ደረጃ, የሁለቱም ወላጆች ባህሪያት ሊኖራቸው ይገባል (ማለትም, ፖም ከፖም ዛፍ በጣም ርቆ መሄድ የለበትም). አሁን ፕሮግራሙ እንዴት እንደሚወከል ተምረናል - እንደ ሕብረቁምፊዎች ወይም ዛፎች ስብስብ። በዚህ መሠረት እንደ ክሮች ወይም እንደ ዛፎች ሊሻገሩ ይችላሉ.

    ዛፍ መሻገር በዘፈቀደ የተመረጡ ቅርንጫፎች መለዋወጥ ነው። የማቋረጫ ሕብረቁምፊዎች በተለያዩ መንገዶች ሊተገበሩ ይችላሉ-አንድ-ነጥብ እንደገና ማጣመር (በክፍልፋይ ማጣበቅ) ፣ ባለ ሁለት-ነጥብ እንደገና ማጣመር ፣ የንጥረ-ነገር ልውውጥ ፣ ወዘተ. አሳታፊ ሐረጎችነገር ግን ምን እንደሆነ ለመረዳት በስዕሉ ላይ አንድ እይታ በቂ ነው፡-

    አንድ ሰው በድጋሚ ማጣመር ውስጥ ያሉት የማጣበጃ ቦታዎች በዘፈቀደ እንደሚመረጡ ብቻ ልብ ሊባል ይገባል ፣ ልክ በኤለመን-በ-ንጥረ-ነገር መሻገሪያ ውስጥ ፣ልውውጡ የሚከሰተው ከተወሰነ ዕድል ጋር ነው። በዛፎች መሻገር ከዘር ውርስ አንፃር የበለጠ ተስፋ ሰጪ ይመስላል ፣ ግን ለመተግበር የበለጠ ከባድ ነው።

    ሄይ ይህች ልጅ ከእኔ ጋር ናት!

    የሂደቱ በጣም ቅርብ የሆነው ክፍል ተካቷል (ብዙዎቹ በዚህ ጽሑፍ ውስጥ ምን ያህል ጥቃቅን እንደሆኑ ተሰምቷቸዋል የግል ሕይወትደራሲ)። አሁን በግለሰቦች መካከል ካለው ግንኙነት ወደ ጥንዶች እንሸጋገር ማህበራዊ መሰረቶች.

    ግለሰቦች በትውልድ ይከፋፈላሉ. አዲሱ ትውልድ ያለፈው ትውልድ የግለሰቦችን ልጆች ያካትታል. አሁን ያለው የወንዶችና የሴቶች ልጆች፣ የአባቶችና የእናቶች፣ የአያቶች፣ ቅድመ አያቶች፣ እና የመሳሰሉት እስከ ዜሮ ትውልድ ድረስ - የመላው ኩሩ ሕዝብ ቅድመ አያቶች እንዳሉ ተገለጸ። ከተወለደ በኋላ የአዲሱ ትውልድ እያንዳንዱ ግለሰብ ችግሩን ለመፍታት ይሞክራል, ተግባሮቹ በአንዳንድ መለኮታዊ የአካል ብቃት ተግባራት ይገመገማሉ, እና በወጣቱ እንቅስቃሴ ግምገማ ላይ በመመስረት ግለሰቡ ዘርን የመውለድ አንዳንድ እድሎችን ያገኛል, ማለትም ወደ ክፍል ውስጥ የመግባት እድል አለው. ለመራባት ከተመረጡት የትውልድ ምርጥ ተወካዮች. ዓለማችን ጨካኝ እና ጨካኝ ነው ፣ እናም በሁሉም የዲስቶፒያ ቀኖናዎች (ወይም እንደ ፉህሬር ሀሳቦች ፣ እንደፈለጋችሁት) ፣ ከንቱ ጡረተኞች ወላጆች ፣ ዘር የመውለድ ተልእኳቸውን ካጠናቀቁ በኋላ ወደ ጉዞ ይሂዱ ። ጋዝ ቫን ፣ ለሁለት ለልጆቻቸው የመኖሪያ ቦታን ነፃ ያወጣል። ልጆች የወላጆቻቸውን ፈለግ ይከተላሉ, እና ከትውልድ ወደ ትውልድ ወዘተ.

    የመዛመጃ ኮታዎችን የሚያወጣው ተመሳሳይ የአካል ብቃት ተግባር (ወይም የአካል ብቃት ተግባር) የግለሰቡን ችግር እና ችግር ለመፍታት ያለውን ችሎታ በበቂ ሁኔታ መገምገም አለበት። የቁጥር አገላለጽይህ የአካል ብቃት (ዋጋው ከፍ ባለ መጠን የአካል ብቃት የተሻለ ይሆናል). ለምሳሌ፣ በዚያው ኳድራቲክ እኩልታ፣ ይህ በያንዳንዱ ፕሮግራም የሚሰላው x1፣ x2 ሲተካ፣ በግራ በኩል ያለው ዋጋ ወደ ዜሮ ምን ያህል እንደሚጠጋ መለኪያ ሊሆን ይችላል።

    የአካል ብቃት እንቅስቃሴው እያንዳንዱ ግለሰብ የራሱን ጥቅም እና ብቃት የሚያመለክት የተወሰነ ቁጥር ይሰጣል. ይህ ዋጋ በምርጫው ሂደት ላይ ተጽእኖ ያሳድራል-የአንድ ግለሰብ ዋጋ ከፍ ባለ መጠን, ለመሻገር (እና እንዲያውም ከአንድ በላይ) ጥንድ የማግኘት እድሉ ከፍተኛ ነው. በተግባር ፣ ለሁሉም የአንድ ትውልድ ግለሰቦች የአካል ብቃት እንቅስቃሴን ካሰላን በኋላ እነዚህን እሴቶች መደበኛ እናደርጋለን (የግለሰቦች የአካል ብቃት ድምር ከ 1 ጋር እኩል ነው) እና ለእያንዳንዱ የመሳም ቦታ ብዙ ይጣላል (በዘፈቀደ ቁጥር ከ 0 እስከ 1) ዕድለኛውን ለመወሰን. የአልፋ ወንድ እራሱን ጥቂት ቦታዎችን ማግኘት ይችላል, ተሸናፊው ምንም ነገር አያገኝም እና ከፓሜላ ጋር በለበሰ የ 1994 የቀን መቁጠሪያ ብቻ ይቀራል. ይህ የመምረጫ ዘዴ "የሩሌት ምርጫ" ተብሎ ይጠራል, እና በስርዓተ-ፆታ መልኩ ይህን ይመስላል.

    ሌሎች የመምረጫ ዘዴዎች አሉ, ግን ሁሉም በጥብቅ ይከተላሉ አጠቃላይ ደንብ: የአንድ ግለሰብ የአካል ብቃት መጠን የበለጠ, በማቋረጥ ላይ መሳተፍ አለበት. የትውልድ ምርጥ ተወካይ በሂደቱ ውስጥ የልዩነት ምርጫን ማካተት ይችላሉ ። ተጨማሪ ዓመታትህይወት: ምንም እንኳን ሳይለወጥ ወደ ቀጣዩ ትውልድ ያልፋል, ምንም እንኳን በአንድ ጊዜ ልጆችን ማፍራት ይችላል. ይህ ብዙ እንዳንጠፋ ያስችለናል ጥሩ ውሳኔ, በማቋረጥ ሂደት ውስጥ ሊጠፋ ይችላል.

    እዚህ ላይ ሚውቴሽን እንጥቀስ። ይህ ኦፕሬሽን ነው። በዘፈቀደበአንዳንድ ጥቃቅን እድሎች የአንድን ግለሰብ ቁራጭ ይለውጣል, ይህም የጂን ገንዳውን ለማብዛት ያስችላል. ይህ ጠቃሚ ነገር ነው, ምናልባት ይህ ሚውቴሽን ላክቶስን ለማጥፋት ይረዳል! እና ካልሆነ፣ እና ለመቆጠብ አንድ ተጨማሪ እጅ ካለ፣ በቀሪው ቀናትዎ ከእሱ ጋር መሰቃየት አለብዎት፤ አሁንም ዘሮችን የመውለድ እድሉ ትንሽ ነው።

    ፍጥረት እና አፖካሊፕስ

    ከትውልድ ወደ ትውልድ እንዴት እንደሚሸጋገር አውቀናል, አሁን ጥያቄው "ዋናው መንስኤ ምንድን ነው, ይህ ሁሉ ከየት ተጀመረ?" ከዚህ አለምህ በተለየ መልኩ እንደዚህ አይነት ነገሮችን ለማብራራት እንደ "" ያሉ ዘዴዎችን መፍጠር አያስፈልገንም ትልቅ ባንግ"ወይም"7 ቀናት" እዚህ መልሱ በጣም ግልፅ ነው - ሁሉም የተጀመረው በዘፈቀደ የተፈጠረው በዜሮ ትውልድ ነው። አዎ፣ አዎ፣ በዘፈቀደ ረድፎችን/ዛፎችን እንፈጥራለን። ብቸኛው መስፈርት የግለሰቡ ትክክለኛነት ነው, እና ማንም ሰው ምን ያህል ጉድለት እንዳለበት ማንም አይጨነቅም, መምረጥ ስራውን ያከናውናል.

    ዓለማችን እስከፈለግን ድረስ ትኖራለች። እኛን የሚያረካውን የአካል ብቃት ደረጃ እናስቀምጣለን, እና በቂ የሆነ አሪፍ ግለሰብ ሲመጣ, ሂደቱን እናቆማለን, ወይም የትውልዱ ግለሰቦች ምን ያህል እርስ በርስ እንደሚለያዩ እንፈትሻለን. ትውልዱ በሙሉ ተመሳሳይ መንትዮችን ያቀፈ ከሆነ ተጨማሪ ማጣመር ለጂን ገንዳ ምንም አዲስ ነገር እንደማይሰጥ እና አንድ ሚውቴሽን ተስፋ ማድረግ የዋህነት ነው ብሎ ማሰብ ምክንያታዊ ነው። እንዲሁም የጊዜ ገደብ ማዘጋጀት ይችላሉ.

    አንተ! አእምሮዎን ከፍ ማድረግ ጥሩ ነው! መጨረሻው ምንድነው?

    ከዚህ አስደናቂ አባባል እረፍት ወስደን ወደ ኋላ እንመልከተው (በደንብ፣ ማለትም ወደ ላይ)። ለማጠቃለል ፣ የጄኔቲክ አልጎሪዝም ይህንን ይመስላል።

    ለችግሩ መፍትሄ በግለሰብ የጄኔቲክ አልጎሪዝም መልክ መወከልን እንማራለን - በአንዳንድ ፊደላት ላይ የተወሰነ ርዝመት ያለው ዝርዝር። ከዚህ በኋላ, ግለሰቦችን ለመገምገም እና በዘፈቀደ ዜሮ ትውልድን የሚያመነጭ የአካል ብቃት ተግባርን እንመርጣለን. እዚህ ላይ የነፃ ፍቅር አዙሪት ይጀምራል፡ የአንድ ትውልድ የግለሰቦች ብቃት ይሰላል፣ በነዚህ የውሂብ ጥንዶች ላይ ተመስርተው (ተሸናፊዎች ተጥለዋል፣ እና አልፋ ወንዶች በአንድ ጥንድ ብቻ የተገደቡ አይደሉም)፣ ቀሪዎቹ የትዳር ጓደኛ፣ ይወልዳሉ። ሁለት ልጆች (ሚውቴሽን ያላቸው) እና እራሳቸውን አጠፉ። ይህ የተመረጠው እስኪገኝ ድረስ ወይም ለውጦቹ እኛን ማስደሰት እስኪያቆሙ ድረስ ወይም በጠቅላላው እስኪደክመን ድረስ ይቀጥላል። ደህና፣ ያለ ሥዕላዊ መግለጫ እንዴት ማስተዳደር እችላለሁ፡-

    ክፍል ሁለት. በሮቦኮድ ቦት ምስል ውስጥ የጄኔቲክ አልጎሪዝም ሚና.

    እንደምንም የመጀመሪያው ክፍል ተጎተተ፣ ሁላችንም ደክሞናል፣ ስለዚህ አንደግመውም። እንዲሁም አንዳንድ የአተገባበር ባህሪያትን እንተዋለን.
    እዚህ ሮቦኮድ ምን እንደሆነ ማወቅ ይችላሉ habrahabr.ru/blogs/programmers_games/59784 (ምስሎቹ ግን ጠፍተዋል)። በአጭሩ ይህ የፕሮግራም ጨዋታ ሲሆን በመጀመሪያ የጃቫ ቋንቋን ባህሪያት ለማጥናት የተፈጠረ ሲሆን ይህም ተሳታፊዎች የራሳቸውን ሮቦት ቦቶች እንዲፈጥሩ እና በመካከላቸው ጦርነት እንዲፈጥሩ ያስችላቸዋል. እያንዳንዱ ተሳታፊ ትንሽ ታንክን የሚቆጣጠር እና ከሌሎች ተመሳሳይ ታንኮች ጋር የሚዋጋ ኮድ በጃቫ ይጽፋል።

    የሚከተለውን ተግባር አጋጥሞናል፡ የጄኔቲክ አልጎሪዝምን በመጠቀም ልማት አውቶማቲክ ስርዓቶችአንድ ታንክ ቦት መቆጣጠር. ሮቦቱ በራስ-ሰር መፈጠር እና መስተካከል አለበት, ማለትም. በዝግመተ ለውጥ ወቅት፣ በ 1 ለ 1 ጦርነቶች ውስጥ ለአንድ የተወሰነ እና አስቀድሞ ከተመረጠው ተቃዋሚ ጋር “ለማስማማት”።

    እንደ ግለሰብ ለችግሩ መፍትሄ እንዴት እንደሚወክል

    በመጀመሪያ, የታንኩን አቅም እንወስን. አንድ ሮቦት በውጊያ ጊዜ ሊያደርጋቸው የሚችላቸው መሠረታዊ ድርጊቶች ዝርዝር በአራት ነጥቦች ብቻ የተገደበ ነው፡ ሽጉጡን አዙሩ፣ ገላውን አዙሩ፣ ተኩስ፣ ​​መንቀሳቀስ። አምስተኛውን እርምጃ ፣ የራዳር ማሽከርከርን ፣ ከግምት ፣ በትንሹ በመተግበር አገለልን - የማያቋርጥ ማሽከርከር (ስለዚህ ፣ ታንኩ ሁል ጊዜ ይኖረዋል) ወቅታዊ መረጃስለ ጠላት አቀማመጥ).

    በግልጽ ለማየት እንደሚቻለው, ለስኬታማ ውጊያ, እነዚህ ድርጊቶች በተዘበራረቀ መልኩ መከናወን የለባቸውም, ነገር ግን በጦር ሜዳ ላይ ባለው ሁኔታ (ሁኔታ) ላይ የተመሰረተ ነው-የታንኮች አቀማመጥ, ፍጥነታቸው, ጉልበት እና ሌሎች መመዘኛዎች. ስለዚህ, አንድ ታንክን የመቆጣጠር ሂደት በጦርነቱ ሁኔታ ላይ በመመስረት ከላይ የተጠቀሱትን ድርጊቶች ለመፈጸም ይወርዳል. በጦር ሜዳው ላይ ባለው ሁኔታ ላይ በመመርኮዝ የታንኩን ባህሪ (ድርጊቶቹን) የሚወስን ህግን የቁጥጥር ተግባር ብለን እንጠራዋለን እና የጄኔቲክ አልጎሪዝም ግለሰባዊ ይሆናል።

    የመቆጣጠሪያው ተግባር 4 እሴቶችን መመለስ ስላለበት (የተኩስ ሃይል ፣ የቱሪዝም መዞሪያ አንግል ፣ የእቅፉ መዞሪያ አንግል ፣ የታንክ እንቅስቃሴ) ፣ ከዚያ በመጨረሻው ክፍል ላይ እንደተገለፀው ፣ እሱ አራት መግለጫዎችን ያቀፈ ይሆናል ፣ ማለትም ። የአራት መስመሮች / ዛፎች.

    የኮዲንግ ሰንጠረዥን ለማጠናቀር, በአንድ ስብስብ ላይ መወሰን ያስፈልግዎታል መሰረታዊ ተግባራት, ተለዋዋጮች እና ቋሚዎች.

    ተግባራት፡-
    +(x፣ y) = x + y
    ++(x፣ y፣ z) = x + y + z
    n (x) = -x
    *(x, y) = x * y
    ** (x, y) = x * y * z
    ደቂቃ(x, y) = x > y? y:x
    s(x) = 1/(1+exp(-x))
    ከሆነ(x፣ y፣ z፣ w) = x > y? z:w

    ተለዋዋጮች
    x, y - ከእኛ ታንክ አንጻር የተቃዋሚው ታንክ መጋጠሚያዎች;
    dr የእኛ ታንክ "ለመድረስ" የሚቀረው ርቀት ነው;
    tr የእኛ ታንክ ለመዞር የሚቆይበት አንግል ነው;
    w ከታንኳችን እስከ ሜዳው ጠርዝ ድረስ ያለው ርቀት;
    dh ወደ ጠላት ታንክ አቅጣጫ እና በታንክ ሽጉጥ መካከል ያለው አንግል ነው;
    GH የእኛ ታንክ ሽጉጥ የማሽከርከር አንግል ነው;
    ሸ - የተቃዋሚውን ታንክ የመንቀሳቀስ አቅጣጫ;
    d በእኛ ታንክ እና በተቃዋሚው ታንክ መካከል ያለው ርቀት;
    ሠ - የተቃዋሚው ታንክ ጉልበት;
    ኢ የእኛ ታንክ ጉልበት ነው።

    ደህና፣ ቋሚዎች፡ 0.5፣ 0፣ 1፣ 2፣ 10

    የአካል ብቃት ተግባር

    የአካል ብቃት እንቅስቃሴ እንዴት እንደተመረጠ እንግለጽ. ሮቦኮድ በብዙ ልዩነቶች ላይ የተመሰረተ የውጊያውን ውጤት ያመነጫል። ይህ የድሎች ብዛት ብቻ ሳይሆን ለእንቅስቃሴ፣ ለመዳን፣ ተቃዋሚን ለመምታት ወዘተ ሁሉም አይነት ነጥቦች ነው። በውጤቱም, "Robocode" በ "ጠቅላላ ውጤቶች" መለኪያ መሰረት ሮቦቶችን ያስቀምጣል, ይህም ከላይ የተገለጹትን ሁሉንም ጥቃቅን ነገሮች ግምት ውስጥ ያስገባል. የግለሰቡን የአካል ብቃት ሲሰላ እንጠቀማለን-የመጨረሻው የአካል ብቃት ከሁለቱም ታንኮች ነጥቦች ድምር ከታንክ ነጥቦች መቶኛ ጋር እኩል ይሆናል እና ከ 0 እስከ 100 እሴት ይወስዳል ። በዚህ መሠረት የአካል ብቃት እሴቱ ከሆነ። ከ 50 በላይ ነው ፣ ከዚያ ሮቦታችን ብዙ ነጥቦችን አስመዝግቧል ፣ ስለሆነም ተቃዋሚው ከእሱ የበለጠ ጠንካራ ነው። በዚህ የቆጠራ ስርዓት መሰረት አንደኛ ቦታ ሁልጊዜ አብዛኛውን ጦርነቱን ባሸነፈው አካል እንደማይወሰድ ልብ ይበሉ። ደህና ፣ እዚህ ስለ ሞተር ስኩተር በሚለው ሐረግ ትከሻችንን እናወዛወዛለን-ፈጣሪዎች መስፈርቶቹን ገለጹ ፣ እኛ እንከተላለን።

    በአጠቃላይ የአንድን ግለሰብ ብቃት ማስላት ተከታታይ ጦርነቶችን ማድረግን ይጨምራል! እነዚያ። እንደ የአካል ብቃት የተሳሳተ ስሌት እንደዚህ ያለ ዋጋ ቢስ የሚመስለው ነጥብ እንደዚህ ያሉ ጭፈራዎችን ከታምቡር ጋር ያቀፈ ነው-
    1) የእኛ ስርዓት የግለሰብን ኢንኮዲንግ ክሮሞሶም ወደ ፋይል chromosome.dat ያድናል;
    2) ለእያንዳንዱ ግለሰብ የ "ሮቦኮድ" አከባቢ ተጀምሯል, ይህም ድብልቆችን ያደራጃል. የውጊያውን ሁኔታ የሚገልፅ ፋይልን በ.ውጊያ ቅርጸት እናቀርባለን - የውጊያ ታንኮች ዝርዝር ፣ የሜዳው ስፋት ፣ የዙሮች ብዛት ፣ ወዘተ.
    3) ለጦርነት ፣ ሮቦኮድ ታንኮችን ይጭናል ፣ የእኛ የሼል ሮቦት የክሮሞሶም.dat ፋይልን በተሰየመ ባህሪ ያነባል ፣ ወደ ድርጊቶች ስብስብ ይተረጉመዋል እና ጦርነቱን በእነሱ መሠረት ያካሂዳል ።
    4) በውጊያው መጨረሻ ላይ የሮቦኮድ አከባቢ የውጊያውን ውጤት በውጤቱ.txt ፋይል ላይ ይጽፋል እና ስራውን ያበቃል;
    5) ስርዓታችን ይህንን ፋይል ይመርጣል ፣ ይተነትናል እና የኛን ታንክ እና የተቃዋሚውን አጠቃላይ የውጤት ዋጋ ያወጣል። በቀላል ስሌት የአካል ብቃት ዋጋን እናገኛለን።

    እንደኛ አይደል?

    የኛን ጠቅለል አድርገን እናንሳ የዲዛይን ቢሮ. የእኛ ስርዓት ሁለት ክፍሎችን (ፕሮግራሞችን) ያካትታል. የመጀመሪያው በጄኔቲክ አልጎሪዝም ላይ በመመስረት አንድን ግለሰብ ሰብስቦ እንደ ሕብረቁምፊዎች ስብስብ ያስቀምጣል, ሁለተኛው (የሮቦት ኮድ) ይተረጉመዋል (ወደ አገላለጽ ዛፍ በማቀነባበር) እና ታንኩን ይቆጣጠራል (እሴቱን በማስላት). ዛፎችን በተለዋዋጭ ተለዋዋጮች መግለጽ በተደጋጋሚ መሻገር፣ ማለትም ወቅታዊ ሁኔታጦርነት)። የመጀመሪያው ፕሮግራም በ SI ቋንቋ, ሁለተኛው በጃቫ የተጻፈ ነው.

    የጄኔቲክ አልጎሪዝምን በሚተገበሩበት ጊዜ በህዝቡ ውስጥ ያሉ ግለሰቦች ቁጥር 51 (25 ጥንድ + አንድ ምሑር ግለሰብ) እንዲሆን ተመርጧል. አንድ የዝግመተ ለውጥ (የሕዝብ ለውጥ) አንድ ደርዘን ደቂቃዎችን ይወስዳል, ስለዚህ, በአጠቃላይ, ጉዳዩ ለብዙ ሰዓታት ይጎትታል.

    በውጤቱም ፣ ለግድግዳዎች እና እብድ ሮቦቶች ተቀናቃኝ የመፍጠር ውጤቶችን እናሳያለን-




    በመጀመሪያ ደረጃ ከግለሰቦቹ መካከል አንዱ የአካል ብቃት ደረጃ 70 ላይ ከደረሰ በኋላ ሂደቱን አቁመናል፤ በሁለተኛ ደረጃ በአንድ ትውልድ ውስጥ የግለሰቦች አማካይ የአካል ብቃት ከ50 በላይ ማድረጉ በቂ ነበር።

    ካሰላሰሉ በኋላ ዓይኖችዎን በአልኮል ያጠቡ

    ማንም ሰው የቀይ አንገት ኮድ ማውጣትን በማሰብ በመደንገጥ የደም እንባ ለማልቀስ የማይፈራ ከሆነ (በተለይ ፀጉር ከሮቦት ኮድ መንቀሳቀስ ይጀምራል - ከጃቫ ጋር የጋራ ጥላቻ አለን) ፣ ከዚያ አያይዤዋለሁ።

    መሰረታዊ (ክላሲካል) ጄኔቲክ አልጎሪዝም (እንዲሁም አንደኛ ደረጃ ወይም ቀላል የዘረመል ስልተ-ቀመር ተብሎም ይጠራል) የሚከተሉትን ደረጃዎች ያካትታል።

    1) የክሮሞሶም የመጀመሪያ ህዝብ አጀማመር ወይም ምርጫ;

    2) በሕዝቡ ውስጥ የክሮሞሶም ብቃት ግምገማ;

    3) የአልጎሪዝም ማቆሚያ ሁኔታን ማረጋገጥ;

    4) የክሮሞሶም ምርጫ;

    5) የጄኔቲክ ኦፕሬተሮች አተገባበር;

    6) አዲስ ህዝብ መመስረት;

    7) "ምርጥ" ክሮሞሶም ምርጫ.

    የዋናው የጄኔቲክ አልጎሪዝም የማገጃ ንድፍ በምስል ውስጥ ይታያል። 4.3. በስእል ውስጥ የቀረቡትን ተጨማሪ ዝርዝሮች በመጠቀም የዚህን አልጎሪዝም ልዩ ደረጃዎች በበለጠ ዝርዝር እንመልከት. 4.4.

    ሩዝ. 4.3. የጄኔቲክ አልጎሪዝም ፍሰት ገበታ።

    ሩዝ. 4.4. የጄኔቲክ አልጎሪዝም ማስፈጸሚያ ንድፍ.

    ጅምር፣ ማለትም እ.ኤ.አ. የመጀመርያው ህዝብ መፈጠር የተወሰነውን የክሮሞሶም ብዛት (ግለሰቦችን) በአጋጣሚ መምረጥን ያካትታል ፣ በቋሚ ርዝመት ሁለትዮሽ ቅደም ተከተሎች ይወከላል።

    በሕዝብ ውስጥ የክሮሞሶም ብቃትን መገምገም በዚያ ሕዝብ ውስጥ ለእያንዳንዱ ክሮሞሶም የአካል ብቃት ተግባርን ማስላትን ያካትታል። የዚህ ተግባር ዋጋ በጨመረ መጠን የክሮሞሶም "ጥራት" ከፍ ያለ ይሆናል. የአካል ብቃት እንቅስቃሴው ቅርፅ የሚወሰነው በሚፈታው ችግር ተፈጥሮ ላይ ነው። የአካል ብቃት እንቅስቃሴ ሁል ጊዜ አሉታዊ ያልሆኑ እሴቶችን እንደሚወስድ ይገመታል ፣ እና በተጨማሪም ፣ የማመቻቸት ችግርን ለመፍታት ይህንን ተግባር ከፍ ማድረግ አስፈላጊ ነው። የአካል ብቃት እንቅስቃሴው የመጀመሪያ ቅርፅ እነዚህን ሁኔታዎች ካላረካ ፣ ከዚያ ተጓዳኝ ለውጥ ይከናወናል (ለምሳሌ ፣ የተግባር መቀነስ ችግር በቀላሉ ወደ ከፍተኛው ችግር ሊቀንስ ይችላል)።

    የአልጎሪዝም ማቆሚያ ሁኔታን መፈተሽ. ለጄኔቲክ አልጎሪዝም የማቆሚያ ሁኔታን መወሰን በልዩ አተገባበር ላይ የተመሰረተ ነው. በማመቻቸት ችግሮች ውስጥ፣ የአካል ብቃት እንቅስቃሴው ከፍተኛው (ወይም ዝቅተኛ) እሴት የሚታወቅ ከሆነ፣ ስልተ ቀመር የሚጠበቀው ከፍተኛ እሴት ላይ ከደረሰ በኋላ ሊቆም ይችላል፣ ምናልባትም ከተወሰነ ትክክለኛነት ጋር። አልጎሪዝምን ማቆም እንዲሁ አፈፃፀሙ ቀድሞውኑ የተገኘውን እሴት ወደ መሻሻል በማይመራበት ጊዜ ሊከሰት ይችላል። አልጎሪዝም ከተወሰነ የማስፈጸሚያ ጊዜ በኋላ ወይም የተወሰነ የድግግሞሽ ብዛት ካጠናቀቀ በኋላ ሊቆም ይችላል። የማቆሚያው ሁኔታ ከተሟላ, ከዚያም "ምርጥ" ክሮሞሶም ለመምረጥ ወደ መጨረሻው ደረጃ የሚደረግ ሽግግር ይደረጋል. አለበለዚያ ምርጫ በሚቀጥለው ደረጃ ይከናወናል.

    የክሮሞሶም ምርጫ (በሁለተኛው ደረጃ ላይ በተሰሉት የአካል ብቃት እንቅስቃሴ ዋጋዎች መሠረት) ለቀጣዩ ህዝብ ዘሮችን ለመፍጠር የሚሳተፉትን ክሮሞሶምች መምረጥን ያካትታል ፣ ማለትም ። ለቀጣዩ ትውልድ. ይህ ምርጫ በመርህ ደረጃ ነው የተፈጥሮ ምርጫ, በዚህ መሠረት ምርጥ ዕድልየአካል ብቃት እንቅስቃሴ ከፍተኛ እሴት ያላቸው ክሮሞሶሞች አዳዲስ ግለሰቦችን በመፍጠር ላይ ለመሳተፍ ብቁ ናቸው። የተለያዩ የመምረጫ ዘዴዎች አሉ. በጣም ታዋቂው ከታዋቂው ጋር በማነፃፀር ስሙን ያገኘው የ roulette ጎማ ምርጫ ዘዴ ተብሎ የሚጠራው ነው። ቁማር መጫወት. እያንዳንዱ ክሮሞሶም ከሮሌት ጎማ ዘርፍ ጋር ሊዛመድ ይችላል, እሴቱ ከተሰጠው ክሮሞሶም የአካል ብቃት እንቅስቃሴ ዋጋ ጋር ተመጣጣኝ ነው. ስለዚህ, የአካል ብቃት ተግባር የበለጠ ዋጋ, በ roulette ጎማ ላይ ያለው ዘርፍ ትልቅ ነው. ሙሉው የሮሌት መንኮራኩር በጥያቄ ውስጥ ካሉት የህዝብ ክሮሞሶምች የአካል ብቃት እንቅስቃሴ እሴቶች ድምር ጋር ይዛመዳል። እያንዳንዱ ክሮሞሶም ለ (የሕዝብ ብዛትን የሚያመለክት) ከመንኮራኩሩ ዘርፍ ጋር ይዛመዳል፣ በቀመርው መሠረት በመቶኛ ይገለጻል።

    , (4.2)

    , (4.3)

    የክሮሞሶም የአካል ብቃት ተግባር ዋጋ የት ነው ፣ ሀ የክሮሞሶም ምርጫ ዕድል ነው። ክሮሞሶም "አሸናፊው" (ማለትም የተመረጠ) ክሮሞሶም የሚያርፈው መንኮራኩር ዘርፍ በመሆኑ, አንድ ሩሌት ጎማ መዞር ውጤት እንደሆነ ሊታሰብ ይችላል. በግልጽ እንደሚታየው, ዘርፉ በትልቁ, እ.ኤ.አ የበለጠ አይቀርምተዛማጅ ክሮሞሶም "ድል". ስለዚህ የተሰጠውን ክሮሞሶም የመምረጥ እድሉ ከአካል ብቃት ተግባሩ ዋጋ ጋር ተመጣጣኝ ይሆናል። አንድ ሩሌት ጎማ መላው ዙሪያ እንደ ዲጂታል ክፍተት ሆኖ የሚወከለው ከሆነ, ከዚያም አንድ ክሮሞሶም ምርጫ ጋር የሚዛመደውን የክበብ ቁራጭ መጀመሪያ እና መጨረሻ ያመለክታሉ የት ክፍተት ከ ቁጥር ምርጫ ጋር ሊታወቅ ይችላል. ይህ የመንኮራኩሩ ዘርፍ; እንደሆነ ግልጽ ነው። በዚህ ሁኔታ ውስጥ, አንድ ሩሌት ጎማ በመጠቀም መምረጥ ወደ መንኰራኩር ዙሪያ ላይ አንድ የተወሰነ ነጥብ ጋር የሚዛመድ ያለውን ክፍተት ከ ቁጥር ለመምረጥ ወደ ታች ይመጣል. ሌሎች የመምረጫ ዘዴዎች በአንቀጽ 4.8.1 ውስጥ ይብራራሉ.

    በምርጫው ሂደት ምክንያት, የወላጅ ህዝብ, እንዲሁም የማጣመጃ ገንዳ ተብሎ የሚጠራው, አሁን ካለው የህዝብ ብዛት ጋር እኩል የሆነ መጠን ይፈጠራል.

    የጄኔቲክ ኦፕሬተሮችን በምርጫ ለተመረጡት ክሮሞሶምች መተግበር በቀደመው ደረጃ ከተፈጠረው የወላጅ ህዝብ አዲስ ትውልድ እንዲፈጠር ያደርጋል።

    ክላሲካል ጄኔቲክ አልጎሪዝም ሁለት ዋና የጄኔቲክ ኦፕሬተሮችን ይጠቀማል-የመስቀል ኦፕሬተር እና ሚውቴሽን ኦፕሬተር። ነገር ግን ሚውቴሽን ኦፕሬተር ከተሻጋሪው ኦፕሬተር ጋር ሲነፃፀር በግልጽ የሁለተኛ ደረጃ ሚና እንደሚጫወት ልብ ሊባል ይገባል። ይህ ማለት በክላሲካል ጄኔቲክ አልጎሪዝም ውስጥ መሻገር ሁል ጊዜ ይከናወናል ፣ ሚውቴሽን ግን በጣም አልፎ አልፎ ነው። የመሻገር እድሉ ፣ እንደ አንድ ደንብ ፣ በጣም ከፍተኛ ነው (ብዙውን ጊዜ) ፣ ሚውቴሽን የመቀየር እድሉ በጣም ትንሽ ነው (ብዙውን ጊዜ)። ይህ ሚውቴሽን እጅግ በጣም አልፎ አልፎ ከሚከሰት ሕይወት ያላቸው ፍጥረታት ዓለም ጋር ካለው ተመሳሳይነት ይከተላል።

    በጄኔቲክ አልጎሪዝም ውስጥ ክሮሞሶም ሚውቴሽን ከመሻገሩ በፊት በወላጆች ህዝብ ላይ ወይም በመሻገር ምክንያት በተወለዱ ዘሮች ላይ ሊከናወን ይችላል።

    ተሻጋሪ ኦፕሬተር. በመጀመሪያው የመሻገሪያ ደረጃ ላይ ከወላጅ ህዝብ (የወላጅ ገንዳ) ጥንድ ክሮሞሶምች ይመረጣሉ. ይህ በምርጫ ምክንያት የተመረጡ ክሮሞሶሞችን ያቀፈ ጊዜያዊ ህዝብ እና አዲስ የዘር ቁጥር ለመመስረት በመሻገር እና ሚውቴሽን ኦፕሬተሮች ለተጨማሪ ለውጥ የታሰበ ነው። በርቷል በዚህ ደረጃከወላጅ ህዝብ ክሮሞሶምች ወደ ጥንድ ይጣመራሉ። ይህ በዘፈቀደ ነው የሚደረገው እንደ የመገጣጠም እድል. በመቀጠል, በዚህ መንገድ ለተመረጡት ለእያንዳንዱ ጥንድ ወላጆች, በክሮሞሶም ውስጥ ያለው የጂን (ሎከስ) አቀማመጥ ይጫወታል, ይህም የማቋረጫ ነጥብ ተብሎ የሚጠራውን ይወስናል. የእያንዳንዱ ወላጅ ክሮሞሶም ጂኖችን ያቀፈ ከሆነ, የመሻገሪያው ነጥብ የተፈጥሮ ቁጥር ያነሰ እንደሆነ ግልጽ ነው. ስለዚህ የማቋረጫ ነጥቡን ማስተካከል የሚመጣው በዘፈቀደ ከመካከላቸው ቁጥርን ለመምረጥ ነው። ጥንድ የወላጅ ክሮሞሶም በማቋረጥ ምክንያት የሚከተሉት ጥንድ ዘሮች ተገኝተዋል።

    1) ክሮሞሶም ከ 1 እስከ የመጀመሪያ ወላጅ ጂኖች እና በቦታዎች - ከሁለተኛው ወላጅ ጂኖች ውስጥ ያለው ዘር;

    2) ክሮሞሶም ከ 1 እስከ የሁለተኛው ወላጅ ጂኖች እና ከ ወደ - ከመጀመሪያው ወላጅ ጂኖች ያቀፈ ዝርያ።

    የማቋረጫ ኦፕሬተር አሠራር በምሳሌ 4.4 እና 4.5 (አንቀጽ 4.5 እና 4.6) ይገለጻል.

    ሚውቴሽን ኦፕሬተሩ በክሮሞሶም ላይ ያለውን የጂን ዋጋ ወደ ተቃራኒው (ማለትም ከ 0 ወደ 1 ወይም በተቃራኒው) ሊለውጠው ይችላል. ለምሳሌ በክሮሞሶም ውስጥ 7 ላይ ያለ ጂን ሚውቴሽን ቢደረግ የ1 ዋጋው ወደ 0 ይቀየራል ይህም ወደ ክሮሞሶም መፈጠር ምክንያት ይሆናል። ከላይ እንደተጠቀሰው ሚውቴሽን የመከሰቱ አጋጣሚ በአብዛኛው በጣም ትንሽ ነው, እና የተሰጠው ጂን ይለዋወጣል ወይም አይቀየር በእሱ ላይ የተመሰረተ ነው. የሚውቴሽን ፕሮባቢሊቲው መኮረጅ ይቻላል፣ ለምሳሌ የዘፈቀደ ምርጫከእያንዳንዱ ዘረ-መል (ጅን) መካከል ያለው ቁጥሮች እና ይህንን ቀዶ ጥገና ለመፈጸም የተመረጡት ቁጥሮች ከዋጋው ያነሰ ወይም እኩል የሆነባቸው ጂኖች ለመምረጥ.

    አዲስ ህዝብ መመስረት። የጄኔቲክ ኦፕሬተሮችን ወደ ጊዜያዊ የወላጅ ህዝብ ክሮሞሶም በመተግበሩ ምክንያት የሚመጡ ክሮሞሶሞች በአዲሱ ህዝብ ውስጥ ይካተታሉ. ይህ ለተወሰነ የጄኔቲክ አልጎሪዝም ድግግሞሽ ተብሎ የሚጠራው የአሁኑ ህዝብ ይሆናል። በእያንዳንዱ ቀጣይ ድግግሞሽ የአካል ብቃት እንቅስቃሴ ዋጋዎች ለሁሉም የዚህ ህዝብ ክሮሞሶም ይሰላሉ ፣ ከዚያ በኋላ የአልጎሪዝም የማቆሚያ ሁኔታ ይጣራል እና ውጤቱም በክሮሞሶም መልክ ይመዘገባል ። ከፍተኛ ዋጋየአካል ብቃት ተግባር, ወይም ወደ ሽግግር ቀጣዩ ደረጃየጄኔቲክ አልጎሪዝም, ማለትም. ወደ ምርጫ። በጥንታዊ የጄኔቲክ ስልተ-ቀመር ውስጥ ፣ ያለፈው የክሮሞሶም ህዝብ በአዲስ ተመሳሳይ መጠን ባላቸው ዘሮች ይተካል።

    "ምርጥ" ክሮሞሶም መምረጥ. አልጎሪዝምን የማቆም ሁኔታ ከተሟላ, የሥራው ውጤት መታየት አለበት, ማለትም. ለችግሩ የተፈለገውን መፍትሄ ያቅርቡ. በጣም ጥሩው መፍትሔ ከፍተኛ የአካል ብቃት ተግባር ዋጋ ያለው ክሮሞሶም ነው ተብሎ ይታሰባል።

    ለማጠቃለል ያህል ፣ የጄኔቲክ ስልተ ቀመሮች ከጊዜ ወደ ጊዜ በኦርጋኒክ አካላት ውስጥ የጄኔቲክ ለውጦችን የሚያካትት የተፈጥሮ የዝግመተ ለውጥ ሂደትን ባህሪያት እንደወረሱ መታወቅ አለበት።

    የዝግመተ ለውጥ ዋና ምክንያት የተፈጥሮ ምርጫ (ማለትም የተፈጥሮ ምርጫ) ሲሆን ይህም በዘር የሚተላለፍ ተመሳሳይ ህዝብ ካላቸው ግለሰቦች መካከል በሕይወት ለመትረፍ እና ዘሮችን ለመተው በጣም የተስማሙ ብቻ ወደመሆኑ እውነታ ይመራል ። አካባቢ. የጄኔቲክ ስልተ ቀመሮችም ከፍተኛ የአካል ብቃት እንቅስቃሴ እሴት ያላቸው ግለሰቦች ከአሁኑ ህዝብ የተመረጡ እና በወላጅ ህዝብ ውስጥ የሚካተቱበትን የምርጫ ደረጃ ያጎላሉ። በርቷል ቀጣዩ ደረጃአንዳንድ ጊዜ ዝግመተ ለውጥ ተብሎ የሚጠራው በክሮሞሶም ላይ ጂኖችን እንደገና ለማዋሃድ የክሮሶቨር እና ሚውቴሽን ጄኔቲክ ኦፕሬተሮችን ይጠቀማል።

    የማቋረጫ ክዋኔው በሁለት የወላጅ ክሮሞሶምች መካከል የሰንሰለት ቁርጥራጮች መለዋወጥን ያካትታል። ለመሻገር ጥንዶች ወላጆች ከወላጅ ገንዳ ውስጥ በዘፈቀደ ይመረጣሉ ስለዚህ ለመሻገር የተለየ ክሮሞሶም የመምረጥ እድሉ ከዕድል ጋር እኩል ነው። ለምሳሌ፣ በተዛማጅ ኦፕሬተር ገለፃ ላይ በተገለጸው መንገድ ሁለት ክሮሞሶምች ከወላጅ ህዝብ በዘፈቀደ እንደ ወላጆች ከተመረጡ። ይህ የተመረጡት ጂኖች ከ 0 ወደ 1 እና ወደ ኋላ እንዲገለበጡ ያደርጋል. እሴቱ ብዙውን ጊዜ በጣም ትንሽ ነው, ስለዚህ ጥቂት ቁጥር ያላቸው ጂኖች ብቻ ሚውቴሽን ይካሄዳሉ. መሻገር አቅማቸውን እና ቅልጥፍናቸውን የሚወስን የጄኔቲክ አልጎሪዝም ቁልፍ ኦፕሬተር ነው። ሚውቴሽን የበለጠ የተገደበ ሚና ይጫወታል። በህዝቡ ውስጥ አንዳንድ ልዩነቶችን ያስተዋውቃል እና በመሻገሪያ ምክንያት አንዳንድ ጉልህ የሆነ ጂን በመገለሉ ምክንያት ሊከሰቱ የሚችሉትን ኪሳራዎች ይከላከላል።

    መሰረታዊ (ክላሲካል) የጄኔቲክ አልጎሪዝም በሥነ-ጽሑፍ ውስጥ ሶስት ዓይነት ኦፕሬሽኖች የሚለዩበት መሣሪያ ሆኖ ይታወቃል-ማራባት ፣ መሻገር እና ሚውቴሽን። በዚህ ዐውደ-ጽሑፍ ውስጥ ምርጫ እና መባዛት የሚሉት ቃላት እንደ ተመሳሳይነት ያገለግላሉ። በተመሳሳይ ጊዜ መራባት በ በዚህ ጉዳይ ላይየወላጅ ገንዳ ክሮሞሶም ቅጂዎችን ከመፍጠር ጋር ይዛመዳል ፣ የዚህ ጽንሰ-ሀሳብ የበለጠ የተለመደ ይዘት ከተወሰኑ ወላጆች የሚወርዱ አዳዲስ ግለሰቦችን የመፍጠር ሂደትን ያሳያል (ክፍል 4.1 ይመልከቱ)። ይህንን ትርጓሜ ከተቀበልን የማቋረጥ እና ሚውቴሽን ኦፕሬተሮች የመራቢያ ኦፕሬተሮች ተደርገው ሊቆጠሩ ይችላሉ ፣ እና ምርጫ የግለሰቦችን (ክሮሞሶም) ለመራባት ምርጫ ተደርጎ ሊወሰድ ይችላል።

    የጄኔቲክ አልጎሪዝም(ጂኤ) በ1975 በጆን ሆላንድ ለመጀመሪያ ጊዜ ያቀረቡት ስቶካስቲክ፣ ሂዩሪስቲክ ማሻሻያ ዘዴዎች ናቸው። በተፈጥሮ ምርጫ በዝግመተ ለውጥ ሀሳብ ላይ የተመሰረቱ ናቸው. አክራሪን በፍጥነት ከማግኘቱ በተጨማሪ የጄኔቲክ ስልተ ቀመሮች አወንታዊ ባህሪያት "አለምአቀፍ" ጽንፍ ማግኘትን ያካትታሉ. የዓላማው ተግባር ከፍተኛ ቁጥር ያለው የአካባቢያዊ ጽንፍ ባለበት ችግሮች ውስጥ፣ ከግራዲየንት ዘዴ በተቃራኒ፣ የጄኔቲክ ስልተ ቀመሮች በአካባቢያዊ ጽንፈኛ ነጥቦች ላይ “አይጣበቁም” ነገር ግን አንድ ሰው “ዓለም አቀፍ” ዝቅተኛውን እንዲያገኝ ያስችለዋል።

    የጄኔቲክ ስልተ ቀመሮች ከግለሰቦች ስብስብ ጋር ይሰራሉ ​​- ህዝብ ፣ እያንዳንዱ ግለሰብ ለተጠቀሰው ችግር መፍትሄ ሊሆን የሚችለውን ይወክላል። ለችግሩ ተመጣጣኝ መፍትሄ ምን ያህል "ጥሩ" እንደሆነ በ "ተስማሚነት" መለኪያ ይገመገማል. በተፈጥሮ ውስጥ, ይህ አንድ አካል ለሀብቶች ሲወዳደር ምን ያህል ቀልጣፋ እንደሆነ ከመገምገም ጋር እኩል ነው. በጣም የተዋጣላቸው ግለሰቦች ከሌሎች የህዝብ ግለሰቦች ጋር "በዘር ማራባት" ዘርን "ማራባት" ይችላሉ. ይህ ከወላጆቻቸው የሚወርሷቸውን አንዳንድ ባህሪያት የሚያጣምሩ አዳዲስ ግለሰቦች እንዲፈጠሩ ያደርጋል. በጣም ትንሽ ብቃት ያላቸው ግለሰቦች የመባዛት እድላቸው አናሳ ነው፣ ስለዚህ ምንም አይነት ባህሪያታቸው በዝግመተ ለውጥ ሂደት ውስጥ ከህዝቡ ቀስ በቀስ ይጠፋል። አንዳንድ ጊዜ ሚውቴሽን ወይም በጂን ውስጥ ድንገተኛ ለውጦች ይከሰታሉ።

    ስለዚህም ከትውልድ ወደ ትውልድ ጥሩ ባህሪያትበመላው ህዝብ ተሰራጭቷል. በጣም ጥሩ የሆኑትን ግለሰቦች መሻገር በጣም የተወረሰው ወደመሆኑ እውነታ ይመራል ተስፋ ሰጭ ቦታዎችቦታዎችን መፈለግ. ውሎ አድሮ ህዝቡ ለችግሩ ተስማሚ መፍትሄ ለማምጣት ይሰበሰባል. የጂኤ ጥቅሙ በአንጻራዊ ሁኔታ በአጭር ጊዜ ውስጥ ግምታዊ መፍትሄዎችን ማግኘቱ ነው።
    GA በሚከተለው ቃላቶች ይሰራል።

    • ክሮሞሶም - ከግምት ውስጥ ላሉ ችግሮች መፍትሄ, ተሸካሚ በዘር የሚተላለፍ መረጃ. የክሮሞሶም ስብስብ (የዓላማው ተግባር መለኪያዎች እሴቶች) ግለሰቡን ይገልፃሉ። ክሮሞሶም ጂኖችን ያካትታል.
    • ጂኖች በዘር የሚተላለፍ መረጃን (የዒላማ ተግባር መለኪያዎችን) ለመቀየሪያ ንጥረ ነገሮች ናቸው። ጂኖች አብዛኛውን ጊዜ እንደ ቢት የመረጃ ኮድ ይሠራሉ።
    • አንድ ግለሰብ የክሮሞሶም ስብስብ ነው (የዓላማው ተግባር ዋጋ የሚፈለግባቸው መለኪያዎች ስብስብ)።
    • የግለሰብን መላመድ- ከተፈለገው እሴት ጋር በተዛመደ ለተወሰኑ የመለኪያዎች ስብስብ የዓላማ ተግባር ዋጋ።

    GA በግለሰቦች ላይ የሚከተሉትን ድርጊቶች ይፈጽማል

    መጀመሪያ ላይ የ GA ተግባር የተወሰነ መጠን ያመነጫል ሊሆኑ የሚችሉ መፍትሄዎች(ግለሰቦች), እና ከዚያ ለእያንዳንዱ የአካል ብቃትን ያሰላል - ለእውነት ቅርበት. እነዚህ ውሳኔዎች ዘሮችን ያፈራሉ (የመሻገር ሥራ ይከናወናል). የበለጠ የተጣጣሙ መፍትሄዎች አሏቸው የበለጠ ዕድልለመራባት እና "ደካማ" ግለሰቦች ቀስ በቀስ "ይሞታሉ." ስለዚህ የዝግመተ ለውጥ ሂደት ይከናወናል. በተወሰኑ ደረጃዎች ይህ ሂደትድንገተኛ የጂን ለውጦች (ሚውቴሽን እና ተገላቢጦሽ) ይከሰታሉ። ወደ ግለሰቡ የአካል ብቃት እድገት የሚመሩ ጠቃሚ ለውጦች ዘሮቻቸውን ሲወልዱ "ከማይጠቅሙ" ለውጦች "ይሞታሉ." ከተሻገሩ በኋላ, ሚውቴሽን እና ተገላቢጦሽ, የአዲሱ ትውልድ ግለሰቦች ብቃት እንደገና ይወሰናል. መፍትሄው እስኪያገኝ ወይም በቂ ግምት እስኪገኝ ድረስ ሂደቱ ይደጋገማል.

    የጄኔቲክ አልጎሪዝም አጠቃቀምን እንደ ምሳሌ, በዚህ ጽሑፍ ውስጥ የተብራራውን መፍትሄ ለማግኘት የቁጥር ፍለጋን ችግር አስቡበት.

    የዓላማው ተግባር ቅጹ ይኖረዋል

    እንደ ተሻጋሪ ተግባር ፣ ከግምት ውስጥ የሚገኙትን የሁለቱን ነጥቦች የሂሳብ አማካኝ ፍለጋን እንጠቀማለን። ለመሻገር ብዙ ነጥቦች ተመርጠዋል ከሁሉ የተሻለው መፍትሔ(ወደ ዜሮ ቅርብ ከሆነው የዓላማ ተግባር ዋጋ ጋር)።

    ሚውቴሽን ግምት ውስጥ በማስገባት አዲስ የዘፈቀደ የህዝብ ቁጥር የማመንጨት ተግባር ይሆናል።

    ተገላቢጦሹ የክሮሞሶም ዋጋን በትንሽ መጠን ይለውጠዋል፣ ስለዚህ በነጥቡ አካባቢ በጥሩ መፍትሄ መፈለግ።
    በ C ++ ውስጥ ትግበራ

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80

    # USE_MAT_DEFINESን ይግለጹ
    #ያካትቱ
    #ያካትቱ
    #ያካትቱ
    የስም ቦታ std በመጠቀም;
    ድርብ ተግባር (ድርብ x)
    {
    ኃጢአትን መመለስ (M_PI * x / 180) - 1 / x;
    }
    ድርብ ሚውቴሽን (ድርብ x0፣ ድርብ x1) // ሚውቴሽን፡ የዘፈቀደ ተለዋዋጭ ማመንጨት
    {
    const int NUM = 100000000;
    መመለስ fabs ((ድርብ) ((ራንድ () * NUM) % (int) ((x1 - x0)*NUM) + 1) / NUM) + x0;
    }
    ድርብ ተገላቢጦሽ (ድርብ x፣ ድርብ eps) // ተገላቢጦሽ፡ በአንድ ነጥብ አካባቢ ፈልግ
    {
    የማይንቀሳቀስ int ምልክት = 0;
    ምልክት ++;
    ምልክት%= 2;
    ከሆነ (ምልክት == 0) መመለስ x - eps;
    ሌላ x + eps መመለስ;
    }
    ባዶ መሻገር (ድርብ * x ፣ ድርብ eps ፣ ድርብ x0 ፣ ድርብ x1) // መስቀለኛ መንገድ፡ የሂሳብ አማካይ
    {
    int k = 99;
    ለ (int i = 0; i< 8; i++)
    ለ (int j = i + 1; j< 8; j++)
    {
    x[k] = (x[i] + x[j]) / 2;
    k--;
    }
    ለ (int i = 0; i< 8; i++)
    {
    x[k] = ተገላቢጦሽ (x[i]፣ eps); k--;
    }
    ለ (int i = 8; i< k; i++)
    x[i] = ሚውቴሽን (x0, x1);
    }
    ባዶ ዓይነት (ድርብ * x ፣ ድርብ * y) // መደርደር
    {
    ለ (int i = 0; i< 100; i++)
    ለ (int j = i + 1; j< 100; j++)
    ከሆነ (ፋብስ (y[j])< fabs(y[i])) {
    ድርብ ሙቀት = y[i];
    y[i] = y[j];
    y [j] = ሙቀት;
    ሙቀት = x[i];
    x[i] = x[j];
    x[j] = ሙቀት;
    }
    }
    ድርብ ዘረመል (ድርብ x0፣ ድርብ x1፣ ድርብ eps) // GA በመጠቀም መፍትሄ ይፈልጉ
    {
    ድርብ ሕዝብ;
    ድርብ ረ;
    int iter = 0;
    ለ (int i = 0; i< 100; i++) // የመጀመሪያ ህዝብ መፈጠር
    {
    የህዝብ ብዛት [i] = ሚውቴሽን (x0, x1);
    f[i] = func (ሕዝብ[i]);
    }
    ዓይነት (ሕዝብ, ረ);
    መ ስ ራ ት(
    ኢተር ++;
    ተሻጋሪ (የህዝብ ብዛት, eps, x0, x1);
    ለ (int i = 0; i< 100; i++)
    f[i] = func (ሕዝብ[i]);
    ዓይነት (ሕዝብ, ረ);
    ) ሳለ (ፋብስ(ረ)> eps && iter<20000);
    ኮት<< iter << " iterations" << endl;
    የህዝብ ብዛት መመለስ;
    }
    int ዋና()
    {
    srand (ጊዜ (NULL));
    ኮት<< genetic(1.0, 10.0, 0.000001);
    cin.get ();
    መመለስ 0;
    }

    የማስፈጸሚያ ውጤት

    የጄኔቲክ አልጎሪዝም አጠቃቀም ከሌሎች ዘዴዎች ጋር ሲነጻጸር ሁልጊዜ የተሻለ ውጤት አይሰጥም. ይሁን እንጂ ይህ ዘዴ ከፍተኛ ቁጥር ያላቸውን የአካባቢ ጽንፈኞችን የያዘ ዓለም አቀፍ ጽንፈኛ ፍለጋን የመፈለግ ሁለገብ ችግሮችን በሚፈታበት ጊዜ የማይካድ ጠቀሜታ አለው።

    የጄኔቲክ አልጎሪዝም (GAs) ሀሳብ ከረጅም ጊዜ በፊት (1950-1975) ታይቷል ፣ ግን እነሱ በቅርብ አሥርተ ዓመታት ውስጥ ብቻ የጥናት ነገር ሆነዋል። በዚህ አካባቢ ፈር ቀዳጅ የሆነው ዲ. ሆላንድ ተብሎ የሚታሰበው ከጄኔቲክስ ብዙ ተበድሮ ለኮምፒዩተር ያበጀው ነው። ጂኤዎች በአርቴፊሻል ኢንተለጀንስ ስርዓቶች፣ በነርቭ ኔትወርኮች እና በማመቻቸት ችግሮች ውስጥ በሰፊው ጥቅም ላይ ይውላሉ።

    የዝግመተ ለውጥ ፍለጋ

    በተፈጥሮ ውስጥ በዝግመተ ለውጥ እና በዘፈቀደ የፍለጋ ዘዴዎች ላይ በመመስረት የጄኔቲክ አልጎሪዝም ሞዴሎች ተፈጥረዋል። በዚህ ሁኔታ, የዘፈቀደ ፍለጋ የዝግመተ ለውጥን ቀላሉ ተግባር - የዘፈቀደ ሚውቴሽን እና ቀጣይ ምርጫን ተግባራዊ ማድረግ ነው.

    ከሂሳብ እይታ አንጻር የዝግመተ ለውጥ ፍለጋ ማለት አሁን ያለውን የመጨረሻ መፍትሄዎችን ወደ አዲስ ከመቀየር ያለፈ ትርጉም የለውም። ለዚህ ሂደት ኃላፊነት ያለው ተግባር የጄኔቲክ ፍለጋ ነው. በእንደዚህ ዓይነት አልጎሪዝም እና በዘፈቀደ ፍለጋ መካከል ያለው ዋነኛው ልዩነት በድግግሞሾች (ድግግሞሾች) ውስጥ የተከማቸ መረጃን በንቃት መጠቀም ነው።

    የጄኔቲክ አልጎሪዝም ለምን ያስፈልጋል?

    ጂኤዎች የሚከተሉትን ግቦች ያሳድዳሉ:

    • በተፈጥሮ አካባቢ እና በአዕምሯዊ ምርምር (ሰው ሰራሽ) ስርዓት ውስጥ የመላመድ ዘዴዎችን ማብራራት;
    • የዝግመተ ለውጥ ተግባራትን ሞዴል ማድረግ እና ለተለያዩ ችግሮች መፍትሄዎች ውጤታማ ፍለጋ በተለይም ማመቻቸት አተገባበር።

    በአሁኑ ጊዜ የጄኔቲክ አልጎሪዝም ይዘት እና የተሻሻሉ ስሪቶች የውጤቱን ጥራት ግምት ውስጥ በማስገባት ውጤታማ መፍትሄዎች ፍለጋ ተብሎ ሊጠራ ይችላል. በሌላ አነጋገር በአፈጻጸም እና ትክክለኛነት መካከል ምርጡን ሚዛን ማግኘት. ይህ የሚሆነው በማይታወቁ እና ግልጽ ባልሆኑ ሁኔታዎች ውስጥ "በጣም ጥሩ ሰው መትረፍ" በሚለው ታዋቂው ምሳሌ ምክንያት ነው።

    የ GA ባህሪዎች

    በ GA እና በአብዛኛዎቹ ሌሎች ዘዴዎች መካከል ያሉትን ዋና ዋና ልዩነቶች እንዘርዝር ጥሩ መፍትሄ ለማግኘት።

    • በተወሰነ መንገድ ከተቀመጡት የተግባር መለኪያዎች ጋር መስራት, እና ከእነሱ ጋር በቀጥታ አይደለም;
    • የመፍትሄው ፍለጋ የሚከሰተው የመጀመሪያውን ግምታዊነት በማጣራት አይደለም, ነገር ግን በተለያዩ መፍትሄዎች;
    • ወደ መነሾቹ እና ማሻሻያዎቹ ሳይጠቀሙ የታለመውን ተግባር ብቻ በመጠቀም;
    • በጥብቅ ከመወሰን ይልቅ ለመተንተን ፕሮባቢሊቲካዊ አቀራረብን መጠቀም።

    የአፈጻጸም መስፈርቶች

    የዘረመል ስልተ ቀመሮች በሁለት ሁኔታዎች ላይ ተመስርተው ስሌቶችን ያደርጋሉ፡-

    1. የተወሰነ የድግግሞሽ ብዛት ያስፈጽሙ።
    2. የተገኘው የመፍትሄው ጥራት መስፈርቶቹን ያሟላል.

    ከነዚህ ሁኔታዎች ውስጥ አንዱ ከተሟላ, የጄኔቲክ አልጎሪዝም ተጨማሪ ድግግሞሾችን ማከናወን ያቆማል. በተጨማሪም ፣ ከተለያዩ ክልሎች የመፍትሄው ቦታ የጂኤኤስ አጠቃቀም ለዓላማው ተግባር የበለጠ ተገቢ እሴቶች ያላቸውን አዳዲስ መፍትሄዎችን ለማግኘት በጣም የተሻሉ እንዲሆኑ ያስችላቸዋል።

    መሰረታዊ ቃላት

    ጂኤዎች በጄኔቲክስ ላይ የተመሰረቱ በመሆናቸው አብዛኛው የቃላት አገባብ ከእሱ ጋር ይዛመዳል. ማንኛውም የጄኔቲክ አልጎሪዝም በመነሻ መረጃ ላይ የተመሰረተ ነው. የመነሻ እሴቶች ስብስብ የህዝብ ብዛት P t = (n 1, n 2, ..., n n), የት n i = (r 1, ..., g v) ነው. ጠጋ ብለን እንመልከተው፡-

    • t የመድገም ቁጥር ነው። t 1, ..., t k - ከቁጥር 1 እስከ k ያለው የአልጎሪዝም ድግግሞሽ ማለት ነው, እና በእያንዳንዱ ድግግሞሽ አዲስ የመፍትሄዎች ህዝብ ይፈጠራል.
    • n የህዝብ ብዛት Pt ነው.
    • p 1, ..., p i - ክሮሞሶም, ግለሰብ ወይም አካል. ክሮሞሶም ወይም ሰንሰለት ኢንኮድ የተደረገ የጂኖች ቅደም ተከተል ነው፣ እያንዳንዱም ተከታታይ ቁጥር አለው። ክሮሞሶም የአንድ ግለሰብ (ኦርጋኒክ) ልዩ ጉዳይ ሊሆን እንደሚችል ግምት ውስጥ ማስገባት ያስፈልጋል.
    • g v የኢኮድ መፍትሄ አካል የሆኑት ጂኖች ናቸው።
    • ቦታ በክሮሞሶም ላይ ያለው የጂን ተከታታይ ቁጥር ነው። አሌል የጂን ዋጋ ነው, እሱም አሃዛዊ ወይም ተግባራዊ ሊሆን ይችላል.

    በ GA አውድ ውስጥ "የተቀየረ" ማለት ምን ማለት ነው? በተለምዶ፣ ማንኛውም እሴት በአንዳንድ ፊደላት ላይ የተመሰረተ ነው. በጣም ቀላሉ ምሳሌ ቁጥሮችን ከአስርዮሽ ቁጥር ስርዓት ወደ ሁለትዮሽ ውክልና መለወጥ ነው። ስለዚህ ፊደሉ እንደ ስብስብ (0, 1) ይወከላል, እና ቁጥር 157 10 በ ክሮሞሶም 10011101 2, ስምንት ጂኖችን ያቀፈ ይሆናል.

    ወላጆች እና ዘሮች

    ወላጆች በተሰጠው ሁኔታ መሰረት የሚመረጡ ንጥረ ነገሮች ናቸው. ለምሳሌ, ብዙውን ጊዜ እንዲህ ዓይነቱ ሁኔታ በዘፈቀደ ነው. የተመረጡት ንጥረ ነገሮች, በመሻገር እና በሚውቴሽን ስራዎች, አዳዲስ ዝርያዎችን ያመነጫሉ, እነዚህም ዘሮች ይባላሉ. ስለዚህ, የጄኔቲክ አልጎሪዝም አንድ ድግግሞሽ በሚተገበርበት ጊዜ, ወላጆች አዲስ ትውልድ ይፈጥራሉ.

    በመጨረሻም፣ በዚህ ዐውደ-ጽሑፍ የዝግመተ ለውጥ ትውልዶች ተለዋጭ ይሆናሉ፣ እያንዳንዱ አዲስ ለተሻለ የአካል ብቃት ሲባል የተለያዩ የክሮሞሶም ስብስቦች አሉት ፣ ማለትም ፣ ከተሰጡት ሁኔታዎች ጋር የበለጠ ተስማሚ። በዝግመተ ለውጥ ሂደት ውስጥ ያለው አጠቃላይ የጄኔቲክ ዳራ ጂኖታይፕ ተብሎ የሚጠራ ሲሆን በአንድ አካል እና በውጫዊ አካባቢ መካከል ያለው ግንኙነት መፈጠር phenotype ይባላል።

    የአካል ብቃት ተግባር

    የጄኔቲክ አልጎሪዝም አስማት በአካል ብቃት እንቅስቃሴ ውስጥ ነው. እያንዳንዱ ግለሰብ የራሱ ትርጉም አለው, ይህም በማመቻቸት ተግባር በኩል ሊገኝ ይችላል. ዋናው ስራው እነዚህን እሴቶች ለተለያዩ አማራጭ መፍትሄዎች መገምገም እና በጣም ጥሩውን መምረጥ ነው. በሌላ አነጋገር, በጣም ተስማሚ.

    በማመቻቸት ችግሮች ውስጥ የአካል ብቃት እንቅስቃሴ የታለመ ተግባር ተብሎ ይጠራል ፣ በቁጥጥር ፅንሰ-ሀሳብ ውስጥ ስህተቱ ይባላል ፣ በጨዋታ ንድፈ-ሀሳብ - የወጪ ተግባር ፣ ወዘተ.

    በመጨረሻ ፣ የዘረመል ስልተ ቀመሮች የግለሰቦችን ፣ የአካል ክፍሎችን ወይም ክሮሞሶሞችን ህዝብ ይተነትናል ፣ እያንዳንዱም በጂኖች ጥምረት (የአንዳንድ እሴቶች ስብስብ) ይወከላል እና የህዝቡን ግለሰቦችን በመለወጡ ጥሩ መፍትሄ ይፈልጉ ብለን መደምደም እንችላለን ። ከነሱ መካከል ሰው ሰራሽ ዝግመተ ለውጥ.

    በአንድ አቅጣጫ ወይም በሌላ የግለሰባዊ አካላት ልዩነቶች በአጠቃላይ በመደበኛ የመጠን ስርጭት ሕግ መሠረት ናቸው። በተመሳሳይ ጊዜ, GA የባህሪያትን ውርስ ያረጋግጣል, በጣም የተስተካከሉ ናቸው, በዚህም የተሻለ ህዝብ ያቀርባል.

    መሰረታዊ የጄኔቲክ አልጎሪዝም

    በጣም ቀላል የሆነውን (ክላሲካል) GA ደረጃ በደረጃ እንከፋፍል።

    1. የመነሻ እሴቶችን መጀመር, ማለትም የአንደኛ ደረጃ ህዝብን መወሰን, ዝግመተ ለውጥ የሚፈጠርባቸው ግለሰቦች ስብስብ.
    2. በሕዝብ ውስጥ የእያንዳንዱን ግለሰብ የመጀመሪያ ደረጃ ብቃት ማቋቋም።
    3. የአልጎሪዝም ድግግሞሾችን ለማቆም ሁኔታዎችን በመፈተሽ ላይ።
    4. የምርጫውን ተግባር በመጠቀም.
    5. የጄኔቲክ ኦፕሬተሮች አተገባበር.
    6. አዲስ ህዝብ መፍጠር.
    7. አስፈላጊው ሁኔታ እስኪሟላ ድረስ ደረጃዎች 2-6 በአንድ ዑደት ውስጥ ይደጋገማሉ, ከዚያ በኋላ በጣም የተጣጣመ ግለሰብ ይመረጣል.

    በጣም ግልፅ ያልሆኑትን የአልጎሪዝም ክፍሎችን በአጭሩ እንይ። ሥራን ለማቆም ሁለት ሁኔታዎች ሊኖሩ ይችላሉ-

    1. የድግግሞሽ ብዛት።
    2. የመፍትሄው ጥራት.

    የጄኔቲክ ኦፕሬተሮች ሚውቴሽን ኦፕሬተር እና ተሻጋሪ ኦፕሬተር ናቸው። ሚውቴሽን ከተወሰነ ዕድል ጋር የዘፈቀደ ጂኖችን ይለውጣል። በተለምዶ፣ ሚውቴሽን የመፍጠር እድሉ አነስተኛ የቁጥር እሴት አለው። ስለ ጄኔቲክ አልጎሪዝም "መሻገር" አሠራር የበለጠ በዝርዝር እንነጋገር. በሚከተለው መርህ መሰረት ይከሰታል.

    1. ኤል ጂኖችን ለያዙ ለእያንዳንዱ ወላጆች፣ መሻገሪያ ነጥብ Tsk i በዘፈቀደ ይመረጣል።
    2. የመጀመሪያው ዘር የተፈጠረው የመጀመሪያውን ወላጅ ጂኖች በመቀላቀል ነው [Tsk i+1; L] የሁለተኛው ወላጅ ጂኖች.
    3. ሁለተኛው ልጅ በተቃራኒው መንገድ ተሠርቷል. አሁን የመጀመሪያው ወላጅ ጂኖች ወደ ሁለተኛው ወላጅ ጂኖች ውስጥ ተጨምረዋል [Tsk i+1; ኤል.

    ተራ ምሳሌ

    ከፍተኛውን የአሃዶች ብዛት ያለው ግለሰብ የመፈለግ ምሳሌን በመጠቀም የጄኔቲክ አልጎሪዝምን በመጠቀም ችግሩን እንፈታው። አንድ ግለሰብ 10 ጂኖችን ያቀፈ ነው። ስምንት ግለሰቦች ያሉት የመጀመሪያ ደረጃ ህዝብ እናስቀምጥ። በግልጽ ለማየት እንደሚቻለው, ምርጡ ግለሰብ መሆን አለበት 1111111111. ለመፍታት GA እንፍጠር.

    • ማስጀመር።በዘፈቀደ 8 ግለሰቦችን እንምረጥ፡-

    ሠንጠረዡ እንደሚያሳየው ግለሰቦች 3 እና 7 ከፍተኛ ቁጥር ያላቸው ክፍሎች ስላሏቸው ችግሩን ለመፍታት በጣም ተስማሚ የሆኑ የህዝብ አባላት ናቸው. በአሁኑ ጊዜ የሚፈለገው ጥራት ያለው መፍትሄ ስለሌለ, አልጎሪዝም መስራቱን ቀጥሏል. የግለሰቦችን ምርጫ ማካሄድ አስፈላጊ ነው. ለማብራራት ቀላልነት ምርጫው በዘፈቀደ ይከሰት እና የግለሰቦችን ናሙና እናገኛለን (n 7, n 3, n 1, n 7, n 3, n 7, n 4, n 2) - እነዚህ ለአዲሱ ወላጆች ናቸው. የህዝብ ብዛት.

    • የጄኔቲክ ኦፕሬተሮችን በመጠቀም.በድጋሚ, ለቀላልነት, ሚውቴሽን የመፍጠር እድሉ 0 ነው ብለን እንገምታለን. በሌላ አነጋገር, ሁሉም 8 ግለሰቦች ጂኖቻቸውን እንደነበሩ ያስተላልፋሉ. መሻገሪያውን ለማካሄድ፡ ጥንድ ግለሰቦችን በዘፈቀደ እንሰራለን፡ (n 2, n 7), (n 1, n 7), (n 3, n 4) እና (n 3, n 7). ለእያንዳንዱ ጥንድ ማቋረጫ ነጥቦች እንዲሁ በዘፈቀደ የተመረጡ ናቸው፡-
    • ዘሮችን ያቀፈ አዲስ ሕዝብ መፍጠር፡-

    ተጨማሪ ድርጊቶች ግልጽ ናቸው. ስለ ጂኤዎች በጣም የሚያስደስት ነገር በእያንዳንዱ ህዝብ ውስጥ ያለውን አማካይ የአሃዶች ብዛት በመገመት የመጣ ነው። በመጀመሪያው ህዝብ ውስጥ በአማካይ 5.375 ዩኒቶች በግለሰብ ደረጃ, በትውልድ ቁጥር - 6.25 ክፍሎች በግለሰብ ደረጃ. እናም ይህ ባህሪ በሚውቴሽን እና በመሻገሪያ ወቅት, ከመጀመሪያው ህዝብ ውስጥ ከፍተኛ ቁጥር ያለው ግለሰብ ቢጠፋም ይታያል.

    የትግበራ እቅድ

    የጄኔቲክ አልጎሪዝም መፍጠር በጣም የተወሳሰበ ስራ ነው። በመጀመሪያ ደረጃ, እቅዱን በደረጃዎች መልክ እንዘረዝራለን, ከዚያ በኋላ እያንዳንዳቸውን በበለጠ ዝርዝር እንመረምራለን.

    1. የውክልና ፍቺ (ፊደል)።
    2. የዘፈቀደ ለውጥ ኦፕሬተሮች ትርጉም.
    3. የግለሰቦችን ሕልውና መወሰን.
    4. የአንደኛ ደረጃ ህዝብ ትውልድ.

    የመጀመርያው ደረጃ እንደሚለው የመፍትሄዎች ስብስብ ወይም የህዝብ ብዛት የሚመዘገብበት ፊደላት በአንድ ጊዜ አስፈላጊ የሆኑትን የዘፈቀደ ማሻሻያ ስራዎችን በአንድ ጊዜ ለመፍቀድ እና የአንደኛ ደረጃም ሆነ ያለፉትን ንጥረ ነገሮች ብቃት ለመገምገም ተለዋዋጭ መሆን አለበት ይላል። ለውጦች. ለእነዚህ አላማዎች ተስማሚ የሆነ ፊደል መፍጠር እንደማይቻል በሂሳብ ተረጋግጧል, ስለዚህ ማጠናቀር የጂኤ የተረጋጋ አሠራር ለማረጋገጥ በጣም አስቸጋሪ እና ወሳኝ ደረጃዎች አንዱ ነው.

    የማሻሻያ እና የፍጥረት ኦፕሬተሮች ትርጉም ከዚህ ያነሰ አስቸጋሪ አይደለም። አስፈላጊዎቹን ድርጊቶች ለማከናወን የሚችሉ ብዙ ኦፕሬተሮች አሉ. ለምሳሌ፣ ከባዮሎጂ እንደሚታወቀው እያንዳንዱ ዝርያ በሁለት መንገድ ሊባዛ ይችላል፡ በጾታ (መሻገር) እና በፆታዊ (ሚውቴሽን)። በመጀመሪያው ሁኔታ ወላጆች የጄኔቲክ ቁሳቁሶችን ይለዋወጣሉ, በሁለተኛው ውስጥ, ሚውቴሽን በሰውነት ውስጣዊ አሠራር እና ውጫዊ ተጽእኖዎች ይወሰናል. በተጨማሪም በተፈጥሮ ውስጥ የማይገኙ የመራቢያ ሞዴሎችን መጠቀም ይቻላል. ለምሳሌ, የሶስት ወይም ከዚያ በላይ ወላጆችን ጂኖች ይጠቀሙ. ከመሻገር ጋር በሚመሳሰል መልኩ የተለያዩ ዘዴዎች በጄኔቲክ ሚውቴሽን ስልተ ቀመር ውስጥ ሊካተቱ ይችላሉ።

    የመዳን ዘዴን መምረጥ በጣም አታላይ ሊሆን ይችላል. በጄኔቲክ አልጎሪዝም ውስጥ ለመምረጥ ብዙ መንገዶች አሉ. እና እንደ ልምምድ እንደሚያሳየው, "የተሟሉ መትረፍ" የሚለው ደንብ ሁልጊዜ የተሻለ አይደለም. ውስብስብ ቴክኒካዊ ችግሮችን በሚፈታበት ጊዜ ብዙውን ጊዜ የተሻለው መፍትሔ ከብዙ አማካኝ ወይም እንዲያውም የከፋ ከሆነ ይወጣል. ስለዚህ, ብዙውን ጊዜ የተሻለው መፍትሄ የመዳን እድሉ ከፍተኛ መሆኑን የሚገልጽ ፕሮባቢሊቲካዊ አቀራረብን መጠቀም የተለመደ ነው.

    የመጨረሻው ደረጃ ማንም ለሌላቸው አልጎሪዝም ተለዋዋጭነትን ያቀርባል. በግለሰቦች ውስጥ ጂኖችን በማስተካከል እና በዘፈቀደ ግለሰቦችን በመፍጠር የመፍትሄዎቹ ዋና ህዝብ በማንኛውም የታወቀ መረጃ ላይ በመመስረት ወይም ሙሉ በሙሉ በዘፈቀደ ሊዘጋጅ ይችላል። ሆኖም ግን, የአልጎሪዝም ውጤታማነት በአብዛኛው የተመካው በመነሻ ህዝብ ላይ መሆኑን ሁልጊዜ ማስታወስ ጠቃሚ ነው.

    ቅልጥፍና

    የጄኔቲክ አልጎሪዝም ውጤታማነት ሙሉ በሙሉ የተመካው በእቅዱ ውስጥ በተገለጹት እርምጃዎች ትክክለኛ ትግበራ ላይ ነው። እዚህ ላይ በተለይ ተፅዕኖ ያለው ነጥብ የመጀመሪያ ደረጃ ህዝብ መፍጠር ነው. ለዚህ ብዙ አቀራረቦች አሉ. ጥቂቶቹን እንግለጽ፡-

    1. በተወሰኑ አካባቢዎች ውስጥ ሁሉንም ሊሆኑ የሚችሉ የግለሰቦችን ልዩነቶች የሚያካትት የተሟላ ህዝብ መፍጠር።
    2. በሁሉም ትክክለኛ እሴቶች ላይ በመመስረት ግለሰቦችን በዘፈቀደ ማፍለቅ።
    3. የግለሰቦችን በዘፈቀደ መፍጠር፣ ተቀባይነት ካላቸው እሴቶች መካከል የትውልድ ክልል ሲመረጥ።
    4. ህዝብን ለመፍጠር የመጀመሪያዎቹን ሶስት ዘዴዎች በማጣመር.

    ስለዚህ, የጄኔቲክ ስልተ ቀመሮች ውጤታማነት በአብዛኛው የተመካው በዚህ ጉዳይ ላይ በፕሮግራም አውጪው ልምድ ላይ ነው ብለን መደምደም እንችላለን. ይህ ሁለቱም የጄኔቲክ ስልተ ቀመሮች ጉዳት እና የእነሱ ጥቅም ነው።