私と私の友人は、ブルートフォース法を試して、と小さな値に対していくつかの値を計算することにしました。これは、プルーニングを使用しないと完全に不可能であり、私たちが見つけたトリックが問題の残りの部分で洞察を与えることを願っています。これまでのところ、ブルートフォースメソッドの二重指数実行時間を大幅に短縮することはできていません(これまでのところ、約が最善の限界です)。背後にある関数を予測するn d 3 2 n ftnd32nf最初のいくつかの値から。また、以前のスレッドのすべてのコメントを詳細に検討したわけではないため、これの一部は既にわかっている可能性があります-基本的にコードを高速化するのが楽しく、機能する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
次の高速化は、本質的に動的プログラミングです。次の2つの特性を持つ凸シーケンスの等価関係を見つけようとします。最初に、2つの凸シーケンスに対して場合、は互換性があります。場合、それはと互換性がある場合にのみ、。次に、およびは凸、次に∼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。さらに、セットが等価クラスの要素と互換性があるかどうかを判断し、所与との同値クラスの代表。その後の動的プログラミングアルゴリズムは明らかです。等価クラスの数(上記の2つの操作にかかる時間とともに)は、明らかな動的プログラミングアルゴリズムの実行時間に制限を与えます。F1,...,Ft,Ft+1Ft+1F1,...,Ft
境界を得るために使用する等価性については、次のように「間隔」に基づく凸性の特性化を使用します。サブセット所与の、我々は言うである連続(必ずしも凸型)配列に対して場合いくつかの整数の。は、このシーケンスに対するの間隔であると言います。それは容易に見られること凸場合にのみ、すべての部分集合A{1,…,n}AF1,...,Ft{k∣∃B∈Fk:A⊆B}={i,…,j}1≤i≤j≤n(i,j)AF1,...,Ft{1,…,n} シーケンスに関して連続している。
ここで、凸シーケンス与えられた場合、すべてのサブセットを、以下のように触れられない、許可されない、またはアクティブとしてマークします。要素活性である、のすべての要素禁止され、すべてのスーパーセットのセットのに対する間隔には withも許可されていません。セット {1、...、N} F T F 1、。。。、 F T - 1 BA F 1、。。。、 FのT - 1(I、J)J<T-1A〜BC∈ F T D∈F1,...,Ft{1,…,n}FtF1,...,Ft−1BAF1,...,Ft−1(i,j)j<t−1A∼BC∈FtD∈Ft+1B∩C⊆D32n
Ft+11,…,iF1={{1}},F2={{1,2}}Ft−1FtF3 より大幅な節約になる可能性があります。