ICPC国内予選2016 F問題 : 文字解読

問題. 文字解読

2値画像が2つ与えられる.2つの画像が同じ文字を表しているか判定せよ.画像の白のピクセルは4近傍,黒のピクセルは8近傍で連結しており画像範囲外のピクセルは白とする.画像は各連結成分の包含関係で1つの文字を表す.2つの画像の連結成分の集合をそれぞれ  S, S' として,包含関係と色を保つ全単射  f : S \rightarrow S' が存在するとき,2つの画像は同じ文字を表しているとする.

制約 1 \le 画像の高さ・幅  (H, W) \le 100

解法. 根付き木の同型性判定

包含関係は遺伝的であり,すべての連結成分は画像範囲外の白のピクセルの集合に含まれるので,画像の連結成分の包含関係は,根を画像範囲外の白ピクセルの集合とする根付き木である.また,包含関係の定義から木の高さの偶奇によって色が異なる.よって,2つの画像が同じ文字を表すかどうかは,構成された根付き木どうしの同型性判定問題に帰着される.
一般グラフの同型性判定問題は,NP完全性の証明も多項式時間のアルゴリズムも見つかっておらず,NP-intermediateではないかと予想されている.ただし,木に制限した同型性判定問題には Aho, HopcroftとUllman による多項式時間アルゴリズム[1] [2] が存在する.
根付き木のアルゴリズムは [3] [4] [5] [6] を参考にした.

計算時間 O(HW + (HW)^2 \log HW)

まとめ

うさぎ小屋さん[4]の実装を見て綺麗だなと思い書きなおした.[5] に線形時間アルゴリズムが書いてあるので後で書いてみたい.

参考文献

[1] A. V. Aho, J. E. Hopcroft, and J. D. Ullman (1974): The Design and Analysis of Computer Algorithms. Addison-Wesley.
[2] algorithm/tree_isomorphism.cc at master · spaghetti-source/algorithm · GitHub
[3] 審判長による国内予選講評(確定版) | ACM-ICPC 2016 Asia Tsukuba Regional
[4] https://kimiyuki.net/blog/2016/06/27/icpc-2016-domestic-f/
[5] Alexander Smal, Tree isomorphism.
[6] J.マトウシェク・J.ネシェトリル 著, 根上生也・中本敦浩 訳.離散数学への招待.丸善出版,2012,pp.150-155.