Class MoveStateApplierCore

Class Documentation

class MoveStateApplierCore

节点移动执行器:将评估后的移动操作应用到分区状态中。

负责更新节点归属、资源占用、超边快照和时序增量,同时支持移动回滚。

Public Static Functions

static void takeMove(const MoveApplierContext &ctx, const graph &finest, vector<VectorXi> &occupied_resources, vector<int> &parts, vector<NetPartition> &partition, int node, int best_p, HSFullTiming::HSTimingDelta *delta, bool update_timing_edge = true)

执行节点移动:更新归属、资源、超边快照,并可选更新时序增量。

static void applyMoveToState(const MoveApplierContext &ctx, const Gain &gain_cell, const graph &finest, vector<int> &parts, vector<VectorXi> &occupied_resources, vector<NetPartition> &partition)

根据 Gain 对象无条件执行节点移动。

static void acceptMove(const MoveApplierContext &ctx, const Gain &gain_cell, PerPartBucketSet &buckets, vector<Gain> &moves_trace, double &total_delta_gain, vector<bool> &visited_vertices_flag, const graph &finest, vector<int> &parts, vector<VectorXi> &occupied_resources, vector<NetPartition> &partition)

接受移动:从桶中移除节点、记录到移动轨迹、执行状态更新。

static void cancelMove(const MoveApplierContext &ctx, const Gain &gain_cell, const graph &finest, vector<bool> &visited_vertices_flag, vector<int> &parts, vector<VectorXi> &occupied_resources, vector<NetPartition> &partition)

回滚一次移动,恢复分区状态到移动前。