前述の理論を用いて、実際に簡単な文字認識プログラムを作ってみました。仕様は、

図形出力:ドット
マス目:9×9
判別できる文字:アルファベットの「A」「B」「C」

というものです。適当なドットパターンを手で入力すると、
そのパターンがハミルトニアンが極小になるよう操作され、更新の都度ドットパターンが
表示されるようになっています。
ABCいずれかに図形が一致するか、5回更新した時点でプログラムは停止します。
作動結果の一例を下図に示します。

ご覧のように、「どことなくAに似た図形」がAに変化したことがわかります。

続いて「B」「C」の結果も示します。



Bの例を見ると、パターンが1回1回更新されていく様子が分かり安いと思います。

しかし時にはこんなこともあります。下の図をご覧下さい。


ABCのどれでもない図形のまま、更新が停止しています。
実は、記憶させる図形の形によっては、予期しなかったポテンシャルの極小値が
現れることがあります。このプログラムにおいては、エネルギーが下がる操作しか
許されないため、こういった所にはまってしまう事があるのです。
このバグは簡単に解決する方法があります。

続く