
川渡りパズルは、通常は最小限の移動で、ある川岸から別の川岸へ物を運ぶことを目的とするパズルの一種である。パズルの難しさは、同時に運べる物やその数、または安全に一緒に置いておける物やその数に制限があることから生じる場合がある。[ 1 ] [ 2 ]設定は、例えば川を橋に置き換えるなど、見た目が変化する場合がある。[ 2 ]最も古い川渡り問題は、伝統的にアルクインによって書かれたと言われている写本Propositiones ad Acuendos Juvenes (英語: Problems to sharpen the young )に見られる。この写本の最も古い写本は 9 世紀のものであり、オオカミ、ヤギ、キャベツ問題と宣教師と人食い人種問題を含む 3 つの川渡り問題が含まれている。[ 3 ]
よく知られている川渡りパズルには次のようなものがあります。
これらの問題はグラフ理論的手法[ 5 ] [ 6 ] 、動的計画法[ 7 ]、または整数計画法[ 4 ]を用いて解析することができる。
を無向グラフとし、その頂点集合は農夫が運ばなければならない品物を表し、辺集合は競合する品物のペアから構成されるものとする。例えば、頂点がガチョウと豆の袋を表す場合、ガチョウは豆の袋と同じ川岸に残すことはできないため、2つの頂点は接続されていることになる。2つの品物間の競合の性質は、それらを同じ川岸に残すことはできないという事実に影響を与えないため、辺は無向である点に注意されたい。問題の目的は、旅行が実行可能となるようなボートの最小サイズを決定することである。これは のアルクイン数として知られている。
農夫がまず品物のサブセットを川に運び、残りの品物を岸に残すという、成功した川渡りを考えてみましょう。この旅が成功したため、岸に残された品物には衝突がないはずです。つまり、 において、の任意の2つの要素間にの辺は存在しません。これは、すべての辺が1つまたは両方の頂点を に持つことを意味します。つまり、 はの頂点被覆です。したがって、ボートのサイズはの最小頂点被覆のサイズ以上でなければなりません。これはの アルクイン数の下限を形成します。
一方、ボートのサイズが であっても、航海を成功させることは可能です。これは、最小頂点被覆の要素が常にボートに乗っていることを条件とすることで実現できます。これらの要素の数は であり、ボートにもう1つのスペースが残ります。残りの要素には競合がないため、任意の順序で1つずつ川を渡ることができ、ボートの残りの1つのスペースを占めます。したがって、 は の上限を形成します。これらを組み合わせると 、つまりまたは となります。[ 1 ]
Csorba、Hurkens、Woegingerは2008年に、またはのどちらが成り立つかを判断することがNP困難であることを証明した。[ 6 ]最小頂点被覆問題はNP完全であるため、グラフのアルクイン数を計算することはNP困難である。しかし、グラフの特定のクラスについては、より強い結果が成り立つ。例えば、平面グラフの場合、2つの関係のどちらが成り立つかを判断することは多項式時間で行うことができる(ただし、またはのいずれかを判断することは依然としてNP困難である)。二部グラフの場合、、、はどちらも正確に多項式時間で計算できる。[ 6 ]