2009-05-18 6 views
18

アルゴリズムとメソッドを区別する方法を教えてください。なぜニュートン法かFord-Faulkerson法アルゴリズムと呼んでいないのですか?適切なアルゴリズムのプロパティとは何ですか?また、アルゴリズムとしてメソッドを修飾するものは何ですか?アルゴリズムとメソッドの相違点

+0

(ソフトウェア)特許の文脈で尋ねていますか? – zvrba

+0

いいえ、単なる一般的な質問です。しかし、特許の文脈でも答えてください。 – unj2

答えて

-1

「が異なる走行時間でいくつかのインプリメンテーションを包含する」ので、CLRSむしろアルゴリズムよりメソッドを呼び出す[PP 651 2 editon]

7

「ニュートンの方法」という用語と「アルゴリズム」という用語との技術的な違いはありません。

EDIT:おそらくPeteはアルゴリズムが終了し、メソッドがそうでないかもしれません(私はKnuthと議論しますか?)しかし、私はそれが大部分の人があなたの使用1つの単語または他の単語の。

+0

あなたはinterchangeblyという用語を使うことを提案していますか?どの方法をアルゴリズムと呼ぶことができますか? – unj2

+0

私はあなたがこれらの種類の数学的方法のどれかを「アルゴリズム」と呼ぶことができ、数学者によって技術的に正しいことと理解されると信じています。 – mquander

+2

これらの用語は、一部の人と互換性があります。*アルゴリズム*を使用すると、有限の手順のシーケンスを参照することができ、気付かず気にもなりません。他の人は気にしますが、私はこれらの用語を同じ意味で使用することをお勧めしません。アルゴリズムをメソッドのサブセットとして扱う方が安全です。そうすれば、とにかく区別しない人だけでなく、誰とでも効果的にコミュニケーションを取ることができます。 –

1

アルゴリズムの原点ドメインだと思います。発明家がコンピュータサイエンスの背景にある場合、彼はアルゴリズムを呼び出すことを好むかもしれません。数学や他の科学分野では、メソッドを呼び出す方が好きかもしれません。

1

あなたが述べている文脈(ニュートンの方法など)では、アルゴリズムとメソッドの間に本質的な違いはありません。どちらも、問題を解決するためのステップごとの手順を設定しています。ニュートンの方法に関するWikipediaの記事では、「アルゴリズムはHouseholderの方法のクラスではじめて、Halleyの方法で成功した」と述べています。最高で境界がぼやけています。

コンピュータサイエンスでは、アルゴリズムはまだ問題を解決するための段階的な方法です(実装に依存しないステップのセット)。メソッドは、一般に、いくつかのタスクを行うクラスまたはオブジェクトに関連付けられたコードのチャンクを指します。潜在的に多くのアルゴリズムを実装できます。

3

私の意見では、方法はアルゴリズムよりも一般的な概念であり、多かれ少なかれ、何かをすることができます。データをファイルに書き込む。イベントや論理的な表現のために起こるべきことについては何でも。また、用語「方法」および「アルゴリズム」の意味は、それらがどのような文脈で使用されているかによって異なる可能性がある。それらは同じことを記述するために使われるかもしれない。

+2

+1:アルゴリズムは「有限」、「確定」、「有効」でなければなりません。ニュートンの方法はこれらすべてを満たす。用語は交換可能です。しかし、私の米国所得税を計算することは明確ではないようです - いくつかの用語は明確に定義されていないようです - したがって、それは適切なアルゴリズムではありません。 –

+0

アルゴリズムが有効でなければならないと私は同意しません。私は本当に悪い性能を持っている私自身のアルゴリズムを構築することができました。その場合にメソッドに変わると言っている場合を除き:) – ralphtheninja

+1

有効とは効率的ではありません。これは、ステップが最終的な状態または目標に向かって進展することを意味します。これは、アルゴリズムが目標に効果的に到達しないナンセンスのステップで埋められていないことを意味します。 –

3

一般的なプログラミングでは、アルゴリズムはタスクが達成されるステップです。 Wikipediaによれば、

アルゴリズムは、命令の有限のシーケンス、しばしば計算及びデータ処理に使用される問題を解決するための明示的な、段階的な手順です。これは正式には、タスクを完了するための明確に定義された命令のリストが、初期状態が与えられると、明確な一連の連続状態を経て、最終的に終了状態で終了するという有効な方法の一種である。ある状態から次の状態への移行は必ずしも確定的ではない。確率的アルゴリズムとして知られるいくつかのアルゴリズムは、ランダム性を組み込んでいる。コンピュータサイエンスの<

、メソッドまたは関数は、プログラムが特定のタスクを実行するためのメソッド/関数が含まれていたクラスで作られているプログラミングオブジェクト指向の哲学の一部です。再度、オブジェクト指向プログラミングでWikipedia

を引用し、本方法は、排他的に(クラスメソッドまたは静的メソッドとも呼ばれる)クラスまたは(インスタンスメソッドと呼ばれる)オブジェクトのいずれかと関連しているサブルーチンです。手続き型プログラミング言語のプロシージャと同様に、メソッドは通常、アクションを実行する一連の文、それらのアクションをカスタマイズするための入力パラメータのセット、および場合によっては何らかの種類の出力値(戻り値)を含みます。メソッドは、オブジェクトまたはクラスに格納されたカプセル化されたデータにアクセスするためのメカニズム(読み取りと書き込みの両方)を提供できます。要するに<

、アルゴリズムは、上の電球をオンとして、我々は何かをれるステップである。

1) 2)フリップスイッチ 3)電子フロー 4を切り替えるウォーク)生成される光

メソッドは実際にはクラス内のアクションを記述します。

+2

私は別の方法を話しています。質問をお読みください。 – unj2

+0

CSでは、アルゴリズムはステップであり、メソッドはアクションを実行する手段です。すべての数式はアルゴリズムであり、何かを見つけたり、何かを行う方法を指示します。実際に実装するためには、プログラム内にメソッドを記述しなければなりません。 – FloppyDisk

22

アルゴリズムは、有限数のステップで終了します。

アルゴリズムの特性のすべてが有限である可能性を除いて手続きは、計算方法と呼ばれることがあります。ユークリッドはもともと、数の最大公約数のアルゴリズムだけでなく、2つの線分の長さの「最大の共通尺度」についても非常に類似した幾何学的構成を提示していました。これは、与えられた長さが比較できない場合に終了しない計算方法です。 - D.Knuth、TAOCP vol 1、基本概念:アルゴリズム

ニュートンラフソン法は、収束の失敗を検出するのではなく、収束することが保証されていません。有限イプシロンで、または有限数のステップの後にコンバージェンスの検出と終了でメソッドをラップすると、アルゴリズムが得られます。フォードFaulkerson方法として

1

アルゴリズムは、任意の特定を解決するだけの式のようですどのステップにもあいまい性がなく、ステップごとに問題があり、いくつかの終点が必要です。方法論はどんな解決策のより一般的な形式です。それはどのように問題を解決する方法を提供しましたが、アルゴリズムではより正確にソリューションに向かって策定されています。

0

手順は永遠に続く可能性があります。 アルゴリズムとして、最終的に終了し、各ステップを正確に定義します。

1

方法は戦略と似ていますが、アルゴリズムは戦術に類似しています。例:戦争では、国を引き継ぐための戦略(方法)を開発します:まず港をとり、土地を西に進め、その後首都を囲みます。この戦略はいくつかの戦術的段階(アルゴリズム)に分かれています。兵士たちに港を奪う方法を正確に伝えている。兵士にどのように彼らが西に前進しなければならないかを伝えるもの。兵士が街を包囲するための正確なステップを持つものなど

関連する問題