Ein Freund von mir und ich haben beschlossen, die Brute-Force-Methode auszuprobieren und einige Werte von für kleine Werte von und berechnen . Ohne Beschneiden ist dies völlig unmöglich, und wir hoffen, dass die gefundenen Tricks einen Einblick in den Rest des Problems geben. Bisher ist es uns nicht gelungen, die doppelt exponentielle Laufzeit der Brute-Force-Methode signifikant zu verkürzen (ungefähr ist unsere bisher beste Grenze), und daher haben wir unser ursprüngliches Ziel, irgendwie, noch nicht erreicht Vorhersage der Funktion hintertnd32nfvon seinen ersten Werten. Wir haben auch nicht alle Kommentare der vorherigen Threads im Detail untersucht, sodass einige davon möglicherweise bereits bekannt sind. Wir hatten im Grunde genommen Spaß daran, unseren Code schnell zu machen, und wollten unsere Ergebnisse irgendwo veröffentlichen, wenn ich eine funktionierende LaTeX-Umgebung hätte Legen Sie dies auf dem ArXiV.
Code (es ist nicht genau Produktionscode ...): http://pastebin.com/bSetW8JS . Werte:
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}
Wir sagen , dass die Folge ist konvex , wenn (*) hält. Unser Ansatz konstruiert konvexe Sequenzen, indem Familien an kürzere konvexe Sequenzen wird im verwendet: Wenn konvex ist, dann ist konvex. Wir stellen fest , dass ist konvex , wenn und nur dann , wenn für alle wir , dass ist konvex. Wir sagen, dass mit kompatibel ist, wennF1,...,FtF1,...,FtF1,...,Ft−1F1,...,FtA∈FtF1,...,Ft−1,{A}AF1,...,Ft−1F1,...,Ft−1,{A}ist konvex - wir sparen Rechenzeit, indem wir die mit einer Sequenz kompatiblen Mengen berechnen und dann die Elemente ihres Potenzsatzes als neues , anstatt zu bestimmen, ob ist direkt konvex.FtF1,...,Ft
Unsere nächste Beschleunigung ist im Wesentlichen die dynamische Programmierung. Wir versuchen, eine Äquivalenzrelation auf konvexen Sequenzen mit den folgenden zwei Eigenschaften zu finden. Erstens, wenn für zwei konvexe Folgen ist, dann ist kompatibel mit genau dann, wenn es mit kompatibel ist . Zweitens, wenn und ist konvex, dann∼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. Darüber hinaus möchten wir, dass wir feststellen können, ob eine Menge mit Elementen aus einer Äquivalenzklasse kompatibel ist, und einen Vertreter der Äquivalenzklasse von gegeben und ein Vertreter der Äquivalenzklasse von . Der daraus resultierende dynamische Programmieralgorithmus ist dann offensichtlich. Die Anzahl der Äquivalenzklassen (zusammen mit der Zeit, die die obigen beiden Operationen benötigen) ergibt dann eine Grenze für die Laufzeit des offensichtlichen dynamischen Programmieralgorithmus.F1,...,Ft,Ft+1Ft+1F1,...,Ft
Für die Äquivalenz, die wir verwenden, um unsere Bindung zu erhalten, verwenden wir eine Charakterisierung der Konvexität, die wie folgt auf "Intervallen" basiert. Bei einer Untergruppe des , sagen wir ist angrenzend in Bezug auf eine (nicht notwendigerweise konvex) Sequenz wenn für einige ganze Zahlen . Wir sagen, dass das Intervall für bezüglich dieser Sequenz ist. Es ist leicht zu erkennen, dass genau dann konvex ist, wenn alle Teilmengen vonA{1,…,n}AF1,...,Ft{k∣∃B∈Fk:A⊆B}={i,…,j}1≤i≤j≤n(i,j)AF1,...,Ft{1,…,n} sind in Bezug auf die Reihenfolge zusammenhängend.
Bei einer konvexen Folge markieren wir nun alle Teilmengen von wie folgt als nicht berührt , nicht erlaubt oder aktiv : all Elemente von sind aktiv, alle Elemente von sind unzulässig und alle Obermengen von Mengen deren Intervall in Bezug auf ist mit sind ebenfalls nicht zulässig. Es ist unmittelbar, dass eine MengeF1,...,Ft{1,…,n}FtF1,...,Ft−1BAF1,...,Ft−1(i,j)j<t−1Aist genau dann mit der Sequenz kompatibel, wenn sie als nicht berührt markiert ist. Wir definieren zwei Sequenzen als äquivalent unter wenn ihre Markierung gleich ist. Es ist leicht zu erkennen, dass diese Äquivalenzbeziehung unsere beiden Eigenschaften erfüllt. Um zu berechnen, ob eine Menge durch die Intervallbedingung nicht zugelassen werden soll, können wir die äquivalente Bedingung verwenden, 'es gibt eine Menge so dass für keine Menge , '. ist eine unmittelbare Grenze für die Anzahl der Äquivalenzklassen.∼BC∈FtD∈Ft+1B∩C⊆D32n
Wir verwenden auch verschiedene zusätzliche Schnitte. Wir betrachten nur Antichains für und wir fordern, dass die Elemente seiner Elemente aus . Zuletzt verwenden wir die Optimierung, die für optimal lange Sequenzen (und ähnliches für und ). Wir stellen uns vor, dass die Untersuchung des Verhaltens von drastischeren Einsparungen führen kann.Ft+11,…,iF1={{1}},F2={{1,2}}Ft−1FtF3