2009-05-18 133 views
18

¿Cómo se diferencia entre un algoritmo y un método? ¿Por qué no llamamos Método de Newton o algoritmos del método de Ford-Faulkerson? ¿Cuáles son las propiedades de un buen algoritmo y qué califica a un método como un algoritmo?¿Cuál es la diferencia entre un algoritmo y un método

+0

¿Está preguntando en el contexto de las patentes (de software)? – zvrba

+0

No, solo una pregunta general. Sin embargo, ¿podría responderlo en el contexto de las patentes también? – unj2

Respuesta

-1

con respecto al método Ford-Faulkerson, CLRS lo llama método en lugar de algoritmo porque "abarca varios aplicación con diferente tiempo de funcionamiento" [pp 651. segunda Editon]

7

No hay diferencia técnica entre el término "método" como en "método de Newton" y "algoritmo".

EDITAR: reflexionando, tal vez Pete tiene razón en que los algoritmos terminan y los métodos pueden no (¿quién soy yo para discutir con Knuth?) Sin embargo, no creo que esa sea una distinción que la mayoría de las personas basará solo en su uso de una palabra u otra.

+0

¿Está sugiriendo que podamos usar los términos de manera intercambiable? Podría referirme a cualquier método como un algoritmo? – unj2

+0

Creo que podría referirse a cualquiera de esos tipos de métodos matemáticos como "algoritmos" y ser técnicamente correctos y entendidos por los matemáticos. – mquander

+2

Los términos pueden ser intercambiables para algunas personas: use el * algorithm * para referirse a una secuencia de pasos no finita, y no lo notarán ni les importará. Sin embargo, a otros * les importará *, así que recomiendo * no * usar los términos indistintamente. Es más seguro tratar los algoritmos como un subconjunto de métodos.De esta forma, puedes comunicarte efectivamente con todos en lugar de solo las personas que no hacen ninguna distinción de todos modos. –

1

Creo que es solo porque el dominio de origen del algoritmo. Si el inventor tiene experiencia en informática, puede preferir el algoritmo llamado. En el dominio de las matemáticas y otras ciencias, pueden preferir el método llamado.

1

En el contexto que indique (método de Newton, etc.) no existe una diferencia esencial entre un algoritmo y un método. Ambos son conjuntos de instrucciones paso a paso para resolver un problema. En el artículo de Wikipedia sobre el Método de Newton, dice "El algoritmo es el primero en la clase de los métodos de Householder, sucedió por el método de Halley". El límite es borroso en el mejor de los casos.

En informática, un algoritmo sigue siendo una manera paso a paso para resolver un problema: un conjunto de pasos independiente de la implementación. Un método comúnmente se refiere a un fragmento de código asociado con una clase u objeto que realiza alguna tarea: puede implementar muchos algoritmos potencialmente.

3

En mi opinión, un método es un concepto más general que el algoritmo y puede ser más o menos cualquier cosa, p. escribiendo datos en un archivo. Casi todo lo que debería suceder debido a un evento o a alguna expresión lógica. Además, el significado de las palabras "método" y "algoritmo" puede variar según el contexto en que se utilizan. Se podrían usar para describir lo mismo.

+2

+1: Los algoritmos deben ser "finitos", "definitivos" y "efectivos". El método de Newton cumple con todos estos; entonces los términos son intercambiables No obstante, la computación de mi impuesto a la renta de los EE. UU. No parece definitiva (algunos términos no parecen estar bien definidos), por lo que no es un algoritmo adecuado. –

+0

No estoy de acuerdo en que un algoritmo tenga que ser efectivo. Podría construir un algoritmo propio que tenga un rendimiento realmente malo. A menos que esté diciendo que se convierte en un método en ese caso :) – ralphtheninja

+1

Efectivo no significa eficiente. Significa que los pasos avanzan hacia el estado o la meta final. Significa que el algoritmo no está rellenado con pasos sin sentido que no llegan efectivamente a la meta. –

3

En lenguaje de programación general, los algoritmos son los pasos por los que se realiza una tarea. Según Wikipedia,

un algoritmo es una secuencia finita de instrucciones, una, paso a paso procedimiento explícito para resolver un problema, a menudo utilizado para el cálculo y procesamiento de datos. Es formalmente un tipo de método efectivo en el cual una lista de instrucciones bien definidas para completar una tarea, cuando se le da un estado inicial, avanza a través de una serie bien definida de estados sucesivos, terminando finalmente en un estado final. La transición de un estado a otro no es necesariamente determinista; algunos algoritmos, conocidos como algoritmos probabilísticos, incorporan aleatoriedad. <

En informática, un método o función es parte de la filosofía orientada a objetos de programación donde los programas están hechos de clases que contiene métodos/funciones para realizar tareas específicas. Una vez más, citando Wikipedia

En la programación orientada a objetos, un método es una subrutina que está asociado exclusivamente bien con una clase (métodos llamados de clase o métodos estáticos) o con un objeto (llamados métodos de instancia). Al igual que un procedimiento en los lenguajes de programación de procedimientos, un método generalmente consiste en una secuencia de declaraciones para realizar una acción, un conjunto de parámetros de entrada para personalizar esas acciones y posiblemente un valor de salida (llamado valor de retorno) de algún tipo. Los métodos pueden proporcionar un mecanismo para acceder (tanto para leer como para escribir) los datos encapsulados almacenados en un objeto o una clase.<

En resumen, el algoritmo son los pasos por los que hacemos algo como girar una bombilla en:

1) a pie para cambiar 2) Flip Switch 3) Los electrones fluyen 4) Luz generada

Los métodos son donde realmente codificamos las acciones dentro de una clase.

+2

Estoy hablando de un método diferente. Por favor lea la pregunta. – unj2

+0

En CS, el algoritmo son los pasos y el método es el medio por el cual hacemos una acción. Todas las fórmulas matemáticas serían algoritmos, ya que nos dan instrucciones de cómo encontrar o hacer algo, incluso si se llaman métodos en matemáticas. Tendríamos que codificar los métodos en un programa para implementarlos realmente implementarlos. – FloppyDisk

22

Algoritmos terminan en un número finito de pasos.

Un procedimiento que tiene todas las características de un algoritmo, excepto que es posible que carezca de finitud, se puede llamar un método computacional. Euclid originalmente presentó no solo un algoritmo para el máximo común divisor de números, sino también una construcción geométrica muy similar para la "mayor medida común" de las longitudes de dos segmentos de línea; este es un método computacional que no termina si las longitudes dadas son inconmensurables. - D.Knuth, TAOCP vol 1, Conceptos básicos: Algoritmos

No se garantiza que el método Newton Raphson converja, no detecta la falla de convergencia. Si envuelve el método con detección y terminación de convergencia en un épsilon finito o después de un número finito de pasos, obtiene un algoritmo.

1

algoritmo es igual que una fórmula para resolver cualquier particular, problema paso a paso, sin ambigüedad para ningún paso, y debe tener algún punto final. la metodología es una forma más general de cualquier solución. proporcionó una manera de cómo resolver cualquier problema, pero en el algoritmo el camino se formula con mayor precisión hacia la solución.

0

Un procedimiento puede continuar para siempre. Donde como Algoritmo, eventualmente terminará y tendrá cada paso definido con precisión.

1

El método es análogo a una estrategia, el algoritmo es análogo a las tácticas. Un ejemplo: en la guerra, se desarrolla una estrategia (método) para hacerse cargo de un país: tomar puertos primero, avanzar hacia el oeste por tierra, luego rodear capital, etc. Esta estrategia se divide en varias etapas tácticas (algoritmos): primero, uno que les dice a los soldados paso a paso exactamente cómo van a tomar los puertos; luego, uno que les diga a los soldados cómo deben avanzar al oeste; luego, uno con los pasos exactos para que los soldados rodeen la ciudad, etc.

Cuestiones relacionadas