一連の食事と人々のグループのサイズkのテーブルの適切な座席配置


23

人々のセットを考えて、私はサイズテーブルで食事のシーケンスのために彼らを座らせたいです。(もちろん、食事ごとにすべてのを置くのに十分なテーブルがあります。)誰も同じ人とテーブルを2回共有しないようにこれを調整したいと思います。典型的な値はおよびおよび6〜10食です。k | S | | S | = 45 k = 5Sk|S||S|=45k=5

より抽象的な方法で言えば、各パーティションがカーディナリティペアごとに素なサブセットと、2つのそのようなサブセット間の交差に含まれる要素が1つだけである追加のグローバルプロパティで構成されるのパーティションのシーケンスを見つけたいと思います。これはグラフの理論的または組み合わせの問題として定式化できると思います。KSk

私の領域の外にあるので、問題のより良い定式化と関連文献へのポインタに感謝します。

背景:これは、多くのコンピューター科学者が1週間にわたって研究を議論するために訪れるSchloss Dagstuhlの座席配置に使用できます。現在、座席はランダムに行われ、驚くことではないが、1週間にわたって同じ人と2回(またはより頻繁に)座っている人もいます。また、当然ながら、これについて苦情が寄せられ、これを改善する方法についてあいまいな提案が寄せられています。これをよく理解したいと思います。問題をより強力に定式化するには、隣同士に座っている人を最適化する必要がありますが、これはサイズ5のテーブルには関係ないと思います。

アプリケーション以外では、興味深い質問は、与えられたとに対して提供できる食事の最大数、つまりそのようなパーティションがいくつあるかです。KSk


IIRC、これはハミルトン・ウォータールー問題のように聞こえます。
たJuho

Hamilton-Waterlooの問題についての論文を一目見ただけで、参加者が1回だけ参加者の隣に座ることを保証するというより厳しい問題を扱っているという印象を受けます。
クリスチャンリンディグ

1
カークマンの女子高生の問題は似たような性質のものであり、出発点かもしれません。
クリスチャンリンディグ

回答:


11

これは、希望する設定を与える元の回答(下記)の変形です:サイズ5のテーブル、45人、10の食事、ただし1つの食事にはサイズ4のテーブルがいくつかあります。

ましょう 4垂直、縮重線ピック9サイズのフィールドで 、{ B Xを| X F }すべてのために、B = 0 1 2 3及びそれらの人々が宣言"空"。81-9x4 = 45人です。F{(b,x)|xF}b=0,1,2,3

9回の食事は勾配によって与えられ= 0 1 ... 8。4つの空の縮退線との交点により、テーブルサイズが9-4 = 5に縮小されます。a=0,1,,8

追加の食事は、残りの縮退線すべてのために、B = 4 5 6 7 8。ここで、テーブルサイズは9です。ただし、(どのソリューションでも)サイズ9のテーブルをサイズ5のテーブルとサイズ4のテーブルに分割できます。{(b,x)|xF}b=4,5,6,7,8

さらに数人いる場合は、サイズ11のフィールドを使用できます。


まず、人とkの食事を処理しましょう。k2k

サイズkの有限体を選択し、F × Fで人を識別します。各食事には勾配があり、テーブルにはその勾配に平行な線があります。FkF×F

具体的には、食事k個のテーブルがあります{ x a x + b | X F }すべてのためのB Fak{(x,ax+b)|xF}bF

必要な交差プロパティは、明確な勾配を持つ線が正確に1点で交差するという事実です。


人を処理するには、それらをそれぞれk 2の2つのグループに分け、上記の構成を各グループに適用します。2 k 2k = 45を処理するには、(最初​​のグループで){ x x | X F }として"空"。k - 1人のテーブルがいくつかあるかもしれません。2k2k22k2k=45{(x,x)|xF}k1

より多くの食事については、たとえば、6回目の食事の開始時に2つのグループの異なるパーティションを選択できます。(元のパーティションをインターリーブして、2つのグループが「混在」するようにします。)もちろん、これによりいくつかの交差が生じる可能性があります。


これは興味深い構造ですが、が、下限としてサーバーできます。|S|=k2
クリスチャンリンディグ

より一般的なパラメーターに対処するために質問を編集しました。
マヌ

1
[ブロック設計](en.wikipedia.org/wiki/Block_design)は、以下のdomotorpが指摘しているように、一般的なケースに適したフレームワークであると考えています。しかし、私はこれの建設的な側面が好きで、良い答えとして受け入れます。
クリスチャンリンディグ

3
10個の食事を含むソリューションが存在するかどうか興味があります。グーグル検索をしましたが、答えが見つかりませんでした。とにかく、最適なソリューションが見つかったら、主催者が参加者の名前を貼り付けて、すべての座席の割り当てを取り戻すことができるようにコーディングするのはどうでしょうか?それは彼らにとって有用でしょうか?これをもっと簡単にすれば、他のワークショップでこの素晴らしいダグスチュールの伝統を取り入れることができます。
マヌー

1
良い更新。これが実装されたら、ダグシュトゥールでビールを飲むべきです:)
Suresh Venkat

4

これは、提供できる食事の数の上限です(ゆるい?)。

しましょうで、nkで割り切れると仮定します。また、正確にn / k個のテーブルがあり、各食事中に各テーブルがいっぱいになるようにするとします。|S|=nnkn/k

食事ごとに、各人のノードと2人がテーブルを共有する場合のエッジを使用してグラフを作成します。このグラフは、それぞれサイズkn / kクリークのコレクションです。したがって、グラフのエッジの数はΘ n k です。Sn/kkΘ(nk)

2つの異なる食事でエッジを発生させたくないため、またサイズ頂点セットで可能なエッジの総数はΘ n 2)であるため、これはO n / k 食事のみを提供できることを示しています。nΘ(n2)O(n/k)

実際、ここで定数を見つけることは難しくなく、数学を行うと、正確にn 1の上限が得られます。これは通常の値では11です。n1k1


3

任意の2人を1回だけ同じテーブルに座らせたい場合、これは解決可能な2設計と呼ばれ、多くの研究が行われています。もちろん、数人の食事をスキップできると、2人が一度しか会えない場合に問題の解決になります。(しかし、他の解決策が存在する可能性があると思います。)


せいぜい2人に会いたいです。テーブルのIDは問題ではなく、回答の一部として同じテーブルに座っていることの重要性についてはわかりませんが、リンクされた定義を検索します。
クリスチャンリンディグ

2

決定論的アルゴリズムが必要かどうかはわかりませんが、過去にマルコフ連鎖モンテカルロ法を使用して同様の問題を解決しました。

このアプローチの実際の例をGithubで見ることができます-このプログラムは、正または負の( "must"または "must not")の座席制約のセットが与えられると、固定サイズのテーブルに人々のグループを座席しようとします。 )、および絶対または相対(「優先」)。

注:このプログラムは、提案したものとまったく同じ問題を解決するわけではありませんが、マルコフ連鎖モンテカルロ法の実用的なデモンストレーションを提供し、問題の必要に応じて簡単に調整できるほど十分に近いものです。

このプログラムは1回の夕食の問題を解決しますが、あなたの場合、夕食ごとにアルゴリズムを1回実行して、各食堂の以前の仲間をファジーまたは絶対否定要件として提供することで、問題に簡単にアプローチできます。(ファジー要件の利点は、完全な配置が見つからない場合でも、すべての入力でアルゴリズムが停止することが保証されることです)。

このプロセスでは、まず、絶対要件に従って各ダイナーを着席させます。絶対要件の数が比較的少ない場合にのみ機能するため、プロセスのこの部分をスキップできます。そうしないと、信じられないほど大きな問題が発生します!

次のステップでは、一連のテーブルを作成し、初期構成のために参加者をテーブルにランダムに割り当て、満たされたファジー要件の数を表すスコアを計算します。ダイナーのペアがランダムに切り替えられ、それらのテーブルのスコアが再計算されて、新しい構成が望ましいかどうかが判断されます。

プロセスのこの部分は、理想的にはいくつかの初期構成で繰り返される必要があり、並行して簡単に計算できます。


|S|

0

有効な座席配置は、| S |のd正規ハイパーグラフに相当すると思います。頂点(dはディナーの数、ランクは最大k、最大codegree 1)


1
この設定では、テーブルの数は固定されています。そして、それは厳密に人の数より少ないです。
スレシュヴェンカト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.