Вступ
З перших днів інформатики — галузі, відомої своїм методичним підходом до вирішення проблем — випадковість відігравала важливу роль. Перша програма, яка працювала на першому у світі електронному комп’ютері загального призначення, використовувала випадковість для моделювання ядерних процесів. З тих пір подібні підходи використовувалися в астрофізиці, кліматології та економіці. У всіх цих випадках підключення випадкові числа на певних етапах алгоритму допомагає дослідникам пояснити невизначеність щодо багатьох способів, якими можуть відбуватися складні процеси.
Але додавання випадковості в алгоритм також може допомогти вам обчислити правильну відповідь на однозначні запитання «вірно чи хибно». «Ти просто скажеш: «Добре, дозволь мені кинути, дозволь мені не пробувати, дозволь мені просто вибрати щось навмання», — сказав Ерік Блейс, фахівець з інформатики в Університеті Ватерлоо. «Для надто великої кількості проблем це в кінцевому підсумку є успішним підходом».
Припустімо, ви хочете визначити, чи є дане число простим (ділиться лише на 1 і на себе) чи складеним (також ділиться на інші цілі числа). Ви можете просто спробувати розділити його на всі можливі множники, але для великих чисел цей метод «грубої сили» та інші алгоритми розкладання на множники є нестерпно повільними. І якщо число виявиться складеним, алгоритми розкладу на множники повідомлять вам значення його дільників — більше інформації, ніж ви просили. Якщо ви дбаєте лише про «первинність» числа, чи є більш ефективний алгоритм?
Є, якщо ви використовуєте випадковість. Основна ідея сягає результатів французького математика 17-го століття П’єра де Ферма, відомого як його “маленька теорема.” Ферма розглянув два цілих числа — назвемо їх N та x. Він довів, що якщо N тоді є простим числом xN - x завжди кратне N, незалежно від значення x. Еквівалентно, якщо xN - x не є кратним N, То N не може бути простим числом. Але зворотне твердження не завжди вірне: якщо xN - x є кратним числом N, То N зазвичай, але не завжди простий.
Щоб перетворити маленьку теорему Ферма на перевірку простоти, просто візьміть N що вас цікавить, вибирайте x навмання та вставте два числа xN - x. Якщо результат не кратний N, тоді ви готові: ви це знаєте N однозначно є складовим. Якщо результат кратний N, То N ймовірно простий. Тепер виберіть інше навмання x і спробуйте ще раз. У більшості випадків, після кількох десятків спроб, ви можете це зробити з майже впевненістю N є простим числом. «Ви робите це невелику кількість разів, — сказав Блейс, — і чомусь зараз ваша ймовірність помилки менша, ніж ймовірність того, що астероїд зіткнеться з Землею до моменту, коли ви подивитесь на відповідь».
Перший первинність Тести використання рандомізованих алгоритмів (на основі уточнень маленької теореми Ферма) започаткувало нову еру. Проблему за проблемою виявилося набагато легше вирішити за допомогою випадковості, ніж за допомогою невипадкових або детермінованих алгоритмів. Головне полягало в тому, щоб переосмислити кожну проблему як таку, яку можна було швидко вирішити, враховуючи відповідне значення для деякого числа x, а потім доведіть, що будь-який x зробив би. Рішення працює, навіть якщо дослідники не мають уявлення, як визначити, чи є якийсь конкретний вибір хорошим. Математики жартували, що цей незвичайний виклик схожий на знаходження сіна в стозі.
Але ці успіхи змусили дослідників задуматися, чому випадковість має допомагати в таких проблемах, як перевірка простоти, яка пов’язана з пошуком прихованих, невипадкових закономірностей. «У цьому є щось трохи парадоксальне», — сказав Рахул Сантанам, фахівець з інформатики в Оксфордському університеті. «Чиста випадковість допомагає вам зрозуміти структуру, яка вирішує проблему».
У 1994 році комп'ютерні вчені Ноам Нісан і Аві Вігдерсон допоміг вирішити цю плутанину, продемонструвавши, що випадковість, хоч і корисна, ймовірно, не потрібна. Вони доведений що одна з двох речей має бути правдою: або всі проблеми, які можна ефективно розв’язати за допомогою випадковості, також мають швидкі детерміновані алгоритми, або багато загальновідомо складних проблем таємно легкі. Комп'ютерники вважають другу можливість дуже малоймовірною.
Насправді комп’ютерним спеціалістам часто легше розробити детермінований алгоритм, починаючи з рандомізованої версії, а потім «дерандомізуючи» її. «Отримавши це, я раптом бачу дуже очевидний спосіб зробити його детермінованим», — сказав Елі Апфал, фахівець з інформатики в Університеті Брауна. «Але якби я не думав про це у випадковому порядку як про ймовірнісне запитання, я б, ймовірно, не думав про це».
Майже через 30 років після знакового доказу Нісана та Віґдерсона рандомізовані алгоритми залишаються такими ж популярними, як і раніше, оскільки дерандомізація може бути складною, а детерміновані алгоритми часто ефективні лише в принципі. Лише у 2002 році троє дослідників знайшли спосіб дерандомізувати тестування на первинність, і на практиці їх алгоритм набагато повільніше, ніж найкращі рандомізовані алгоритми. Для інших проблем важко навіть зрозуміти, з чого почати — найвідоміший алгоритм має проблему курки та яйця, від якої можна втекти лише випадковим чином.
Це стосується нещодавнього прориву в теорії графів. Торік розробили троє комп’ютерників швидкий алгоритм для пошуку найкоротшого шляху через граф — мережу вузлів, з’єднаних відрізками ліній — це працює навіть тоді, коли деякі сегменти віднімають із загальної довжини шляху, а не додають її. Їхній алгоритм передбачав перетворення графа на простіший шляхом видалення певних сегментів, розв’язання задачі для спрощеного графіка, а потім обліку видалених сегментів. Вони могли довести, що алгоритм працюватиме швидко, якщо жоден найкоротший шлях не проходитиме через занадто багато видалених сегментів — інакше останній крок займе надто багато часу.
Але як вирішити, які сегменти видалити в першу чергу? Не просто важко знайти ідеальний набір сегментів детерміновано — це неможливо. Набір залежить від того, які шляхи є найкоротшими, саме цю проблему намагалися вирішити троє дослідників. Але навіть якщо вони не змогли знайти найкращий набір сегментів для видалення, вони змогли довести, що більшість випадкових виборів були б досить хорошими, і цього було достатньо, щоб розірвати цикл самопосилання. У рідкісних випадках, коли алгоритм робить невдалий вибір і загрузає на останньому кроці, вони можуть просто зупинитися та запустити його знову.
«Випадковість — це в основному спосіб переконатися, що щось правдиве щодо оптимального рішення, не знаючи оптимального рішення», — сказав Аарон Бернштейн, один із авторів нового алгоритму.
Випадковість знайшла безліч інших застосувань в інформатиці, від криптографії до теорії ігор і машинного навчання. Швидше за все, воно залишиться тут.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: https://www.quantamagazine.org/how-randomness-improves-algorithms-20230403/
- :є
- ][стор
- $UP
- 1
- 1994
- a
- МЕНЮ
- про це
- AC
- рахунки
- бухгалтерський облік
- після
- алгоритм
- алгоритми
- ВСІ
- завжди
- та
- Інший
- відповідь
- підхід
- підходи
- відповідний
- ЕСТЬ
- AS
- Астероїд
- At
- authors
- назад
- заснований
- основний
- В основному
- BE
- оскільки
- починати
- буття
- КРАЩЕ
- між
- Біт
- заболочений
- Перерва
- прорив
- by
- обчислювати
- call
- CAN
- який
- випадок
- випадків
- певний
- впевненість
- виклик
- шанси
- вибір
- вибір
- Вибирати
- клімат
- комплекс
- комп'ютер
- Інформатика
- укладає
- замішання
- підключений
- Вважати
- вважається
- може
- криптографія
- Днів
- вирішувати
- безумовно
- демонстрація
- залежить
- Визначати
- розвивати
- розвиненою
- важкий
- вниз
- дюжина
- кожен
- земля
- легше
- Економіка
- ефективний
- продуктивно
- або
- Electronic
- закінчується
- досить
- забезпечувати
- Епоха
- помилка
- Навіть
- НІКОЛИ
- фактори
- ШВИДКО
- кілька
- поле
- знайти
- виявлення
- Перший
- для
- знайдений
- французька
- від
- гра
- Головна мета
- отримати
- Давати
- даний
- йде
- добре
- графік
- обробляти
- Жорсткий
- Мати
- має
- допомога
- допоміг
- допомогу
- допомагає
- тут
- прихований
- удар
- Як
- How To
- HTTPS
- i
- ідея
- ідеальний
- важливо
- неможливе
- in
- інформація
- зацікавлений
- залучений
- IT
- ЙОГО
- сам
- JPG
- ключ
- Знати
- Знання
- відомий
- орієнтир
- великий
- останній
- Минулого року
- вивчення
- довжина
- як
- Лінія
- трохи
- Довго
- подивитися
- машина
- навчання за допомогою машини
- made
- зробити
- РОБОТИ
- багато
- математики
- метод
- методичний
- більше
- більш ефективний
- найбільш
- множинний
- Близько
- необхідно
- Нові
- вузли
- ядерний
- номер
- номера
- Очевидний
- of
- on
- ONE
- оптимальний
- Інше
- інакше
- Оксфорд
- Пройшов
- шлях
- моделі
- вибирати
- П'єр
- місце
- plato
- Інформація про дані Платона
- PlatoData
- Play
- грав
- штекер
- популярний
- можливість
- це можливо
- практика
- досить
- Prime
- принцип
- ймовірно
- Проблема
- вирішення проблем
- проблеми
- процеси
- програма
- доказ
- Доведіть
- доведений
- Квантамагазин
- питання
- питань
- швидко
- випадковий
- Рандомізований
- випадковість
- РІДНІ
- швидше
- останній
- Незалежно
- залишатися
- Дослідники
- результат
- Роль
- прогін
- Зазначений
- наука
- вчений
- Вчені
- другий
- сегменти
- комплект
- Повинен
- siam
- аналогічний
- спрощений
- просто
- з
- сповільнювати
- невеликий
- рішення
- ВИРІШИТИ
- Вирішує
- Розв’язування
- деякі
- що в сім'ї щось
- конкретний
- Починаючи
- Заява
- залишатися
- Крок
- заходи
- Стоп
- структура
- успішний
- Приймати
- тест
- Тестування
- Що
- Команда
- Графік
- їх
- Їх
- Ці
- речі
- три
- через
- times
- до
- занадто
- Усього:
- перетворення
- правда
- ПЕРЕГЛЯД
- Опинився
- Невизначеність
- університет
- Оксфордський університет
- використання
- зазвичай
- значення
- Цінності
- версія
- шлях..
- способи
- Web
- Чи
- який
- з
- без
- працює
- світі
- б
- рік
- років
- Ти
- вашу
- зефірнет