とある論文にあったパズル(一人ゲーム)です。(後日、ネタはばらします。)
これは、点と線からなる図形、つまりグラフですね。このグラフの辺に、0, 1, 2 の3つの数のどれかをラベル付けします。このとき、次の条件を満たすようにします。
- すべての点で、その点に集まる辺のラベルが異なるようにする。1点に3本の線が集まるので、0, 1, 2 が点の周囲に現れることになります。
- 左右に飛び出した辺のラベルは共に0だとする。既に記入してありますね。
以下に、問題(群)を一般的に記述しましょう。
まず、二分木(binary tree)を2つ用意します。下の s, t がその例です。
自然界の植物と同じく、根が下で葉が上に描いてあります(世間では、上下がさかさまの絵が多いです)。sとtでは、葉となる点(末端の枝と考えてもいいです)が同じ個数(枝なら本数)あるとします。
sを右回りに横倒しして、tを左回りに横倒しします。そして、葉のところでくっつけます。すると、すべての点に3本の辺が集まるグラフができるので、このグラフを使って先ほどのルールでパズルをします。
個々のパズルを解くのは力任せでも出来ます*1が、解の存在やアルゴリズムの一般論は難しいらしいですよ。
*1:すごく力が要ります。