Генетикалық алгоритмдердегі операторлар: Мутация, кроссовер және таңдау
Genetic operator
Генетикалық алгоритмдердегі операторлар: мутация, кроссовер, таңдау. Шешім табуға, генетикалық әртүрлілікті сақтауға көмектеседі. Бағдарламалық оптимизация.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Генетикалық оператор – генетикалық алгоритмдерде алгоритмді белгілі бір мәселенің шешіміне бағыттау үшін қолданылатын оператор. Алгоритмнің табысқа жетуі үшін бір-бірімен үйлесімде жұмыс істеуі тиіс үш негізгі оператор бар: мутация, кроссовер және таңдау. Генетикалық операторлар генетикалық түрлілікті құру және сақтау (мутация операторы арқылы), қолданыстағы шешімдерді (хромосомалар деп те аталады) жаңа шешімдерге біріктіру (кроссовер) және шешімдер арасынан таңдау жасау (таңдау) үшін пайдаланылады. Компьютер ғалымы Джон Коза күрделі мәселелерді оңтайландыру үшін генетикалық бағдарламалауды қолдану туралы кітабында «инверсия» немесе «пермутация» операторын да атады; алайда, бұл оператордың тиімділігі толыққанды дәлелденбеген және осы оператор туралы сирек айтылады. Мутация (немесе мутацияға ұқсас) операторлары унитарлық операторлар деп есептеледі, себебі олар бір уақытта тек бір хромосомамен ғана жұмыс істейді. Керісінше, кроссовер операторлары бинарлық операторлар деп аталады, өйткені олар екі хромосомамен бір уақытта жұмыс істейді, екі қолданыстағы хромосоманы біріктіріп, бір жаңа хромосома құрайды.
A genetic operator is an operator used in genetic algorithms to guide the algorithm towards a solution to a given problem. There are three main types of operators (mutation, crossover and selection), which must work in conjunction with one another in order for the algorithm to be successful. Genetic operators are used to create and maintain genetic diversity (mutation operator), combine existing solutions (also known as chromosomes) into new solutions (crossover) and select between solutions (selection). In his book discussing the use of genetic programming for the optimization of complex problems, computer scientist John Koza has also identified an 'inversion' or 'permutation' operator; however, the effectiveness of this operator has never been conclusively demonstrated and this operator is rarely discussed. Mutation (or mutation like) operators are said to be unary operators, as they only operate on one chromosome at a time. In contrast, crossover operators are said to be binary operators, as they operate on two chromosomes at a time, combining two existing chromosomes into one new chromosome.
Операторлар
Генетикалық айырмашылық эволюция процесі үшін қажетті жағдай. Генетикалық алгоритмдерде қолданылатын генетикалық операторлар табиғаттағыдай: ең жақсылардың тірі қалуы, яки таңдау; көбею (кроссовер, рекомбинация деп те аталады); және мутация.
Genetic variation is a necessity for the process of evolution. Genetic operators used in genetic algorithms are analogous to those in the natural world: survival of the fittest, or selection; reproduction (crossover, also called recombination); and mutation.
Таңдау
Селекция операторлары жақсырақ шешімдерге (хромосомаларға) басымдық береді, олардың "гендерін" алгоритмнің келесі буынына жеткізуге мүмкіндік береді. Кроссовер операторына жіберілмес бұрын, ең жақсы шешімдер объективті функцияның (генетикалық алгоритмдерде "сайыс функциясы" деп те аталады) қандай да бір түрін қолдану арқылы анықталады. Ең жақсы шешімдерді таңдаудың әртүрлі әдістері бар, мысалы, сайыс деңгейіне пропорционалды таңдау және турнирлік таңдау; әртүрлі әдістер әртүрлі шешімдерді "ең жақсы" деп таңдауы мүмкін. Селекция операторы ең жақсы шешімдерді қазіргі буыннан келесі буынға өзгеріссіз тікелей жеткізе алады; бұл элитаризм немесе элитарлық селекция деп аталады.
Selection operators give preference to better solutions (chromosomes), allowing them to pass on their 'genes' to the next generation of the algorithm. The best solutions are determined using some form of objective function (also known as a 'fitness function' in genetic algorithms), before being passed to the crossover operator. Different methods for choosing the best solutions exist, for example, fitness proportionate selection and tournament selection; different methods may choose different solutions as being 'best'. The selection operator may also simply pass the best solutions from the current generation directly to the next generation without being mutated; this is known as elitism or elitist selection.
Кроссовер
Кроссовер – бірнеше аталық шешімдерді (хромосомаларды) алып, олардан жаңа шешім жасау процесі. Жақсы шешімдердің бөліктерін біріктіру арқылы генетикалық алгоритм жақсырақ шешім табу мүмкіндігі артады.
Crossover is the process of taking more than one parent solutions (chromosomes) and producing a child solution from them. By recombining portions of good solutions, the genetic algorithm is more likely to create a better solution.
Мутация
Мутация операторы шешімдер арасындағы генетикалық әртүрлілікті күшейтеді және шешімдердің бір-біріне тым жақын келуін болдырмау арқылы генетикалық алгоритмнің жергілікті минимумға тоқталуына қарсы тұруға тырысады. Шешімдердің ағымдағы жиынтығын мутациялау кезінде, нақты бір шешім бұрынғы шешімнен толығымен өзгеруі мүмкін. Шешімдерді мутациялау арқылы генетикалық алгоритм тек мутация операторының көмегімен жақсартылған шешімге қол жеткізе алады. Сонымен қатар, мутацияның әртүрлі әдістері қолданылуы мүмкін; олар қарапайым бит-мутациядан (бинарлық тізбекті хромосомадағы кездейсоқ биттерді белгілі бір төмен ықтималдықпен ауыстыру) бастап, ерітіндідегі гендерді біртекті таралымнан немесе Гаусс таралымынан таңдалған кездейсоқ мәндермен алмастыруға мүмкіндік беретін күрделірек мутациялық әдістерге дейін жетеді. Кроссовер операторы сияқты, мутация әдісі әдетте хромосомадағы шешімнің бейнесіне сәйкес таңдалады.
The mutation operator encourages genetic diversity amongst solutions and attempts to prevent the genetic algorithm converging to a local minimum by stopping the solutions becoming too close to one another. In mutating the current pool of solutions, a given solution may change entirely from the previous solution. By mutating the solutions, a genetic algorithm can reach an improved solution solely through the mutation operator. Again, different methods of mutation may be used; these range from a simple bit mutation (flipping random bits in a binary string chromosome with some low probability) to more complex mutation methods, which may replace genes in the solution with random values chosen from the uniform distribution or the Gaussian distribution. As with the crossover operator, the mutation method is usually chosen to match the representation of the solution within the chromosome.
Операторларды біріктіру
Әр оператор генетикалық алгоритм жеке жұмыс істегенде шығаратын шешімдерді жақсартуға бағытталғанмен, алгоритм жақсы шешім табуы үшін операторлардың бірігіп жұмыс істеуі қажет. Таңдау операторын ғана пайдалану шешім популяциясын популяциядағы ең жақсы шешімнің көшірмелерімен толтыруға ұрындырады. Егер таңдау және кроссовер операторлары мутация операторысыз қолданылса, алгоритм жергілікті минимумға, яғни мәселенің жақсы, бірақ толық оңтайлы емес шешіміне қарай жинақталуға ұрындырады. Мутация операторын ғана пайдалану іздеу кеңістігінде кездейсоқ серуендеуге алып келеді. Тек үш операторды бірге қолдану арқылы ғана генетикалық алгоритм шуға төзімді дөңгелекке көтерілу алгоритміне айналып, мәселенің жақсы шешімдерін бере алады.
While each operator acts to improve the solutions produced by the genetic algorithm working individually, the operators must work in conjunction with each other for the algorithm to be successful in finding a good solution. Using the selection operator on its own will tend to fill the solution population with copies of the best solution from the population. If the selection and crossover operators are used without the mutation operator, the algorithm will tend to converge to a local minimum, that is, a good but sub optimal solution to the problem. Using the mutation operator on its own leads to a random walk through the search space. Only by using all three operators together can the genetic algorithm become a noise tolerant hill climbing algorithm, yielding good solutions to the problem.