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