Кіріспе
Эволюциялық есептеу – биологиялық эволюциядан шабыттанған жаһандық оптимизациялау алгоритмдерінің отбасы, ал жасанды интеллект және жұмсақ есептеулер осы алгоритмдерді зерттейді. Техникалық тұрғыдан алғанда, бұл метаэвристикалық немесе стохастикалық оптимизация сипаты бар, популяциялық негізде жұмыс істейтін, сынақ-қате арқылы мәселе шешетін алгоритмдердің отбасы. Эволюциялық есептеуде, кандидаттық шешімдердің бастапқы жиынтығы жасалады және итеративті түрде жаңартылады. Әрбір жаңа буын, нашаррақ шешімдерді стохастикалық жолмен алып тастау және шағын кездейсоқ өзгерістер енгізу арқылы, сондай-ақ әдіске байланысты, ата-аналық ақпаратты қосыстыру арқылы құрылады. Биологиялық терминологияда, шешімдердің популяциясы табиғи (немесе жасанды) іріктеуге, мутацияға және мүмкін рекомбинацияға түседі. Нәтижесінде, популяцияның сәйкестік деңгейі (фитнес) біртіндеп артады, яғни алгоритмнің таңдалған сәйкестік функциясы жақсарады. Эволюциялық есептеу әдістері мәселелердің кең ауқымында жоғары сапалы, оңтайландырылған шешімдерді табуға мүмкіндік береді, сондықтан компьютерлік ғылымда кең таралған. Проблемалардың нақты түрлері мен дерек құрылымдарына бейімделген көптеген нұсқалар мен кеңейтімдер бар. Эволюциялық есептеу кейде эволюциялық биологияда да қолданылады, жалпы эволюциялық процестердің ортақ аспектілерін зерттеу үшін in silico эксперименттік процедура ретінде.
the journal
In computer science, evolutionary computation is a family of algorithms for global optimization inspired by biological evolution, and the subfield of artificial intelligence and soft computing studying these algorithms. In technical terms, they are a family of population based trial and error problem solvers with a metaheuristic or stochastic optimization character. In evolutionary computation, an initial set of candidate solutions is generated and iteratively updated. Each new generation is produced by stochastically removing less desired solutions, and introducing small random changes as well as, depending on the method, mixing parental information. In biological terminology, a population of solutions is subjected to natural selection (or artificial selection), mutation and possibly recombination. As a result, the population will gradually evolve to increase in fitness, in this case the chosen fitness function of the algorithm. Evolutionary computation techniques can produce highly optimized solutions in a wide range of problem settings, making them popular in computer science. Many variants and extensions exist, suited to more specific families of problems and data structures. Evolutionary computation is also sometimes used in evolutionary biology as an in silico experimental procedure to study common aspects of general evolutionary processes.
Тарих
Эволюциялық процестерді еліктеп проблемаларды шешу тұжырымы компьютерлер пайда болғанға дейін қалыптасқан, мысалы, Алан Тьюринг 1948 жылы генетикалық іздеу әдісін ұсынғанда. Тьюрингтің B типті u машиналары алғашқы нейрондық желілерге ұқсас, ал нейрондар арасындағы байланыстар генетикалық алгоритм арқылы оқытылды. Оның P типті u машиналары, қуаныш пен азабы сигналдары машинаны белгілі бір мінез-құлықты үйренуге бағыттайтын нығайтуды үйрену әдісіне ұқсайды. Дегенмен, Тьюрингтің жұмысы 1968 жылға дейін жарияланбады және ол 1954 жылы қайтыс болды, сондықтан бұл ерте еңбек эволюциялық есептеулер саласына тиесілі әсер етпеді. Эволюциялық есептеулер саласы 1950-1960 жылдары нақты бастау алды. 1962 жылы Лоуренс Дж. Фогель АҚШ-та Эволюциялық бағдарламалауды зерттеуді бастады, ол жасанды интеллект саласындағы тәжірибе деп есептелді. Бұл жүйеде дискреттік күйдегі машиналар болжау мәселесін шешу үшін қолданылды: бұл машиналар мутацияланатын (күйлерді қосу немесе жою, немесе күйлер арасындағы өту ережелерін өзгерту), ал осы мутацияланған машиналардың ең жақсысы келесі буындарда одан әрі дамытылатын болды. Қажет болған жағдайда соңғы дискреттік күйдегі машина болжамдар жасау үшін пайдаланылуы мүмкін. Эволюциялық бағдарламалау әдісі алдын ала болжау мәселелеріне, жүйелерді идентификациялау және автоматты басқаруға сәтті қолданылды. Кейіннен ол уақыт қатарлы деректерді өңдеуге және ойын стратегияларының эволюциясын модельдеуге қолданылды. Бастапқыда бұл оңтайландыру техникасы компьютерлерсіз орындалды, оның орнына кездейсоқ мутацияларды анықтау үшін тек туралау тасталатын. 1965 жылға қарай есептеулер толығымен машинамен орындалатын болды. Басқа тәсілдер проблемаларды шешуге бағытталған болса, Голланд негізінен генетикалық алгоритмдерді қолдану арқылы бейімделуді зерттеуге және оны қалай модельдеуге болатынын анықтауға бағытталды. Биттік тізбектер түрінде бейнеленген хромосомалар популяциясы биттік тізбектегі белгілі бір "аллель" биттерін іріктеу арқылы жасанды таңдау процесі арқылы өзгертілді. Мутацияның басқа да әдістерінің ішінде хромосомалар арасындағы өзара әрекеттесулер әртүрлі организмдер арасындағы ДНК рекомбинациясын модельдеу үшін қолданылды. Алдыңғы әдістер бір уақытта бір ғана ең жақсы организмді қадағалаған (балалар ата-аналармен бәсекелесіп), Голландтың генетикалық алгоритмдері үлкен популяцияларды қадағалады (әр буында көптеген организмдер бәсекелесіп). 1990 жылдары эволюциялық есептеудің жаңа тәсілі пайда болды, оны генетикалық бағдарламалау деп атады, оны Джон Коза және басқалар қолдады. 1950 жылдары тағы бір пионер болған Алекс Фрейзер, жасанды таңдауды модельдеу туралы бірқатар мақалалар жариялады. Академиялық қызығушылықтың артуымен, компьютерлердің қуатының күрт өсуі практикалық қолдануға мүмкіндік берді, соның ішінде компьютерлік бағдарламалардың автоматты эволюциясы. Эволюциялық алгоритмдер қазір адам-дизайнерлер жасаған бағдарламалық жасақтамаларға қарағанда көп өлшемді мәселелерді тиімдірек шешу үшін, сондай-ақ жүйелердің дизайнын оңтайландыру үшін қолданылады.
Эволюциялық алгоритмдер
Эволюциялық алгоритмдер эволюциялық есептеудің бір бөлігін құрайды, себебі олар көбінесе биологиялық эволюциядан шабыттанған репродукция, мутация, рекомбинация, табиғи іріктеу және ең жақсылардың тірі қалуы сияқты механизмдерді іске асыратын техникаларды ғана қамтиды. Оптимизациялау мәселесіне қатысты мүмкін болатын шешімдер популяциядағы жеке тұлғалар рөлін атқарады, ал құн функциясы шешімдердің «өмір сүретін» ортасын анықтайды (сондай-ақ, жарамдылық функциясын қараңыз). Популяцияның эволюциясы жоғарыда аталған операторларды қайталап қолданғаннан кейін жүзеге асады. Бұл процесте эволюциялық жүйелердің негізін құрайтын екі маңызды күш бар: рекомбинация (мысалы, кроссовер) және мутация қажетті әртүрлілікті тудырады, соның арқасында жаңалықтар пайда болады, ал іріктеу сапаны арттыратын күш ретінде әрекет етеді. Мұндай эволюциялық процестің көптеген аспектілері ықтималдыққа негізделген. Рекомбинация мен мутация нәтижесінде өзгерген ақпараттың бөліктері кездейсоқ түрде таңдалады. Екінші жағынан, іріктеу операторлары детерминистік немесе ықтималдық болуы мүмкін. Соңғы жағдайда, жоғары жарамдылыққа ие жеке тұлғалар, төмен жарамдылыққа ие жеке тұлғаларға қарағанда таңдалу ықтималдығы жоғары, бірақ әдетте нашар жеке тұлғалардың да ата-ана болуға немесе тірі қалуға мүмкіндігі болады.
Эволюциялық алгоритмдер мен биология
Генетикалық алгоритмдер биологиялық жүйелерді модельдеу әдістерін және динамикалық жүйелер теориясымен байланысты жүйелік биологияны ұсынады, себебі олар жүйенің болашақ күйлерін болжау үшін қолданылады. Бұл – биологиядағы дамудың реттелген, жақсы бақыланатын және жоғары құрылымдалған сипатына назар аударудың жарқын (бірақ, мүмкін, жаңылыстыратын) жолы. Алайда, динамикалық жүйелерге аналогиядан асып, алгоритмдер мен информатиканы, әсіресе есептеу теориясын пайдалану эволюцияның өзін түсіну үшін де маңызды. Бұл көзқарас дамудың орталық басқаруы жоқ екенін мойындау артықшылығына ие; организмдер жасушалар ішіндегі және олардың арасындағы жергілікті өзара әрекеттесулер нәтижесінде дамиды. Бізге бағдарламалық дамудың параллельдері туралы ең перспективалы идеялар – жасушалардағы процестер мен қазіргі заманғы компьютерлердің төменгі деңгейдегі жұмысы арасындағы айқын аналогияны көрсететіндей болып көрінеді. Осылайша, биологиялық жүйелер – келесі күйлерді есептеу үшін кіріс ақпаратты өңдейтін есептеу машиналары сияқты, сондықтан биологиялық жүйелер классикалық динамикалық жүйелерге қарағанда есептеуге жақын. Сонымен қатар, есептеу теориясының ұғымдарына сәйкес, биологиялық организмдердегі микропроцестер негізінен толық емес және шешілмейтін (толықтығы (логика)), яғни жасушалар мен компьютерлер арасындағы аналогияда қарапайым метафорадан гөрі көбірек жатыр. Есептеуге аналогия тұқым қуалау жүйелері мен биологиялық құрылым арасындағы қатынасқа да қатысты, бұл көбінесе өмірдің пайда болуын түсіндірудегі ең маңызды мәселелердің бірі саналады. Биологиялық және эволюциялық есептеулердің қасиеттерін зерттеу үшін Эволюциялық Тьюринг машиналарын жалпылаған Эволюциялық автоматтар енгізілді. Атап айтқанда, олар эволюциялық есептеудің экспрессивтілігі туралы жаңа нәтижелер алуға мүмкіндік береді. Бұл табиғи эволюцияның шешілмейтіндігі және эволюциялық алгоритмдер мен процестер туралы бастапқы нәтижені растайды. Терминалды режимде жұмыс істейтін Эволюциялық автоматтардың ең қарапайым кіші класы – Эволюциялық шекті автоматтар, берілген әліпбиде кез келген тілді қабылдай алады, соның ішінде рекурсивті емес (мысалы, диагональ тілі) және рекурсивті, бірақ рекурсивті емес тілдерді (мысалы, әмбебап Тьюринг машинасының тілі).