내 친구와 나는 brute-force 방법을 시도하고 작은 값 과 대해 값을 계산하기로 결정했습니다 . 이것은 가지 치기를 사용하지 않고는 완전히 불가능하며, 우리가 찾은 트릭이 나머지 문제에 대한 통찰력을 줄 것으로 기대합니다. 지금까지 우리는 무차별 대입법의 이중 지수 실행 시간을 크게 줄이지 못했습니다 (대략 가 지금까지 최선의 경계입니다). 그래서 우리는 어떻게 든 원래 목표에 도달하지 못했습니다. 뒤의 함수 예측tnd32nf처음 몇 값에서. 우리는 또한 이전 스레드의 모든 주석을 자세히 연구하지 않았으므로 이미 알려졌을 수도 있습니다. 기본적으로 코드를 빠르게 작성하고 재미있는 LaTeX 환경이있는 경우 결과를 어딘가에 게시하고 싶었습니다. 이것을 ArXiV에 넣습니다.
코드 (정확히 프로덕션 코드는 아닙니다 ...) : http://pastebin.com/bSetW8JS . 값 :
f(d=2, n)=2n-1 for n <= 6
f(d=3, n=3) = 6
{} {0} {01} {012} {12} {2}
f(d=4, n=4) = 8
f(d=3, n=4) = 8
{} {0} {01} {1,02,03} {2,13} {123} {23} {3}
{} {0} {01} {2,013} {1,02,03} {023} {23} {3}
f(d=5, n=5) = 11
f(d=4, n=5) = 11
f(d=3, n=5) = 11
{} {0} {01} {1,02} {2,13,04} {12,03,14} {3,124} {23,24} {234} {34} {4}
{} {0} {01} {1,02} {2,13,04} {12,03,14} {3,124} {23,24} {234} {34} {4}
{} {0} {01} {012,3} {02,12,013,014} {13,023,04,124} {123,024} {23,24} {234} {34} {4}
{} {0} {01} {012,13} {02,12,013} {03,123,014,024} {023,124} {23,24} {234} {34} {4}
(*) 가 시퀀스 는 볼록 하다고합니다. 우리의 접근 방식은 기본적으로 가 볼록한 경우 은 볼록합니다. 우리는주의 볼록 경우에만 모든 경우 우리가 그 는 볼록합니다. 우리는 말할 있습니다 호환 과 경우F1,...,FtF1,...,FtF1,...,Ft−1F1,...,FtA∈FtF1,...,Ft−1,{A}AF1,...,Ft−1F1,...,Ft−1,{A}볼록 - 우리 시퀀스와 호환되는 세트들을 계산하고 새로운 그들의 파워 셋의 요소를 고려하여 계산 시간을 절약 오히려 결정 아닌 경우 는 직접 볼록합니다.FtF1,...,Ft
다음 속도 향상은 본질적으로 동적 프로그래밍입니다. 우리는 동등한 관계 찾으려고 다음과 같은 두 가지 속성 볼록 시퀀스에 있습니다. 먼저 두 개의 볼록한 시퀀스에 대해 이면 가 호환됩니다. 와 경우에만 그와 호환되는 경우 . 둘째, 및 은 볼록한 다음∼F1,...,Ft∼F′1,...,F′tAF1,...,FtF′1,...,F′tF1,...,Ft∼F′1,...,F′tF1,...,Ft,Ft+1F1,...,Ft,Ft+1∼F′1,...,F′t,Ft+1. 또한 세트가 동등성 클래스의 요소와 호환되는지 여부를 판별하고 주어진 과 등가의 클래스의 대표 . 다음에 나오는 동적 프로그래밍 알고리즘은 분명하다. (위의 두 연산에 걸린 시간과 함께) 등가 클래스의 수는 명백한 동적 프로그래밍 알고리즘의 실행 시간에 대한 경계를 제공합니다.F1,...,Ft,Ft+1Ft+1F1,...,Ft
우리가 바운드를 얻기 위해 사용하는 동등성을 위해 다음과 같이 '간격'을 기반으로하는 볼록한 특성을 사용합니다. 서브셋 주어 의 우리 말 인 연속 A (반드시 볼록하지 않음) 시퀀스에 대해 경우 일부 정수 . 우리는 가이 시퀀스 에서 의 간격 이라고 말한다 . 는 모든 부분 집합 인 경우에만 볼록한 것을 쉽게 알 수 있습니다A{1,…,n}AF1,...,Ft{k∣∃B∈Fk:A⊆B}={i,…,j}1≤i≤j≤n(i,j)AF1,...,Ft{1,…,n} 서열에 대해 연속적이다.
이제, 볼록 시퀀스를 소정 , 우리가 모든 부분 집합 표시 으로 접촉하지 , 허용 또는 활성 을 다음과 같이 모든 요소 활성의 모든 요소 허용되는 모든 슈퍼 세트를 세트의 그 간격 대하여 행 이다 와 또한 허용된다. 바로 세트F1,...,Ft{1,…,n}FtF1,...,Ft−1BAF1,...,Ft−1(i,j)j<t−1A터치하지 않은 것으로 표시된 경우에만 시퀀스와 호환됩니다. 마킹이 동일한 경우 에서 두 시퀀스를 동등한 것으로 정의 합니다. 이 동등성 관계는 우리의 두 가지 특성을 만족 시킨다는 것을 쉽게 알 수 있습니다. 구간 가 세트 를 구간 조건에 의해 허용하지 않아야 하는지 계산하기 위해 , 세트 가없는 세트 가있는 등가 조건을 사용할 수 있습니다. , '. 은 등가 클래스 수에 즉시 구속됩니다.∼BC∈Ft B∩C의⊆의D (3) (2) ND∈Ft+1B∩C⊆D32n
우리는 또한 다양한 여분의 가지 치기를 사용합니다. 우리는 대한 안티 체인 만 고려 하고 요소의 요소는 합니다. 마지막으로, 우리는 최적화를 사용하는 최적의 긴 시퀀스 (와 유사한위한 및 ). 의 동작을 조사하면 비용을 크게 절약 할 수 있다고 생각합니다 . 1 , … , i F 1 ={{1}}, F 2 ={{1,2}} F t − 1 F t F 3Ft+11,…,iF1={{1}},F2={{1,2}}Ft−1FtF3