妥協しちまうか?

新たな実験課題。「Morgan アルゴリズムによる化学グラフ規範化作業支援プログラムの作成」だそうな。どこまで実装するかは個人の自由。

このアルゴリズム、大きく分けて 3 段階の手順がある。既に第 1 段階は実装した。曲者は第 2 段階。第 1 段階の算出結果をもとに、グラフのノードにラベル付けを行なうというもの。
何が曲者かって、可能なラベル付けを全て列挙する必要があること。解が階乗的に増加することに。「化学グラフでは 1 つのノードから出るエッジは高々 4 本 (炭素 C ね)」ということを考えれば、まぁそこまで大した事ではないかも知れない。しかし実装方法がなかなか思い浮かばない。

幾つかのアルゴリズムを習いはしたが、プログラム作成時に効率的に利用できたことはほとんどない・・・はず。メモリを大量に消費しまくるような手法を使えば実装できるかもしれないが、「そんなコード書きたくねぇー」という自制心(?) が先にはたらく。こういう事はやっぱり経験がものを言うんだろうなぁ。