Posted on June 4, 2003 in Genetic Algorithms by pest3 Comments »

è·é›¢ä¸Šæ¬¡ä»‹ç´¹åŸºå› æ¼”ç®—æ³•çš„ç¬¬ä¸€ç¯‡å·²ç¶“å¥½ä¹…äº†ï¼Œé‡æ–°å›žé¡§æ‰ç™¼ç¾ä¸¦æ²’有在技巧上é¢èªªæ˜Žå¾—很清楚,所以打算å†ç¹¼çºŒé€™å€‹ä¸»é¡Œï¼ŒæŠŠåŸºå› æ¼”算法åšä¸€å€‹å®Œæ•´çš„介紹…

如果您ä¸çŸ¥é“基因演算法是什麼,建議您å¯ä»¥å…ˆåƒè€ƒä¸Šä¸€ç¯‡ã€‚

å…ˆå‰æåˆ°åŸºå› æ¼”ç®—æ³•çš„åŸºæœ¬æ¦‚å¿µï¼Œä½†æ˜¯è¦æ€Žéº¼å¯«ç¨‹å¼å‘¢ï¼Ÿé¦–先我們先來探討基因演算法的幾個基本元素。

ç¬¬ä¸€å€‹æ˜¯åŸºå› ï¼›æ²’æœ‰åŸºå› ä¾†ç•¶ä½œåª’ä»‹ï¼Œæˆ‘å€‘æ²’æœ‰è¾¦æ³•é€²è¡ŒåŸºå› æ¼”ç®—æ³•ï¼Œä½†æ˜¯è¦æ€Žéº¼è¡¨ç¾åŸºå› å‘¢ï¼Ÿä»¥é›»è…¦ä¸–界而言,最常見的就是 0 å’Œ 1 的組åˆå½¢æˆçš„"Bit String",例如:0010 就是一個四個ä½å…ƒçš„ bit string。用四個ä½å…ƒå°±å¯ä»¥è¡¨ç¾å‡ºå六種基因組åˆï¼Œè€Œä¸åŒçš„基因組åˆåˆå¯ä»¥å°ç…§åˆ°ä¸åŒçš„"表ç¾åž‹"上,例如第一個 bit 表示é¡è‰²ã€ç¬¬äºŒå€‹ bit 表示長度,第三個 bit 表示色調等等。

除了固定長度的基因之外,也å¯ä»¥æŽ¡ç”¨ä¸å®šé•·åº¦çš„基因;例如,å‡å¦‚è¦ç”¨è‹±æ–‡å­—測試是å¦èƒ½å¤ æ¼”化出一本莎士比亞全集,就å¯ä»¥æŽ¡ç”¨ä¸å®šé•·åº¦çš„åŸºå› ï¼Œè®“èŽŽå£«æ¯”äºžå…¨é›†ç”±æœ€æ—©çš„è‹±æ–‡å–®å­—é€æ¼¸é•·åˆ°åŽšåŽšæ•¸æœ¬æ›¸é€™éº¼å¤§ã€‚

利用é©åˆçš„åŸºå› è¡¨é”æ–¹å¼ï¼Œæ‰èƒ½å¤ è®“å•é¡Œæ›´å®¹æ˜“åˆ©ç”¨æ¼”åŒ–çš„æ–¹å¼æ‰¾åˆ°è§£ç­”。如果å•題本身ä¸é©åˆç”¨å›ºå®šé•·åº¦ä¾†è¡¨é”,就å¯ä»¥è€ƒæ…®ç”¨ä¸å®šé•·åº¦çš„基因;相å°çš„,如果å•題本身ä¸éœ€è¦ä¸å®šé•·åº¦å°±å¯ä»¥è§£æ±ºï¼Œç”¨ä¸å®šé•·åº¦åŸºå› åž‹å而會造æˆç¨‹å¼æ›´æ…¢æ‰¾åˆ°è§£ç­”。

ç¬¬äºŒå€‹æ˜¯é©æ‡‰å‡½å¼(fitness function)ï¼›é©æ‡‰å‡½å¼æ˜¯ç”¨ä¾†æ¸¬è©¦å€‹é«”在ç¾åœ¨çš„ç’°å¢ƒä¸­çš„é©æ‡‰ç¨‹åº¦ï¼Œä¸€èˆ¬è€Œè¨€ï¼Œé©æ‡‰å¾—越好得分越高,也就會給它更高的機會傳éžå®ƒçš„基因給下一代。舉例來說,如果è¦ç¨‹å¼è¦æ‰¾å‡ºåŸºå› ä¸­å…¨éƒ½æ˜¯ 1 沒有 0 çš„å€‹é«”ï¼Œé‚£éº¼é©æ‡‰å‡½å¼å°±å¯ä»¥è¨ˆç®—ç¾åœ¨å€‹é«”的基因中有幾個 1。

驿‡‰å‡½å¼å…¶å¯¦å°±æ˜¯æ‰€è¬‚çš„"環境"ï¼›é©æ‡‰å‡½å¼ä¸ä½†è¦è€ƒæ…®å€‹é«”ç›¸å°æ–¼æ•´é«”的表ç¾ï¼Œé‚„è¦è€ƒæ…®åœ¨ä¸åŒæ™‚期給予個體ä¸åŒçš„壓力。例如,程å¼ä¸å¤ªå¯èƒ½åœ¨ä¸€é–‹å§‹å°±äº‚æ•¸ç”¢ç”Ÿå‡ºè‹±æ–‡ä¸­åˆæ–‡æ³•çš„å¥å­ï¼Œé€™æ™‚å€™å°±è¦æ¯”較寬容一點給分給鬆一點;等到後期程å¼å·²ç¶“抓到語法的訣竅,那麼有一個拼字錯誤,或許就會被扣ä¸å°‘分數。

ç¬¬ä¸‰å€‹æ˜¯é¸æ“‡å‡½å¼(selection function)ï¼›ä¸€èˆ¬ä¾†èªªï¼Œé¸æ“‡å‡½å¼éƒ½æœƒä¾ç…§é©æ‡‰å‡½å¼çš„åˆ†æ•¸ä¾†ä½œç‚ºåˆ¤æ–·ä¾æ“šï¼Œä½†é¸æ“‡æœ‰å¾ˆå¤šæ–¹å¼ï¼Œæœ€ç°¡å–®çš„就是å‰é¢ä¸€åŠå°±æ™‰ç´šï¼Œå¦å¤–也有ä¾ç…§å¾—分多寡加權計算機率的,甚至於ä¿é€åˆ°ä¸‹ä¸€ä»£çš„æ–¹å¼ã€‚鏿“‡å‡½å¼åšçš„就是"天擇"的動作。ä¸åŒçš„鏿“‡å‡½å¼å„有優缺點,也有其é“ç†æ‰€åœ¨ï¼Œè«‹å®¹ä»¥å¾Œå†è©³è¿°ã€‚

ç¬¬å››å€‹æ˜¯äº¤é…æ–¹å¼(crossover)ï¼›ç”±é¸æ“‡å‡½å¼ä¸­é¸å‡ºçš„兩個個體的基因è¦å¦‚何é‡çµ„?在固定的點切開一人一份,還是å¯ä»¥åœ¨ä»»æ„點切開來組åˆï¼Ÿå°ä¸å®šé•·åº¦çš„基因,是用模組/å€å¡Šçš„æ–¹å¼é‡çµ„交é…é‚„æ˜¯åŒæ¨£åœ¨å›ºå®šé»žåˆ‡é–‹ï¼Ÿé€™éƒ½è¦ä¾ç…§ç›®æ¨™çš„ä¸åŒè€Œèª¿æ•´ã€‚

最後是çªè®Šæ–¹å¼(mutation);個體在什麼樣的狀æ³ä¸‹æœƒçªè®Šï¼Ÿçªè®Šçš„åœ°æ–¹åˆæ˜¯åœ¨å“ªè£¡ï¼Ÿçªè®Šä¹‹å¾Œæœƒè®Šæˆä»€éº¼å€¼ï¼Ÿé€™äº›éƒ½æ˜¯å¯ä»¥è€ƒæ…®çš„。

以上五個是基因演算法程å¼è¨­è¨ˆä¸­ï¼Œæœ€é‡è¦çš„幾個架構,至於æ¯å€‹æž¶æ§‹æœ‰ä»€éº¼æ¨£çš„考é‡ï¼Œä¹‹å¾Œå†å°ˆæ–‡èªªæ˜Žã€‚

Posted on June 4, 2003 in Memo by pest1 Comment »

上週一開始éŽä¸Šç­æ—的日å­ï¼Œåœ¨æ±ºå®šä¸Šç­ä¹‹å‰çˆ¸çˆ¸æ‰¾æˆ‘è«‡äº†ä¸€ä¸‹ï¼›åœ¨é•·è¼©çš„å¿ƒä¸­ï¼Œèƒ½å¤ å”¸æ›¸ç¸½æ˜¯å¥½çš„ï¼Œå®¶è£¡ä¹Ÿä¸æ€¥è‘—è¦æˆ‘賺錢,人生很長,早點投資一點在自己身上,å°é•·è¼©å€‘來說,似乎比進入社會見識è¦ä¾†å¾—ä¿éšªä¸€äº›ã€‚
åªæ˜¯å¾žä¸Šå¤§å­¸ä¹‹å¾Œï¼Œå·²ç¶“èµ°äº†èª¿çš„ç”Ÿæ´»ï¼Œé–‹å§‹å°æˆ‘é€²è¡Œæœ€åš´åŽ²çš„åæ“Šï¼›ç”³è«‹å­¸æ ¡çš„ä¸é †åˆ©ï¼Œæ­¸å’Žåˆ°æœ€å¾Œï¼Œé™¤äº†æ™‚é‹ä¹‹å¤–,自己的æˆç¸¾å¤ªé›£çœ‹ä¹Ÿæ˜¯é‡é»žã€‚有能力/æ½›åŠ›å»æ²’有辦法表ç¾åœ¨å…·é«”的事例上é¢ï¼Œæ´‹æ´‹ç‘ç‘的履歷表å»ç„¡æ³•彌補學術方é¢çš„失敗。混éŽäº†å¤§äº”,忙éŽäº†ç•¢æ¥­ä¹‹å¾Œçš„這八個月,ä¸çŸ¥å¦‚何é¢å°è‡ªå·±çš„壓力,已經排山倒海而來。

äº”æœˆå®Œå…¨ä¸æ˜¯æˆ‘çš„å¹¸é‹æœˆï¼›åŽŸæœ¬ä»¥ç‚ºç©©ä¸Šçš„å­¸æ ¡ä¹Ÿæ²’æœ‰è‘—è½ï¼Œè²·è‚¡ç¥¨å› ç‚º SARS 套牢ã€å‘國外訂 Notebook 也沒辦法如期交貨ã€å’Œæœ‹å‹åµæž¶…等等,一點點å°äº‹æƒ…就會讓我覺得éžå¸¸æ²®å–ªï¼›æˆ‘é–‹å§‹æ‡·ç–‘è‡ªå·±æ˜¯ä¸æ˜¯è¦åž®äº†ï¼Œæ‰€ä»¥æˆ‘和爸爸說,我沒辦法å†å¾…在家中無所事事了,找個事åšï¼Œå†çœ‹çœ‹å°‡ä¾†è¦æ€Žéº¼èµ°å§….。

昨天看到這期讀者文摘的æŽå®‰å°ˆè¨ªï¼›ä»–在 1984 年從 NYU 的電影研究所畢業之後,一直到 1990 年《推手》以åŠã€Šå›å®´ã€‹çš„劇本得çŽé–‹æ‹ä¹‹é–“,一直處在這樣的低點中;平常在家幫忙帶帶å°å­©ã€å‹‰å¼·åŽ»æ‹æˆ²ç¾å ´åšé»žé›œå‹™ï¼Œç”šè‡³åŽ»å¹«å¿™çœ‹å®ˆå™¨æã€‚他說:「畢業快六年,一事無æˆï¼Œå‰›é–‹å§‹é‚„èƒ½è«‡è«‡ç†æƒ³ï¼›ä¸‰å››å¹´å¾Œï¼Œäººå¾€å››å歲走,也ä¸å¥½æ„æ€å†èªªä»€éº¼ç†æƒ³ï¼Œé–‹å§‹æœ‰é»žè‡ªé–‰ã€‚々..「許多人奇怪我怎麼敖éŽé‚£æ®µå¿ƒæƒ…鬱悶的日å­ã€‚ç•¶å¹´æˆ‘æ²’è¾¦æ³•è·Ÿå‘½é‹æŠ—è¡¡ï¼Œä½†æˆ‘æ­»çš®è³´è‡‰å¸¶åœ¨é›»å½±åœˆï¼Œç¹¼çºŒå¾žäº‹é€™ä¸€è¡Œï¼Œæ™‚æ©Ÿä¾†äº†ï¼Œå°±è¿Žä¸Šå‰åŽ»ã€‚ã€

我ä¸çŸ¥é“在我å‰é¢é‚„有多少個低點è¦èµ°ï¼Œä½†å¸Œæœ›æˆ‘å°æˆ‘的夢想,有æŽå®‰çš„å …æŒå’Œå‹‡æ°£ã€‚