승인. DP 알고리즘은 불필요하게 복잡해 보입니다. 의견을 읽은 후에는 이것이 Monotonic 버전의 문제를 해결할 수 있다고 생각합니다 (그러나 모든 세부 사항을 확인하지는 않았습니다).
먼저, 각 . 여기서 는 정수 부분이고 는 소수 부분입니다. 가 로 반올림 되었다고 가정합니다 . 여기서 는 음이 아닌 정수입니다 (물론 일반적으로 는 음수 일 수 있지만 가장 작은 가 0이 되도록 항상 이동할 수 있습니다 ).xi=⌊xi⌋+{xi}⌊xi⌋{xi}xi⌊xi⌋+vivivivi
이제이 반올림을 수행 할 때 , 쌍의 비용을 고려하십시오 . 비용은xixj
||vi−vj+⌊xi⌋−⌊xj⌋|−|{xi}−{xj}+⌊xi⌋−⌊xj⌋||
절대 값으로 인해 표현이 복잡합니다. 그러나, 우리는 단 조성을 가지므로 두 내부 절대 값 안에있는 것은 SAME 부호를 가져야합니다. 우리는 외부 절대 값을 가지기 때문에 실제로 그 부호가 무엇인지는 중요하지 않습니다. 표현은
|vi−vj−({xi}−{xj})|
이제부터는 솔루션이 단조로운 것으로 가정하지 않지만 대신 모든 쌍에 대해 위 항의 합계를 최소화하도록 목표를 변경합니다. 이 문제에 대한 해결책이 단조로운 경우, 물론 단조로운 버전에 대한 최적의 솔루션입니다. (생각 해보자 : 원래 문제는 솔루션이 단조롭지 않을 때 무한한 페널티가 있고, 새로운 문제는 작은 페널티가있다. 단조로운 솔루션이 새 버전에서도 승리하면 단조로운 버전의 솔루션이어야한다)
이제 인 경우 최적의 솔루션으로 가 있어야 함을 합니다.{xi}>{xj}vi≥vj
이것이 사실이 아니라고 가정하면 쌍 이지만 쌍이 있다고 가정하십시오 . 솔루션이 더 좋아진다 는 것을 보여줄 것입니다 .{xi}>{xj}vi<vjvi vj
먼저 우리는 와 사이의 용어를 비교합니다 . 여기서 스왑이 아닌 버전에서는 와 가 절대적으로 같은 부호를 갖기 때문에 스와핑이 엄격히 더 좋습니다. value는 두 절대 값의 합입니다.ijvi−vj{xj}−{xi}
이제 에 대해 쌍 및 의 합을 비교합니다 . 즉, 우리는 비교해야합니다k(i,k)(j,k)
|vi−vk−({xi}−{xk})|+|vj−vk−({xj}−{xk})|및.|vj−vk−({xi}−{xk})|+|vi−vk−({xj}−{xk})|
사용 , , , 절대 값 안쪽 네 조건을 나타 내기 위해, 그 분명 . 또한. 절대 값의 볼록 함으로. 모든 대한 합계를 취하면 스와핑이 더 나을 수 있다는 것을 알고 있습니다.ABCDA+B=C+D|A−B|≥|C−D||A|+|B|≥|C|+|D|xk
공지 사항 지금 우리가 이미 모노 토닉 바닥 / 천장을 만들다 버전에 대한 솔루션을 가지고 : 임계 값이 있어야합니다을 때 더 큰 항상 라운드 업이 동일 라운드 때, 그것은 작은 항상 라운드 다운 때, 일부 위로 솔루션 품질은 숫자에만 의존하지만 일부는 감소합니다. 우리는 이러한 모든 솔루션을 열거하고 가장 작은 목적 함수를 가진 솔루션을 선택합니다. (이러한 모든 솔루션은 반드시 단조로운 것입니다).{xi}
마지막으로 우리는 문제의 단조 정수 버전으로 가고 싶습니다. 실제로 최적의 솔루션이 단조로운 바닥 / 천장 버전과 동일 함을 증명할 수 있습니다.
가장 작은 는 0입니다. 모든 를 에 따라 그룹화하고 그룹 합니다. 우리는 먼저 빈 그룹이 없음을 증명해야하지만, 경우에 이것은 간단 번째 그룹이 비어를 들어, 어떤 바로하자 . 목적 함수가 항상 향상되는 것을 쉽게 알 수 있습니다 (기본적으로 이므로 ).vixivi0,1,2,...,max{vi}kvi>kvi=vi−1|{xi}−{xj}|<1
이제 그룹에서 의 평균이 그룹에서 의 평균에 더한 것을 증명합니다 . 이것이 사실이 아닌 경우, 단순히 모든 대해 을 설정 하면 계산은 목적 함수가 개선되었음을 다시 나타냅니다.{xi}k+1{xi}k1/2vi=vi−1vi>k
의 평균이 범위 에 있기 때문에 실제로 바닥 / 천장 버전에 해당하는 최대 2 개의 그룹이 있습니다.{xi}[0,1)