2010-12-12 10 views
2

さまざまなアルゴリズムをどのように分類できますか?さまざまなアルゴリズムをどのように分類できますか?

Divide & Conquer Algorithms、Deterministic Algorithms、Probabilistic Algorithms、In-place Algorithmsなどがあります。

どのような種類の分類階層を構成していますか?

ウェブリンクを私に提供してください。

+1

分類は必要ありません。除算&征服アルゴリズムは、決定論的または確率的のいずれかです。 – unsym

答えて

0

アルゴリズムの分類体系の膨大な数がありますが、他よりもいくつかのより便利な(非常に愚かなスキームの例については、アルゴリズム記述のチェックサムによって分類を検討!)、これは結果でありますアルゴリズムの基本的な性質ではなく、われわれがそれらについて知っているものの分類である。知識を分類することは非常に困難であり、多くの重複する分類を生成する傾向があります。そのような分類を構築する全分野をオントロジーと呼ぶ。 (「オントロジー」という言葉は、OWLのような言語のコンピュータで読める分類スキームにも付属しています。)

したがって、分類の有用な階層があるかどうかは疑問です。アルゴリズムに関しては階層構造になっています。私は容疑者答えが "本当に"ではないと、物事を分類する際に柔軟にすることを強くお勧めします。

+0

したがって、私はサイードの答えが似ていて、あなたが質問した質問に対する「適切な」答えではないにもかかわらず、それを賞賛することを強くお勧めします。 –

1

目的に応じてアルゴリズムを自由に分類できます。輪郭のデザインに基づいてアルゴリズムを分類する、あなたが提案する輪郭の分類はOKです。もう1つのアプローチは、ソート、検索、乗算などを目的別に分類することです。別のアプローチは、複雑さによってそれらを分類することです:O(1)、O(n)、O(log n)、O(n )などです。あなたが分類したい個々のアルゴリズムは、これらの分類スキームのいずれかに適合します。

ソート/ランダム入力、ソート/ほぼソートされた入力、並べ替え/ほぼソートされていない入力の場合、階層分類スキームを定義することができます。

しかし、アルゴリズムの分類方法は1つではありませんが、あなたが選んだものは、それを使って何をしようとしているのかによって異なります。

ウェブリンクに関しては、私はそれらを他人に任せます。

+0

すべての適切な分類の最上位には、* bogosort *と* non-bogosort *アルゴリズムカテゴリの区別が必要です。 –

2

アルゴリズムの普遍的な分類はありません。概して、それは設計パターンに従って、アルゴリズムが解決する問題または複雑さに従うことができる。これらの分類を組み合わせて階層を作成できます。例えば、ソートアルゴリズムは、設計パターンまたは複雑さに基づいてグループに細分することができる。

いくつかの詳細はここで与えられている - http://www.scriptol.com/programming/algorithms-classification.php

6

ありアルゴリズムのためのいくつかの異なる分類があります:彼らは問題を解決する方法は

古典アルゴリズム

は、リスト内の最大値を見つけるようなバイナリサーチ
  • Greedy Algorithmsよう

    しかし、このアルゴリズムは、彼らが同じ結果(決定論)、または異なる結果が(非決定論を取得する特定の入力の各実行のための決定論的または非決定論的な手段です)。

    また、このアルゴリズムでは、さまざまな問題が多すぎます。各問題は、すべてのアルゴリズムのハイブリッドを使用しています。例えば、ユークリッドグラフのTSPは、dfsとグラフアルゴリズムを使用して近似できます。 ATSP(非対称グラフのTSP)は、線形計画法といくつかの事前グラフアルゴリズムの組み合わせによって近似することができます。

    しかし、そこに問題のために有名な分類であり、我々は時間の複雑さにあるアルゴリズムにそれを拡張することができます(また、メモリが、この日の記憶は、時間などの問題ではありません):

    • P
    • NP
    • NPC
    • NPC強い
    • NPハード
    • 共同NP
    • ...
  • 関連する問題