Genetic Algorithm 

 

À¯Àü ¾Ë°í¸®Áò (Genetic Algorithm) À̶õ ÀÚ¿¬°è¿¡ À־ »ý¹°ÀÇ À¯Àü (Genetics) °ú ÁøÈ­ (Evolution) ÀÇ ¸ÞÄ«´ÏÁòÀ» °øÇÐÀûÀ¸·Î ¸ðµ¨È­ÇÏ´Â °Í¿¡ ÀÇÇØ »ý¹°ÀÌ °®´Â ȯ°æ¿¡¼­ÀÇ ÀûÀÀ´É·ÂÀ» Ãë±ÞÇÏ´Â °ÍÀÌ°í, 1975³â¿¡ John Holland °¡ Àú¼­ "Adaptation on Natural and Artificial Systems" ¿¡ óÀ½ ¼Ò°³ÇÑ ÀÚ¿¬µµÅ ÀÇ ¿ø¸®¸¦ ±âÃÊ·Î ÇÑ ÃÖÀûÈ­ (Optimization) ¹æ¹ýÀÌ´Ù. Genetic algorithm Àº Ž»ö (Search), ÃÖÀûÈ­ ¹× ±â°èÇнÀ (Machine Learning) À» À§ÇÑ µµ±¸·Î ¸¹ÀÌ »ç¿ëÇÑ´Ù

definition   term   history  site   lab   book   demo   paper

»ý¹°Àº ¼¼Æ÷·Î ±¸¼ºµÇ°í ¼¼Æ÷¿¡´Â ÇÙÀÌ ÀÖÀ¸¸ç ±× ÇÙ Áß¿¡´Â ¿°»öü (Chromosome) ¶ó´Â °ÍÀÌ ÀÖ´Ù. »ç¶÷ÀÇ Ã¼¼¼Æ÷ÀÇ °æ¿ì¿¡´Â 46°³ÀÇ ¿°»öü°¡ ÀÖ°í, ¿°»öü´Â ÁÖ·Î DNA·Î ±¸¼ºµÇ¾î ÀÖ´Ù.  ÀÌ DNA ´Â 4Á¾·ùÀÇ ¿°±â¶ó°í ºÎ¸£´Â È­ÇÐ ¹°ÁúÀÌ Áß¿äÇÑ ±¸¼º ¿ä¼Ò¸ç, DNA°¡ °¡Áö´Â Á¤º¸´Â À̵é 4Á¾·ùÀÇ ¿°±âÀÇ ±¸¼º ¹æ¹ý¿¡ ÀÖ´Ù. DNA ´Â 2Áß ³ª¼±±¸Á¶·Î µÇ¾î ÀÖÀ¸¸ç, À̵éÀÌ º¹ÀâÇÏ°Ô °ãÃÄÁ®¼­ ¿°»öü¸¦ ±¸¼ºÇÏ°í ÀÖ´Ù. À¯ÀüÀÚ (Gene) ¶õ À¯ÀüÁ¤º¸¸¦ ´ã´çÇÏ´Â DNA ¸¦ ¸»ÇÑ´Ù. ƯÁ¤ÀÇ À¯ÀüÀÚ´Â ¿°»öüÀÇ Æ¯Á¤ À§Ä¡¿¡ Á¸ÀçÇÑ´Ù. °á±¹ À¯ÀüÁ¤º¸´Â ¿°»öü»ó¿¡¼­ÀÇ À§Ä¡ (À¯ÀüÀÚ À§Ä¡) ¿Í ¿°±âÀÇ ¹è¿­¿¡ ÀÇÇØ Ç¥ÇöµÇ´Â °ÍÀÌ´Ù

ºÎ¸ð·Î ºÎÅÍ À¯ÀüÀÚ¿¡ ÀÇÇØ »ý¹°·Î¼­ÀÇ Á¤º¸ Àü´ÞÀÌ ÇàÇØÁö¸é ´ÙÀ½¼¼´ë¿¡´Â °¢ °³Ã¼ Áß¿¡¼­µµ º¸´Ù ¿ì¼öÇÑ Áï, ȯ°æ¿¡ ÀûÀÀµµ°¡ ³ôÀº °³Ã¼ÀÇ À¯Àü Á¤º¸°¡ ¿ì¼±ÀûÀ¸·Î ÀüÇØÁø´Ù. ÀûÀÀµµ°¡ ³·Àº °³Ã¼´Â ¼ö¸íÀÌ Âª°í, Áõ½ÄÇÒ ¼ö ¾ø°Ô µÇ±â ¶§¹®ÀÌ´Ù. µ¿½Ã¿¡ ÀûÀÀµµ°¡ ³·Àº Á¾Á·µµ ÀÚ¿¬ µµÅÂµÇ¾î °£´Ù. ÀÌ·¯ÇÑ ¿ø¸®¿¡ ±âÃÊÇÏ¿© ¼¼´ë¸¦ °ÅµìÇØ °¡¸é Â÷·Ê·Î ȯ°æ¿¡ ÀûÀÀµµ°¡ ³ôÀº °³Ã¼°¡ ¸¹¾ÆÁø´Ù. ÀÌ°ÍÀÌ À¯Àü (Genetics) °ú ÁøÈ­ (Evolution) ÀÇ ±âº»ÀûÀÎ ¿ø¸®ÀÌ´Ù.

Genetic algorithm Àº Ç®°íÀÚÇÏ´Â ¹®Á¦¿¡ ´ëÇÑ °¡´ÉÇÑ ÇصéÀ» Á¤ÇØÁø ÇüÅÂÀÇ ÀڷᱸÁ¶·Î Ç¥ÇöÇÑ ´ÙÀ½, À̵éÀ» Á¡Â÷ÀûÀ¸·Î º¯ÇüÇÔÀ¸·Î½á Á¡Á¡ ´õ ÁÁÀº ÇصéÀ» »ý¼ºÇÏ°Ô µÈ´Ù. Áï Ç®°íÀÚ ÇÏ´Â ¹®Á¦¿¡ ´ëÇÑ °¡´ÉÇÑ ÇصéÀ» ¿°»öü·Î Ç¥ÇöÇÑ ´ÙÀ½ À̵éÀ» Á¡Â÷ÀûÀ¸·Î º¯ÇüÇÔÀ¸·Î½á Á¡Á¡ ´õ ÁÁÀº ÇصéÀ» »ý¼ºÇÑ´Ù. °¢°¢ÀÇ °¡´ÉÇÑ Çظ¦ ÇϳªÀÇ À¯±âü (Organism) ¶Ç´Â °³Ã¼  (Individual) ·Î º¸¸ç À̵éÀÇ ÁýÇÕÀ» °³Ã¼±º (Population) À̶ó ÇÑ´Ù. ÇϳªÀÇ °³Ã¼´Â º¸Åë ÇÑ °³ ¶Ç´Â ¿©·¯ °³ÀÇ ¿°»öü·Î ±¸¼ºµÇ¸ç ¿°»öü¸¦ º¯ÇüÇÏ´Â ¿¬»êÀÚµéÀ» À¯Àü¿¬»êÀÚ (Genetic Operator) ¶ó ÇÑ´Ù. ±âº»ÀûÀÎ ¿¬»êÀÚ´Â ´ÙÀ½ÀÇ 3°¡Áö°¡ ÀÖ´Ù. ¼±Åà (Selection, Áý´Ü Áß¿¡¼­ ÀûÀÀµµÀÇ ºÐÆ÷¿¡ µû¶ó¼­ ´ÙÀ½ÀÇ ´Ü°è·Î ±³¹è¸¦ ÇàÇÏ´Â °³Ã¼ÀÇ »ýÁ¸ ºÐÆ÷¸¦ °áÁ¤ÇÑ´Ù. ÀûÀÀµµÀÇ ºÐÆ÷¿¡ ±âÃÊÇÏ°í Àֱ⠶§¹®¿¡ ÀûÀÀµµ°¡ ³ôÀº °³Ã¼Àϼö·Ï º¸´Ù ¸¹Àº ÀÚ¼ÕÀ» ³²±â±â ½±°Ô µÈ´Ù), ±³¹è (Crossover, 2°³ÀÇ ¿°»öü »çÀÌ¿¡¼­ À¯ÀüÀÚ¸¦ ¹Ù²Ù¾î ³Ö¾î »õ·Î¿î °³Ã¼¸¦ ¹ß»ý½ÃŲ´Ù), µ¹¿¬º¯ÀÌ (Mutation, À¯ÀüÀÚÀÇ ¾î¶² ºÎºÐÀÇ °ªÀ» °­Á¦ÀûÀ¸·Î º¯È­½ÃŲ´Ù),

À¯Àü ¾Ë°í¸®ÁòÀ» ÀÌ¿ëÇÏ¿© ¾î¶² ¹®Á¦¿¡ ´ëÇÑ Çظ¦ ã±â À§Çؼ­´Â ¸ÕÀú µÎ °¡ÁöÀÇ Áغñ ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ´Ù. Çϳª´Â Ç®°íÀÚ ÇÏ´Â ¹®Á¦¿¡ ´ëÇÑ °¡´ÉÇÑ Çظ¦ ¿°»öüÀÇ ÇüÅ·ΠǥÇö (encoding) ÇÏ´Â °ÍÀÌ´Ù. ¶Ç ´Ù¸¥ Çϳª´Â °¢ ¿°»öü°¡ ¹®Á¦¸¦ ÇØ°áÇϴµ¥ ¾ó¸¶³ª ÁÁÀºÁö¸¦ ÃøÁ¤Çϱâ À§ÇÑ Æò°¡ÇÔ¼ö Áï ÀûÇÕÇÔ¼ö (Fitness Function) À» °áÁ¤ÇÏ´Â °ÍÀÌ´Ù. À¯ÀüÀÚ ¾Ë°í¸®ÁòÀÇ ÀüÇüÀûÀÎ ±¸Á¶´Â ´ÙÀ½°ú °°´Ù. (¹®º´·Î 2003)

    n °³ÀÇ Ãʱ⠿°»öü »ý¼º ;

    repeat {

           for = 1  to   {

          µÎ ¿°»öü p1, p2 ¼±Åà ;

          offspringi = crossover (p1, p2) ;

          offspringi = mutation (offspringi) ;

                          }

      offspring1, ..., offspringk ¸¦ population ³»ÀÇ °³ÀÇ ¿°»öü¿Í ´ëÄ¡ ;

            } until (Á¤Áö Á¶°Ç ¸¸Á·) ;

    ³²Àº ÇØ Áß ÃÖ»óÀÇ ¿°»öü¸¦ return ;

À¯Àü ¾Ë°í¸®Áò ¶Ç´Â ÁøÈ­¾Ë°í¸®Áò (Evolutionary Algorithm) Àº ÀÚ¿¬¼¼°èÀÇ ÁøÈ­ °úÁ¤À» ÄÄÇ»ÅÍ »ó¿¡¼­ ½Ã¹Ä·¹ÀÌ¼Ç ÇÔÀ¸·Î½á º¹ÀâÇÑ ½Ç¼¼°èÀÇ ¹®Á¦¸¦ ÇØ°áÇÏ°íÀÚ ÇÏ´Â °è»ê¸ðµ¨ÀÌ´Ù. ... ÁøÈ­ ¾Ë°í¸®ÁòÀº ¿°»öü¸¦ Ç¥ÇöÇÏ´Â ¹æ¹ý°ú »ç¿ëµÇ´Â À¯Àü ¿¬»êÀÚÀÇ Á¾·ù ¹× Ư¼º¿¡ µû¶ó¼­ ´Ù½Ã ¿©·¯ °¡Áö ¸ðµ¨·Î ±¸ºÐµÈ´Ù. ±× Çϳª´Â ÈçÈ÷ GA ¶ó°í ÇÏ´Â ÇùÀÇÀÇ À¯Àü ¾Ë°í¸®ÁòÀ¸·Î¼­ ¿©±â¼­´Â º¸Åë °íÁ¤µÈ ±æÀÌÀÇ ÀÌÁø ½ºÆ®¸µÀ» ¿°»öü·Î »ç¿ëÇÑ´Ù. ÀÌ¿¡ ¹ÝÇØ ÁøÈ­Àü·« (Evolution Strategy) Àº ½Ç¼öÀÇ °ªÀ» ÃëÇÏ´Â À¯ÀüÀÚµé·Î ±¸¼ºµÈ º¤Å͸¦ ¿°»öü·Î »ç¿ëÇÑ´Ù. ±×¹Û¿¡µµ ±×·¡ÇÁ¿Í Æ®¸®¸¦ ¿°»öü Ç¥Çö¿¡ »ç¿ëÇÏ´Â ÁøÈ­ÇÁ·Î±×·¡¹Ö (Evolutionary Programming) °ú À¯ÀüÇÁ·Î±×·¡¹Ö (Genetic Programming) µîÀÌ ÀÖ´Ù. »ç¿ëµÇ´Â ¿¬»êÀÚ·Î EP ¿Í ES ´Â µ¹¿¬º¯ÀÌ (mutation), GA ¿Í GP ´Â ±³Â÷ (crossover) ¿¬»êÀÚ¸¦ ÁÖ·Î »ç¿ëÇÑ´Ù. ¿ª»çÀûÀ¸·Î EP, ES, GA ´Â 1960³â´ë¿Í 70³â´ë¿¡ °³¹ßµÇ¾úÀ¸¸ç GP ´Â 90³â´ë¿¡ µé¾î¿Í ¿¬±¸µÇ±â ½ÃÀÛÇÑ ºÐ¾ßÀÌ´Ù ...... (À庴Ź 1995)

À¯Àü ¾Ë°í¸®ÁòÀÇ ÀÀ¿ë¿¹ ÀÌ´Ù .... Á¶ÇÕÀû ÃÖÀûÈ­ (Combinatorial Optimization) ´Â À¯Àü ¾Ë°í¸®ÁòÀÇ ÀÀ¿ë ¿¹µé Áß °¡Àå ¸¹Àº °á°ú¸¦ ³½ °Íµé ÁßÀÇ ÇϳªÀÌ´Ù. °¡Àå °ü½ÉÀ» ²ô´Â ¿¬±¸ ºÐ¾ß´Â ºñ°áÁ¤ ³­ÇØ (NP-hard) ±º¿¡ ¼ÓÇÏ´Â ¹®Á¦µéÀÏ °ÍÀÌ´Ù. À¯Àü ¾Ë°í¸®ÁòÀÌ µµÀüÇÑ ´ëÇ¥ÀûÀÎ ¹®Á¦ ¶Ç´Â ¹®Á¦±ºÀ» ¸î °¡Áö ³ª¿­ÇÏ¸é ¼øȸÆǸſø ¹®Á¦ (Travelling Salesman Problem), ÀÛ¾÷°øÁ¤ ½ºÄÉÁÙ¸µ (job shop scheduling), ³×Æ®¿÷ ·¹À̾ƿô, VLSI CAD ·¹À̾ƿô, ä³Î ¶ó¿ìÆÃ, DB ÁúÀÇ ÃÖÀûÈ­, ÀÚµ¿Â÷ ½ºÄÉÁ층, ±×·¡ÇÁ ºÐÇÒ, ÃÖ´ë ¿ÏÀü ±×·¡ÇÁ ¹®Á¦, ½ºÅ¸ÀÌ³Ê (Steiner) Æ®¸® ÃÖÀûÈ­, ºÎÇÏ ¹ë·±½º (load balancing) ¹®Á¦, ½Ã°£Ç¥ ¹®Á¦ (timetabling), ÀÌÂ÷¿ø ¹èÁ¤ ¹®Á¦ (quadratic assignment problem), ´Ü¹éÁú ±¸Á¶ ÃÖÀûÈ­ (protein folding) µî ÇÑÁ¤µÈ °ø°£¿¡ ³ª¿­Çϱâ Èûµé Á¤µµ·Î ¸¹´Ù .... (¹®º´·Î 2003)