Разница между детерминированными и недетерминированными алгоритмами
В детерминированном алгоритме для данного конкретного входа компьютер всегда будет производить один и тот же результат, проходя через одни и те же состояния, но в случае недетерминированного алгоритма для одного и того же входа компилятор может выдавать разные выходные данные в разных прогонах. Фактически, недетерминированные алгоритмы не могут решить проблему за полиномиальное время и не могут определить, каков следующий шаг. Недетерминированные алгоритмы могут демонстрировать различное поведение для одного и того же ввода при разном выполнении, и в этом есть некоторая степень случайности.
Для реализации недетерминированного алгоритма у нас есть несколько языков, таких как Prolog, но в них нет стандартных операторов языка программирования, и эти операторы не являются частью каких-либо стандартных языков программирования.
Некоторые термины, относящиеся к недетерминированному алгоритму, определены ниже :
- choice (X): случайным образом выбирает любое значение из множества X.
- failure (): обозначает неудачное решение.
- success (): решение успешно, и текущий поток завершается.
Пример :
Problem Statement : Search an element x on A[1:n] where n>=1, on successful search return j if a[j] is equals to x otherwise return 0.
Non-deterministic Algorithm for this problem :
1.j= choice(a, n) 2.if(A[j]==x) then { write(j); success(); } 3.write(0); failure();
Детерминированный алгоритм | Недетерминированный алгоритм |
---|---|
Для определенного входа компьютер всегда будет выдавать один и тот же результат. | Для определенного входа компьютер выдаст разные выходные данные при разном выполнении. |
Может решить задачу за полиномиальное время. | Не могу решить проблему за полиномиальное время. |
Может определить следующий шаг выполнения. | Невозможно определить следующий шаг выполнения из-за более чем одного пути, по которому может идти алгоритм. |
Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.