プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

決定論的アルゴリズムと非決定論的アルゴリズムの違い


プログラミングのコンテキストでは、アルゴリズムは、特定のタスクを実行し、目的の出力を実現するための、明確に定義された一連の命令です。ここでは、定義された命令のセットを言います。これは、ユーザーが期待どおりに実行された場合に、それらの命令の結果をどこかで知っていることを意味します。

命令の結果に関する知識に基づいて、アルゴリズムには2つのタイプがあります。つまり、決定論的アルゴリズムと非決定論的アルゴリズムです。以下は、両方のアルゴリズムの主な違いです-

>
Sr。いいえ。 キー 決定論的アルゴリズム 非決定論的アルゴリズム
1 定義 すべてのアルゴリズムの結果が一意に定義されるアルゴリズムは、決定論的アルゴリズムとして知られています。言い換えれば、決定論的アルゴリズムは、固定数のステップを実行し、常に同じ結果で受け入れ状態または拒否状態で終了するアルゴリズムであると言えます。
一方、すべてのアルゴリズムの結果が一意に定義されておらず、結果がランダムになる可能性があるアルゴリズムは、非決定論的アルゴリズムとして知られています。
2 実行 決定論的アルゴリズムの実行では、ターゲットマシンは同じ命令を実行し、命令が実行される方法やプロセスに依存しない同じ結果をもたらします。 一方、非決定論的アルゴリズムの場合、各操作を実行するマシンは、後で定義される決定条件に従って、これらの結果のいずれかを選択できます。
3 タイプ 決定論的アルゴリズムの場合の実行と結果に基づいて、マシンが常に同じ出力を提供する特定の入力命令に関して、信頼できるアルゴリズムとしても分類されます。一方、非決定論的アルゴリズムは、特定の入力に対して信頼性の低いアルゴリズムとして分類され、マシンは実行ごとに異なる出力を提供します。
4 実行時間 結果は既知であり、さまざまな実行で一貫しているため、決定論的アルゴリズムは実行に多項式時間を要します。 一方、結果は不明であり、さまざまな実行で一貫性がないため、非決定論的アルゴリズムを多項式時間で実行できませんでした。
5 実行パス 決定論的アルゴリズムでは、アルゴリズムの実行パスはすべての実行で同じです。 一方、非決定論的アルゴリズムの場合、実行のパスはすべての実行のアルゴリズムで同じではなく、実行のために任意のランダムなパスを取る可能性があります。

  1. アルゴリズムとフローチャートの違い

    この投稿では、フローチャートとアルゴリズムの違いを理解しましょう。 アルゴリズム これは、明確に定義された一連のステップとして定義されます。 これらの手順は、手元にある問題を解決する/解決する方法を提供します。 これは体系的で論理的なアプローチであり、手順は段階的に定義されます。 特定の問題の解決策を提供します。 このソリューションはマシンコードに変換され、システムによって実行されて関連する出力が得られます。 多くの単純な操作を組み合わせて、より複雑な操作を形成します。これは、コンピューターによって簡単に実行されます。 アルゴリズムは、自然言語、フローチャートなどを使用して表すことができます

  2. BFSとDFSの違い

    BFSとDFSはグラフ走査アルゴリズムです。 BFS 幅優先探索(BFS)アルゴリズムは、グラフを横方向に移動し、キューを使用して、反復で行き止まりが発生したときに、次の頂点を取得して検索を開始することを忘れないようにします。 DFS 深さ優先探索(DFS)アルゴリズムは、グラフを深さ方向に移動し、スタックを使用して、反復で行き止まりが発生したときに、次の頂点を取得して検索を開始することを忘れないようにします。 以下は、BFSとDFSの重要な違いです。 Sr。いいえ。 キー BFS DFS 1 定義 BFS、幅優先探索の略です。 DFS、