進化的羅比,易拉罐清掃機器人 本程式是根據 Mitchell Melanie 所著 Complexity: A Guided Tour 裡面的 GA (基因演算法)實作。 該章節提到的一個在10X10 方陣裡檢拾易拉罐的機器人Robi。
初始隨機產生 200 個基因族群,每個基因測試 100 個方陣,每個方陣隨機放置 50 個(50%)易拉罐,
根據撞牆、撿拾成功、撿拾失敗來打分數,取 100 次數測試的平均分數作為該基因的得分。
以下是動作細節...
1. 每次清掃工作 Robi 可以執行200個動作。
2. 動作可以是以下7種:往上移動、往下移動、往左移動、往右移動、隨機移動、不動、撿拾。
3. 每個動作都會受到獎賞或懲罰。
* 如果 Robi 所在的格子中有罐子並且收集起來了,就會得到10分的獎賞。
* 如果進行收集罐子的動作而格子中又沒有罐子,就會被罰1分。
* 如果撞到了牆,會被罰5分,並彈回原來的格子。
4. Robi 可以看到 5 個格子(當前格子、上、下、左、右)每個格子可以標為空、罐和牆。