한 그룹의 사람들을위한 일련의 식사 및 k 크기의 테이블에 적합한 좌석 배치


23

세트 감안할 때 내가 크기의 테이블에서 식사의 순서 그들을 앉아 싶은 사람들의 K . (물론, 식사마다 모든 | S | 를 놓을 수있는 충분한 테이블이 있습니다 .) 나는 같은 사람과 두 번 테이블을 공유하는 사람이 없도록 이것을 준비하고 싶습니다. 일반적인 값은 | S | = 45k = 5 및 6-10 식사.Sk|S||S|=45k=5

좀 더 추상적 인 방법 으로 말하면, 각 파티션이 카디널리티 k 의 쌍으로 분리 된 하위 집합 서브 세트 와 이러한 두 하위 집합 사이의 교차점이 하나 이상의 요소를 포함하는 추가 전역 속성으로 구성 되는 일련의 파티션을 찾고 싶습니다 . 나는 이것이 이론적이거나 조합적인 문제로 표현 될 수 있다고 생각한다.Sk

나는 문제의 더 나은 공식화와 내 영역 밖에서의 관련 문헌에 대한 포인터에 감사한다.

배경 : 이것은 Schloss Dagstuhl의 좌석 배치에 사용될 수 있습니다. Schloss Dagstuhl 에서는 많은 컴퓨터 과학자들이 일주일 동안 자신의 연구에 대해 논의합니다. 현재 좌석은 무작위로 이루어지며 의심 할 여지없이 일부 사람들은 일주일 동안 같은 사람들과 두 번 (또는 더 자주) 앉는 것을 발견합니다. 또한 의심 할 여지없이 Google은 이에 대한 불만을 제기하고이를 개선하는 방법을 모호하게 제안합니다. 나는 이것을 더 잘 이해하고 싶다. 문제의 더 강력한 공식화는 누가 서로 옆에 앉아 있는지를 최적화하는 것과 관련이 있지만 이것이 5 크기의 테이블과 관련이 없다고 생각합니다.

응용 프로그램 외부에서 흥미로운 질문은 주어진 k에 제공 될 수있는 최대 식사 수 , 즉 그러한 파티션이 얼마나 많은지에 대한 것입니다.Sk


IIRC, 이것은 Hamilton-Waterloo 문제처럼 들립니다.
Juho

해밀턴-워털루 문제에 대한 논문을 보니 참가자가 서로 한 번만 나란히 앉는다는 엄격한 문제를 다루고 있다는 인상을 받았습니다.
Christian Lindig 2013

1
커크 먼의 여학생 문제 는 비슷한 성격을 가진 것으로 보이며 출발점이 될 수 있습니다.
Christian Lindig 2013

답변:


11

다음은 원하는 설정을 제공하는 원래 답변 (아래)의 변형입니다. 크기가 5 인, 45 명 및 10 인 식사이며 한 식사에는 4 개의 테이블이 몇 개 있습니다.

9의 필드로 하자. 4 개의 수직, 퇴화 라인 { ( b , x ) | 모든 b = 0 , 1 , 2 , 3 마다 x F } 이고 그들의 사람들을 "빈"것으로 선언합니다. 우리는 81-9x4 = 45 명으로 남아 있습니다.F{(b,x)|xF}b=0,1,2,3

9 개의 식사는 슬로프 됩니다. 4 개의 빈 축 퇴선이있는 교차점은 테이블 크기를 9-4 = 5로 줄입니다.a=0,1,,8

남은 축 퇴선 모든 b = 4 , 5 , 6 , 7 , 8에 대해 x F } . 여기에서 테이블 크기는 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 ) | 모든 b F에 대해 x F } .ak{(x,ax+b)|xF}bF

원하는 교점 속성은 뚜렷한 경사가있는 선이 정확히 한 점에서 교차한다는 사실입니다.


명 을 처리하려면 두 그룹을 각각 2 그룹의 k 2로 나누고 위의 구성을 각 그룹에 적용하십시오. 2 k 2 - k = 45 를 처리하려면 (첫 번째 그룹에서) { ( x , x ) | x F } 를 "비어 있음" k - 1 명이 있는 몇 개의 테이블이있을 수 있습니다 .2k2k22k2k=45{(x,x)|xF}k1

더 많은 식사를 위해 예를 들어 여섯 번째 식사가 시작될 때 두 그룹으로 다른 파티션을 선택할 수 있습니다. (두 그룹이 "혼합"되도록하기 위해 원래 파티션을 인터리브한다고 가정하십시오.) 물론 이것은 일부 교차점을 초래할 수 있습니다.


이것은 흥미로운 구조이지만 내 특별한 경우에 너무 제한적입니다. 이지만 서버를 하한으로 사용할 수 있습니다. |S|=k2
Christian Lindig 2013

더 일반적인 매개 변수를 해결하기 위해 질문을 편집했습니다.
Manu

1
아래의 domotorp에서 지적한 것처럼 [block design] ( en.wikipedia.org/wiki/Block_design )이 일반적인 경우에 적합한 프레임 워크라고 생각 합니다. 그러나 나는 이것의 건설적인 측면을 좋아하고 좋은 대답으로 받아들입니다.
Christian Lindig 2013

3
10식이있는 해결책이 있는지 궁금합니다. 인터넷 검색을 수행했지만 답변을 찾을 수 없습니다. 어쨌든 최고의 솔루션을 찾은 후에는 주최자가 참가자의 이름을 붙여 모든 좌석 배정을 다시받을 수 있도록 코딩하는 것은 어떻습니까? 그들에게 도움이 되겠습니까? 우리가 이것을 더 단순하게 만들면 다른 워크샵은 Dagstuhl의이 훌륭한 전통을 채택 할 수 있습니다.
Manu

1
좋은 업데이트. 이 :) 구현됩니다 경우 우리는 당신의 영광에 Dagstuhl에서 맥주를 마실한다
수레 쉬 벤 카트

4

여기에 당신이 봉사 할 수있는 식사의 수에 대한 상한이 있습니다.

|S|=nnkn/k

Sn/kkΘ(nk)

nΘ(n2)O(n/k)

실제로 상수를 찾는 것은 어렵지 않으며 수학을 할 때 정확히 의 상한을 얻습니다.n1k1


3

두 사람이 같은 테이블에 정확히 한 번만 앉기를 원한다면 이것을 분해 가능한 2 설계 라고 하며 많이 연구했습니다. 물론 몇 끼만 건너 뛰면 두 사람이 최대 한 번 만날 수있는 문제를 해결할 수 있습니다. (그러나 다른 해결책이있을 수 있습니다.)


두 사람이 최대 한 번만 만나고 싶습니다. 테이블의 정체성은 문제가 아니며 답의 일부 와 동일한 테이블에 앉아있는 것이 중요 하지는 않지만 연결된 정의를 찾을 것입니다.
Christian Lindig 2013

2

결정적 알고리즘이 필요한지 확실하지 않지만 Markov 체인 Monte Carlo 방법을 사용하여 과거에 비슷한 문제를 해결했습니다 .

Github에서이 접근 방식의 실제 예를 볼 수 있습니다. 이 프로그램은 긍정적이거나 부정적 일 수있는 일련의 좌석 제약 조건 ( "필수"또는 "필수")을 고려하여 고정 된 크기의 테이블에 사람들 그룹을 배치하려고합니다. ) 및 절대 또는 상대 ( "권장")

참고 :이 프로그램은 해결되지 정확히 당신이 제안하는 것과 같은 문제를하지만 마르코프 체인 몬테 카를로 방법의 작동 시범을 준다, 그것이 문제의 필요에 따라 쉽게 조정할 수 있음을 충분히 가까이입니다.

이 프로그램은 한 저녁 식사에 대한 문제를 해결하지만 귀하의 경우 문제에 접근하는 쉬운 방법은 각 저녁 식사에 대해 알고리즘을 한 번 실행하는 것입니다. 매번 각 식당의 이전 동반자를 퍼지 또는 절대 부정적인 요구 사항으로 제공합니다. 퍼지 요구 사항의 장점은 완벽한 배열을 찾을 수없는 경우에도 모든 입력에서 알고리즘이 중지된다는 것입니다.

이 과정에서 우리는 먼저 절대 요구 사항에 따라 각 식당을 앉히려고 시도합니다. 절대 요구 사항이 상대적으로 적은 경우에만 작동하기 때문에 프로세스 의이 부분을 건너 뛸 수 있습니다. 그렇지 않으면 당신 은 엄청나게 큰 문제로 끝납니다 !

다음 단계에서는 일련의 테이블을 만들고 초기 구성을 위해 참가자를 테이블에 무작위로 할당하고 충족 된 퍼지 요구 사항의 수를 나타내는 점수를 계산합니다. 식당 쌍은 무작위로 전환되며 새 구성이 바람직한 지 여부를 판별하기 위해 해당 테이블에 대한 점수가 다시 계산됩니다.

프로세스의이 부분은 여러 초기 구성으로 이상적으로 반복되어야하며 병렬로 쉽게 계산할 수 있습니다.


|S|

0

유효한 좌석 배치는 | S | 정점, 여기서 d는 저녁 식사의 수이며 최대 k와 최대 코드가 1입니다. 사소한 해결책은 모든 사람이 항상 혼자 앉게하는 것입니다.


1
이 설정에서는 테이블 수가 고정됩니다. 그리고 그것은 사람들의 수보다 엄격히 적습니다.
Suresh Venkat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.