시간대 슬롯 판매


27

을 감안할 때 타임 슬롯은 K의 사람들은 사고 싶은데요. 사람 i 는 각 시간 슬롯 j 에 대해 h ( i , j ) 0 값 을 갖습니다 . 각 사람은 하나의 연속 된 시간 슬롯 블록 만 구입할 수 있으며 이는 비어있을 수 있습니다.nkih(i,j)0j

판매자가 달성 할 수있는 최대 값을 계산하기 위한 다항식 알고리즘 이 있습니까?

연속성 제약이 없다면, 우리는 각 시간대를 가장 중요하게 생각하는 사람에게 줄 수 있습니다. 우리는 시간 슬롯의 순서로 고정하는 경우도, 명을, 동적 프로그래밍은 제의 최대 값에 대해 해결하기 위해 사용될 수 0 k는 제 사는 사람들 0 J N 시간 슬롯들을.k0ik0jn

답변:


9

변수 x 1 , , x n 에 대해 절이있는 3CNF가 제공됩니다 . x i¯ x i 가 각각 최대 k i 번 공식에 있다고 가정합니다 .ϕ1,,ϕkx1,,xnxixi¯ki

정점이 세 부분으로 구성된 컬러 DAG 를 설계합니다 .G

  • "지정"정점 ˉ v i ( j ) , 1 i n , 1 j k i . 컬러 V I ( J ) "칼라"로는 X I ( J를 )ˉ V I ( J )¯ X I ( J ) .vi(j)v¯i(j)1in1jkivi(j)xi(j)v¯i(j)xi¯(j)
  • "원인"정점 , 1 i 'k , j ' = 1 , 2 , 3 . ¯ x i (또는 x i , resp.)가 j '인 경우 색 x i ( j ) (또는 ¯ x i ( j ) ) 와 함께 색 w i ' ( j ' )wi(j)1ikj=1,2,3wi(j)xi(j)xi¯(j)xi¯xij번째 문자 조항의 , 그리고 그것은이다 J 이 문자를 포함 번째 절.ϕij
  • "절단"정점 . 위와 다른 고유 한 색상으로 색칠하십시오.s=s0,s1,,sn,sn+1,sn+k=t

가장자리는 다음과 같습니다.

  • , V I ( J ) (V) ( J + 1 ) , V ( k는 i 개의 ) s의 ;si1vi(1)vi(j)vi(j+1)vi(ki)si
  • , ˉ V I ( J ) ˉ V ( J + 1 ) , ˉ V ( k는 i 개의 ) s의 ;si1v¯i(1)v¯i(j)v¯i(j+1)v¯i(ki)si
  • , I ' ( J ' ) N + I ' .sn+i1wi(j)wi(j)sn+i

예를 들어, 3CNF 에서 다음 그래프가 구성됩니다 (가장자리 방향은 왼쪽에서 오른쪽으로). (x1x2x3¯)(x1x2¯x3)여기에 이미지 설명을 입력하십시오

이제 G 에서 서로 다른 정점 색상을 가진 - t 경로 가있는 경우에만 원래 3CNF가 만족 스럽다는 것을 알기가 어렵지 않습니다 .stG

(그런데, 착색 된 DAG에서 다른 버텍스 컬러를 가진 - t 경로의 존재가 NP-hard 인 것은 부산물입니다 . 나는 계산적 관점에서이 문제에 대한 많은 문헌을 찾지 못했습니다. 논평!)stNP-hard

그렇다면 와 OP의 문제 는 어떤 관계 입니까? 직관적으로 우리가 할 일은 행렬 h 를 디자인하여 각 색상이 행 (사람)에 매핑되고 가장자리가 연속 열 (타임 슬롯)에 매핑되도록하는 것입니다. 따라서 기본적으로 매트릭스에서 왼쪽에서 오른쪽으로 진행되는 최대 스케줄링은 s - t 경로에 해당 합니다.Ghst

행렬 2 n + 1 + i 2 k i + k 열을 가지며 , 인덱스는 0 에서 시작 합니다. 이하의 해석 X에서 , Y 는 2 개의 값이 1 X Y를 만족시킨다 . X / 1 , Y / X 의 비 는 kn의 거듭 제곱 일 수 있습니다 . 하자 K를 = 2 + 2 Σ의 난의 J를h2n+1+i2ki+k0XY1XYX/1,Y/Xkn.Ki=2i+2j=1iki

  • 각각의 경우 , 0 i가 N ,하자 H를 ( s의 , K ) = H ( s의 , K는 I - 케이 I - 1 ) = H는 ( s의 I , K가 나는 + k는 I + 1 + 1 ) = Y (좌표가 존재하면 아래와 동일).si0inh(si,Ki)=h(si,Kiki1)=h(si,Ki+ki+1+1)=Y
  • ,하자 H를 ( X I ( J ) , K I - 1 + J ) = X ; 각 ¯ X I ( J ) ,하자 H ( ¯ X I ( J )를 , K I - 1 +가 케이 + 1 + J ) = X .xi(j)h(xi(j),Ki1+j)=Xxi¯(j)h(xi¯(j),Ki1+ki+1+j)=X
  • , 1 I 'K 리터럴 X 절에서 φ ' ,하자 H ( X , K , N +는 I를 ' ) = 1 .ϕi1ikxϕih(x,Kn+i)=1
  • 다른 모든 항목은 0입니다.

예를 들어, 위의 예제 그래프에서 해당 행렬은 여기에 이미지 설명을 입력하십시오

이제 최대 값이 경우에만 원래 3CNF를 만족시킬 수 있습니다.(2n+1)Y+ikiX+k

최대 값을 달성하는 스케줄링을 고려하십시오. 정확히 있기 때문에 에 열 (H) 함유 Y는 , 그들은 모두 포함한다. 열에 대한 K + k는 I + 1 의 두 가지 방법이 있습니다 Y는 로 스케줄링 양수인 그 가정 난을 . 열 K is i에 지정되어야하므로 연속적으로 열 K i + 1 에서 K i + k 를 잃어야합니다(2n+1)hYKi+ki+1YsiKisiKi+1 . 열 할당 스케줄링 경우 같은 일이 일어날 K 내가 + 케이 + 1 으로I + 1 .Ki+kiKi+ki+1si+1

따라서 값을 가지려면 변수에서 할당에 해당하는 행렬에서 사용 가능한 나머지 X를 모두 선택해야합니다 . 따라서 할당이 모든 절을 만족하는 경우에만 k 의 나머지 값을 얻을 수 있습니다.ikiXXk

결론적으로, 법적 스케줄링의 최대 값을 결정하는 것은 입니다. 어쩌면 이것이 알고리즘을 찾으려는 이전의 모든 시도가 실패한 이유 일 것입니다.NP-hard


그러나 예제 매트릭스에서 ¯ x 2x 3 을 선택하면 여전히 목표에 도달 할 수 있습니다. 내가 뭘 잘못하고 있니? 또한 X¯ X 1 ( 1 ) 1 개 칼럼 우측 및되어야 X 에서 ¯ X (1) ( 2 ) 왼쪽에 있어야 하나의 열x1¯ x2¯x3Xx1¯(1)Xx1¯(2)
rotia

@rotia 네, 왼쪽에 을 선택하여 4 X 가되도록해야 합니다. 따라서 만족스러운 할당 x 1 = x 2 = 1 , x 3 = 0에 해당 합니다. x1,x2,x3¯4Xx1=x2=1,x3=0
Willard Zhan

" 리터럴 x i¯ x i 의 두 가지 모양으로 더 큰 것을 제공하십시오 ." 방법? 리터럴의 출현 횟수는 얼마입니까? 그것이 절 / 공식에서 나타나는 위치에 관한 것입니까, 아니면 수식에서 나타나는 횟수입니까? 가 k는 내가 리터럴 또는 숫자? kixixi¯ki
DW

@DW의 수이다. 나의 표현은 실제로 명확하지 않았다. 편집했습니다. ki
Willard Zhan

@WillardZhan 예. 그러나 해당 변수를 선택하면 수식의 값보다 큰 값에 도달 할 수 있습니다. 예를 들어, 난 세트 X = 7 나만 450 포인트 (가정 받아야하기 식에있어서, k는 절 수이다). 그러나 x 1 , x 2 , ¯ x 3 을 선택하면 오른쪽에서 네 가지를 선택하여 452 점에 도달 할 수 있습니다Y=60X=7kx1,x2,x3¯
rotia

3

이 솔루션에는 문제가 있으며 곧 삭제 될 것입니다. templatetypedef의 주석을 참조하십시오.

최소 비용 흐름을 사용하여 다항식 시간으로이 문제를 해결할 수 있습니다 . 다음에서 모든 모서리에는 장치 용량이 있습니다.

  • 소스 정점 만들기 및 대상 정점 t을 . k 의 흐름 단위를 s 에서 t로 보냅니다 .stkst
  • 슬롯 사이의 시점을 나타내 려면 꼭짓점 v 0 , , v n 을 만들고 비용이 0 인 각 0 j < n 에 대해 지정 에지 v j v j + 1 을 만듭니다 .n+1v0,,vnvjvj+10j<n
  • 각 사람 에 대해 다음을 작성하십시오. i
    • 서브-소스 버텍스 및 서브-싱크 버텍스 t i .siti
    • 모든 옵션 에서 에지 브이 J 갖는 선정 Σ의 J에 K = 1 H ( I , K ) (우리가 0으로 걸리는 경우 j는 = 0 ).0j<nsivjΣk=1jh(i,k)j=0
    • 모든 옵션 에서 에지 브이 J 하는 마에 내가 선정 갖는 - Σ의 J에 K = 1 H ( I , K가 ) .1jnvjtiΣk=1jh(i,k)
    • 에지 비용 0.ssi
    • 에지 선정 0.tit

이 네트워크의 최소 비용 흐름은 총 비용이 가능한 최대 이익의 마이너스와 같습니다. (이 비용은 제외 될 것이지만, 그 문제가 아니다.) 모든 사람되는 최적 일체 해결책이 이탈 한 에지 갖는 S I를 (1)의 흐름에 도달 한 에지 t I (1)의 흐름이 s i 또는 t i 에 입사하는 다른 모든 모서리의 흐름은 0입니다. 사람이 플로우 1 에지하자 내가I V의 JV K t 후 : K Jisitisitiisivjvktikj vertices 중에서 유일한 경로 는 아래 첨자를 증가시키는 경로이기 때문 입니다. 경우 K = J 다음 사람 나는 시간 슬롯이 할당되지 않는다; 그렇지 않으면, 개인 i 에는 시간 슬롯 블록 j + 1 , , k 가 할당 됩니다.vk=jiij+1,,k

sj+1,,kv

h(i,j)


3
i

ississ1tittkttisi+1M1i<kMk1

k

i>ij<jji

sivjsii
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.