Важность рандомизированных алгоритмов
Опубликовано: 4 Сентября, 2022
Введение:
- Рандомизация является важной концепцией, поэтому алгоритмы рандомизации используются в различных областях, таких как теория чисел, вычислительная геометрия, теория графов и распределенные вычисления.
- Входные данные для рандомизированного алгоритма аналогичны входным данным для детерминированных алгоритмов, наряду с последовательностью случайных битов, которые могут использоваться алгоритмом для осуществления случайного выбора.
- Другими словами, рандомизированный алгоритм — это алгоритм, поведение которого зависит от входных данных, подобно детерминированному алгоритму, и случайный выбор осуществляется как часть его логики.
- В результате алгоритм дает разные результаты даже для одного и того же входа.
- Другими словами, алгоритм демонстрирует случайность; следовательно, его время выполнения часто объясняется случайной величиной.
Преимущества:
- Рандомизированные алгоритмы известны своей простотой.
- Любой детерминированный алгоритм может быть легко преобразован в рандомизированный алгоритм. Эти алгоритмы очень просты для понимания и реализации.
- Рандомизированные алгоритмы очень эффективны.
- Они используют мало времени и места для выполнения по сравнению с любыми детерминированными алгоритмами.
- Рандомизированные алгоритмы демонстрируют лучшие асимптотические оценки по сравнению с детерминированными алгоритмами.
- Другими словами, сложность алгоритма рандомизированных алгоритмов лучше, чем у большинства детерминированных алгоритмов.
- Надежность является важным вопросом во многих критических приложениях, поскольку не все рандомизированные алгоритмы всегда дают правильные ответы.
- Кроме того, многие рандомизированные алгоритмы могут не завершаться.
- Следовательно, надежность является важной проблемой, с которой необходимо иметь дело.
- Качество рандомизированных алгоритмов зависит от качества генератора случайных чисел, используемого как часть алгоритма.
- В отличие от других парадигм проектирования, рандомизированный алгоритм не использует единый принцип проектирования.
- Вместо этого следует рассматривать рандомизированные алгоритмы как алгоритмы, разработанные с использованием набора принципов.
- Вместо этого следует рассматривать рандомизированные алгоритмы как алгоритмы, разработанные с использованием набора принципов.
Некоторые принципы проектирования перечислены в следующих подразделах:
Концепция свидетеля :
- Этот принцип включает в себя вопрос проверки того, обладает ли данный вход свойством X или нет.
- Он устанавливается путем нахождения определенного объекта, называемого свидетелем или сертификатом.
- Свидетель идентифицируется, чтобы доказать тот факт, что входные данные действительно обладают желаемым свойством X.
- Проведя меньше испытаний, можно выяснить, действительно ли присутствовало имущество.
- Присутствие свидетеля является убедительным доказательством собственности X, основанным на отсутствии свидетелей. Этот принцип иллюстрируется на примере проверки простоты.
Отпечатки пальцев :
- По определению отпечаток пальца — это более короткое сообщение, представляющее более крупный объект.
- Отпечатки пальцев — это метод, при котором сравнивают два больших объекта, А и В, только путем сравнения их соответствующих коротких отпечатков пальцев.
- Если два отпечатка пальцев не совпадают, то объекты A и B различны.
- Однако если отпечатки пальцев совпадают, то есть веские косвенные доказательства того, что оба объекта одинаковы.
Проверка личности :
- Предположим, что задано алгебраическое выражение, и задача состоит в том, чтобы проверить, является ли выражение равным нулю или нет.
- Принцип проверки тождеств состоит в том, чтобы подставить случайные величины данного алгебраического уравнения и проверить, является ли выражение равным нулю.
- Если оно не равно нулю, то данное выражение не является тождеством.
- В противном случае есть веские косвенные доказательства того, что выражение тождественно равно нулю.
Случайная выборка и заказ :
- Производительность алгоритма иногда улучшается за счет рандомизации входного распределения или порядка.
- Можно заметить, что при определенном порядке ввода производительность алгоритма может быть выше или просто приемлемой.
- Здесь рандомизация приводит к рандомизированному упорядочению, разбиению и выборке.
- Кроме того, рандомизированные алгоритмы собирают информацию о входных распределениях, используя случайные выборки. Это иллюстрируется проблемой найма.
Обездвиживание противника :
- Рандомизированный алгоритм можно рассматривать как игру между человеком и противником, то есть человеком, предлагающим алгоритм, и противником, который пытается помешать алгоритму, создавая подходящие входные данные, чтобы алгоритм занимал больше времени.
- Другими словами, рандомизированный алгоритм можно рассматривать как выбор алгоритма из большого набора детерминированных алгоритмов, и этот выбор можно рассматривать как сценарий, в котором все усложняется случайным входом, что усложняет задачу.