Чому поліноміальний час називають "ефективним"?


50

Чому в інформатиці будь-яка складність, яка є максимум багаточлена, вважається ефективною?

Для будь-якого практичного застосування (a) алгоритми зі складністю набагато швидші, ніж алгоритми, які працюють у часі, скажімо, , але перший вважається неефективним, тоді як останній є ефективним. Де логіка ?!nlognn80

(а) Припустимо, наприклад, кількість атомів у Всесвіті приблизно .1080


3
Я не впевнений, що згоден з вашою умовою. Я думаю, що більшість людей вважають досить неефективним (хоча, звичайно, це залежить і від констант, і від проблеми, яка вирішується). n80
sepp2k

16
Я вважаю для будь-якого дуже неефективним. У вас є приклад асимптотичного аналізу, прийнятого до необґрунтованої крайності. Не існує природних алгоритмів (про які я знаю) з пробігом часу. Однак існують природні алгоритми з час виконання деяких проблем і основні питання теорії складності щодо того, чи існує поліноміальний алгоритм таких проблем. ncc>3n802n
Джо

5
Я думаю, що це питання не слід оскаржувати, оскільки люди не згодні з цим припущенням (припускаючи, що це було причиною). Вхідні та нижчі коментарі повинні бути вказівкою якості питання, а не їх змістом (за умови, що вони на тему).
Олексій десять Бринк

8
@RanG. і повна цитата: (наголос мій): теза Кобхема стверджує, що Р - клас обчислювальних задач, які "ефективно вирішуються" або "простежуються"; на практиці деякі проблеми, невідомі в P, мають практичні рішення, а деякі, які є в P, не мають, але це корисне правило.
Джо

6
У літературі (теоретичної CS) слово "ефективний" є синонімом до "многочлен". Можливо, це відрізняється від інших (більш практичних) підполів.
Ран Г.

Відповіді:


32

Інший погляд на "ефективність" полягає в тому, що поліноміальний час дозволяє нам визначити поняття "ефективність", яке не залежить від моделей машин. Зокрема, є варіант тези Церкви-Тьюрінга під назвою "ефективна дисертація Церкви-Тьюрінга", який говорить про те, що будь-яка проблема, яка працює в поліномі на часі за типовою машинною моделлю, також буде запускатись у поліноміальний час на іншій не менш потужній моделі машини.

Це більш слабке твердження до загальної КТ тези, і воно «на зразок» порушене як рандомізованими, так і квантовими алгоритмами, але не було порушено в сенсі того, що можна було б вирішити важку задачу в полі-часі шляхом зміни модель машини.

Це в кінцевому підсумку причина того, що поліноміальний час є популярним поняттям в теоріїCS. Однак більшість людей розуміє, що це не відображає "практичної ефективності". Докладніше про це чудово прочитане повідомлення Діка Ліптона про " галактичні алгоритми ".


15
Друга, прагматична причина вибору Р - це те, що він закритий під додаванням, множенням і експоненціацією константами. Це зручно при складанні алгоритмів / машин; якщо будівельні блоки ефективні, такий результат.
Рафаель

Мені просто цікаво, чи хтось знає, чи термін «галактичний алгоритм» колись застосовується на практиці?
Хуан Бермеджо Вега

Це не такий старий термін. Але я почав його використовувати :)
Суреш

24

Теоретично ми піклуємося про асимптотичну поведінку та описуємо класи проблем та алгоритми на основі їх асимптотичної поведінки. Ключове слово тут асимптотичне . швидше, ніж асимптотично, тобто, починаючи з (що, до речі, називається: septillion!), Припускаючи одиничні постійні коефіцієнти, а не низькі -порядкові умови.O(n80)O(nlogn)n>1208925819614629174706176

На практиці, однак, приділяється увага як показникам, так і постійним коефіцієнтам. На практиці розміри введення не можуть зростати до septillions, тому так, для всіх цілей буде кращим вибором . Інші фактори також мають значення в практиці: паралелізм, структури доступу до пам'яті (наприклад, локальність).nlognn80

Наприклад, більшість бібліотек для цілого множення, наприклад, GMP буде реалізовувати суміш алгоритмів, і вибирає нижчий алгоритм на основі вхідного розміру, вибираючи практично переважні алгоритми на основі вхідного розміру, хоча ці алгоритми можуть бути асимптотично неповноцінними. Деякі асимптотично «неповноцінні» алгоритми будуть швидшими за певних розмірів вхідних даних і будуть обрані за оптимальні алгоритми.

Інший приклад, відомий найшвидший алгоритм множення матриць - алгоритм Копперсміта-Винограда, який працює в (є останні вдосконалення; тут докладніше ). Однак він ніколи не був реалізований, оскільки (1) важко (2) постійний коефіцієнт є гігантським. Усі пакети лінійних алгебр використовують менш оптимальний Strassen .O(n2.3737)

Теорія TL; DR піклується про асимптотичну поведінку, щоб порівняти алгоритми, оскільки межа розміру вводу переходить до довільно великих чисел.


Вони "вибирають нижчий алгоритм"? Ви не маєте на увазі "вибрати найкращий алгоритм"?
бітмаска

Ще одним хорошим прикладом є сортування вставки проти швидкого сортування. Сортування вставки - а швидке сортування - . Однак на невеликих входах, скажімо, на 10 елементів, сортування вставки приблизно вдвічі швидше швидкого сортування! Фактично, оптимізований швидкий сортування використовує сортування вставки для малих масивів. Θ(N2)O(nlgn)
Роберт С. Барнс

Чому ми не вважаємо асимптотично кубічні алгоритми «поганими», а асимптотично квадратичні алгоритми «поганими»? Ця відповідь ставить питання.
djechlin

2

Ця відповідь розгляне контекст "більшої картини" вашого питання. Інформатика є насправді відносно молодою і дещо відкритою наукою, і вона ще не має чудових або навіть хороших відповідей на деякі основні та фундаментальні питання. Основний питання "що ефективно обчислюється" або чітко або грубо формалізовано в CS (залежно від думки) як відома проблема P vs NP (або тісно пов'язана проблема P vs Exptime), і вона все ще відкрита після більш ніж чотирьох десятиліть спочатку був представлений Куком / Левіном ~ 1970 р. та інтенсивна робота найбільших у світі комп'ютерних науковців (і багато математиків також зацікавлені в проблемі як фундаментальній).

Інакше кажучи, навіть із приблизним визначенням поняття "ефективний" як P час, і одна з найцінніших наукових нагород, а саме - 1 мільйон доларів США, присвячена проблемі протягом понад 10 років, комп'ютерна наука навіть не може довести, що деякі проблеми (близькі до ця межа) повинна або не повинна мати ефективні алгоритми (Ptime). Тому точне визначення поняття "ефективний", точніший за час Р, наразі не є необхідним або навіть можливим . Якщо / коли гіпотеза Р проти НП буде врегульована так чи інакше, можливе більш суворе визначення "ефективного" або, імовірно, можливе.

Більше того, можна відчути, що визначення Ptime визначення "ефективного" може бути навіть трохи "неохайним", і більшість комп'ютерних вчених, напевно, погодиться, і майже всі вони вважають, що гіпотеза P проти NP має надзвичайно важливе значення для вирішення, щоб справа в тому, що вони можуть навіть розцінювати це твердження або спостереження як тривіальне .... іншими словами, так би мовити, його незавершеною роботою / ми над цим працюємо . (насправді комп'ютерні вчені навіть заходять на жарт, навіть звичайно називають розрив та відсутність прогресу / остаточного розмежування як бентежним .)

Насправді існує навіть тісно пов'язана / значно сильніша гіпотеза, ніж Р проти НП, а саме НП проти П / полі, яка також не може бути вирішена інформатикою в даний час. він здогадується, що задачі часу NP не можуть бути вирішені жодними схемами "розміру P", тобто навіть не обмежуються лише тими схемами, які можуть бути створені алгоритмами / машинами Тьюрінга.

Що стосується того, наскільки важким може бути P проти NP - є певна причина, щоб вважати, що це може бути принаймні настільки ж важко, як і дуже стара гіпотеза Рімана з математики (тепер 1,5 століття ), оскільки обидва отримали однакову нагороду в розмірі 1 млн доларів за понад десятиліття, і жодне ще не вирішено / перше.

Інакше кажучи, точно визначити, які алгоритми справді "ефективні", насправді є однією з найважливіших та найважчих існуючих відкритих проблем теоретичної науки та математики .

Насправді питання "що ефективно обчислюється" насправді є ще більш тонким, оскільки існує варіант тези Церкви-Тьюрінга під назвою теза ПТ-часу, і невідомо, чи насправді її квантові обчислення порушують . У результаті прориву Шора P-time QM факторинг вважається драматичним поворотом у цьому дослідженні. Іншими словами, проблема того, що ефективно обчислюється, насправді правдоподібно спускається до глибоких принципів фізики і стосується того, чи можуть квантові обчислення обчислити ефективніше, ніж класичні обчислення, що також є загалом відкритою проблемою в теоретичній ЦС та передовій фізиці.

Отже, можна навіть додати, що P vs NP та питання ефективного обчислення можуть мати вирішальне або принципове значення для додатку до CS та математики - фізики .

[1] Проблема П проти НП, Вікіпедія

[2] Призові проблеми тисячоліття

[3] P / Poly клас, вікіпедія

[4] Алгоритм Шор


виправлення: P vs Pspace, а не P vs ExpTime
vzn

-2

Алгоритми поліноміального часу вважаються ефективними лише порівняно з найважчим неполіномним часом, особливо так званим NP-Complete. Дивіться зображення: схема Ейлера для P, NP, NP-комплектації та NP-жорсткого набору проблем .


1
"порівняно з найскладнішим неполіномічним часом, особливо з так званим NP-завершеним" - проблеми, пов'язані з NP, невідомі, як не многочлени, і вони, звичайно, не найскладніші.
Рафаель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.