Рандомізовані (поліноміальний час, булевий результат) алгоритми знаходяться в класі обчислювальної складності RP, який є підмножиною NP, де мешкають недетерміновані (поліноміальний час, булевий результат) алгоритми і надмножина P, де детерміновані (поліноміальний час, булевий результат) алгоритми проживають.
Підмножина складність полягає в тому, щоб зменшити проблеми в одному наборі до іншого. Таким чином, RP ⊆ NP не виключає можливості рандомізованих алгоритмів, які також є недетермінованими, оскільки, безумовно, супермножина містить підмножину. Підмножина означає, що кожен алгоритм RP (або будь-який алгоритм, повний RP) може бути зведений до деякого алгоритму NP (або будь-якого алгоритму, повного NP). P - це підмножина RP, оскільки кожна проблема в P може бути зведена до проблеми в RP, де кількість неконтрольованої ентропії дорівнює 0.
Тангенціально це аналогічно тому, як кожна проблема в NC (паралельних обчисленнях) може бути зведена до задачі в P шляхом імітації паралельних обчислень в редукції до серійної задачі в P, але ще не доведено, що зворотна правда, тобто що кожна проблема в P може бути зведена до проблеми в NC, а також не доведена неправда, тобто неправдоподібний доказ того, що P-повна проблема не зводиться до проблеми в NC. Можливо, є проблеми, які за своєю суттю є послідовними і не можуть бути обчислені паралельно, але довести, що довести P ≠ NC видається неправдоподібним (з причин, занадто дотичних для обговорення у цій відповіді).
Більш загально (тобто не обмежуючись булевими типами результатів), рандомізовані алгоритми відрізняються від детермінованих алгоритмів тим, що частина ентропії є зовнішньою . Випадкові алгоритми відрізняються від недетермінованих алгоритмів, оскільки що ентропія обмежена , і, таким чином, може бути доведено, що рандомізовані (а не недетерміновані) алгоритми завжди припиняються.
Непередбачуваність недетермінованих алгоритмів обумовлена неможливістю перерахувати всі можливі перестановки вхідної ентропії (що призводить до непередбачуваності припинення). Непередбачуваність рандомізованого алгоритму обумовлена нездатністю до контролювся вхідна ентропія (що призводить до непередбачуваності невизначеного результату, хоча швидкість непередбачуваності можна передбачити). Жодне з них не є твердженнями про непередбачуваність правильної відповіді на проблему, але, скоріше, непередбачуваність проявляється відповідно в бічному каналі припинення та невизначеному результаті. Здається, багато читачів плутають непередбачуваність в одній області з непередбачуваністю правильного результату, що є суперечкою, яку я ніколи не писав (переглянути історію редагування).
Важливо зрозуміти, що недетермінізм - це завжди (в будь-якій науці або використанні цього терміна) неможливість перерахувати універсальну (тобто необмежену) ентропію. В той час, як рандомізація стосується доступу до іншого джерела ентропії (в програмах ентропії, відмінних від цього, і, таким чином, не під контролем вхідних змінних), які можуть бути, а можуть і не бути необмеженими.
Наступний коментар я додав нижче найпопулярнішої на даний момент відповіді на іншу тему, яка задає подібне запитання.
Усі науки використовують одне і те ж визначення недетермінізму, уніфікованого щодо поняття безмежної ентропії. Непередбачувані результати в усіх науках обумовлені неможливістю апріорно перерахувати всі можливі результати алгоритму (або системи), оскільки він приймає необмежені стани, тобто клас складності NP. Визначення конкретного вкладу, щоб спостерігати, чи він зупиняється, і зазначаючи, що результат є ідентичним, в інших науках еквівалентно утриманню решти ентропії Всесвіту під час повторення тієї ж зміни стану. Обчислення дозволяє цю ентропійну ізоляцію, в той час як природничі науки цього не роблять.
Додаючи кілька найкращих коментарів, щоб додати роз’яснення моєї точки зору про єдине чітке розмежування між рандомізованим та недетермінованим.
Це дійсно досить елегантно і легко помітити відмінність, як тільки ви все перестанете каламутити, намагаючись описати це з оперативної точки зору, а не з видатної точки зору ентропії.
@reinierpost всі плутають різницю між рандомізованим та недетермінованим. Це призводить до помилок вашого коментаря. Алгоритм реагує на взаємодію вхідної (змінної) ентропії та її вихідного коду (інваріантної) внутрішньої ентропії. Недетермінізм - безмежна ентропія. Інваріантна ентропія може бути навіть внутрішньо необмеженою, наприклад розширенням цифр π . Рандомізована деяка частина ентропії не пов'язана з входом, як визначено (тобто вона може надходити від системного виклику до /dev/random
або модельованої випадковості, наприклад, NFA або PRNG).
.
Формальне визначення @Raphael недетермінованого кінцевого автомати (NFA) - це кінцева ентропія введення (дані: 5-кортеж). Таким чином, кожна NFA може працювати на детермінованій машині Тьюрінга, тобто не вимагає недетермінованої машини Тьюрінга. Таким чином, NFA не входять до класу недетермінованих проблем. Поняття "недетермінізм" в NFA полягає в тому, що його детермінізм (хоча він чітко присутній, оскільки кожен NFA може бути перетворений в DFA) не розширюється явно - не те саме, що недетермінізм обчислень
.
@ Рафаель заявлений "недетермінізм" у НФА - це насправді випадковість, це сенс мого визначення різниці між випадковістю та недетермінізмом. Моє визначення полягає в тому, що випадковість - це частина ентропії, яка не перебуває під контролем, знаннями (або бажаним невиразним розширенням у випадку NFA) введення в програму чи функцію. Тоді як справжній недетермінізм - це неможливість пізнати ентропію в будь-якому випадку, оскільки вона не є необмеженою. Саме це відрізняло рандомізовану від недетермінізму. Отже, NFA має бути прикладом першого, а не останнього, як ви заявляли.
.
@ Рафаель, як я вже пояснив, поняття недетермінізму в НФА поєднує недетерміновану з кінцевою ентропією. Таким чином, недетермінізм - це локальне поняття не розширювати детермінізм як форму стиснення чи зручності, тому ми не вважаємо, що НФА не є детермінованими, скоріше вони мають вигляд випадковості до оракула, який не бажає обчислювати детерміновану експансію. Але це все міраж, оскільки це називається детерміновано розгорнутим bcz, ентропія не є необмеженою, тобто кінцевою.
Словники - це інструменти. Навчіться ними користуватися.
випадковий прикметник
Статистика. або характеризує процес вибору, в якому кожен елемент набору має рівну ймовірність вибору.
буття або відношення до набору або до елемента множини, кожен з елементів якого має рівну ймовірність виникнення
Таким чином, рандомізація вимагає лише, щоб частина вхідної ентропії була неправдоподібною, що, таким чином, узгоджується з моїм визначенням, що частина вхідної ентропії не контролюється абонентом функції. Зауважте, що рандомізація не вимагає, щоб вхідна ентропія була невизначеною, WT для припинення.
В інформатиці детермінований алгоритм - це алгоритм, який, даючи певний вхід, завжди буде давати однаковий вихід, при цьому машина, що лежить в основі, завжди проходить через ту саму послідовність станів.
Формально детермінований алгоритм обчислює математичну функцію; функція має унікальне значення для будь-якого вводу в своїй області, а алгоритм - це процес, який виробляє саме це значення як вихід.
Детерміновані алгоритми можна визначити за допомогою машини машини: стан описує, що машина робить у певний момент часу. Державні машини дискретно переходять з одного стану в інший. Одразу після того, як ми введемо вхід, машина знаходиться в початковому стані або стартовому стані. Якщо машина детермінована, це означає, що з цього моменту її поточний стан визначає, яким буде її наступний стан; її перебіг через набір станів зумовлений. Зауважте, що машина може бути детермінованою і все ще ніколи не зупинятись і не закінчувати, а тому не дає результату.
Отже, це говорить нам про те, що детерміновані алгоритми повинні повністю визначатися станом вхідної функції, тобто ми повинні бути в змозі довести, що функція припиняється (або не припиняється) і що не можна визначити. Незважаючи на заплутану спробу Вікіпедії описати недетерміновану, єдиною антитезою до детермінованих, як визначено у Вікіпедії, є алгоритми, стан вхідних даних (ентропія) не визначений. І єдиний спосіб, коли вхідний стан може бути неправильно визначений, - це коли він не є обмеженим (таким чином, його не можна детерміновано попередньо проаналізувати). Саме це відрізняє недетерміновану машину Тьюрінга (і багато реальних програм, які написані загальними мовами Тюрінга, такими як C, Java, Javascript, ML та ін.) Від детермінованих ТМ та мов програмування, таких як HTML, формули електронних таблиць, Кок, Епіграма,
У теорії складності обчислювальної техніки недетерміновані алгоритми - це ті, що на кожному можливому кроці можуть дозволити багаторазове продовження (уявіть, що людина йде по лісі стежкою, і кожен раз, коли він крокує далі, він повинен вибрати яку вилку в дорозі, яку він бажає брати). Ці алгоритми не знаходять рішення для кожного можливого обчислювального шляху; однак вони гарантовано знайдуть правильне рішення для якоїсь стежки (тобто людина, що проходить лісом, може знайти свою каюту лише у тому випадку, якщо він підбере якусь комбінацію «правильних» стежок). Вибір можна трактувати як здогади в процесі пошуку.
Вікіпедія та інші намагаються поєднати рандомізацію з недетермінізмом, але який сенс мати ці два поняття, якщо ви їх красномовно не розрізняєте?
Ясно детермінізм - це здатність визначати. Ясна рандомізація полягає в тому, щоб зробити деяку ентропію однозначною.
Включення випадкової ентропії в стан алгоритму не обов'язково робить її невизначеною. Наприклад, PRNG може мати необхідний безперечний статистичний розподіл, але також бути повністю детермінованим.
Поєднання ортогональних понять - це те, що у людей низький рівень IQ. Я очікую кращого від цього від цієї громади!