演化演算法有一個很容易被忽略的預設設定:被演化的是候選解,而生成候選解的方法本身保持不變。也就是說,傳統演化演算法通常保持搜尋方法固定,只讓候選解在迭代中變化——整輪搜尋裡「動」的是解,「不動」的是規則。本頁要引出的正是這個設定之外的另一种視角:讓求解方法自己也走進搜尋與改進的過程。
預設典範:方法鎖定,解在演化
在傳統做法裡,交配方式、變異策略與超參數通常在執行前一次性選定,隨後整輪搜尋都不再改動。它們直接決定候選解的生成機制,也顯著影響求解結果:任務表現好或壞,方法都停在原處。
- 解層在動:候選解 → 評估 → 選擇 → 繼承,一輪輪迭代。
- 方法層不動:變異策略、交配方式、超參數被預設並鎖定。
- 後果:僅靠預設和手工調參,求解方法本身不會隨任務回饋持續演化,改進主要依賴人工經驗與手工調參,調參速度往往跟不上任務變化。
演算法演化:把方法也變成可搜尋對象
演算法演化的做法是:不再把交配方式、變異策略、超參數當成固定配置,而是把它們作為可被候選、評估與替換的對象,與候選解一起接受求解表現的檢驗——也就是讓求解演算法自身進入搜尋與改進過程,使「方法」也成為可演化對象。這樣就在原有的解層迭代之外,多出第二條回饋迴路——不僅解在改進,方法也在改進。
兩條迴路可以用一段平實的箭頭語言概括:方法要素 → 生成候選解 → 求解表現評估 → 保留或替換 → 方法更新;與此同時,候選解內部仍然運行著「生成 → 評估 → 選擇 → 繼承」的常規迭代。前者改變「怎麼找」,後者改變「找到了什麼」。
關鍵轉向
從「用固定演算法求更好的解」,擴展到「讓演算法在求解過程中改進自己」。判斷一個系統是否真的在做演算法演化,就看方法要素有沒有被納入搜尋、並由求解表現決定去留,而不是由人一次性寫死。
