Мій друг і я вирішили спробувати метод грубої сили і обчислити деякі значення для малих значень n і d . Це абсолютно неможливо без використання обрізки, і ми сподіваємось, що знайдені нами трюки дадуть деяке розуміння решті проблеми. Поки нам не вдалося значно зменшити подвійно-експоненціальний час роботи методу грубої сили (приблизно 3 2 n - це наш найкращий зв'язаний на даний момент), і, отже, ми ще не досягли своєї первісної мети якось передбачити функцію позаду fтнг32нfвід перших кількох її значень. Ми також детально не вивчили всі коментарі попередніх тем, тому деякі з них, можливо, вже були відомі - ми в основному веселилися швидко робити наш код і хотіли десь опублікувати наші результати, якби у мене працювало середовище 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}
Будемо говорити , що послідовність є опуклий , якщо (*) має місце. Наш підхід конструкції опуклі послідовності, приєднуючи сім'ї коротких послідовностей опуклих, по суті , з використанням , що якщо F 1 , . . . , Р т опукла, то Р 1 , . . . , F t - 1 опукла. Зауважимо , що F 1 , . . . , F тЖ1, . . . , FтЖ1, . . . , FтЖ1, . . . , Ft - 1Ж1, . . . , Fтопукло тоді і тільки тоді , коли для всіх ∈ F т маємо F 1 , . . . , F t - 1 , { A } опукла. Ми говоримо , що є сумісним з F 1 , . . . , F т - 1 , якщо F 1 , . . . , F t - 1 , { A }A ∈ FтЖ1, . . . , Ft - 1, { A }АЖ1, . . . , Ft - 1Ж1, . . . , Ft - 1, { A }опукло - ми економимо час обчислень шляхом обчислення безлічі, які сумісні з послідовністю , а потім приймати елементи їх Powerset як новий , а не визначення , якщо F 1 , . . . , F t - опукла безпосередньо.ЖтЖ1, . . . , Fт
Наступне наше прискорення - це, по суті, динамічне програмування. Спробуємо знайти відношення еквівалентності на опуклих послідовностях із наступними двома властивостями. По- перше, якщо F 1 , . . . , F т ~ F ' 1 , . . . , F ' т в протягом двох опуклих послідовностей, то сумісний з F 1 , . . . , F т тоді і тільки тоді , коли він сумісний з F ' 1 , . . .∼Ж1, . . . , Fт∼ F'1, . . . , F'тАЖ1, . . . , Fт . По- друге, якщо F 1 , . . . , F т ~ F ' 1 , . . . , F ' т і F 1 , . . . , Р т , Р т + 1 є опуклою, то Р 1 , . . . , F t , F t + 1 ∼ F ′Ж'1, . . . , F'тЖ1, . . . , Fт∼ F'1, . . . , F'тЖ1, . . . , Fт, Ft + 1. Крім того, ми хотіли, якщо ми можемо визначитичи набір сумісний з елементами з класу еквівалентності, і визначитипредставник класу еквівалентностіF1,. . . ,Рт,Рт+1даноРт+1і представник класу еквівалентностіF1,. . . ,FтЖ1, . . . , Fт, Ft + 1∼ F'1, . . . , F'т, Ft + 1Ж1, . . . , Fт, Ft + 1Жt + 1Ж1, . . . , Fт. Тоді очевидний алгоритм динамічного програмування очевидний. Кількість класів еквівалентності (разом із часом, проведеним вищезазначеними двома операціями) потім дає обмеження на час виконання очевидного алгоритму динамічного програмування.
Для еквівалентності, яку ми використовуємо для зв'язання, ми використовуємо характеристику опуклості, яка базується на `інтервалах 'наступним чином. З огляду на підмножина з { 1 , ... , п } , ми говоримо є суміжним по відношенню до (не обов'язково опуклою) послідовності F 1 , . . . , F t, якщо { k ∣ ∃ B ∈ F k : A ⊆ B } = { i , … , jА{ 1 , … , n }АЖ1, . . . , Fт для деяких цілих чисел 1 ≤ i ≤ j ≤ n . Ми говоримо, що ( i , j ) - інтервал для A wrt цієї послідовності. Легко бачитищо F 1 , . . . , F t є опуклим тоді і тільки тоді, коли всі підмножини { 1 , … , n } є суміжними щодо послідовності.{ k ∣ ∃ B ∈ Fк: A ⊆ B } = { i , … , j }1 ≤ i ≤ j ≤ n( i , j )АЖ1, . . . , Fт{ 1 , … , n }
Тепер, з огляду на послідовність опуклу , ми відзначаємо всі підмножини { 1 , ... , п } , як не чіпали , заборонені або активний наступним чином : всі елементи F т активні, все елементи F 1 , . . . , F t - 1 заборонені, і всі суперсети B множин A , інтервал по відношенню до F 1Ж1, . . . , Fт{ 1 , … , n }ЖтЖ1, . . . , Ft - 1БА є ( i , j ) при j < t - 1 також заборонено. Негайно набір A сумісний із послідовністю, якщо та лише тоді, коли він позначений як не торкався. Ми визначаємо дві послідовності як еквівалентні під ∼, якщо їх маркування дорівнює. Неважко помітити, що це відношення еквівалентності задовольняє наші дві властивості. Для обчислення того, числід заборонятимножину B умовою інтервалу, ми можемо використовувати еквівалентну умову 'існує множина C ∈ FЖ1, . . . , Ft - 1( i , j )j < t - 1А∼Б такий, що для без набору D ∈ F t + 1 , B ∩ C ⊆ D '. 3 2 n - це безпосереднє обмеження на кількість класів еквівалентності.С∈ FтD ∈ Ft + 1B ∩ C⊆ D32н
Також ми використовуємо різні додаткові обрізки. Ми розглядаємо лише античінки для і вимагаємо, щоб елементи його елементів походили з 1 , … , i . Нарешті, ми використовуємо оптимізацію, що F 1 = { { 1 } } , F 2 = { { 1 , 2 } } для оптимально довгих послідовностей (і аналогічно для F t - 1 і F t ). Ми уявляємо, що досліджуємо поведінку F 3Жt + 11 , … , яЖ1= { { 1 } } , F2= { { 1 , 2 } }Жt - 1ЖтЖ3 це може призвести до більш значних заощаджень.