Чи не можемо ми вивести складність Колмогорова?


28

Зафіксуємо кодування без машинної префіксації машин Тьюрінга та універсальної машини Тьюрінга яка на вході (кодується як код без префіксу а потім ) видає будь-які виходи на вхід (можливо обидва бігають вічно). Визначте складність Колмогорова , як довжину найкоротшої програми такою, що .U(T,x)TxTxxK(x)pU(p)=x

Чи є машина Тьюрінга така, що для кожного вводу він видає ціле числощо відрізняється від складності Колмогорова , тобто але ?TxT(x)≤|x|xT(x)≠K(x)lim inf|x|→∞T(x)=∞

Умови необхідні, тому що

(a) якщо T(x)≰|x|, тоді було б легко вивести число, яке тривіально відрізняється від K(x) оскільки воно більше, ніж |x|+cU ,

(b) якщо lim inf|x|→∞T(x)<C , то ми можемо просто вивести 0 (або якусь іншу константу) майже для всіх чисел, "на щастя" здогадавшись щонайбільше одного (безліч кінцевих чисел), які оцінюють до 0 (до якоїсь іншої константи) і виводять там щось інше. Ми навіть можемо гарантувати lim sup|x|→∞T(x)=∞ , вивівши щось на зразок 2log⁡n для x=2n .

Також зауважте, що наша робота була б легкою, якби ми знали, що T(x) не є сюжетним, але про це відомо мало , тому відповідь може залежати від U , хоча я сумніваюся, що це буде.

Я знаю, що взаємини взагалі багато вивчаються, але

Хтось коли-небудь задавав подібне питання, де наша мета - дати алгоритм, який не виводить якийсь параметр?

Моя мотивація - це проблема http://arxiv.org/abs/1302.1109 .


5
Це залежить від вашої кодування, оскільки, як зазначалося в темі про сюрєктивність яку ви посилаєтесь, можливо , справедливі лише програми рівної довжини. Отже, щоб ваше запитання було нетривіальним, вам потрібно мати більше гіпотез щодо кодування. Kp
— Денис

2
До вашого другого питання: так. Задавши ціле число , нехай позначає - ту машину Тюрінга. За діагоналі нерекурсівние функція (або DNR) є функцією таке , що для всіх цілих чисел , . (Тобто, якщо зупиняється на , тоді , інакше може бути довільним.) Вони були вивчені зовсім недавно в обчислюваності / обчислюваності спільність випадковості. Google "діагонально нерекурсивний", щоб знайти документи про це. M[M]Mf:N→NM[M](M)≠f(M)[M]Mf(M)≠[M](M)f(M)
— Джошуа Грохов

1
@Denis: Я думаю, ви помиляєтесь. Згідно з моїм визначенням універсальних машин Тьюрінга, наведеним у першому пункті, всі довжини можуть бути дійсними програмами.
— domotorp

3
Кілька разів тому я думав (даремно) про, мабуть, більш простій версії: (dis) доведення, що для досить великих , для всіх . x0K(x)≠|x|/2x≥x0
— Marzio De Biasi

1
@ Ricky: Це добре, у мене немає обмежень щодо кодування машин Тьюрінга, лише щодо програм, які ви можете прочитати в першому пункті.
— domotorp

Відповіді:


7

Питання можна переосмислити так, чи ні , як Деніс в коментарях зазначає для деяких кодувань це помилково. Ось більш слабке твердження та спроба підтвердження цього, яке не залежить від будь-яких деталей кодування, але я вважаю, що двійкова мова для простоти:liminf|x|→∞|T(x)−K(x)|=0

Нехай - обчислювальна функція, що задовольняє і . Тоді . Неофіційно, якщо навколо складності Колмогорова кожної струни є ціль, яка зростає необмеженою шириною, жодна обчислювана функція не може уникнути її потрапляння.T:{0,1}∗→N0≤T(x)≤|x|liminf|x|→∞T(x)=∞liminf|x|→∞|T(x)−K(x)|<∞

Щоб побачити це, нехай - випадкове бітове число, тобто і . Для всіх така випадкова . Також відзначимо , що існує нескінченне число значень , для яких , це випливає з умов , розміщених на . Нехай тепер буде найменший рядок така , що . Очевидно, що є константа така, що , оскільки іnb0≤n<2bK(n)≥bbnb|{T(x)=b}|≥2bTxnthT(x)=bc1K(x)>b−c1K(n)≥bnможна обчислити з . І є константа така, що , тому що також обмежена зверху лише постійною більше , а можна обчислити з . Тоді , і ми маємо нескінченну кількість варіантів для (тих, хто має перевагу кардинальності принаймні ), даючи нескінченну кількість значень для , так ми зробили.xc2K(x)<b+c2K(n)bxn|K(x)−T(x)|<c1+c2b2bx

Під наслідком є ​​те, що для деяких , нескінченно часто. Тож можна сказати, що ми не можемо вивести щось, що не є складністю Колмогорова!c∈ZT(x)=K(x)+c


1
Приємно, я думаю, що це має працювати. Звичайно, може бути не будь-який рядок з , тому, можливо, вам потрібно зажадати , правда? f(x)=bf(x)≥b
— domotorp

1
Це повинно бути щоб можна обчислити з . Тож, мабуть, треба вибрати щоб або так рядок відображалося на ньому. Можна припустити, що припущення повинні мати на увазі існує нескінченно багато такого (хоча я не зовсім розумію , це на даний момент). (Наскільки я можу сказати, припущення не використовувались іншим способом.)f(x)=bnxb,n b≥2b+1b
— Еміль Йерабек підтримує Моніку

1
Так, справді це потрібно. Але доведення легко за суперечливістю - якщо воно завжди якщо , то, переглядаючи будь-який діапазон , можна зробити висновок, що принаймні рядки відображаються в , таким чином, нескінченно багато, що суперечить . <2bb>b0b0<b≤BB−b0≤b0lim inf=∞
— domotorp

Те, про що говорить Денис, не стосується того, як я визначив універсальність у першому рядку мого питання. Його зауваження також тривіальне, я не маю поняття, чому так багато людей підтримали його коментар. Але на жаль, також неправильна відповідь Петра отримала так багато відгуків, я втрачаю віру в цей сайт ...
— domotorp

Не має значення, як кодуються ТМ, доки мої критерії щодо універсальної ТМ задовольняються, тому коментар Дениса невірний. Якби це було заявлено як зауваження щодо іншої моделі, то це було б інакше. Так чи інакше, замість того, щоб перебирати це, спробуємо зрозуміти, чи зможемо ми зміцнити вашу ідею ...
— domotorp

3

Я думаю, що наступні роботи. Я буду використовувати для складності КолмогороваC(x)

  • Дайте обмеженому часом (скажімо, деяку експоненціальну функцію довжини вхідної програми) і назвіть результат . Якщо програма перевищує часовий інтервал, надходить у нескінченний цикл.UtUtUt
  • Нехай - найкоротша програма для на . Зауважимо, що обчислюється.Ct(x)xtCt
  • Нехай повертає , якщо це значення не дорівнюєу такому випадку поверніть 0. Якщо тільки є результатом порожньої програми, у такому випадку поверніть 1.T(x)Ct(x)+1|x|x
  • Оскільки , завжди буде відрізнятися від . Логіка на попередньому кроці стосується кращих справ.C(x)≤Ct(x)T(x)C(x)
  • Ut функціонує як код для всіх рядків, тому він має обмеження нижчої нескінченності.

кілька коментарів, теорія KC в альтернативній (але еквівалентній) інтерпретації констатує наступне: Майже всі рядки вже в оптимальному поданні ( wrt до даної моделі), за винятком безлічі багатьох рядків, які можуть бути перетворені на оптимальне подання (мінімум) wrt до заданої обчислювальної моделі (або TM). У цьому сенсі майже кожна програма виводить оптимальні рядкові представлення, але це невідомі (або обчислювані) априорі
— Нікос М.

Чому у вас буде? T(x)≤|x|
— domotorp

@domotorp Технічно маємо де - довжина найкоротшої програми друку. Звичайно, ця константа є і для (і насправді, якщо програма друку не дуже повільна, це та сама константа). T(x)≤|x|+ccC(x)
— Пітер

Але саме це робить все питання цікавим! Я міг би попросити будь-яку функцію замість, наприклад, , моєю єдиною метою було усунути подібні до ваших рішення. |x||x|/2+99
— домоторп

@domotrop Я бачу, тому ви хочете змусити не бути верхнім до . Що цікавіше ...T(x)C(x)
— Петро
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.