APS計劃排程中涉及到一些關(guān)鍵參數(shù)(如 acceptedCountLimit、lateAcceptanceSize、entityTabuRatio、unionMoveSelector 和 constructionHeuristic)是用于控制求解器行為的優(yōu)化策略。以下是它們的詳細(xì)解釋:
作用:定義在 局部搜索(Local Search) 階段,每個步驟中允許接受的 移動(Move) 的最大數(shù)量。
用途:限制每次迭代中嘗試的移動數(shù)量,避免無限制的搜索,從而平衡求解速度與質(zhì)量。
示例:
<localSearch>
<acceptedCountLimit>1000</acceptedCountLimit>
</localSearch>
表示每次迭代最多嘗試 1000 個可能的移動,選擇其中最優(yōu)的一個。
作用:Late Acceptance Hill Climbing(LAHC)算法的一個參數(shù),表示“接受隊列”的大小。
用途:LAHC 是一種局部搜索算法,允許暫時接受比當(dāng)前解更差的解(但優(yōu)于歷史記錄中的解)。lateAcceptanceSize 決定了比較的歷史解的范圍。
示例:
<localSearch>
<lateAcceptanceSize>400</lateAcceptanceSize>
</localSearch>
表示算法會記住最近 400 步的解,新解只需比這 400 步中的某個舊解更優(yōu)即可被接受。
作用:在 Tabu Search(禁忌搜索)中,定義禁忌列表中禁止操作的實體比例。
用途:避免算法陷入局部最優(yōu),通過禁止近期修改過的實體(entity)的移動。
示例:
<localSearch>
<tabuSize>7</tabuSize>
<entityTabuRatio>0.2</entityTabuRatio>
</localSearch>
表示禁忌列表中保留 20% 的實體(其余 80% 可自由移動),結(jié)合 tabuSize 控制禁忌列表長度。
作用:將多個 Move Selector(移動選擇器)組合成一個,按配置的順序或概率選擇移動。
用途:支持多種移動策略(如交換、改變時間等),提高搜索多樣性。
示例:
<unionMoveSelector>
<changeMoveSelector/>
<swapMoveSelector/>
</unionMoveSelector>
表示每次移動可能是 changeMove(調(diào)整單個實體的值)或 swapMove(交換兩個實體的值)。
作用:定義 構(gòu)造啟發(fā)式算法,用于生成初始解。
用途:快速構(gòu)建一個可行的初始解,為后續(xù)局部搜索提供起點。
常見類型:
FIRST_FIT:按順序分配資源,選擇第一個可行的選項。
WEAKEST_FIT:優(yōu)先分配到負(fù)載最輕的資源。
STRONGEST_FIT:優(yōu)先分配到負(fù)載最重的資源。
示例:
<constructionHeuristic>
<constructionHeuristicType>FIRST_FIT</constructionHeuristicType>
</constructionHeuristic>
constructionHeuristic 生成初始解。
unionMoveSelector 定義移動策略。
acceptedCountLimit、lateAcceptanceSize、entityTabuRatio 是局部搜索的調(diào)優(yōu)參數(shù),影響收斂速度和解的質(zhì)量。