问题见Label Placement,这是一个多目标组合最优化问题,本身是一个NP-Hard问题。
2-sat问题
如果只有左右锚点,是可以退化为2-sat问题。 但是这个2-sat如果无解,变成max-2sat问题,np问题。 2-sat把每个变量分为正反两个结点,构建强连通图来寻找解。 貌似这个算法只找到一个可行解,而不是找到最优解。
0-1背包问题
好像不太像,标注相互之间有约束。
模拟退火算法
(1) 初始化:初始温度T(充分大),初始解状态S(是算法迭代的起点), 每个T值的迭代次数L
(2) 对k=1,……,L做第(3)至第6步:
(3) 产生新解S′
(4) 计算增量Δt′=C(S′)-C(S),其中C(S)为评价函数
(5) 若Δt′>0则接受S′作为新的当前解,否则以概率exp(Δt′/T)接受S′作为新的当前解.
(6) 如果满足终止条件则输出当前解作为最优解,结束程序。终止条件通常取为连续若干个新解都没有被接受时终止算法。
(7) T逐渐减少,且T->0,然后转第2步。
小范围效果好,大范围效果不好。
贪婪算法
基于冲突预测。