Joeの精進記録

旧:競プロ練習記録

Computing Tree-Depth Faster Than $2^n$

タイトルの通り

アルゴリズムの概略は以下の通り

f:id:xuzijian629:20200229132652p:plain

ほぼ愚直な O*(2^n)アルゴリズム \mathbb{A}_0があり、アルゴリズムの探索空間を狭めた、 \mathbb{A}_\varepsilonを構築して、大部分の問題を解く。

うまく行かない場合のグラフは、任意のminimalな分解がproblematic node  vを含む形になっている。

f:id:xuzijian629:20200229132849p:plain

グラフは上図のような分解になっていて、 Y = Q \cup R_1を全探索して、さらに R_1も全探索して、コーナーケースに相当する場合を解く。コーナーケースに含まれる小さな部分木 Q_i R_jのtreedepthは前計算されているか、たかだか1回 \mathbb{A}_0を適用して求めることができる。

部分木のtreedepthが分かっている状態で、 Q_i,  R_1の順番を入れ替えて最適なもの(これはtreedepthに一致することが示される)を探したいが、これは多項式時間でも止まる。

最後の最後にすごい定義が効いていてすごい