[問題] 二進位突變的邏輯問題

看板C_and_CPP (C/C++)作者 (小新)時間15年前 (2010/07/07 21:32), 編輯推噓1(104)
留言5則, 4人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 邏輯問題 今天面對的問題是這樣 假設維度=10 產生一解為 0 1 1 0 0 1 1 0 1 0 而需藉由隨機選一格突變 如選中第三格產生新解 0 1 0 0 0 1 1 0 1 0 然而若所有解均已選取過(*) 則變動格數往上累加 像是從一格變成兩格 選取到第二以及第五格 產生新解 0 0 1 0 1 1 1 0 1 0 然而若所有解均已選取過(*) 則變動格數往上累加 像是從一格變成兩格 選取到第二以及第五格 產生新解 0 0 1 0 1 1 1 0 1 0 我的問題處就在如何判斷該格子所有解都選過了 我想過的方法有利用布林變數記錄 (2,5,0,0,0,0,0,0,0,0)=true 表示用過 但是這樣當維度改變時 無法彈性的運作 請問各位有更好的解決方式嗎 給我一點方向也好阿 有任何不清楚的 請推文指出 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.96.50 ※ 編輯: newlittle 來自: 140.116.96.50 (07/07 21:33)

07/07 22:12, , 1F
什麼叫做「然而若所有解均已選取過(*)」可以清楚一點嗎?
07/07 22:12, 1F

07/07 22:25, , 2F
把項目記錄號碼改成向量式記錄即可.
07/07 22:25, 2F

07/08 09:57, , 3F
回一樓 例如只改變一維 但是解均使用過 則改變二維
07/08 09:57, 3F

07/09 18:14, , 4F
不知我有沒有會錯意..若族群個數為P,fitness有P個
07/09 18:14, 4F

07/09 18:14, , 5F
是要判斷突變後的結果有沒有在那P個fitness的意思嗎?
07/09 18:14, 5F
文章代碼(AID): #1CD887aH (C_and_CPP)
文章代碼(AID): #1CD887aH (C_and_CPP)