このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

コンピュータに解かせるのにヨサゲなパズル(自分でやってもいいし)

とある論文にあったパズル(一人ゲーム)です。(後日、ネタはばらします。)

これは、点と線からなる図形、つまりグラフですね。このグラフの辺に、0, 1, 2 の3つの数のどれかをラベル付けします。このとき、次の条件を満たすようにします。

  1. すべての点で、その点に集まる辺のラベルが異なるようにする。1点に3本の線が集まるので、0, 1, 2 が点の周囲に現れることになります。
  2. 左右に飛び出した辺のラベルは共に0だとする。既に記入してありますね。


以下に、問題(群)を一般的に記述しましょう。

まず、二分木(binary tree)を2つ用意します。下の s, t がその例です。

自然界の植物と同じく、根が下で葉が上に描いてあります(世間では、上下がさかさまの絵が多いです)。sとtでは、葉となる点(末端の枝と考えてもいいです)が同じ個数(枝なら本数)あるとします。

sを右回りに横倒しして、tを左回りに横倒しします。そして、葉のところでくっつけます。すると、すべての点に3本の辺が集まるグラフができるので、このグラフを使って先ほどのルールでパズルをします。

個々のパズルを解くのは力任せでも出来ます*1が、解の存在やアルゴリズムの一般論は難しいらしいですよ。

*1:すごく力が要ります。