Поширені помилкові переконання в теоретичній інформатиці


62

РЕДАКТУЙТЕ В 12.12.08:

Я спробую змінити питання, щоб воно зацікавило більше людей поділитися своєю думкою. НЕОБХІДНІ ваші внески!

Цей пост натхненний тим, хто в МО: Приклади поширених помилкових переконань з математики . Великі списки іноді генерують величезну кількість відповідей, які якості важко контролювати, але після успіху відповідного допису в МО я переконаний, що було б корисно перерахувати купу поширених помилкових переконань у TCS.

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

Назвіть кілька (нетривіальних) прикладів поширених помилкових переконань у теоретичній інформатиці, які з’являються перед людьми, які навчаються у цій галузі?

Якщо бути точним, ми хочемо приклади, що відрізняються від дивних результатів та контрінтуїтивних результатів у TCS; подібні результати змушують людей важко повірити, але вони ПРАВИЛЬНІ. Тут ми просимо дивовижних прикладів того, що люди можуть подумати, що це правда на перший погляд, але після більш глибокої думки вини всередині цього виявляються.


Як приклад правильних відповідей у ​​списку, ця йде з області алгоритмів та теорії графів:

Для -node графа , A -Верстат сепаратор являє собою підмножину ребер розміру , де вузли може бути розбиття на двох несуміжних частин, кожна складається з не більше вузлів . У нас є така «лема»:G k S k G S 3 n / 4nGkSkGS3n/4

На дереві є роздільник з 1 краєм.

Правильно?


Повідомлення позначено як запит як CW.
Сісен-Чі Чанг 張顯 之

Відповіді:


59

Це одне є загальним для обчислювальної геометрії, але ендемічне в іншому місці: Алгоритми реальної оперативної пам’яті можуть бути перенесені на цілу ОЗП (для цілочисельних обмежень проблеми) без втрати ефективності. Канонічним прикладом є твердження, що «Гауссова елімінація проходить в час». Насправді, недбалі замовлення на усунення можуть давати цілі числа з експоненціально багатьма бітами .O(n3)

Ще гірше, але, на жаль, поширене: Алгоритми реальної ОЗУ з функцією підлоги можна переносити на цілу ОЗП без втрати ефективності. Насправді, реальна RAM + підлога може вирішити будь-яку проблему в PSPACE або в # P в поліноміальному числі кроків .


5
Помилкове уявлення про усунення Гаусса дуже поширене. Можливо, частина проблеми полягає в тому, що ми часто працюємо на кінцевих полях, і оскільки там немає жодної проблеми, ми забуваємо.
slimton

"Після того, як ми зробили цілу гауссову ліквідацію, ми знаємо, як знайти рішення".
Альберт Гендрікс

40

Щойно у мене з’явився ще один міф, про що сприяє відповідь @ XXYYXX на це повідомлення :

  • Проблема X - -характер, якщо є скорочення поліноміального часу (або, логічного простору) від усіх задач до X.N PNPNP
  • Припустимо, експоненціальна часова гіпотеза, 3-SAT не має алгоритму субекспоненціального часу. Також 3-SAT є в .NP
  • Отже, жодні -складні задачі X не мають суб-експоненціальних часових алгоритмів. В іншому випадку алгоритм субекспоненціального часу для X + зменшення поліноміального часу = алгоритм субекспоненціального часу для 3-SAT.NP

Але у нас є субэкспоненциальные алгоритми часу для деяких важких проблем NP.


У мене було таке ж враження.
Мохаммед Аль-Туркстані

Отже, що це говорить нам про гіпотезу експоненціального часу? Або я пропустив якийсь недолік у цій лінії міркувань?
Михайло Глушенков

2
В цьому є помилка 3. Саме це я давно неправильно зрозумів :)
Сісен-Чі Чанг 8 之

Я не впевнений, чи не можу я знайти вину. Це те, що оскільки , скорочення не повинно бути неоднорідним, але воно може бути експоненціальним у часі, оскільки обидві проблеми були б у EXPTIME (через ETH?)PNP
chazisop

43
Скорочення поліноміального часу може змінити розмір введення на величину полінома. Отже, якщо ви зменшите екземпляр Q розміру n до екземпляра P розміру n квадрата, 2 алгоритму кореневого n для P дає вам лише 2 алгоритму n для Q.
Рассел Імпальязцоцо

29

Помилкова віра, яка була популяризована в цьому році і про неї говорять багато разів, коли намагається пояснити всю проблему , оскільки пояснюється як ефективна:PPNPP

"Якщо , то ми можемо ефективно вирішити велику кількість проблем. Якщо ні, ми не можемо"P=NP

Якщо можна вирішити в тоді . Я не думаю, що хтось навіть не подумає би запустити цей алгоритм.O ( n g o o g o l p l e x ) P = N P3SATO(ngoogolplex)P=NP

Якщо , ми все одно можемо мати алгоритм для який працює в , який менший, ніж для . Більшість людей були б більш ніж раді, що зможуть швидко вирішити для 4 мільярдів міст.T S P n log ( log n ) n 5 n 2 32 T S PPNPTSPnlog(logn)n5n232TSP


5
Запис у блозі від Lipton є приємним: rjlipton.wordpress.com/2009/07/03/is-pnp-an-ill-posed-problem
Hsien-Chih Chang 張顯 之

6
«Для кожного алгоритму багаточленного часу, який я вважаю за краще, я би мав експоненціальний алгоритм», - Алан Перліс, через «Загублений лист» Геделя та P = NP .
Pål GD

24

Це дійсно помилкова віра в математику, але часто зустрічається в контекстах TCS: Якщо випадкові змінні і є незалежними, то при умові вони залишаються незалежними. (помилково, навіть якщо не залежить від і )Y Z Z X YXYZZXY


2
Чи є у вас улюблений простий приклад цього ви б рекомендували, щоб допомогти людям швидко розпізнати, чому це неправда?
DW

21
Скажімо, і є незалежними і рівномірно випадковими бітами, а (mod 2). Тоді не залежить від і не залежить від , але обумовлене , пізнання виявляє і навпаки. XYZ=X+YZXYZXY
MCH

22

Розподілені обчислення = розподілені високоефективні обчислення (кластери, сітки, хмари, seti @ home, ...).

Розподілені алгоритми = алгоритми для цих систем.


Спойлер: Якщо це не дуже схоже на "помилкове переконання", я пропоную вам ознайомитись з такими конференціями, як PODC та DISC, і побачити, яку роботу виконують люди, вивчаючи теоретичні аспекти розподілених обчислень.

Типова установка проблеми полягає в наступному: У нас є цикл з вузлами; вузли позначені унікальними ідентифікаторами з набору ; вузли детерміновані і вони обмінюються повідомленнями один з одним синхронно. Скільки раундів синхронного зв'язку (як функція ) потрібно, щоб знайти максимальний незалежний набір? Скільки раундів потрібно, щоб знайти незалежний набір з принаймні вузлами? [Відповідь на обидва ці питання точно , виявлена ​​в 1986–2008 рр.]n{1,2,...,poly(n)}nn/1000Θ(logn)

Тобто люди часто вивчають проблеми, які є абсолютно тривіальними з точки зору централізованих алгоритмів і мають дуже мало спільного з будь-яким видом суперкомп'ютерів чи високоефективних обчислень. Справа, безумовно, не в прискоренні централізованих обчислень за допомогою використання більше процесорів, або чогось подібного.

Мета полягає в тому, щоб побудувати теорію складності, класифікувавши основні задачі графіка відповідно до їх обчислювальної складності (наприклад, скільки синхронних раундів потрібно; скільки бітів передано). Такі проблеми, як незалежні набори в циклах, можуть здатися безглуздими, але вони виконують роль, схожу на 3-SAT в централізованих обчисленнях: дуже корисна відправна точка скорочення. Для конкретних додатків у реальному світі має більше сенсу дивитись на такі пристрої, як маршрутизатори та комутатори в комунікаційних мережах, а не на комп’ютери в сітках та кластерах.

Це помилкове переконання не зовсім нешкідливе. Це фактично ускладнює продаж роботи, пов'язаної з теорією розподілених алгоритмів, загальній аудиторії TCS. Я отримав веселі рефертні звіти з конференцій TCS ...


1
Щодо обчислень, я б не сказав, що це не помилкова думка, а скоріше застаріла. Окрім багатоядерних процесорів, дрібномасштабні розподілені обчислення були тривіальним випадком високопродуктивного (з того, що я знаю принаймні). Оскільки сердечники є "комп'ютерами", але на такій невеликій відстані, коли між ними немає мережі, виникають нові проблеми. Однак я згоден, що розподілені алгоритми повинні використовуватися для m> = 2 вузлів.
chazisop

Тож ви просто говорите, що люди плутають паралельні обчислення з розподіленими обчисленнями?
Сашо Ніколов

Я думаю, що ваша претензія не стосується теоретиків-комп’ютерів-теоретиків, хоча вона може стосуватися практикуючих без теоретичного підґрунтя. Як вказував Сашо Ніколов, люди, які працюють на місцях, дуже добре знають відмінності між паралельними та розподіленими обчисленнями. Проблема, що виникає у кластерах, сітках, хмарах тощо, суворо залежить від контексту. Наприклад, ми не припускаємо збоїв при використанні кластера або хмари, але ми робимо це для сіток. І так далі.
Массімо Кафаро

Більше того, для цього наукового співтовариства розповсюджені алгоритми - це алгоритми для таких проблем, як ті, що часто зустрічаються в книгах Ненсі Лінч, Хагіт Аттії та Дженніфер Велч, а також Жерара Телла. І, як такі, ці алгоритми розроблені для конкретної теоретичної розподіленої обчислювальної моделі та аналізуються за потребою з точки зору використовуваних ресурсів (складність у часі, складність повідомлення, складність бітів, кількість раундів тощо).
Массімо Кафаро

@MassimoCafaro: Звичайно, люди, які працюють у сфері розподілених обчислень, знають, що розподіляється обчисленнями. Проте мій досвід полягає в тому, що теоретики-теоретики взагалі не знають, що розподіляється обчисленнями.
Юкка Суомела

20

Елементарний, але поширений, коли ми вперше маємо справу з асимптотичними позначеннями. Розглянемо наступне "доказ" відношення повторення і :T(n)=2T(n/2)+O(nlogn)T(1)=1

Доводимо індукцією. Для базового випадку він дорівнює . Припустимо, що відношення має значення для всіх чисел, менших ніж ,n=1n

T(n)=2T(n/2)+O(nlogn)=2O(n/2logn/2)+O(nlogn)=O(nlogn/2)+O(nlogn)=O(nlogn)

QED (це?)


16
Я бачив, як це роблять студенти. Це одна з підводних каменів зловживання нотації та написання а не . f(x)=O(g(x))f(x)O(g(x))
Аарон Рот

Я бачив, як дослідники теоретичної інформатики теж роблять варіанти цієї помилки;)
Джеремі

12

До недавнього часу я думав, що кожен багатоколійний апарат Тюрінга який працює в часі може бути змодельований двома стрічковими механізмами Тьюрінга в часі у наступному сенс:MT(n)MoO(T(n)logT(n))

  • рух залежить тільки від вхідної довжиниMo
  • для всіх входів однакової довжини зупиняється одночасно (що є ).MoΘ(T(n)logT(n))

(див., наприклад, цю публікацію rjlipton)

Ну а другий рядок взагалі не містить місця, якщо . Нам потрібна повністю конструювана за часом функція порядку (див. Це питання для визначення (повністю) функцій, що можна сконструювати за часом), або нам потрібно дозволити працювати безкінечно час (ми дозволяємо запускатися після того, як він досягне стану прийняття за час ). Проблема полягає в тому, що для загальних конструктивних за часом ми не в змозі "виміряти" кроків у часі якщо .EXPTIMENEXPTIMEΘ(T(n)logT(n))MoMoO(T(n)logT(n))T:NNΘ(T(n)logT(n))O(T(n)logT(n))EXPTIME=NEXPTIME

Доказ цього твердження дуже схожий на доказ у відповіді Q1 тут , тому ми дамо лише ключові ідеї.

Візьміть довільну задачу , . Тоді існує , st може бути вирішено NDTM у кроки. Можна припустити, що на кожному кроці переходить в максимум два різних стани для простоти. Далі визначте функцію Можна довести, що може бути сконструйований часом.LNEXPTIMEL{0,1}kNLM2nkM

f(n)={(8n+2)2if (first logn+1k bits of bin(n))L8n+1else
f

Тепер припустимо, що якась забута машина Тьюрінга працює за часом . Тоді повністю конструюється за часом.g(n)=Θ(f(n)logf(n))g

Тепер наступний алгоритм вирішує :L

  • на вході , нехай - число з двійковим поданням ( нулі). Звідси випливає, що .xnx000|x|k1x=(first logn+1k bits of bin(n))
  • обчислити за час . Якщо досить велике, то , інакше . (це працює лише для досить великих . Наскільки велике залежить від .)g(n)g(n)g(n)xLxLng

Цей алгоритм працює в експоненціальне час і вирішує . Оскільки було довільним, .LLNEXPTIMEEXPTIME=NEXPTIME


11

Ось два мої центи:

Клас складності , рандомізований простір журналів , визначається як аналог , тобто проблеми рішення, які можна вирішити за допомогою недетермінованої машини журнального простору , деR P MRLRPM

  • для позитивного випадку приймає з вірогідністю щонайменше ;1 / 2M1/2
  • для негативного екземпляра відкидає з вірогідністю .1M1

Крім того, машина завжди зупиняється.

Чи правильне визначення? (Немає)


9

Нехай і є функціями, повністю сконструйованими за часом (тобто існує DTM, який на вході робить саме (відповідно ) кроками), і нехай .g 1 n f ( n ) g ( n ) f ( n + 1 ) = o ( g ( n ) )fg1nf(n)g(n)f(n+1)=o(g(n))

ієрархію часу багато разів (поверхнево) заявляють як . (доказ: запитайте Google про недетерміновану ієрархію часу).NTIME(f(n))NTIME(g(n))

Ну, ієрархія дає лише . Нам знадобиться, наприклад, для . Для функцій таких, що , дуже поширений. Але строго кажучи, недетермінована ієрархія часу багато разів заявляється поверхово.NTIME(g(n))NTIME(f(n))f(n)g(n)NTIME(f(n))NTIME(g(n))f,gf(n+1)=o(g(n))f(n)g(n)

Щоб показати, що не відповідає всім повністю сконструйованих часом st , визначимо і . Неважко помітити, що і повністю конструюються за часом і . Із недетермінованої ієрархії часу ми знаємо, що існує деяка мова над . Визначте f , g f ( n + 1 ) = o ( g ( n ) ) f ( n ) = { n + 1 n  непарні ( n + 1 ) 3 іншіNTIME(f(n))NTIME(g(n))f,gf(n+1)=o(g(n))

f(n)={n+1n odd(n+1)3else
g(n)=f(n+1)2fgL N T I M E ( ( n + 1 ) 3 )f(n+1)=o(g(n))LNTIME((n+1)3)NTIME((n+1)2){0,1}
L1={0x10x20xn;  x1x2xnL}.

Звідси випливає, що . Неважко помітити, що з випливає , що не відповідає дійсності. Значить, .L1NTIME(f(n))L1NTIME(g(n))LNTIME((n+1)2)L1NTIME(f(n))NTIME(g(n))


9

Я часто чув, що Валіан-Вазірані каже, що випадковим чином зводиться до , або що , або що . Зокрема, це означатиме, що якщо Валіант-Вазірані можна буде дерандомізувати, то . Але насправді Валіант-Вазірані говорить, що .NPUPNPRPUPNPRUPNP=UPNPRPPromiseUP

Близько пов'язане помилкове переконання: - це клас мов з недетермінованою верифікатором полі часу, таким чином, що iff є унікальний свідок. Виправлення полягає в тому, що перевіряючий повинен задовольняти семантичну властивість, що у всіх екземплярах є максимум один свідок. Вищеописане визначення без виправлення - це визначення . Але є дуже відрізняється від : наприклад, .UPLxLUSUSUPcoNPUS


що означає "семантична властивість, що у всіх випадках"?
Т ....

1
@ 777: семантична властивість означає: неможливо перевірити безпосередньо із структури (ака синтаксису) самого TM / алгоритму. Ця фраза має більше сенсу, якщо ви продовжите її після коми, тобто: властивість, яка: "у всіх випадках є максимум один свідок"
Джошуа Грохов

-2

Якщо - очікуване значення , ми очікуємо, що насправді відбудеться.X { X = μ }μX{X=μ}


9
Це, звичайно, поширена помилкова думка серед студентів теоретичної інформатики, але це не так часто серед дослідників теоретичних інформатик .
Jeffε
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.